【问题标题】:Is there a way to pull only metadata and specific range in grib?有没有办法只提取元数据和 grib 中的特定范围?
【发布时间】:2021-06-07 16:35:34
【问题描述】:

云存储桶上的可用天气数据越来越丰富。惊人的!但是,它们不是以云优化格式存储的。我想知道是否有办法只从存储在 AWS 上的 grib2 文件中提取元数据,然后只从这些文件中提取单点。 netcdf4 同样的问题。我知道 Netcdf4 支持库允许您对磁盘上的文件执行此操作,但我不知道如何在云上执行此操作。

我不知道应该寻找哪些资源来探索这一点。任何帮助将不胜感激。

【问题讨论】:

  • 这真的很可悲,因为例如谷歌使用卫星数据为大查询做广告,但它们只是存储在谷歌文件系统存储中。下载文件后,必须在本地进行数据密集型处理。我确信在搜索了很长时间之后,目前还没有针对地理空间数据集的基于云的解决方案。所以你必须下载数据并使用 cfgrib/xarray 到grid_data.sel(lat=49.8, lon=9.8, method='nearest') 或使用公共天气 API 服务。

标签: bucket netcdf4 grib cfgrib grib-api


【解决方案1】:

您可以即时解析 GRIB2 文件并立即删除不需要的所有内容。每个 GRIB2 文件包含一个或多个 GRIB2 消息,其结构如下:

  • 第 0 部分:指示器部分
  • 第 1 部分:识别部分
  • 第 2 部分:本地使用部分 (可选)
  • 第 3 部分:网格定义部分 (可以重复)
  • 第 4 部分:产品定义部分(可以重复)
  • 第 5 部分:数据表示部分 (可以重复)
  • 第 6 部分:位图部分 (可以重复)
  • 第 7 部分:数据部分 (可以重复)
  • 第 8 部分:结束部分

第 0 节在 GRIB2 中始终为 16 字节,第 8 节始终为 4 字节。其余部分始终以部分的length(4 个字节)和section number(1 个字节)开头。因此,快速跳过不需要的所有部分应该很容易。然后,您可以只阅读第 1、3 或 5 部分,具体取决于您想要的元数据。

但是有一个缺点。如果我理解正确,您想在在线资源上执行此操作。在这种情况下,您将下载整个文件,同时跳过部分或大部分部分。

如果您尝试建立某种可用 GRIB 数据的索引,这可能是一种选择。一种 GRIB 爬虫。

请注意,GRIB1 的结构有点不同

有关 GRIB2 部分的更多详细信息:https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/

【讨论】:

  • 所以如果我理解正确的话,假设 grib 文件使用二阶空间差分作为压缩(这对于 noaa 文件来说绝对是最常见的),那么我将不得不下载整个第 7 节为了拉单点?编辑:您还可以向我指出有关编码/解码算法如何工作的资源吗?我见过提到 h1、h2、hmin 和 g1、h2,但没有提到如何在解码算法中实现它们
  • 是的,您需要处理整个第 7 节和第 5 节才能真正知道编码是什么。检查github.com/kubovy/JGribX/blob/kotlin/src/main/java/mt/edu/um/… 以了解复杂包装和空间差异,yumpu.com/en/document/view/11723135/… 第 2.3.2 节描述了复杂包装和空间差异。您将需要下载所有数据。在阅读下载流时,您可以快速跳过不需要的部分
  • 我建议不要自己为 grib 数据构建解析器。有许多可用的解析器,例如PyNIO、pygrib 和 cfgrib。关于 cfgrib+xarray 你应该知道的是 cfgrib 只是加载一个文件索引而不是整个文件到内存中。这就是为什么 open_dataset 可以快速检查元数据的原因。
  • @dl.meteo cfgrib 生成的 idx 文件与大多数 NOAA 托管 grib 数据可用的文件不同。可用的 idx 文件不包含足够的元数据来知道坐标,因此,您仍然需要从所有想要的文件中提取第 1-6 节才能获得正确的元数据,即使那样,我不要认为 cfgrib 足够聪明,以至于您可以在没有完整文件文件的情况下将其输入第 1-6 节。对于本地托管的数据,我绝对同意您的方法,但是对于云托管的数据,我认为我们需要其他东西。
猜你喜欢
  • 2018-08-29
  • 2019-09-04
  • 2019-04-13
  • 2019-12-14
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多