Получить данные c из файла GRIB2 - PullRequest
0 голосов
/ 07 января 2020

Есть ли кто-нибудь, кому удалось получить данные из файлов GRIB2 с помощью библиотеки Grib2Tools в java?

Хотя пример приложения показывает некоторые данные из файла GRIB, он не показывает, как получить какие-либо соответствующие данные для широты / долготы, ie. температура, влажность, давление, облачность и т. д. c.

Я предполагаю, что в этой части можно извлечь данные из файла 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);

1 Ответ

0 голосов
/ 16 марта 2020

Использование функции getValueAt библиотеки Grib2Tools в основном делает две вещи:

  • отображает координаты, передаваемые в качестве параметров, в ближайшую точку сетки данных, содержащейся в файле GRIB,
  • он декодирует данные в этой точке сетки из кодировки GRIB, заданной c, так что вы получаете фактическое значение.

Интерпретация возвращаемого значения должна быть выполнена пользователем Lib. Есть в основном два аспекта:

  • Вы должны знать, к каким данным вы обращались. Это известно из входного файла GRIB. Обычно каждая переменная содержится в отдельном файле GRIB, поэтому, если вы обрабатываете файл GRIB, содержащий данные о температуре, вы получите температуру, если при обработке файла GRIB, содержащего данные о давлении, вы получите давление воздуха.

  • Вы должны интерпретировать значение в соответствии с единицей, в которой оно указано. Единица измерения обычно указывается в метаданных файла GRIB, в данном случае в шаблоне определения продукта. Также этот шаблон (и все остальные) может быть легко доступен с помощью библиотеки Grib2Tools. Например, температура обычно указывается в Кельвинах, поэтому вам нужно вычесть 273,15, чтобы получить Цельсий.

Надеюсь, это поможет.

...