【问题标题】:How to read and convert GrADS flat binary format using R or python?如何使用 R 或 python 读取和转换 GrADS 平面二进制格式?
【发布时间】:2020-05-13 13:18:21
【问题描述】:

我有一个GrADS formatted (Raw Binary) file,其控制文件如下:

dset data.bin
undef  -999.
options template
title Example data
xdef 720 linear    0.25    0.50
ydef 360 linear  -89.75    0.50
tdef   1 linear 00Z01JAN1990 1yr
zdef 1 linear 1 1
vars 1
dat 0 99 Estimated data
ENDVARS

有人知道如何使用 R 或 Python 将其转换或重新格式化为常见的 2D 光栅文件格式吗?

预期的输出是 2D 地图(通常是光栅文件或 2D 数组),类似于以下地图: Example of output

【问题讨论】:

  • 显示所需输出的示例
  • 我在帖子中添加了@ZarakiKenpachi。请检查图像。基本上,它只是一个 2D 世界地图,其中包含控制文件中写入的“纬度”、“经度”和网格大小。

标签: python r fortran grads


【解决方案1】:

您可以使用 CDO(气候数据运算符)通过一行代码来完成此操作,例如

cdo -f nc import_binary Temp.ctl try.nc

但是在 Windows 中安装 CDO 有点棘手。您可以在 Windows 中安装 Ubuntu 子系统,然后在 Ubuntu 中安装 CDO。之后按照https://zoomadmin.com/HowToInstall/UbuntuPackage/cdo 此处提供的步骤在 Ubuntu 子系统中安装 CDO。然后在.ctl文件所在的目录下打开终端,然后执行上面的代码。

【讨论】:

  • 感谢您的解决方案@bappa。但是,我仍然想在我的 Windows 中执行此操作(使用 R 和 python),因为我在安装 OpenGrADS 和 CDO 时遇到了困难。
  • 现在在 Windows 10 中安装 Ubuntu 和 CDO 非常容易。您可以按照此链接中提供的步骤docs.microsoft.com/en-us/windows/wsl/install-win10
【解决方案2】:

你可能想试试这个python包xgrads,它将解析ctl文件并将原始二进制数据加载到地球科学中广泛使用的数据结构xarray中:

from xgrads import open_CtlDataset

# load the data into xarray.Dataset
dset = open_CtlDataset('data.ctl')

那么将数据绘制为:

dset['dat'].plot()

注意如果ctl和二进制文件在同一个文件夹,那么ctl的第一行应该是dset ^data.bin。如果它们不在同一个文件夹中,则应指定.bin 文件的绝对路径。

希望这会有所帮助。

【讨论】:

  • 如何为 Python 或 Anaconda 安装 xgrads 以及如何一次处理多个 ctl 文件?
  • 您可以使用git 命令git clone https://github.com/miniufo/xgrads.git 下载它,然后使用python setup.py install 安装它。多个二进制文件通常在单个 .ctl 文件中使用 template 关键字来描述。
猜你喜欢
  • 2021-09-12
  • 2014-06-19
  • 2010-09-08
  • 2021-03-03
  • 2020-05-09
  • 1970-01-01
  • 2014-02-06
  • 1970-01-01
  • 2013-09-02
相关资源
最近更新 更多