我尝试将netCDF数据转换为json,以便在leaflet-velocity中使用,grib2json使用与earth中cambecc使用的wind-global.json输出格式相同的格式。这是danwild在netCDF4
中给出的样本json数据的另一个例子使用question我设法从我的netCDF中提取纬度/批次风数据数组。
我想知道"数据" json文件的一部分(下面的例子)是结构化的?这似乎是一系列很长的价值观(例如,对于东风'在这个例子中),但我不明白它们后来如何映射到lat / lon coords?
json标题中是否有东西告诉Leaflet如何构造输出,或者leaflet-velocity.js中是否还有其他函数可以完成这项工作?
这Click on the icon to check the Code有一些线索,但我现在已经不知所措,试图将其改编为我自己的netCDF文件。
[
{
"header": {
"parameterUnit": "m.s-1",
"parameterNumber": 2,
"dx": 1.0,
"dy": 1.0,
"parameterNumberName": "eastward_wind",
"la1": -7.5,
"la2": -28.5,
"parameterCategory": 2,
"lo2": 156.0,
"nx": 14,
"ny": 22,
"refTime": "2017-02-01 23:00:00",
"lo1": 143.0
},
"data":[
-2.12,
-2.27,
-2.41,
...
]
}
]
答案 0 :(得分:2)
这可能会有所帮助。 NCO-JSON生成与grib2json
不同的JSON方言,但对所有netCDF文件直接完全有效,默认情况下,包含指示数组维边界的括号。您可能会发现它更容易用于您的目的...
zender@aerosol:~$ ncks -C -v three_dmn_rec_var --jsn ~/nco/data/in.nc
{
"dimensions": {
"lat": 2,
"lon": 4,
"time": 10
},
"variables": {
"three_dmn_rec_var": {
"shape": ["time", "lat", "lon"],
"type": "float",
"attributes": {
"long_name": "three dimensional record variable",
"units": "watt meter-2",
"_FillValue": -99.0
},
"data": [[[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0]], [[9.0, 10.0, 11.0, 12.0], [13.0, 14.0, 15.0, 16.0]], [[17.0, 18.0, 19.0, 20.0], [21.0, 22.0, 23.0, 24.0]], [[25.0, 26.0, 27.0, 28.0], [29.0, 30.0, 31.0, 32.0]], [[33.0, 34.0, 35.0, 36.0], [37.0, 38.0, 39.0, 40.0]], [[41.0, 42.0, 43.0, 44.0], [45.0, 46.0, 47.0, 48.0]], [[49.0, 50.0, 51.0, 52.0], [53.0, 54.0, 55.0, 56.0]], [[57.0, 58.0, 59.0, 60.0], [61.0, 62.0, 63.0, 64.0]], [[65.0, 66.0, 67.0, 68.0], [69.0, 70.0, 71.0, 72.0]], [[73.0, 74.0, 75.0, 76.0], [77.0, 78.0, 79.0, 80.0]]]
}
}
}