遥感数据处理系列

一些项目及科研中遇到的小需求,一方面记录自己的学习历程,另一方面帮助大家学习。本系列文章的开发环境为:ArcGIS 10.2.2 + Python 2.7、ENVI 5.3 + IDL 8.5

ArcPy批量计算栅格数据平均值
GLDAS数据下载及处理(NC转TIF)
ArcGIS批量裁剪栅格数据
ArcPy批量栅格重采样
ArcPy批量裁剪栅格数据

IDL多进程批处理遥感数据
ArcPy批量拼接栅格数据


文章目录

  • 遥感数据处理系列
  • 前言
  • 一、HDF文件整理
    • 1. 原理简介
    • 2. 代码
  • 二、HDF文件拼接
    • 1. 原理简介
    • 2. 代码
  • 总结
    • 后记

前言

大佬们搞出了各种数据集,并且开放下载、全球共享、打破科研壁垒,促进研究进程。不过,真要用他们的数据集却遇到各种问题。在此记录下~

GLASS数据集的FVC数据在下载后如何批量处理呢?参考MODIS数据的处理流程进行数据处理,基于MRT工具 + IDL语言。


一、HDF文件整理

1. 原理简介

大概思路为:研究区域覆盖多个轨道,也就包含多个HDF文件,需要进行按天的文件分类,然后进行每天的多个HDF文件的拼接、裁剪、重投影。

文件路径:

F:\GLASS\GLASS10E01.V40.A2008001.h27v06.2019363.hdf
F:\GLASS\GLASS10E01.V40.A2008001.h27v07.2019363.hdf
F:\GLASS\GLASS10E01.V40.A2008001.h28v07.2019363.hdf
F:\GLASS\GLASS10E01.V40.A2008001.h28v08.2019363.hdf

参数简介:

 GLASS:HDF文件的上一级文件夹A2008001: 目标文件日期h27v06:目标区域轨道号

合并以上四个轨道的HDF文件即可实现HDF文件的按天整理。

2. 代码

pro modfiles;MRT Tools第一步;输入文件夹下,所有“.hdf”文件路径;输出的.hdf文件路径存放在.txt文件中,;.txt文件名为天数;.txt文件内容为该天的所有.hdf文件路径path='F:\GLASS\'  ;output pathfiles=file_search(path,'*.hdf')  ;the files needed to be processedv06h27files=file_search(path,'GLASS10E01.V*h27v06*.hdf')v07h27files=file_search(path,'GLASS10E01.V*h27v07*.hdf')v07h28files=file_search(path,'GLASS10E01.V*h28v07*.hdf')v08h28files=file_search(path,'GLASS10E01.V*h28v08*.hdf')nf=n_elements(v06h27files)for i= 0 ,nf-1 do beginbasename=file_basename(v06h27files[i])Text0='F:\GLASS\1\'+strmid(basename,16,7)+'.txt'   ;creat a *.txt file of every (h27+h28)openW,lun,Text0,/Get_lunt4=v06h27files[i]t5=v07h27files[i]t8=v07h28files[i]t9=v08h28files[i]printf,lun,t4printf,lun,t5printf,lun,t8printf,lun,t9free_lun,lunendforprint,'endi'end

在 “ F:\GLASS\1 ” 文件夹下生成所有天数的txt文件,每个txt文件包含多个轨道的HDF文件。

二、HDF文件拼接

1. 原理简介

大概思路为:按天分类后的多个HDF文件保存在同一个txt文件中,获取每天的txt文件路径,结合MRT tools的mrtmosaic工具,构造出使用MRT进行MOSAIC的批处理命令。

批处理命令:

E:\Software\MRT\bin\mrtmosaic -i F:\GLASS\1\2008001.txt -o F:\GLASS\1\2008001_do_GLASS.hdf -s " 1 "

参数简介:

 E:\Software\MRT\bin\mrtmosaic:mrtmosaic工具安装路径-i: 文件读取选项F:\GLASS\1\2008001.txt:待处理HDF文件的集合-o: 文件输出选项-s " 1 ":标签选项。如果要提取的数据为分层存储,则按需更改标签数量

2. 代码

pro buildmosaic;MRT Tools第二步;调用MRT的mrtmosaic工具,生成批处理文件“mdo.bat”;双击批处理命令后,仍然生成的是hdf文件;Input file pathinf_path='F:\GLASS\1\';Out flie pathout_path='F:\GLASS\1\'files=file_search(inf_path,'*.txt')Text0=out_path+'mdo.bat'openW,lun,Text0,/Get_lunfor i= 0 , n_elements(files)-1 do beginbasename=file_basename(files[i])txt=strmid(basename,0,7)+'_do'Outfile = out_path + txt + '_GLASS.hdf'  ;GLASS FVCText="E:\Software\MRT\bin\mrtmosaic -i " + files[i] + " -o " + Outfile + " -s " +'" 1 "' ;change the 'bin' path and '1 1 0 0 0'print,textprintf,lun,Textendforfree_lun,lunprint,'endi'end

