我正在尝试从 NetCDF 多维数组文件中读取和/或提取深度级别,似乎无法使用 gdal 工具查询这些深度(例如
gdalmdimtranslate
)。查看 gdal.org 网站后,我在 NetCDF 驱动程序部分 (https://gdal.org/drivers/raster/netcdf.html) 下找到了这个部分:
维度 NetCDF 驱动程序假定数据遵循 UNIDATA 的 CF-1 约定。NetCDF 文件中的维度使用以下规则:(Z,Y,X)。 如果有超过 3 个维度,驱动程序会将它们合并到带中。例如,如果您有一个类型为 (P、T、Y、X) 的 4 维数组。驱动程序将乘以最后 2 个维度 (P*T)。 驱动程序将按以下顺序显示波段。它将首先递增 T,然后递增 P。元数据将显示在每个带对应的 T 和 P 值上。
*.nc 文件有几个带 4 维数组(变量、深度、经度、纬度)的波段。我不确定为什么 gdal 不能识别深度级别,这是与上述解释相关的元数据问题吗? gdal 调用抛出以下错误消息:
ERROR 1: Subset specification results in an empty set
使用两个调用:
gdalmdimtranslate myncfile.nc out.nc -subset 'depth(5727.917)' -array talk
gdalmdimtranslate myncfile.nc out.nc -subset 'depth(5727.91699)' -array talk
使用
gdalmdiminfo
我得到:
{
"type": "array",
"name": "depth",
"datatype": "Float32",
"dimensions": [
{
"name": "depth",
"full_name": "/depth",
"size": 50,
"type": "VERTICAL",
"direction": "DOWN",
"indexing_variable": "/depth"
}
],
"dimension_size": [
50
],
"attributes": {
"units": {
"datatype": "String",
"value": "m"
},
"positive": {
"datatype": "String",
"value": "down"
},
"unit_long": {
"datatype": "String",
"value": "Meters"
},
"long_name": {
"datatype": "String",
"value": "Depth"
},
"standard_name": {
"datatype": "String",
"value": "depth"
},
"axis": {
"datatype": "String",
"value": "Z"
},
"_ChunkSizes": {
"datatype": "Int32",
"value": 50
},
"_CoordinateAxisType": {
"datatype": "String",
"value": "Height"
},
"_CoordinateZisPositive": {
"datatype": "String",
"value": "down"
},
"valid_min": {
"datatype": "Float32",
"value": 0.494024992
},
"valid_max": {
"datatype": "Float32",
"value": 5727.91699
}
},
"unit": "m",
"values": [0.494024992, 1.54137504, 2.64566898, 3.81949496, 5.07822418, 6.44061422, 7.92956018, 9.57299709, 11.4049997, 13.4671402, 15.81007, 18.4955597, 21.5988197, 25.2114105, 29.4447308, 34.4341507, 40.3440514, 47.3736916, 55.7642899, 65.8072662, 77.8538513, 92.3260727, 109.729301, 130.666, 155.850693, 186.125595, 222.475204, 266.040314, 318.127411, 380.213013, 453.937714, 541.088928, 643.566772, 763.33313, 902.339294, 1062.43994, 1245.29102, 1452.25098, 1684.28406, 1941.89294, 2225.07788, 2533.33594, 2865.70288, 3220.82007, 3597.03198, 3992.48389, 4405.22412, 4833.29102, 5274.78418, 5727.91699]
}
使用
ncdump
我得到:
...
data:
depth = 0.494025, 1.541375, 2.645669, 3.819495, 5.078224, 6.440614, 7.92956,
9.572997, 11.405, 13.46714, 15.81007, 18.49556, 21.59882, 25.21141,
29.44473, 34.43415, 40.34405, 47.37369, 55.76429, 65.80727, 77.85385,
92.32607, 109.7293, 130.666, 155.8507, 186.1256, 222.4752, 266.0403,
318.1274, 380.213, 453.9377, 541.0889, 643.5668, 763.3331, 902.3393,
1062.44, 1245.291, 1452.251, 1684.284, 1941.893, 2225.078, 2533.336,
2865.703, 3220.82, 3597.032, 3992.484, 4405.224, 4833.291, 5274.784,
5727.917 ;
...
测试的示例文件在这里:https://file.io/n8M7J8BLiVsv
欢迎任何指点,