在获取黄土高原的气象数据时遇到了NetCDF格式文件。

从来没见过,费了番功夫用arcPy搞定了,代码如下:

# -*- coding: utf-8 -*-
# 主要参考Esir技术支持NetCDF_time_slice_to_raster脚本与MakeNetCDFRasterLayer脚本
# 速度不快,不如matlab
import arcpy, os, numpy  # 导入arcpy等
from arcpy.sa import *pre_filepath = r'D:\datasum\pre\preNc.nc'  # 读取文件夹
pre_OutputFolder = r"D:\dataset\caijiannc\pre"  # 设置tif文件的输出路径
tmp_filepath = r'D:\dataset\tmp'  # 读取文件夹
tmp_OutputFolder = r"D:\dataset\caijiannc\tmp"  # 设置tif文件的输出路径
class NC:def __init__(self):passdef NC_toTif(firstname,filepath,OutputFolder,variable):file_list = os.listdir(filepath)  # 读取文件夹下所有的文件,我的文件路径之下只有NC文件length = len(file_list)for i in range(0, length):  # 建立循环file = filepath + '/' + file_list[i]print(file)filename = file_list[i]# inNetCDFFile = file#variable = "tmp"  # 变量类型,我这里为降水XDimension = "lon"  # 读取经纬度YDimension = "lat"startyear = int(filename[4:8])if len(filename) == len('pre_2020.nc'):yearnumber = 1else:yearnumber = 3for m in range(0, yearnumber):  # 三年m 0 1 2year = str(startyear + m)for n in range(1, 13):  # n是月份,1-12mouth = str(n)outtime = year + 'y' + mouth + 'm'  # 设置输出的文件名,以时间进行命名outRasterLayer = outtimeprint(outRasterLayer)band = str(m * 12 + n)bandDimension = ''dimensionValues = 'time' + " " + band  # 设置dimensionValue,格式为"time 1",,所以添加了空格print(dimensionValues)valueSelectionMethod = "BY_VALUE"  # 如果by index,索引是从0开始的# Execute MakeNetCDFRasterLayerarcpy.MakeNetCDFRasterLayer_md(file, variable, XDimension, YDimension, outRasterLayer, bandDimension,dimensionValues, valueSelectionMethod)# 导出为tifoutExtractByMask = ExtractByMask(outRasterLayer, r"D:\datasum\DEM\1984_DEM.tif")outtif = OutputFolder + '/' + firstname +outtime + ".tif"print(outtif)# outExtractByMask.save(outtif)#arcpy.CopyRaster_management(outExtractByMask, outtif, background_value=0, pixel_type="32_BIT_FLOAT")# arcpy.CopyRaster_management(outRasterLayer, outtif, background_value= 0, pixel_type="32_BIT_FLOAT")# 导出tif,设置背景值0为nodata;不同版本arcgis参数情况不同;转为float,没必要double类型,便于接下来转换单位并裁剪研究区arcpy.ProjectRaster_management(in_raster=outExtractByMask, out_raster=outtif, \out_coor_system=r"D:\datasum\DEM\1984_DEM.tif",resampling_type="BILINEAR",cell_size='0.00833333333332575')
variable = "preSum.tif"
NC_toTif('band',pre_filepath,pre_OutputFolder,variable)
variable = "tmp"
#NC_toTif('tmp',tmp_filepath,tmp_OutputFolder,variable)

