从数值天气预报模型下载公共GRIB1/GRIB2和netCDF数据
项目描述
关于
GribMagic项目的目标是统一来自不同组织和数据提供者的数值天气预报模型的公共GRIB1/GRIB2和netCDF数据的下载过程。
这是一个正在进行中的工作,因此GribMagic目前被认为是测试版软件。由于这是一个早期项目,非常欢迎贡献。
详情
该软件包包含不同的代码库。它们都通过一个gribmagic
子命令提供其功能。
- GRibMagic Unity程序:
gribmagic unity --help
- DWD GRIB下载程序:
gribmagic dwd --help
您可以在本文件的后续部分找到相应的调用示例。
设置
安装ECMWF的ecCodes软件包。
# Debian Linux
apt-get install --yes libeccodes0 cdo
# macOS/Homebrew
brew install eccodes cdo
安装GribMagic Python软件包。
pip install gribmagic --upgrade
运行GribMagic Unity程序
临时使用
# List labels of available models.
gribmagic unity list
# Acquire data.
gribmagic unity acquire --model=dwd-icon-eu --timestamp=2021-10-03T00:00:00Z --target=.gribmagic-data
配置
为了可选地调整配置设置,您可以定义以下环境变量
GM_DATA_PATH={PATH_TO_PROJECT}/data
GM_MODEL_CONFIG={PATH_TO_PROJECT}/config/model_config.yml"
GM_MODEL_VARIABLES_MAPPING={PATH_TO_PROJECT}/config/model_variables_mapping.yml"
GM_MODEL_VARIABLES_LEVELS_MAPPING={PATH_TO_PROJECT}/config/model_variables_levels_mapping.yml"
ECCODES_DEFINITION_PATH=/usr/share/eccodes/definitions:/usr/local/opt/eccodes/share/eccodes/definitions
运行DWD GRIB下载程序
# Install DWD GRIB Downloader program.
gribmagic install dwd-grib-downloader
# Acquire wind-specific parameters from ICON-D2.
wget https://raw.githubusercontent.com/earthobservations/gribmagic/98da3fd4f/examples/dwd/recipe_d2_wind.py
gribmagic dwd acquire --recipe=recipe_d2_wind.py --timestamp="2021101800" --output=.gribmagic-data/raw
# Acquire assorted parameters from ICON-GLOBAL.
wget https://raw.githubusercontent.com/earthobservations/gribmagic/98da3fd4f/examples/dwd/recipe_global_assorted.py
gribmagic dwd acquire --recipe=recipe_global_assorted.py --timestamp="2021101800" --output=.gribmagic-data/raw
当省略--timestamp
参数时,将自动选择最新的模式运行。当省略--output
参数时,可以使用GM_DATA_PATH
环境变量提供。
这样,调用gribmagic dwd
的最紧凑形式可能类似于
export GM_DATA_PATH=.gribmagic-data/raw
gribmagic dwd acquire --recipe=recipe_d2_wind.py
运行bbox工具
使用边界框从GRIB文件中提取感兴趣的区域。
通过坐标提取子集,一个由空格分隔的lat_min lat_max lon_min lon_max
列表。
gribmagic smith bbox \
".gribmagic-data/raw/icon-d2/**/*regular-lat-lon*.grib2" \
--output=.gribmagic-data/subgrid/icon-d2 \
--bbox=46.0 47.5 14.5 16.8
通过2个字母的国家名称提取子集。
gribmagic smith bbox \
".gribmagic-data/raw/icon-d2/**/*regular-lat-lon*.grib2" \
--output=.gribmagic-data/subgrid/icon-d2 \
--country=AT
要将在地图上绘制的结果,安装Magics
# Linux
apt-get install --yes libmagplus3v5
# macOS
make magics-install
make magics-info
export MAGPLUS_HOME=/usr/local/opt/magics-4.9.3
# Install GribMagic with Magics bindings
pip install gribmagic[plotting]
并使用--plot
选项
gribmagic smith bbox \
".gribmagic-data/raw/icon-d2/**/*regular-lat-lon*.grib2" \
--output=.gribmagic-data/subgrid \
--country=AT \
--plot
运行重网格工具
获取网格信息文件。
gribmagic install dwd-grid-information
对单个文件进行重网格处理。默认情况下,假设为ICON GLOBAL文件,重网格将以0.250°分辨率进行。
gribmagic smith regrid \
".gribmagic-data/raw/icon/**/*icon_global_icosahedral*.grib2" \
--output=.gribmagic-data/regridded/icon-global
当旨在以0.125°分辨率进行重网格时,请指定--resolution=0.125
参数,例如
gribmagic smith regrid \
".gribmagic-data/raw/icon/**/*icon_global_icosahedral*.grib2" \
--output=.gribmagic-data/regridded/icon-global \
--resolution=0.125
在Docker中运行程序
要在Docker容器中使用GribMagic,您必须像以下这样构建Docker镜像
docker build --tag gribmagic .
然后像以下这样调用它
docker run -it --volume=$PWD/.gribmagic-data:/var/spool/gribmagic gribmagic:latest gribmagic unity acquire --model=dwd-icon-eu --timestamp=2021-10-03T00:00:00Z
开发
获取源代码
git clone https://github.com/earthobservations/gribmagic
cd gribmagic
运行软件测试
# Run all tests.
make test
# All tests, with code coverage report.
make test-coverage
# Run specific tests, with coverage report.
.venv/bin/pytest -vvv --cov-report=term-missing --cov=gribmagic.smith.regrid -k test_regrid
# Run tests in parallel.
make test-parallel
make test-coverage-parallel
内容归属
除非另有说明,否则数据集、图像和图标的版权归其各自所有者所有。
横幅图像
- 来自ECMWF的2米温度,使用Magics渲染。
- 来源:MARS标签或集合预报数据(2013-03-25)
- URL:http://download.ecmwf.int/test-data/magics/2m_temperature.grib
项目详情
关闭
gribmagic-0.2.2.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 599e5173c0224d4bea44f9cb2352fa97a8abe2afcf099f7e06ab539b74804a58 |
|
MD5 | 75fac3d7843a2aaa98f7c36d7eac3caf |
|
BLAKE2b-256 | 3c05286c093ad6c7bc1f2949c538034999f38f8cd282f5d420fbe40914562bf1 |