使用ArcPy将nc格式数据转换为tif格式数据
文章目录
- 使用场景介绍
- 1. 创建netcdf图层
- 2. 创建模型
- 3. 导出模型
- 4. 修改代码
- 5. 运行
- 6. 思考`
- 7. 参考文献
使用场景介绍
最近在做蒸散发,下载了REA的蒸散发日尺度数据,之前做月尺度的时候,按照教程手动操作,但是日尺度的数据一年就有365天,手动操作了一天觉得太累了,开始寻找解放双手的批量处理方法。本来是打算用anaconda做,但我太菜了,于是转去尝试ArcPy。
数据源:链接https://pan.baidu.com/s/1P68qdS9Z_whrw1GKL_Mrng?pwd=1111
提取码:1111
–来自百度网盘超级会员V1的分享
软件:ArcGIS10.6(ArcGIS版本不影响的)
1. 创建netcdf图层
(1)【工具箱】-【多维工具】-【创建NetCDF栅格图层】
(2)输入要转换的nc文件,并选择波段
(3)点击【OK】等待运行,出来就是这样的
2. 创建模型
我们的主要是在模型构建器的基础上去进行修改实现批量操作,因此模型要先构建好,思路是先创建栅格图层,再复制栅格。
(1)点击【模型】,再在工具箱中找到【数据管理工具】-【图层和表视图】-【创建栅格图层】,和【数据管理工具】-【栅格】-【栅格数据集】-【复制栅格】,将它们拖到模型构建器里面
最后,模型构建器就是这样子的
3. 导出模型
点击【模型】-【导出】-【导出至python】
这样咱们就有了一个python代码
在这里插入代码片
# -*- coding: utf-8 -*-
# ---------------------------------------------------------------------------
# sinple.py
# Created on: 2022-08-10 15:33:10.00000
# (generated by ArcGIS/ModelBuilder)
# Description:
# ---------------------------------------------------------------------------# Import arcpy module
import arcpy# Local variables:
E_Layer = "E_Layer"
E_Layer2005 = "E_Layer2005"
v2005_10_tif = "D:\\DATA\\nc\\REA\\2005\\2005-10.tif"# Process: Make Raster Layer
arcpy.MakeRasterLayer_management(E_Layer, E_Layer2005, "", "-180 -60 180 90", "1")# Process: Copy Raster
arcpy.CopyRaster_management(E_Layer2005, v2005_10_tif, "", "", "-nan(ind)", "NONE", "NONE", "", "NONE", "NONE", "TIFF", "NONE")
4. 修改代码
批处理的核心是循环,日尺度的nc文件有365个波段,咱们的目的是提取单波段,所以可以用到for循环。
import arcpy
for i in range(1,366): #取前不取后E_Layer = "E_Layer" #保持原状E_Layer2005 = "E_Layer2005"+str(i) #修改名称,方便记录波段v2005_10_tif = "D:\\DATA\\nc\\REA\\2005\\2005-"+str(i)+".tif" #依然是修改名称arcpy.MakeRasterLayer_management(E_Layer, E_Layer2005, "", "-180 -60 180 90", "1") #创建栅格图层操作arcpy.CopyRaster_management(E_Layer2005, v2005_10_tif, "", "", "-nan(ind)", "NONE", "NONE", "", "NONE", "NONE", "TIFF", "NONE") #复制栅格操作
注意,在创建栅格图层和复制栅格这两个操作的参数意义可以在帮助中找到
下面还有代码示例
5. 运行
修改完成之后就可以运行啦
回到ArcGIS,点击arcpy
点击右键,找到【加载(load)】,把我们的代码加载进去
按下回车,就可以开始运行啦
但是365个波段可能太多了,我每次是拿出30个波段来分,速度的话大概是1分钟3个波段
6. 思考`
划重点:批处理的核心是循环,重复一样的操作,只是参数会有所变化
缺点:只能先打开ArcGIS创建完netcdf图层后才能进行arcpy的操作,会有一点小麻烦,处理时间上也不如纯代码快,但是本菜鸟只能先做到这样
展望:还是要继续学习纯代码鸭
7. 参考文献
[1] nc格式处理:https://www.bilibili.com/video/BV1cS4y1376X?spm_id_from=333.337.search-card.all.click&vd_source=72adb3930d697c546ff4072986680016
[2] 循环操作:https://www.runoob.com/python3/python3-loop.html
[3] 其他类似处理操作文章:https://blog.csdn.net/weixin_43416590/article/details/124770536
https://blog.csdn.net/xiaoxie_qingfa/article/details/114099471?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-114099471-blog-124770536.pc_relevant_multi_platform_featuressortv2dupreplace&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-4-114099471-blog-124770536.pc_relevant_multi_platform_featuressortv2dupreplace&utm_relevant_index=6
使用ArcPy将nc格式数据转换为tif格式数据相关推荐
- MATLAB读取nc文件并转换为.tif格式
MATLAB读取nc文件并转换为.tif格式 1. 博文目的 (1)利用matlab读取nc文件,并将nc文件转换为.tif文件 2.时间 (1)开始时间:2017年04月08日 (2)结束时间:20 ...
- arcpy将img栅格批量转换为tif格式:
arcpy将img栅格批量转换为tif格式: img栅格批量转换为tif:完整实例下载 import os #加载os库 import arcpy #加载arcpy库file_dir=r"C ...
- 如何用python将nc格式文件转换为tif格式
可以使用gdal库来将nc格式文件转换为tif格式,具体步骤如下: 安装gdal库:pip install gdal 使用gdal库中的gdal_translate函数:gdal_translate ...
- python处理nc数据转换为tif格式
应用背景 最近在做蒸散发的相关数据处理,上一篇用ArcPy进行处理,发现太慢了,于是继续寻找简便方法.此篇文章为可运行代码. 参考文献:<使用Python语言将.nc格式影像转换成TIF格式,. ...
- ENVI标准格式文件转换为.tif文件——基于ENVI库函数
ENVI标准格式文件转换为.tif文件--基于ENVI库函数 1.目的 (1)了解ENVI标准格式文件 (2)学习利用ENVI库函数将ENVI标准格式文件转换为.tif文件的方法 2.开始时间:201 ...
- Python中ArcPy实现栅格图像文件由HDF格式批量转换为TIFF格式
本文介绍基于Python中Arcpy模块,实现大量HDF格式的栅格图像文件批量转换为TIFF格式的方法. 首先,来看看我们想要实现的需求. 在一个名为HDF的文件夹下,有五个子文件夹:每一 ...
- [工具库]JOJSONBuilder工具类——一键把多个bean对象数据转换为JSON格式数据
本人大四即将毕业的准程序员(JavaSE.JavaEE.android等)一枚,小项目也做过一点,于是乎一时兴起就写了一些工具. 我会在本博客中陆续发布一些平时可能会用到的工具. 代码质量可能不是很好 ...
- [工具库]JOXMLBuilder工具类——一键把多个bean对象数据转换为XML格式数据
本人大四即将毕业的准程序员(JavaSE.JavaEE.android等)一枚,小项目也做过一点,于是乎一时兴起就写了一些工具. 我会在本博客中陆续发布一些平时可能会用到的工具. 代码质量可能不是很好 ...
- 通达信日线数据转换为feather格式,提高后续数据处理速度
沪深两市股票数量目前为6798只,选股所需要的数据处理时间较长.通过对比,发现使用feather格式可以明显减少数据读写时间,因此,通过修改前面的程序,将数据保存为feather格式. 需要安装fea ...
- matlab数据转换为tecplot格式[ASCII码格式下的plt文件]
matlab数据转换为tecplot格式[ASCII码格式下的plt文件] 1 tecplot能读取的的常见ASCII格式 1.1 文件格式与文件头 1.2 zone相关的格式 2 一维数据 3 二维 ...
最新文章
- 用top方法查看内存消耗的方法
- 单核工作法16:循序渐进(下)
- linux postgresql默认安装目录,PostgreSQL for Linux 安装方式
- 基于Asterisk的VoIP开发指南(2)——Asterisk AGI程序编写指南
- eclipse中查看mysql_eclipse中怎样查看sqlite数据库的表
- 使用keras理解LSTM
- IBM Machine Learning学习笔记(一)——Exploratory Data Analysis for Machine Learning
- BZOJ - 2819 Nim
- 夏普电视账号服务器异常,夏普电视故障通病维修案例,你中了几个?
- windows7 下安装 kali Linux 双系统
- 老程序员教你如何提高开发效率、成为大神1——人文思维进化与信众
- JRRTokenGazer分享会:去中心化提高经济效率,产业区块链前景广阔
- 【游戏面包屑】时间回溯·逆流吧
- 好设计如何诞生:关于好设计的100件事
- 关于拯救者笔记本亮度调节按钮失灵修复方法
- 白痴学日语系列之初识日语(七)附语法二
- 【ElementUI】el-upload 到底该怎么使用?记录有时上传图片会失败,有时上传成功又出现图片闪动的问题
- Git本地仓库与GitHub远程仓库的同步方法
- 如何搭建出类似央视C-Box的电视直播应用的后台管理支撑系统
- 图说微积分(四)三角函数