GLASS数据批量处理
遥感数据处理系列
一些项目及科研中遇到的小需求,一方面记录自己的学习历程,另一方面帮助大家学习。本系列文章的开发环境为: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数据批量处理相关推荐
- GLASS数据预处理/MRT工具批量处理MODIS数据
GLASS数据预处理/MRT工具批量处理MODIS数据 准备工作 处理步骤 准备工作 1.数据准备:进行网站批量下载MRT数据,存储方式为数据–年份–天(例如GLASSFVC数据为8天分辨率,001. ...
- 将表里的数据批量生成INSERT语句的存储过程 增强版
原文:将表里的数据批量生成INSERT语句的存储过程 增强版 将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的 ...
- word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...
用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...
- 将表里的数据批量生成INSERT语句的存储过程 继续增强版
文章继续 桦仔兄的文章 将表里的数据批量生成INSERT语句的存储过程 增强版 继续增强... 本来打算将该内容回复于桦仔兄的文章的下面的,但是不知为何博客园就是不让提交!.... 所以在这里贴出来吧 ...
- 【RecyclerView】 十二、RecyclerView 数据更新 ( 修改单条数据 | 批量修改数据 )
文章目录 一.修改单条数据 二.批量修改数据 三.完整代码示例 四.RecyclerView 相关资料 一.修改单条数据 修改单条数据 : 调用 RecyclerView.Adapter 的 void ...
- 【RecyclerView】 十一、RecyclerView 数据更新 ( 删除单条数据 | 批量删除数据 )
文章目录 一.删除单条数据 二.批量删除数据 三.完整代码示例 四.RecyclerView 相关资料 一.删除单条数据 删除单条数据 : 调用 RecyclerView.Adapter 的 void ...
- 《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL
<!-- more --> 前言 之前其实在 <从0到1学习Flink>-- 如何自定义 Data Sink ? 文章中其实已经写了点将数据写入到 MySQL,但是一些配置化的 ...
- excel实现套用模板批量打印_#数据清洗#Excel数据批量填入Word模板
问题描述:把Excel中数据批量填入Word模板中的特定位置 今天小伙伴,遇到一个问题,他有一份一千多个不同城市的客户资料,同时,有一份word文档,他需要把Excel中的数据一条条填写到word中对 ...
- mysql插入数据返回主键值_Mysql千万级别数据批量插入只需简单三步!
第一步:配置my.ini文件 文件中配置 bulk_insert_buffer_size=120M 或者更大 将insert语句的长度设为最大. Max_allowed_packet=1M Net_b ...
最新文章
- NLP顶级专家Dan Roth :自然语言处理领域近期的任务和主要应用
- 关于linux内核的wait等待事件和wakeup的核心原理
- 报告解读丨细数万亿企服市场发展史,行业发展新趋势
- NYOJ 36 最长公共子序列 dp
- 编译错误syntax error : missing ';' before 'type'原因探寻
- WebApi_基于token的多平台身份认证架构设计(Z)
- Linux下Nginx安装
- 解决 Xshell6|Xftp6 强制升级
- python语言实现医院管理系统
- 计算机中丨kb表示的字节数是,5mb是多少kb?计算机中5mb是多少字节?2MB表示多少字节?4mb是多少字节...
- go module使用教程:使用go mod的方法.报错go: cannot determine module path for source directory E:\tttttt (outside
- 什么是群发单显和分别发送,有什么区别,发客户邮件忘记群发单显
- 修改mdf ldf文件权限修改方法
- SQL SERVER(32)Transact-SQL概述
- 6、Hello World官网教程(TX2)第一部分
- Linux/UNIX命令dd简介
- Java8之写一个装逼的函数式代码
- 负重阳光城之悬崖边的股价|一点财经
- fastjson 使用方法
- [STM32F10x] 利用定时器测量脉冲宽度
热门文章
- JNI 数据类型介绍以及JNI_OnLoad方法介绍
- 在低头赶路的同时, 也要常常抬头看看方向
- java code combat_CodeCombat编程游戏
- 【Xlinx】【ZynqMP】使用xsdb工具,通过仿真器启动uboot教程
- abb机器人半圆编程_机器人示教编程1——教你快速示教ABB机器人
- 微商系统php,Thinkphp内核微商新零售平台源码
- 如何挑选一款适合你的输入法
- 实体链接维基百科调研
- huoshan xl,xa,xg,xk签名参数
- php多进程更新微信用户信息,php之swoole多进程发送微信模板消息