ArcGIS如何自動獲得隨機取樣點?

2023-05-17 18:00:57

  本文介紹基於ArcMap軟體,實現在指定區域自動生成隨機點的方法。

  在GIS應用中,我們時常需要在研究區域內進行地理資料的隨機取樣;而取樣點的位置往往需要在結合實際情況的前提下,用計算機隨機生成。這一操作在ArcMap軟體中就可以非常方便地進行。

  已知現有如下一景柵格影象,我們需要在這一影象對應的位置中,隨機生成若干點作為取樣點。

  另一方面,我們還已知該柵格影象對應的空間範圍的面要素向量圖層,如下圖所示。其中,由於該柵格影象存在無效值NoData,因此可以看到柵格影象是沒有完全遮蓋向量圖層的。

  接下來,就可以開始隨機點的選取。在軟體中依次選擇「Data Management Tools.tbx」→「Sampling」→「Creat Random Points」。

  彈出如下所示的介面。

  這個工具的引數有很多,我們逐一介紹。「Output Location」為生成點要素的儲存路徑,「Output Point Feature Class」為生成點要素的名稱;「Constraining Feature Class (optional)」為我們生成隨機點的範圍——這一項為可選項,如果我們選擇了這一項,那麼隨機點就會在這一項所選的點、線或面向量要素範圍內生成;如果我們不選擇這一項,就可以在下一項「Constraining Extent (optional)」中選擇我們的柵格影象作為範圍。「Number of Points [value or field] (optional)」為生成點的個數,如果我們選中「Long」,那麼就直接輸入整數即可;如果我們選中「Field」,那麼就依據「Constraining Feature Class (optional)」這一項所選的點、線或面向量要素的屬性表中某一個欄位作為點的個數;這裡還需要注意,如果我們在「Constraining Feature Class (optional)」這一項選中了包含多個要素的要素集,那麼「Long」所輸入的點的個數其實是該要素集下屬每1個要素中所生成的點的個數(這裡大家看不明白也沒關係,我們在後面會用一些例子來說明)。「Minimum Allowed Distance [value or field] (optional)」表示所生成點之間的最小距離,同樣是可以用直接輸入距離或者用向量要素的屬性表欄位來賦值。最後一個勾選項表示是否將輸出的隨機點結果作為一個整體的要素——如果不勾選此項,那麼輸出的隨機點要素集中,每1個點就相當於是1個要素;如果勾選此項,那麼輸出的隨機點要素集中,所有點整體相當於是1個要素;如果勾選了這一項,就將啟用最後一個輸入框,表示如果將多個點整體當作1個要素的話,該要素最多可以含有多少個點。

  接下來,我們就通過幾個範例來探究一下上述引數的具體含義。

  首先,第一個例子,我們就按照上圖所示的引數設定執行該工具,得到結果如下所示。

  可以看到,我們雖然在「Long」中設定了點的個數是100,但是實際生成的隨機點個數遠遠不止100個;這是因為,前面我們也提到:如果在「Constraining Feature Class (optional)」這一項選中了包含多個要素的要素集,那麼「Long」所輸入的點的個數其實是該要素集下屬每1個要素中所生成的點的個數。

  在剛剛的例子中,我們「Constraining Feature Class (optional)」這一項選所用的面向量要素圖層如下所示,可以看到其是一個包含有9個省(9個要素)的要素集;那麼結合我們前面介紹的,在「Long」中設定了點的個數是100,實際上是在每1個省份(每1個要素)中生成100個點,因此最終得到的整體結果是900個點,從而導致我們的隨機點結果看起來就這麼密集。

  我們將這個9個省的面向量要素圖層和剛剛生成的隨機點向量要素放在一起看,大家就看得更清楚了——每個省都是100個點,但由於內蒙古地區面積大,因此這裡100個點就看起來比較疏鬆;而寧夏(下圖中紅色區域)由於面積小,所以100個點在這裡就顯得尤為密集。

  接下來,第二個例子,我們按照下圖所示的引數設定執行該工具。

  其中,我們選擇用向量圖層的屬性表欄位來作為約束每1個行政區(每1個要素集)中生成隨機點的個數。這裡我們就選擇用下圖所示的這個欄位作為輸入欄位。

  得到的結果如下所示。可以看到,內蒙古的該欄位數值為15,其所生成的點就是15個;而寧夏該欄位的數值為64,因此其所生成的點看起來依然是密密麻麻的。

  清楚了以上規則,就可以更好地進行隨機點自動生成的操作了。