MODIS数据预处理半批量实现

我发现之前难住自己的并不是一些理论上的知识,而是具体的实践。因此我决定再回顾一下自己之前进行预处理过程中遇到的难题。

一、ModisSwath工具进行镶嵌、校正

        ModisSwath工具安装的需要安装Java,大家可以参考其他教程。(在此之前我也尝试了各种MRT和HGE,但是都没有实现。)(也想过学习ENVI IDL,但又因为基础太差没学会。)

下面选择的是MOD03的地理坐标数据应该。

这个表示选择的是MODIS的第31波段。

这个处理之后可以选择输出为tif或者hdf。

此处我选择的是输出tif,因为tif可以利用arcpy直接进行批量的裁剪,对我来说更简单。下面是arcpy批量裁剪的一个简单的代码(参考大佬的代码简单整理后的)。

# -*- coding: UTF-8 -*-
import arcpy
import glob
import os

'''
批量裁剪(二级目录):
    对输入文件夹下的数据,根据shp文件,进行批量裁剪,结果存放于输出文件夹

    需要修改:
        inws:输入路径(必选)
        outws:输出路径(必选)
        mask:参考范围的shp文件(必选)
        nameT:建议进行规范化,文件名的易读性(可选)
'''

arcpy.CheckOutExtension('Spatial')

# 输入路径  应该注意,中文路径,会导致读不出文件
inws = r"H:\TIFFCLIP1"

# 输出路径
outws = r"H:\TIFFOK1"

# 指定shp范围边界文件,即目标区域的边界
mask = r"H:\DQ\DQ.shp"

# 以下逻辑为:
#   获得子目录全路径,并进入子目录
#   执行文件夹批量掩膜操作
path_list = os.listdir(inws)  # 如果是存了三年的数据,那里面有三个文件夹,每个文件夹直接放了每年的数据
target_path_list = os.listdir(outws)  # 输出路径,也是里面有三个年份的文件夹

for i in range(len(path_list)):
    path = inws + "\\" + path_list[i]  # 文件夹列表   # 那这里就得到了年份的路径
    target_path = outws + "\\" + target_path_list[i]  # 进入年份的路径,是处理后的数据存放的地方

    # 利用glob包,将inws下的所有tif文件读存放到rasters中
    rasters = glob.glob(os.path.join(path, "*.tif"))

    # 循环rasters中的所有影像,进行按掩模提取操作
    for ras in rasters:
        nameT = os.path.basename(ras)
        outname = os.path.join(target_path, nameT)  # 合并输出文件名+输出路径
        
        out_extract = arcpy.sa.ExtractByMask(ras, mask)  # 执行按掩模提取操作
        out_extract.save(outname)  # 保存数据
        
        print os.path.basename(ras) + " OK!"
    print path_list[i] + " --- OK!"

print("   ---   All project is OK!   ---   ")

(以上只是简单整理,具体过程中应该还是有困难的,小伙伴们加油)

(学习中的小菜鸟,感谢指出不足,但是请轻喷,谢谢♥)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值