.NC文件批量转换为tif相关推荐

  1. MATLAB读取nc文件并转换为.tif格式

    MATLAB读取nc文件并转换为.tif格式 1. 博文目的 (1)利用matlab读取nc文件,并将nc文件转换为.tif文件 2.时间 (1)开始时间:2017年04月08日 (2)结束时间:20 ...

  2. matlab实现nc文件批量转tif文件

    (1)成功运行例子:(PM1) MATLAB:读取nc文件并将nc文件转为tif文件输出_BetterQ.的博客-CSDN博客_nc文件转tif clc clear %% 批读取NC文件的准备工作 d ...

  3. arcpy将img栅格批量转换为tif格式:

    arcpy将img栅格批量转换为tif格式: img栅格批量转换为tif:完整实例下载 import os #加载os库 import arcpy #加载arcpy库file_dir=r"C ...

  4. labeme批量转换json文件_Python实现markdown文件批量转换为word

    Python实现markdown文件批量转换为word 正所谓,不会markdown的技术员不是老司机,自从用上markdown之后,人生又到了一波小高峰.有好东西怎么能不共享之,因此随之我不断的普( ...

  5. 使用matlab将nc文件转成tif文件

    使用matlab将nc文件转换成tif文件 文章目录 使用matlab将nc文件转换成tif文件 一.nc文件是什么? 二.tif文件是什么? 2.直接上代码 一.nc文件是什么? NetCDF全称为 ...

  6. 【ASE+python】实现将poscar格式文件批量转换为xsd格式文件

    将poscar格式文件批量转换为xsd格式文件 ASE介绍 ASE安装 ASE的ase.io.read()与ase.io.write() ase.io.read() ase.io.write() 单份 ...

  7. ANSI编码文件批量转换为UTF-8编码小tips

    ANSI编码文件批量转换为UTF-8编码小tips import chardet import os path = "C:\\Users\杜漪漪\Desktop\yunnan" # ...

  8. 将DWG文件批量转换为JPG文件

    我们在工作上需要将DWG文件转换为JPG文件,在公司里有很多的DWG文件图纸转换JPG文件,我们不可能一个一个的转换,这时候我们为了提高工作效率需要将DWG文件批量转换为JPG文件,DWG文件批量转换 ...

  9. Bilibili手机端下载的Download文件批量转换为MP4软件【Bilibili_DownVideoToMp4】原创发布

    Bilibili手机端下载的Download文件批量转换为MP4软件[Bilibili_DownVideoToMp4]原创发布 起因 Bilibili手机端的视频下载下来只能在手机上看,手机屏幕太小看 ...

最新文章

  1. 第二章、IP协议详解
  2. DOM_05之DOM、BOM常用对象
  3. 理解严格模式下JavaScript的this指向的变化
  4. 八中计算机是学啥的,北京八中:居然有这么好玩的课
  5. 计算机等级考试二级Python讲座(二)
  6. 设计模式(一)单例模式:5-单元素枚举类模式
  7. pip intsall 遇到的各种问题
  8. linux中eclipse不运行,linux下启动不了eclipse
  9. 第八届蓝桥杯JavaB---承压计算
  10. 如何使用组策略提升Windows系统性能
  11. 用R语言绘制动态地图,代码奉上!(REmap包详解)
  12. VS2010中如果忘记函数所在的头文件或者忘记函数的输入输出参数类型怎么办?...
  13. 20190814 On Java8 第四章 运算符
  14. 理解Spring MVC Model Attribute 和 Session Attribute
  15. flashfxp v3.3.4(build1109)的密钥
  16. 门限回归模型的思想_门限回归汇总与空间门槛回归模型简介
  17. 第5章 ◄数组与字符串►
  18. 一、Netflix Eureka
  19. 什么是“个人商业模式”?就是一个人出售自己时间的方式
  20. u盘文件看得见却打不开_u盘文件夹打不开怎么办【图解】

热门文章

  1. 害死人的自动递增,不偿命的自动递减
  2. LTH7五脚芯片的完整方案图
  3. 青藤正式加入微软MAPP计划
  4. 图解 偏向锁,轻量锁,重量锁
  5. 也谈山东聊城18岁少年编写9000多款软件--要蛋定啊
  6. Jmeter(1)----下载jmeter并运行一个简单用例
  7. 不较真的生活跟咸鱼有什么区别
  8. ural 1009. K-based Numbers - dp
  9. Linux基础(X)—— 修改键盘和鼠标灵敏度
  10. 运营人的下一个10年,如何对抗周期,现实持续增长