在 “ F:\GLASS\1 ” 文件夹下生成mdo.bat文件,双击该批处理文件即可完成HDF文件拼接。

总结

MRT批处理文件的自动化实现。体会行政审批流程,抉择不同生活方式,面对不同人生挑战。

后记

写博客的初衷是分享我的一些经验,同时也方便自己在其他电脑上进行数据处理。帮了很多人,但评论区小伙伴也有遇到问题的,那么:知识付费,我的时间和经验正好可以解决你的问题。

GLASS数据批量处理相关推荐

  1. GLASS数据预处理/MRT工具批量处理MODIS数据

    GLASS数据预处理/MRT工具批量处理MODIS数据 准备工作 处理步骤 准备工作 1.数据准备:进行网站批量下载MRT数据,存储方式为数据–年份–天(例如GLASSFVC数据为8天分辨率,001. ...

  2. 将表里的数据批量生成INSERT语句的存储过程 增强版

    原文:将表里的数据批量生成INSERT语句的存储过程 增强版 将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的 ...

  3. word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...

    用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...

  4. 将表里的数据批量生成INSERT语句的存储过程 继续增强版

    文章继续 桦仔兄的文章 将表里的数据批量生成INSERT语句的存储过程 增强版 继续增强... 本来打算将该内容回复于桦仔兄的文章的下面的,但是不知为何博客园就是不让提交!.... 所以在这里贴出来吧 ...

  5. 【RecyclerView】 十二、RecyclerView 数据更新 ( 修改单条数据 | 批量修改数据 )

    文章目录 一.修改单条数据 二.批量修改数据 三.完整代码示例 四.RecyclerView 相关资料 一.修改单条数据 修改单条数据 : 调用 RecyclerView.Adapter 的 void ...

  6. 【RecyclerView】 十一、RecyclerView 数据更新 ( 删除单条数据 | 批量删除数据 )

    文章目录 一.删除单条数据 二.批量删除数据 三.完整代码示例 四.RecyclerView 相关资料 一.删除单条数据 删除单条数据 : 调用 RecyclerView.Adapter 的 void ...

  7. 《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL

    <!-- more --> 前言 之前其实在 <从0到1学习Flink>-- 如何自定义 Data Sink ? 文章中其实已经写了点将数据写入到 MySQL,但是一些配置化的 ...

  8. excel实现套用模板批量打印_#数据清洗#Excel数据批量填入Word模板

    问题描述:把Excel中数据批量填入Word模板中的特定位置 今天小伙伴,遇到一个问题,他有一份一千多个不同城市的客户资料,同时,有一份word文档,他需要把Excel中的数据一条条填写到word中对 ...

  9. mysql插入数据返回主键值_Mysql千万级别数据批量插入只需简单三步!

    第一步:配置my.ini文件 文件中配置 bulk_insert_buffer_size=120M 或者更大 将insert语句的长度设为最大. Max_allowed_packet=1M Net_b ...

最新文章

  1. NLP顶级专家Dan Roth :自然语言处理领域近期的任务和主要应用
  2. 关于linux内核的wait等待事件和wakeup的核心原理
  3. 报告解读丨细数万亿企服市场发展史,行业发展新趋势
  4. NYOJ 36 最长公共子序列 dp
  5. 编译错误syntax error : missing ';' before 'type'原因探寻
  6. WebApi_基于token的多平台身份认证架构设计(Z)
  7. Linux下Nginx安装
  8. 解决 Xshell6|Xftp6 强制升级
  9. python语言实现医院管理系统
  10. 计算机中丨kb表示的字节数是,5mb是多少kb?计算机中5mb是多少字节?2MB表示多少字节?4mb是多少字节...
  11. go module使用教程:使用go mod的方法.报错go: cannot determine module path for source directory E:\tttttt (outside
  12. 什么是群发单显和分别发送,有什么区别,发客户邮件忘记群发单显
  13. 修改mdf ldf文件权限修改方法
  14. SQL SERVER(32)Transact-SQL概述
  15. 6、Hello World官网教程(TX2)第一部分
  16. Linux/UNIX命令dd简介
  17. Java8之写一个装逼的函数式代码
  18. 负重阳光城之悬崖边的股价|一点财经
  19. fastjson 使用方法
  20. [STM32F10x] 利用定时器测量脉冲宽度

热门文章

  1. JNI 数据类型介绍以及JNI_OnLoad方法介绍
  2. 在低头赶路的同时, 也要常常抬头看看方向
  3. java code combat_CodeCombat编程游戏
  4. 【Xlinx】【ZynqMP】使用xsdb工具,通过仿真器启动uboot教程
  5. abb机器人半圆编程_机器人示教编程1——教你快速示教ABB机器人
  6. 微商系统php,Thinkphp内核微商新零售平台源码
  7. 如何挑选一款适合你的输入法
  8. 实体链接维基百科调研
  9. huoshan xl,xa,xg,xk签名参数
  10. php多进程更新微信用户信息,php之swoole多进程发送微信模板消息