python netcdf4,Python netcdf

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: