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:每個轉完的拼起來好像中間有缺失條帶

解決方法:

  先拼接后轉投影,完美解決條帶問題,不用再去插值了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM