【问题标题】:Get specific data from GRIB2 file从 GRIB2 文件中获取特定数据
【发布时间】:2020-04-25 01:42:08
【问题描述】:

有没有人设法使用 Java 中的 Grib2Tools 库从 GRIB2 文件中获取一些数据?

虽然示例应用程序显示了 GRIB 文件中的一些数据,但它没有显示如何获取纬度/经度的任何相关数据,即。温度、湿度、气压、云底等

我猜这部分是可以从 GRIB2 文件中提取数据的地方,但我看不到它返回任何有意义的数据的任何方式:

 // Get grid data
        double latitude = 42.198921;
        double longitude = 16.548130;
        System.out.println("Value at (" + latitude + ", " + longitude + "): " + gribFile.interpolateValueAtLocation(gridid, latitude, longitude));
        float val = gribFile.getValueAt(0, GribFile.degToUnits(latitude), GribFile.degToUnits(longitude));
        System.out.println("Value at: " + val);

【问题讨论】:

    标签: java grib


    【解决方案1】:

    使用 Grib2Tools 库的 getValueAt 函数基本上做了两件事:

    • 它将作为参数传递的坐标映射到 GRIB 文件中包含的数据网格的最近点,
    • 它从 GRIB 特定编码中解码该网格点的数据,以便您获得实际值。

    返回值的解释必须由 lib 的用户完成。基本上有两个方面:

    • 您必须知道您访问了哪些数据。这可以从输入 GRIB 文件中得知。通常每个变量都包含在一个单独的 GRIB 文件中,因此如果您处理包含温度数据的 GRIB 文件,您将获得温度,如果您处理包含压力数据的 GRIB 文件,您将获得气压。

    • 您必须根据提供的单位来解释该值。单位通常在 GRIB 文件的元数据中提供,在本例中是在产品定义模板中。此外,可以使用 Grib2Tools lib 方便地访问此模板(和所有其他模板)。例如,温度通常以开尔文提供,因此您需要减去 273,15 才能获得摄氏度。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 2019-03-26
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2021-03-13
      相关资源
      最近更新 更多