处理MOD16A2 using python and arcgis:from hdf to tif----1

该博客主要介绍了如何利用Python的arcpy模块将MODIS的HDF文件转换为TIFF格式。博主详细阐述了处理过程,包括检查文件是否存在以避免重复转换,以及使用try-except来处理可能出现的问题,确保脚本运行的稳定性。此外,还提供了错误日志记录功能,便于后期排查问题。
摘要由CSDN通过智能技术生成

最近想用个Modis ET数据,哈哈,大工程呀,思路很简单,处理真麻烦,而且耗时。这里虽然网上方法很多,但总体来说还是有点乱,这里自己总结一下,以后方便看。
讲的是第一步,hdf转tif
下载到的文件是hdf文件,需要先转成tif文件,这个地方用arcpy还是比较方便的,不过比较耗时。让它跑着呗,我这台老古董电脑能站30年😂!!下面贴出代码,参考了一些别人的代码(https://blog.csdn.net/sinat_35763722/article/details/90679743)。改动了几句,原因是(1)arcpy有的时候会中断,这样的话文件就要重跑了,这里加了个判断文件是否存在的语句。如果已经生成tif了,则不再重复执行;(2)有的hdf文件可能有问题,加了个try语句,防止因为一个文件的问题卡壳,影响文件处理;并且把这个文件写在了log里以便后续调整。代码在arcgis arccatalog里面会更好。

import os
import traceback
import arcpy
import logging
arcpy.env.overwriteOutput = 1
arcpy.CheckOutExtension("Spatial")
inPath=r'G:\\modis_et_20220810'
outPath=r'G:\\modis_et_tif_20221019\\'
arcpy.env.workspace = inPath
arcpy.env.scratchWorkspace = inPath
hdfList = arcpy.ListRasters('*','HDF')
for hdf in hdfList:
    number=0
    eviName="ET_band" + str(number) + "_" + hdf[0:23] + ".tif"
    save_path=os.path.join(outPath , eviName)
    if os.path.exists(save_path):
        continue
    try:
    	data1=arcpy.ExtractSubDataset_management(hdf,save_path, number)	
    except:
    	logging.debug(traceback.format_exc())
    	errorFile = open(r'G:\log.txt', 'a')
 		errorFile.write(traceback.format_exc())
 		errorFile.close()
    	continue
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值