问题描述
我正在尝试使用 python 和 netcdf4 库访问 NETCDF4_CLASSIC 文件中的对象“纬度”,但没有成功。当我打开文件时:
ncFile = '/path/to/file.nc4'
f = netCDF4.Dataset(ncFile,'r')
f
我得到这个结构:
NETCDF4_CLASSIC
<class 'netCDF4._netCDF4.Dataset'>
root group (NETCDF4_CLASSIC data model,file format HDF5):
StructMetadata_0: GROUP=SwathStructure
GROUP=SWATH_1
SwathName="2B-CLDCLASS"
GROUP=Dimension
OBJECT=Dimension_1
DimensionName="nray"
Size=37081
END_OBJECT=Dimension_1
OBJECT=Dimension_2
DimensionName="scalar"
Size=1
END_OBJECT=Dimension_2
OBJECT=Dimension_3
DimensionName="nbin"
Size=125
END_OBJECT=Dimension_3
OBJECT=Dimension_4
DimensionName="Ncloud"
Size=10
END_OBJECT=Dimension_4
END_GROUP=Dimension
GROUP=DimensionMap
END_GROUP=DimensionMap
GROUP=IndexDimensionMap
END_GROUP=IndexDimensionMap
GROUP=GeoField
OBJECT=GeoField_1
GeoFieldName="Profile_time"
DataType=DFNT_FLOAT32
DimList=("nray")
END_OBJECT=GeoField_1
OBJECT=GeoField_2
GeoFieldName="UTC_start"
DataType=DFNT_FLOAT32
DimList=("scalar")
END_OBJECT=GeoField_2
OBJECT=GeoField_3
GeoFieldName="TAI_start"
DataType=DFNT_FLOAT64
DimList=("scalar")
END_OBJECT=GeoField_3
OBJECT=GeoField_4
GeoFieldName="Latitude"
DataType=DFNT_FLOAT32
DimList=("nray")
END_OBJECT=GeoField_4
OBJECT=GeoField_5
GeoFieldName="Longitude"
DataType=DFNT_FLOAT32
DimList=("nray")
END_OBJECT=GeoField_5
OBJECT=GeoField_6
GeoFieldName="Height"
DataType=DFNT_INT16
DimList=("nray","nbin")
END_OBJECT=GeoField_6
OBJECT=GeoField_7
GeoFieldName="Range_to_intercept"
DataType=DFNT_FLOAT32
DimList=("nray")
END_OBJECT=GeoField_7
OBJECT=GeoField_8
GeoFieldName="DEM_elevation"
DataType=DFNT_INT16
DimList=("nray")
END_OBJECT=GeoField_8
OBJECT=GeoField_9
GeoFieldName="Vertical_binsize"
DataType=DFNT_FLOAT32
DimList=("scalar")
END_OBJECT=GeoField_9
OBJECT=GeoField_10
GeoFieldName="Pitch_offset"
DataType=DFNT_FLOAT32
DimList=("scalar")
END_OBJECT=GeoField_10
OBJECT=GeoField_11
GeoFieldName="Roll_offset"
DataType=DFNT_FLOAT32
DimList=("scalar")
END_OBJECT=GeoField_11
END_GROUP=GeoField
GROUP=datafield
OBJECT=datafield_1
datafieldName="Data_quality"
DataType=DFNT_UINT8
DimList=("nray")
END_OBJECT=datafield_1
OBJECT=datafield_2
datafieldName="Data_status"
DataType=DFNT_UINT16
DimList=("nray")
END_OBJECT=datafield_2
OBJECT=datafield_3
datafieldName="Data_targetID"
DataType=DFNT_UINT8
DimList=("nray")
END_OBJECT=datafield_3
OBJECT=datafield_4
datafieldName="RayStatus_validity"
DataType=DFNT_UINT8
DimList=("nray")
END_OBJECT=datafield_4
OBJECT=datafield_5
datafieldName="Navigation_land_sea_flag"
DataType=DFNT_UINT8
DimList=("nray")
END_OBJECT=datafield_5
OBJECT=datafield_6
datafieldName="Precip_flag"
DataType=DFNT_INT8
DimList=("nray")
END_OBJECT=datafield_6
OBJECT=datafield_7
datafieldName="sst"
DataType=DFNT_FLOAT32
DimList=("nray")
END_OBJECT=datafield_7
OBJECT=datafield_8
datafieldName="Surface_wind"
DataType=DFNT_FLOAT32
DimList=("nray")
END_OBJECT=datafield_8
OBJECT=datafield_9
datafieldName="cloud_scenario"
DataType=DFNT_INT16
DimList=("nray","nbin")
CompressionType=HDFE_COMP_DEFLATE
DeflateLevel=4
END_OBJECT=datafield_9
OBJECT=datafield_10
datafieldName="CloudLayer"
DataType=DFNT_INT16
DimList=("nray")
END_OBJECT=datafield_10
OBJECT=datafield_11
datafieldName="CloudLayerBase"
DataType=DFNT_FLOAT32
DimList=("nray","Ncloud")
CompressionType=HDFE_COMP_DEFLATE
DeflateLevel=4
END_OBJECT=datafield_11
OBJECT=datafield_12
datafieldName="CloudLayerTop"
DataType=DFNT_FLOAT32
DimList=("nray","Ncloud")
CompressionType=HDFE_COMP_DEFLATE
DeflateLevel=4
END_OBJECT=datafield_12
OBJECT=datafield_13
datafieldName="CloudLayerType"
DataType=DFNT_INT16
DimList=("nray","Ncloud")
CompressionType=HDFE_COMP_DEFLATE
DeflateLevel=4
END_OBJECT=datafield_13
END_GROUP=datafield
GROUP=MergedFields
END_GROUP=MergedFields
END_GROUP=SWATH_1
END_GROUP=SwathStructure
GROUP=GridStructure
END_GROUP=GridStructure
GROUP=PointStructure
END_GROUP=PointStructure
END
HDFEOsversion: HDFEOS_V2.5
creation_date: Wed Feb 17 03:59:37 UTC 2021
NCL_Version: 6.6.2
system: Linux 0fc9309f2c2a 4.19.112+ #1 SMP Thu Jul 23 08:00:38 PDT 2020 x86_64 x86_64 x86_64 GNU/Linux
Conventions: None
hdf_source: 2010017014344_19801_CS_2B-CLDCLASS_GRANULE_P1_R05_E03_F00.hdf
title: NCL: convert-HDF-to-netCDF
dimensions(sizes): nray_2B_CLDCLASS(37081),nbin_2B_CLDCLASS(125),Ncloud_2B_CLDCLASS(10)
variables(dimensions): int16 Height(nray_2B_CLDCLASS,nbin_2B_CLDCLASS),int16 cloud_scenario(nray_2B_CLDCLASS,float32 CloudLayerBase(nray_2B_CLDCLASS,Ncloud_2B_CLDCLASS),float32 CloudLayerTop(nray_2B_CLDCLASS,int16 CloudLayerType(nray_2B_CLDCLASS,Ncloud_2B_CLDCLASS)
groups:
我试过 this 并没有奏效。此外,当我尝试使用 f.variables.keys() 检索变量键时,我得到了
odict_keys(['Height','cloud_scenario','CloudLayerBase','CloudLayerTop','CloudLayerType'])
似乎“高度”是一个变量而“纬度”不是,即使它们在同一个组中。我也试过 f.groups 并且输出只是 OrderedDict()。
文件是 Cloudsat CLDCLASS.hdf 通过 NCL 转换为 .nc (convert2nc)。
任何提示将不胜感激。我是 NetCDF 领域的新手。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)