跳转到主要内容

从数值天气预报模型下载公共GRIB1/GRIB2和netCDF数据

项目描述

GribMagic - 通用天气预报下载器

CI codecov python version license status downloads

image

只有进行实验的人才会相信他们的模拟。

只有进行实验的人才会相信他们的实验结果。

匿名

关于

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

内容归属

除非另有说明,否则数据集、图像和图标的版权归其各自所有者所有。

横幅图像

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解更多关于安装软件包的信息。

源代码分布

gribmagic-0.2.2.tar.gz (46.9 KB 查看散列

上传时间: 源代码

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面