1. 程式人生 > >【ArcGIS|空間分析】求年度NDVI最大值影象和NDVI最大值出現日期影象

【ArcGIS|空間分析】求年度NDVI最大值影象和NDVI最大值出現日期影象

1.利用像元統計工具統計多個柵格影象的最大值或總和。
2.模型中的柵格迭代器可以將柵格資料輸出為資料檔案和檔名稱。
3.在模型中使用解析路徑工具將迭代器輸出的檔名稱去掉字尾。
4.使用柵格計算器時若需要輸出多個檔案,可以將名稱命名為“%name%.img”(新增檔案字尾名),並且存放在檔案中而不能存放在有獨特命名規則的資料庫中的。

文章目錄

1. 求年度NDVI最大值影象

1.1 資料

1999年黃河流域SPOT-VEG 影像,共36幅,每月份上中下三幅影像。

1999年黃河流域SPOT-VEG 影像

1.2 原理

分別將每幅黃河流域SPOT-VEG 影像中的同一位置像元相比較,選擇每個像元位置的最大值。

1.3 工具

【Spatial Analyst工具】|【區域性分析】|【像元統計工具】

在這裡插入圖片描述

  • 輸入柵格資料或常量值:36幅黃河流域SPOT-VEG 影像資料(.img)
  • 輸出柵格:選擇輸出路徑並命名最後輸出柵格資料
  • 疊加統計:選擇“MAXIMUM”

1.4 結果

在這裡插入圖片描述

製圖時如需去掉背景,可以在符號化的時候將背景值0設定為NoData,也可以使用重分類將背景值0改為NoData,但會出現不是背景值的Value變為NoData的誤差。

在這裡插入圖片描述
在這裡插入圖片描述

2. 求NDVI最大值出現日期影象

2.1 資料

使用python將資料名稱改為只有時間字元並存放到一個資料夾內。

在這裡插入圖片描述

2.2. 原理

1.使用模型得到36幅具有最大值的影像。
2.利用像元統計工具將模型得到的影像進行求和疊加。

2.3. 模型

在這裡插入圖片描述

1.使用柵格迭代器將資料輸出為資料集和名稱,其中名稱可作為其他工具的行內變數%name%。迭代柵格資料工具的作用為迭代工作空間或柵格資料目錄中的所有柵格資料。

在這裡插入圖片描述

2.利用解析路徑工具將柵格迭代器輸出的帶有後綴的名稱解析成只有檔名的名稱。解析路徑工具的作用為將輸入解析成相應的檔案、路徑、名稱和副檔名。這裡選擇解析成名稱。

在這裡插入圖片描述

3.利用計算值工具將解析的資料型別為字串的名稱改為長整型,以便後面柵格計算器計算。

在這裡插入圖片描述

4.在模型中新增NDVI最大值資料,利用柵格計算器分別計算每幅影像的每個像元位置是否具有的最大值,如果某幅影像的某個像元為36幅影像中的最大值則輸出這個影像的名稱即為時間,否則輸出0。最後一共輸出36幅影像資料,名稱為相應的時間。

在這裡插入圖片描述

2.4. 疊加

使用像元統計工具將模型得到的36幅影像資料進行求和統計。

2.5. 符號化

因為在某個像元位置可能有多幅影像具有最大值,所以在求和的時候會重複。

2.6. 結果

在這裡插入圖片描述

3. 其他

3.1. 覆蓋問題

如果直接將像元統計工具放在模型裡,原來得到的36幅影像將作為中間資料不作儲存,最後得到疊加後的影像會一個個覆蓋掉,最後得到只有0值和19991221值的影像資料。

3.2. 疊加方法

除了使用【像元統計資料】工具外,還可以使用【加權總和】工具進行資料疊加。

3.3. 模型輸出資料命名

輸出資料命名為“%name%.img”,最後要新增一個檔案字尾。並且資料只能存放在資料夾內,不可以存放在檔案或個人資料庫中,資料庫中存放檔案不能自己新增字尾。

3.4. 最高位置工具

求NDVI最大值出現日期影象還可以直接用【最高位置】工具,得到資料共有36個值,分別代表對應輸入的36幅影像(注意順序),資料量小的時候可以直接對應更改時間日期,資料量多的時候需要利用程式演算法來更改。

3.5. 行內變數

在模型構建器中,可通過以百分號(%)將替換變數括號起來的方式,用一個變數的內容替換另一變數。這種變數替換方式成為行內變數替換。