python netcdf4,Python netcdf
这篇文章主要介绍了大蟒的netCDF4批量处理网络计算机格式文件的操作方法,使用大蟒批量提取所有数据,查看数据属性,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
目录
一、使用退出提取出第一期数据1.使用工具箱中的"创建NetCDF栅格图层"工具,提取出一个数据2.导出该数据作为标准数据二、使用大蟒批量提取所有数据1.查看数据属性2.批量导出结果!注意事项
一、使用ArcMap提取出第一期数据
1.使用工具箱中的“Make NetCDF Raster Layer”工具,提取出一个数据
可以发现该数据有正确的像元大小、坐标系等
2.导出该数据作为标准数据
二、使用python批量提取所有数据
1. 查看数据属性
从netCDF4导入数据集,num2date
infile=./01数据/径流1992-2014/GRUN _ v1 _ gswp 3 _ WGS 84 _ 05 _ 1902 _ 2014。NC
data_set=Dataset(infile) #读取(美国)北卡罗来纳州文件信息
打印(数据集)
输出为
class netCDF4 ._netCDF4 .数据集
根组(NETCDF3_CLASSIC数据模型,文件格式NETCDF3):
标题格伦:号
版本:格伦1.0
气象_forcing: GSWP3
时间分辨率:每月
空间分辨率: 0.5x0.5
crs: WGS84
proj 4: proj=long lat ellps=WGS 84 datum=WGS 84 no _ defs
EPSG: 4326
参考文献:吉吉等人,2019年1902年格伦:年至2014年基于观测的全球网格径流数据集。https://doi.org/10.5194/essd-2019-32ESSD,邮编:
作者:焦纳塔吉吉;卢卡斯古德蒙德松
联系人gionata.ghiggi@gmail.com :lukas.gudmundsson@env.ethz.ch
苏黎世联邦理工学院大气和气候科学研究所:陆地-气候动力学研究所
institution_id: IAC ETHZ
尺寸(大小): X(720),Y(360),时间(1356)
变量(维度): float64 X(X),float64 Y(Y),float64 time(time),float32径流(时间,Y,X)
组:
可以看到变量变量x、Y为经纬度,时间为时间,径流为需要的结果
2.批量导出结果
从开源基金会导入中使用
从netCDF4导入数据集,num2date
将数组作为铭牌导入
def WriteTiff(im_data,inputdir,path):
raster=gdal .打开(输入目录)
im_width=栅格100 . raster xsize #栅格矩阵的列数
im_height=栅格100 . RasterYSize #栅格矩阵的行数
im_bands=栅格。光栅计数#波段数
im_geotrans=raster .GetGeoTransform()#获取仿射矩阵信息
im_proj=raster .GetProjection()#获取投影信息
im_data.dtype.name:中的if int8
数据类型=gdal .GDT字节
im_data.dtype.name:中的elif int16
数据类型=gdal .GDT uint 16
else:
数据类型=gdal .GDT浮动32
if len(im_data.shape)==3:
im_bands,im_height,im_width=im_data.shape
elif len(im_data.shape)==2:
im_data=np.array([im_data])
im_bands,(im_height,im_width)=1,im_data.shape
# 创建文件
driver=gdal .GetDriverByName(GTiff )
数据集=驱动程序。创建(路径、即时宽度、即时高度、即时宽度、数据类型)
如果(数据集!=无):
数据集SetGeoTransform(im_geotrans) #写入仿射变换参数
数据集SetProjection(im_proj) #写入投影
对于范围内的我(即时通讯):
数据集GetRasterBand(i 1).WriteArray(im_data[i])
倒三角形数据集
infile=./01数据/径流1992-2014/GRUN _ v1 _ gswp 3 _ WGS 84 _ 05 _ 1902 _ 2014。NC
data_set=Dataset(infile) #读取(美国)北卡罗来纳州文件信息
时间=数据集。变量[时间][:]#获取时间一列
单位=数据集合。变量[时间].单位#获取第一期时间
#读取样本标签图像文件格式。文件的地理信息
intif=./03过程数据/径流_示例. tif
对于范围(0,len(time)):内的英语字母表中第九个字母
yr=num2date(时间[我],单位)。年份#提取年份
mon=num2date(时间[我],单位)。月份#提取月份
value _ data=dataset . variables[径流][我]
# 将缺失值改为0
数据=值数据数据
掩码=值_数据.掩码
data[np.where(mask==True)]=0
outputname=./01数据/径流1992年至2014年.zfill(2) . tif
WriteTiff(data,intif,outputname)
打印(输出名称)
!注意事项
1.使用时请自行修改输入输出文件路径和变量名。
2.根据需要处理缺失值。
关于python netCDF4如何批量处理NC格式文件的文章到此为止。关于python netCDF4处理NC格式文件的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。