.NC文件批量转换为tif
在获取黄土高原的气象数据时遇到了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相关推荐
- MATLAB读取nc文件并转换为.tif格式
MATLAB读取nc文件并转换为.tif格式 1. 博文目的 (1)利用matlab读取nc文件,并将nc文件转换为.tif文件 2.时间 (1)开始时间:2017年04月08日 (2)结束时间:20 ...
- matlab实现nc文件批量转tif文件
(1)成功运行例子:(PM1) MATLAB:读取nc文件并将nc文件转为tif文件输出_BetterQ.的博客-CSDN博客_nc文件转tif clc clear %% 批读取NC文件的准备工作 d ...
- arcpy将img栅格批量转换为tif格式:
arcpy将img栅格批量转换为tif格式: img栅格批量转换为tif:完整实例下载 import os #加载os库 import arcpy #加载arcpy库file_dir=r"C ...
- labeme批量转换json文件_Python实现markdown文件批量转换为word
Python实现markdown文件批量转换为word 正所谓,不会markdown的技术员不是老司机,自从用上markdown之后,人生又到了一波小高峰.有好东西怎么能不共享之,因此随之我不断的普( ...
- 使用matlab将nc文件转成tif文件
使用matlab将nc文件转换成tif文件 文章目录 使用matlab将nc文件转换成tif文件 一.nc文件是什么? 二.tif文件是什么? 2.直接上代码 一.nc文件是什么? NetCDF全称为 ...
- 【ASE+python】实现将poscar格式文件批量转换为xsd格式文件
将poscar格式文件批量转换为xsd格式文件 ASE介绍 ASE安装 ASE的ase.io.read()与ase.io.write() ase.io.read() ase.io.write() 单份 ...
- ANSI编码文件批量转换为UTF-8编码小tips
ANSI编码文件批量转换为UTF-8编码小tips import chardet import os path = "C:\\Users\杜漪漪\Desktop\yunnan" # ...
- 将DWG文件批量转换为JPG文件
我们在工作上需要将DWG文件转换为JPG文件,在公司里有很多的DWG文件图纸转换JPG文件,我们不可能一个一个的转换,这时候我们为了提高工作效率需要将DWG文件批量转换为JPG文件,DWG文件批量转换 ...
- Bilibili手机端下载的Download文件批量转换为MP4软件【Bilibili_DownVideoToMp4】原创发布
Bilibili手机端下载的Download文件批量转换为MP4软件[Bilibili_DownVideoToMp4]原创发布 起因 Bilibili手机端的视频下载下来只能在手机上看,手机屏幕太小看 ...
最新文章
- Java 9:Process API的增强
- 去掉数组左右两边的引号
- 同一页面实现多个Tab选项卡功能
- Linux下的网络协议分析工具-tcpdump快速入门手册
- sql2005安装过程,(不装C盘)
- python中itertools groupby函数是干嘛的_python 分组函数 itertools groupby
- 如何挑选PMP培训机构
- 基于Springboot的高校二手交易网站平台设计与实现
- 太实用了!Schedule模块, Python 周期任务神器!
- Mathematica 矩阵的LU分解
- 项目经理应对需求变更的策略
- Stanford机器人D-H坐标系
- UKEY通信CCID
- 办公室装修的五要四不要
- MVP框架——Android
- linux镜像烧录工具,树莓派操作系统镜像烧录方法指南
- excel省市区提取
- 深入分析:Onliner SpamBot7.11亿电邮账号泄露事件
- android http收取文件夹,安卓Android手机系统内文件夹目录解释
- 手机摄像头驱动_摄像头马达厂持续扩产背后大揭秘
热门文章
- 2018第九届蓝桥杯省赛c/c++ A 组题解(填空部分)
- 使用高德定位SDK实时定位
- 用jQuery写简单的计时器
- 百度统计接口 java_百度统计API的使用
- 华为云——代码托管的使用
- 计算机科学技术学院迎新晚会主题,我院举办“魅力计科人 追梦新IT”2019级迎新晚会...
- 【报告分享】2021年Q2数字经济回顾-易观智库(附下载)
- android平台与ios下载地址,Android与iOS用户下载时间分布
- natch os调试环境搭建
- [看看世界]书签备份