我发现使用 Pygrib 访问 grb2 文件非常缓慢且耗时,对所有人来说都一样吗?
I find accessing grb2 files with Pygrib very slow and time consuming, is it same for all?
我对两个数据集使用相同的 python 代码,
1) 我试图从 netcdf 文件访问数据
2) 我尝试使用 pygrib 从 grb2 文件访问数据。
除此之外,代码是相同的(步骤数、循环数、总操作数——都相同)。看来 pygrib 太慢了。还有其他选择吗?
您没有提供很多信息,但从根本上说,GRIB 的构建方式与 NetCDF 不同。 GRIB 文件通常由 1 个或多个 GRIB 消息组成 - 每个 GRIB 消息都是一个层并且独立于所有其他层。这意味着您可以获取一个 GRIB 并将其连接到另一个 GRIB 的末尾,最后您将拥有一个 GRIB 文件,其中包含来自两个原始文件的所有消息。这不适用于 NetCDF。因此,如果您的数据由许多不同的层(或 GRIB 术语中的消息)组成,即使您没有读取数据有效负载,您也会通过文件进行大量搜索。
替代软件例如来自 ECMWF 的 GRIB API releases。它快速可靠,但是 Python API (至少目前)非常像 C。即将推出新的 Python API。但是如果不提供更多信息,这个问题太笼统了,很难回答。
我对两个数据集使用相同的 python 代码, 1) 我试图从 netcdf 文件访问数据 2) 我尝试使用 pygrib 从 grb2 文件访问数据。 除此之外,代码是相同的(步骤数、循环数、总操作数——都相同)。看来 pygrib 太慢了。还有其他选择吗?
您没有提供很多信息,但从根本上说,GRIB 的构建方式与 NetCDF 不同。 GRIB 文件通常由 1 个或多个 GRIB 消息组成 - 每个 GRIB 消息都是一个层并且独立于所有其他层。这意味着您可以获取一个 GRIB 并将其连接到另一个 GRIB 的末尾,最后您将拥有一个 GRIB 文件,其中包含来自两个原始文件的所有消息。这不适用于 NetCDF。因此,如果您的数据由许多不同的层(或 GRIB 术语中的消息)组成,即使您没有读取数据有效负载,您也会通过文件进行大量搜索。
替代软件例如来自 ECMWF 的 GRIB API releases。它快速可靠,但是 Python API (至少目前)非常像 C。即将推出新的 Python API。但是如果不提供更多信息,这个问题太笼统了,很难回答。