modis数据处理的坑(MOD02,mod03,mod04,MCD19A2)
一直以来处理modis产品都是用的 modis conversion toolkit(MCTK),用 IDL 来跑感觉好像也没什么问题,好像并没有去验证结果到底对不对,因为用的气溶胶数据 MOD04_L2,没法验证到底对不对,不像反射率数据可以对照地图影像。
流程也都是重投影--重采样--拼接--裁剪,其实应该也没有问题,因为最主要的步骤重投影是通过 MCTK 做的,错不了。
那么问题来了,为什么重投影是最重要的呢?
MODIS产品都是正弦投影 sinusoidal 投影坐标系,而我们一般要用的都是 WGS84 地理坐标系,不转换根本没法用,中国地区形变巨大,而且别的数据一般都不会有这种投影的。


MOD04处理完,要处理MOD02和03了,还是用 MCTK,就有坑出现了。
坑1:拼接结果偏离行政边界
因为官方说数据都是1km的,所以为了图省事就把重采样这一步给去掉了,步骤是重投影--波段合成(02+03)--拼接。拼完的结果和行政边界一对比,咋偏了这么多。后来发现重投影到 WGS84 每景影像是不同分辨率的(度为单位都在0.01左右)。
解决方法:
重投影后把每个影像重采样到0.01度,再拼接就不会偏离了。不过现在感觉这个解决方法也有点问题,可能是拼接的时候参数没设置好导致的。(看了一遍 ENVI_DOIT, 'MOSAIC_DOIT',好像没有参数控制这个,应该还是重采样的问题 )
OK,上面都弄完现在要搞 MCD19A2 的 MAIAC 数据了,我的天,MCTK 不支持这玩意,那这重投影可咋做(MCTK就是用来转投影的)。行吧,硬撸 IDL 代码,不就是搞个重投影。
坑2:自定义 geotiff 坐标信息
MODIS 产品自身不带投影信息,在每个 hdf 文件的全局属性里才有,光读数据导出 tif 是没有坐标系的。找不到好的智能解决方法,只能用蠢方法。导出一个 tif 无非就是数组加坐标信息,坐标信息 modis 的 ENVI 似乎没有(我没找到啊!),只能自己来定义。自己定义又不知道每个参数都是干啥的咋设置,没在官方帮助文档里找到,只看到列了一排看不懂的参数。
解决方法:
先根据这个 http://blog.sina.com.cn/s/blog_764b1e9d01010v69.html#cmt_5691CA7B-7F000001-13E754CBE-868-8A0 给一个hdf加上头文件,导出一个有坐标属性的tif,然后用 read_tiff 函数读取,得到 geotiff 属性,就可以复制过来自定义了。
坑3:自定义的 geotiff 起始坐标小数不见了
解决方法:
以为是哪个属性没设置对,找了好久终于找到了每个参数的含义,参考这个 http://blog.sina.com.cn/s/blog_764b1e9d01010v69.html#cmt_5691CA7B-7F000001-13E754CBE-868-8A0。发现都没问题,应该是处理过程 envi 精度丢失了。原来 envi 在处理的时候会先把小数转到 float 型,再处理,在数字后面加上D就保证用double了,成功保留了小数
到这里感觉取得了突破性的胜利,剩下只要转投影就OK了,这还不简单,有 ENVI_CONVERT_FILE_MAP_PROJECTION 工具。
坑4:转完投影又套不上行政边界了
解决方法:
原来是函数里的一个参数 warp_method (解决形变利用的方法)没设置好,默认是 0: Rotation, scaling, and translation (RST),改成 2: Triangulation 就没问题了。
坑5:每个转完的拼起来好像中间有缺失条带
解决方法:
先拼接后转投影,完美解决条带问题,不用再去插值了
modis数据处理的坑(MOD02,mod03,mod04,MCD19A2)的更多相关文章
- MODIS系列之NDVI(MOD13Q1)二:modis数据相关信息
1.MODIS数据的特点 (1)全球免费:NASA对MODIS数据实行全球免费接收的政策(TERRA卫星除MODIS外的其他传感器获取的数据均采取公开有偿接收和有偿使用的政策),这样的数据接收和使用政 ...
- MODIS系列之NDVI(MOD13Q1)一:数据下载(一)基于插件
引言: 写MODIS数据处理这个系列文章的初衷,主要是为了分享本人处理MODIS数据方面的一些经验.鉴于网上对这方面系统性的总结还比较少,我搜集资料时也是走了许多的弯路,因此希望通过此文让初学者能够更 ...
- MTCNN试用
检测工作想借用MTCNN里的48-net,源码来自CongWeilin Git 下下来就能跑,真是良心 进入pepare_data准备好数据以后进入48-net,目录下有一个pythonLayer.p ...
- MODIS产品分析和数据处理
ENVI+IDL 17种MODIS产品的功能解释 https://wenku.baidu.com/view/6fd329dcf524ccbff0218440.html ENVI读取MODIS数据大致步 ...
- python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
简介 有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理.现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是 j ...
- Spark踩坑记——数据库(Hbase+Mysql)
[TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...
- geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑
目录 前言 若干坑 总结 一.前言 近期干了一件事情,将geotrellis程序移植到CDH中(关于CDH,可以参考安装ClouderaManager以及使用ClouderaManage ...
- JavaScript 跳坑指南
JavaScript 跳坑指南 坑0-String replace string的replace方法我们经常用,替换string中的某些字符,语法像这样子 string.replace(subStr/ ...
- 翻译-In-Stream Big Data Processing 流式大数据处理
相当长一段时间以来,大数据社区已经普遍认识到了批量数据处理的不足.很多应用都对实时查询和流式处理产生了迫切需求.最近几年,在这个理念的推动下,催生出了一系列解决方案,Twitter Storm,Yah ...
随机推荐
- python 面向对象编程、获取对象信息
面向对象与面向过程 参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0 ...
- kaishi
https://zjc.wtc.edu.cn/zs/2019/0623/c2937a54869/page.htm https://zjc.wtc.edu.cn/zs/2019/0614/c593a54 ...
- Vue – 基础学习(3):$forceUpdate()和$nextTick()的区别
Vue – 基础学习(3):$forceUpdate()和$nextTick()的区别
- 英语SouthRedAgate南红玛瑙
南红玛瑙(SouthRedAgate)是玛瑙的一个种类,古称”赤玉”,质地细腻油润,是中国独有的品种.由于产量稀少,老南红玛瑙价格急剧上升.南红玛瑙曾被古人用之入药,养心养血. 现在的南红玛瑙已经和和 ...
- Cheat Engine 自动注入
打开游戏 引用自动注入 选择跳转地址 CEAA脚本自动生成 红色部分就是添加代码的地方 添加代码 让阳光每次减少0,并且分配到作弊表 进行激活测试 发现阳光果然只增不减了
- Cheat Engine 修改汇编指令
打开游戏 扫描阳光 扫描过程就不讲了 找到阳光的地址 显示反汇编 找到使阳光减少的反汇编代码 空指令替换 将阳光减少汇编指令,用空指令替换.这样阳光就不再减少了 指令替换 也可以将汇编指令修改,减少变 ...
- MYSQL入门这一篇就够了
安装概述 分为5.6与,5.7版本,5.7的安装与5.6略有不同,因为依赖BOOST库,下面给出2个版本的安装脚本,直接运行即可 Mysql 5.6 [root@Tuiliu ~]# cat mysq ...
- 【python】多任务(2. 进程)
进程间通信 Queue import multiprocessing def download_from_web(q): # 模拟从网上下载数据 data = [11, 22, 33, 44] for ...
- java String字符串编码类型转换
/** * 前后端数据乱码问题 * 解决办法1: * 乱码原因:一编一解码型不一致导致. * [main description] * @param {[type]} String[] args [d ...
- 安装VMware Tools的步骤
点击[虚拟机]选项中的[安装VMware Tools],此时在Ubuntu的桌面上就会出现一个光盘图标. 如果之前已经安装过了,[虚拟机]选项中应为[重新安装VMware Tools]. 如果[重新安 ...