天下無雲第一步,無雲圖像獲得

今天講一下從網上下載到的sentinel-2衛星圖像處理去除含有云區域的方法。
關於圖像下載網上方法很多,這裏不贅述,然後記得下載配套軟件snap。

file-open-MTD文件
接下來,使用Raster-subset選項,然後進行裁剪,當然這主要是用來分離一些無用的波段的,所以實際上可以整個圖像都剪下來,這裏爲例演示方便就裁剪一小塊。
剪裁圖像
然後在bandsubset裏面選擇前面一直到B12的波段,後面的都沒有意義。
在這裏插入圖片描述
剪裁完成之後你的工作區域多出來這麼一個文件,snap無法直接把他自己的文件格式導出爲envi格式,因爲是多波段的,所以把他重採樣存儲爲一個envi文件,然後,在右上角搜索resamp,就會有相應的結果彈出
在這裏插入圖片描述
耐心等待寫入,然後就有成功的提示,然後我們看看文件夾
在這裏插入圖片描述
這就是我們的envi格式的數據了。接下來用envi打開進行驗證
envi中打開了以後,爲了方便後續分類等出路,就使用envi自帶的layer stacking工具進行波段合成。
注意在合成的選項中,importfile要把所有波段選進去,然後合成邏輯按照exclusive,否則會把同一個波段存兩次。
下面是完成合成之後的結果
在這裏插入圖片描述
下面就來到圖像分類了,我們先不關注分類方法的理論本身,首先做出結果,先給腦中決定一下我們要分哪幾類,陸地,水,雲,雲影,這裏先用這種比較粗略的方法來實現分類。
首先就需要繪製我們的ROI區域作爲訓練樣本,自己給自己定義的類在整個圖像各個位置都畫上一些各個類別的數據。
下面是我自己實現的一個粗略分類,由於這幅圖水中的運營不多久沒有特別分一類
在這裏插入圖片描述
具體描述見左邊ROI。
下面使用右邊工具欄的classification,然後選擇監督分類的極大似然法,maximum likelihood
按照指示輸入我們的數據,然後選擇我們需要分成的類別,把ROI中的輸入進去,在這裏插入圖片描述
output result是存放結果的地方,自己定義,下面的是分類規則,可有可無畢竟我們只要結果,然後直接ok
在這裏插入圖片描述
這是剛剛進行分類後的結果,可以看到分類效果還是很好的,但是很多地方太過零碎,這樣在生成evf,shp時候是很不利的,所以我們需要進行聚類處理,點擊post classification,majority。
然後直接按照默認設置即可,卷即核越大,圖像越平滑,這裏我直接用默認值
在這裏插入圖片描述
在這裏插入圖片描述
可以看到圖像處理的剛剛好,既實現了輪廓的平滑又沒有損失太多細節。

接下來我們將把這些圖像輸出爲evf文件,爲接下來轉化爲shp文件做準備。
在這裏插入圖片描述
打開分類後處理post classification,然後按照圖中所示做出選擇,記住output記得是one layer per class 否則所有類別輪廓都放在一起你怎麼分。
在這裏插入圖片描述
這是輸出之後的結果,不會自動顯示可以自己打開自己放的位置驗證,可以看到和實際圖片吻合。
接下來首先關閉這幾個evf文件在工具欄搜索evf 有一個evf轉矢量文件的工具,點開,
在這裏插入圖片描述
注意這個界面對每一個evf都會輸出一個shp,所以命名最好對應。
接下來工具欄搜索roi,可以看見一個vector轉ROI,點愛,找到剛纔你存shp位置,把相應的shp文件放進去。
在這裏插入圖片描述
這裏面每一個shp文件轉換爲roi都需要用一次這個工具,所以每一個對應的是選中你要存爲shp的類別,然後下一步,直到讓你選擇base layer的時候,你選擇哪一個,哪一個底下就會多出來一個新的roi,那個ROI就是根據剛纔的矢量文件剪裁得到的
在這裏插入圖片描述
可以看到在左邊我這個stack的圖像底下多了四個新的roi,同時對應放在圖像中覆蓋了所有區域。
接下來最後一步,右邊搜索subset,使用subset data from roi,然後roi用你最新轉換出來的那四個,然後可以選陸地和水,這樣就得到了粗略的無雲圖像。
在這裏插入圖片描述
我們可以看到,圖中依然有以下薄薄的捲雲,但是已經基本不影響觀測,而且這些薄雲幾乎可以使用圖像處理而去除,今天的流程就先講到這裏。

一直拖來拖去,一開始想用gdal庫處理圖像,使用文檔不教藉口以及用戶太少讓我寸步難行,然後又想嘗試採用 第一步使用snap打開文件,這一步大概只能用他們自己的軟件,否則你有渠道當然用envi5.5也行,不過大家一般都是5.3所以這一步必不可少