一直以来处理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)的更多相关文章

  1. MODIS系列之NDVI(MOD13Q1)二:modis数据相关信息

    1.MODIS数据的特点 (1)全球免费:NASA对MODIS数据实行全球免费接收的政策(TERRA卫星除MODIS外的其他传感器获取的数据均采取公开有偿接收和有偿使用的政策),这样的数据接收和使用政 ...

  2. MODIS系列之NDVI(MOD13Q1)一:数据下载(一)基于插件

    引言: 写MODIS数据处理这个系列文章的初衷,主要是为了分享本人处理MODIS数据方面的一些经验.鉴于网上对这方面系统性的总结还比较少,我搜集资料时也是走了许多的弯路,因此希望通过此文让初学者能够更 ...

  3. MTCNN试用

    检测工作想借用MTCNN里的48-net,源码来自CongWeilin Git 下下来就能跑,真是良心 进入pepare_data准备好数据以后进入48-net,目录下有一个pythonLayer.p ...

  4. MODIS产品分析和数据处理

    ENVI+IDL 17种MODIS产品的功能解释 https://wenku.baidu.com/view/6fd329dcf524ccbff0218440.html ENVI读取MODIS数据大致步 ...

  5. python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)

    简介 有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理.现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是 j ...

  6. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  7. geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑

    目录 前言 若干坑 总结 一.前言        近期干了一件事情,将geotrellis程序移植到CDH中(关于CDH,可以参考安装ClouderaManager以及使用ClouderaManage ...

  8. JavaScript 跳坑指南

    JavaScript 跳坑指南 坑0-String replace string的replace方法我们经常用,替换string中的某些字符,语法像这样子 string.replace(subStr/ ...

  9. 翻译-In-Stream Big Data Processing 流式大数据处理

    相当长一段时间以来,大数据社区已经普遍认识到了批量数据处理的不足.很多应用都对实时查询和流式处理产生了迫切需求.最近几年,在这个理念的推动下,催生出了一系列解决方案,Twitter Storm,Yah ...

随机推荐

  1. 灰度共生矩阵(Gray-level Co-occurrence Matrix,GLCM),矩阵的特征量

    又叫做灰度共现矩阵 Prerequisites 概念 计算方式 对于精度要求高且纹理细密的纹理分布,我们取像素间距为d=1d=1,以下是方向的说明: 我们来看,matlab内置工具箱中的灰度共生矩阵的 ...

  2. 如何快速找到Chrome配置文件路径,MAC 与window 都适用

    Chrome 的配置文件主要用于存储浏览器的相关配置.书签.扩展插件和密码等,Chrome 配置文件会存储在用户计算机的一个单独文件夹当中,当你升级或重装浏览器时,这些已有配置将可以被完整保存下来. ...

  3. [转]C++类成员修饰const和mutable

    const:常量,不变的 mutable:易变的 从意思上理解,可见const和mutable是一对反义词,它们都是C++的关键字. const成员函数不能修改调用它的对象.类的成员函数可以被声明为c ...

  4. Es查询工具使用

    Kibana按照索引过滤数据 1.创建索引模式 2.查询索引中的数据 Es查询不返回数据 创建索引的时候指定mapping mappings={ "mappings": { &qu ...

  5. 无法读取例程 &ROUTINE 中配置文件选项 FND_DEVELOPER_MODE

    问题描述:OM>发运>事务处理,进入此界面,FORM出现报错信息:无法读取例程 &ROUTINE 中配置文件选项 FND_DEVELOPER_MODE 解决办法:在系统管理员下,设 ...

  6. .Net core3.0 集成swagger5.0上传文件

    .Net core 3.0已经更新了,相信有挺多博主大佬们都更新了如何在.Net core3.0使用swagger,这里就不详细说了. 我们知道,如果.net core 2.x使用swagger上传文 ...

  7. FreeBSD安装过程

    对于现在版本,安装过程中该使用哪些键,现简单总结: Space:选中/取消选中: Tab:切换,主要是分区界面时用它选择输入行: Enter:确定(并进入下一页): 方向键:在一些子组里更换输入项得用 ...

  8. 无法打开jetbrains官网

    找到下面hosts文件,用记事本打开,删除关于jetbrain的文字 需要管理员权限才能操作这个文档: 先后输入cmd和 notepad hosts 删除掉关于jetbrains的模块,再次访问htt ...

  9. Cookie 跨域 和 SSO

    cookie是不能跨域访问的,但是在二级域名是可以共享cookie cookie的四个可选属性: 1. cookie的生存期属性:expires; 默认情况下,cookie只在浏览器会话期存在.退出浏 ...

  10. 项目Beta冲刺--4/7

    项目Beta冲刺--4/7 作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Beta冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合评估及 ...