альтернативный (более быстрый) способ получить значения гриба с учетом границы? - PullRequest
1 голос
/ 08 мая 2020

Я использовал pygrib для извлечения всех значений grib для указанного диапазона c в заданных границах. Функция вернет объект Json, содержащий все значения для всех проанализированных данных.

Теперь, когда я прочитал примерно 73 гигабайта для каждого прогона, ответ медленный, и теперь он составляет примерно 3 минуты. .

Результат должен быть примерно таким: Результат сетки

Знаете ли вы другой способ извлечения данных в bbox, используя другие инструменты, такие как GDAL или ECCODES?

Я не могу использовать grib2 json, так как он не распознает GRIB.

Заранее спасибо

1 Ответ

1 голос
/ 05 июня 2020

вы смотрели cfgrib . Это движок гриба для xarray. А с xarray у вас есть большое количество сервисов и приложений для наборов данных grib. xarray следует принципу куба данных.

Например, если вы загрузили данные в xarray.Dataset, вы можете использовать функцию where для нарезки данных в bbox:

import xarray

dataset = xarray.open_dataset('path to grib file', engine='cfgrib')

# or for multiple files 
dataset = xarray.open_dataset(['path_to_grib1', 'path_to_grib2', ...], engine='cfgrib')

dataset.where((dataset.latitude > min_lat) & 
              (dataset.latitude < max_lat) & 
              (dataset.longitude > min_lon) &
              (dataset.longitude < max_lon), drop=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...