数据的读写
这个主题是各种语言和数据的读写操作示例
囚徒5.0_1 python语言nc文件的读写
读取操作
import netCDF4 as nc
#
# 打开.nc文件
dataset = nc.Dataset('nc文件路径')
# 获取所有变量名称
variable_names = dataset.variables.keys()
# 读取特定变量的数据
variable_data = dataset.variables['elevation'][:]
#关闭文件
dataset.close()
写入操作
lon = np.arange(125.0, 127 +1.0 / 61, 1/60) # 示例经度数据
lat = np.arange(28, 30 + 1/60, 1/60) # 示例纬度数据
#***1 创建NetCDF文件
ncid = nc.Dataset('vgg7.nc', 'w', format='NETCDF4')
#***2 创建经度和纬度维度 (维度名称和大小)
dimid_lon = ncid.createDimension('lon', len(lon))
dimid_lat = ncid.createDimension('lat', len(lat))
# 创建经度和纬度变量 createVariable(变量名,值类型,维度)注意这里的维度就是上面创建维度的名称,不然会#报错
varid_lon = ncid.createVariable('lon', 'f8', ('lon',))
varid_lat = ncid.createVariable('lat', 'f8', ('lat',))
# 创建数值变量
varid_data = ncid.createVariable('SIO', 'f8', ('lat', 'lon'))
# 写入经度、纬度和数值数据
varid_lon[:] = lon
varid_lat[:] = lat
varid_data[:] =SIO
# 关闭NetCDF文件
ncid.close()
对上述代码的解释,
f8代表64 位浮点数型。
为什么SIO不用创建维度 createDimension。
对于createDimension方法,它用于创建维度,而不是变量。在你的代码中,我们可以看到createDimension方法被用于创建名为lon和lat的维度,而不是用于创建名为SIO的维度。
在创建变量时,我们可以指定该变量所涉及的维度。在你的代码中,通过createVariable方法创建了一个名为SIO的变量,并在参数中指定了该变量的维度为('lat', 'lon'),即纬度和经度。这表示该变量的值将根据纬度和经度的组合来确定。
因此,在你的代码中,并不需要使用createDimension来单独创建SIO的维度,因为它的维度已经通过createVariable方法中的参数指定了。
他的总体流程就是,建立nc文件,创建维度,创建维度变量,数据写入,关闭文件。

浙公网安备 33010602011771号