将CSV转换为GRIB2数据以在Leaflet中进行映射

时间:2020-03-11 23:12:03

标签: csv leaflet grib

TL; DR:我正在寻找一些用于动态生成GRIB2数据集的资源,理想情况下是使用内部生成的CSV格式的风数据。

我们有一系列本地气象站的数据,这些气象站监视着我们城市周围的风信息。他们每隔约2-3分钟报告一次(比标准天气数据要频繁得多),从他们的报告中我们可以得出纬度,经度,风速和风向。有人去告诉老板这些非常漂亮的可视化内容,例如this,它可以显示风速和风向,这是我的工作。

上述Leaflet GitHub here插件以及其他几个插件均使用GRIB2数据,根据我的研究,该数据涉及左/右数据集和上/下数据集。在一个区域中绘制的一系列点。

我遇到的问题是,我只发现了少数与GRIB2数据交互的工具,并且大多数似乎是从GRIB2数据集解码数据 ,而只有一个工具在运行Fortran似乎已经存在,可以将GRIB2数据一起编译。

那么,有什么方法可以使用专有数据每隔2-3分钟即时生成GRIB2数据吗?

我经历了this resource on NOAA's website,在那里找到了一些工具。

2 个答案:

答案 0 :(得分:0)

我知道与GRIB和其他一些与科学/天气相关的格式一起使用会多么令人沮丧。这可能不是最好的答案,但可能是您唯一的答案,因为我普遍缺乏对格式和工具的了解,因此我发现这些类型的问题只会尘土飞扬。

根据我的记忆,CDO工具(链接 here)可以做一些神奇的事情-但是我对此并不了解。我确实使用它来将卫星数据转换为纯文本,这绝对是救生员!所以我会解释:

我的建议是先将CSV转换为netCDF。很久以前,我为此保存了一个链接,但从未真正需要它。 (discussion here)。本质上,一些python代码应该可以为您完成转换。可能有几种方法可以做到这一点,但是除了最初的研究,我从未研究过它。

接下来,您应该能够使用CDO将.nc转换为.grib。我知道它可以做很多事情。 Here is a discussion regarding this, so it must be able to be done

我还看到 at this link有人将grib 转换为netcdf ,但是您也应该可以反向进行。我只是不知道确切的命令。从链接:

作为使用CDO的一个示例,从GRIB到netCDF的转换可以很简单

cdo -f nc copy file.grb file.nc

我怀疑这只是相反的情况,但可能类似于:

cdo -f grb file.nc file.grb

希望您可以将它们放在一起以使其正常工作而不会太hacky。

答案 1 :(得分:0)

您可以使用pandasxarraycfgrib在一个简单的python脚本中完成

import pandas as pd
import cfgrib

data = pd.read_csv('your_csv_data.csv')
xarray_data = data.to_xarray()
cfgrib.to_grib(xarray_data, 'out2.grib')

请注意,在存储为grib数据之前,必须先定义grib规格。