聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

全球熱點!QGIS|構建選址模型 模型需求分析

來源:CSDN 時間:2022-12-20 15:10:10

選址模型是GIS經典的空間分析模型,也是GIS最擅長解決的問題之一。選址在生產生活有著廣泛的應用,如餐飲企業(麥當勞/肯德基)選址、超市、醫院、物流倉儲、甚至核電站選址等。選址的好壞直接影響到服務方式、服務質量、服務效率、服務成本等,從而影響到利潤和市場競爭力。


(資料圖)

本文以飛機場停機坪選址為例,模擬實際生活中的決策約束條件,使用QGIS模型構建器建立選址模型,詳細演示分析和建模過程,得到選址結果。(文末附有示范數據下載地址)

01 模型需求分析

本文的需求背景簡要描述如下:

航空公司想在Nueces縣現有的機場中查找一個合適的位置,為自己公司的直升飛機修建停機坪,要求如下:

不能修建在建成區內,以免影響市民的日常生活。

為了方便飛行員通勤,最好在城市5公里范圍內。

距離縣級道路不超過2公里。

距離水域不超過800米。

現有的數據為:

縣級行政區劃面圖層,縣名為COUNTY字段。

水系圖層。

道路圖層,道路等級存儲在RTTPY字段中,取值為”C“表示縣級道路。

城市建成區面圖層。

飛機場點圖層。

分析需求,轉化為GIS語言,則選址模型變為步驟:

從行政區劃圖層中按屬性提取出Nueces縣要素。

按Nueces縣的位置提取位于該縣的機場。

從城市建成區面圖層按屬性提取出城市Corpus Christi面要素,對該要素做5000米的緩沖區,然后使用緩沖區將建成區擦除。

從道路圖層按屬性提取縣級道路,然后對提取結果做2000米緩沖區。

對水系圖層做800米緩沖區。

將城市建成區處理結果、道路緩沖區和水系緩沖區做疊加分析,得到的面多邊形即為滿足需求的區域。

使用滿足需求的區域裁剪機場圖層,即可得到適宜修建停機坪的機場。

下面使用QGIS模型構建器將上述步驟構建為模型。

02 打開數據

在【瀏覽】面板中定位到示范數據,拖拽到地圖窗口中。

在【圖層】面板調整圖層順序,從下到上依次為:Counties、CityBoundaries、Water_features、Roads、Airports。

03 模型構建器界面介紹

點擊菜單【處理】->【模型構建器…】,打開【處理模型】窗口。

【處理模型】窗口由上方的工具欄、左側的操作面板和右邊的模型構建主窗口組成。

工具欄提供打開模型、保存模型、瀏覽模型和運行模型等功能。

左上方為模型變量定義區域,可以把需要重復使用的字符串或者數值定義為變量,使用變量可以提高工作效率。

中間為模型特性,用于設置模型的名稱和所屬分組。名稱和分組決定了模型在【處理工具箱】面板中所處的位置,方便查找和調用。

左下方是模型構建元素面板,分為【輸入】和【算法】兩個標簽頁。

要新建一個模型,只需設置模型的名稱和所在的分組,點擊工具欄的【保存】按鈕設置存儲路徑即可。例如本文新建的模型名稱為“停機坪選址模型”,顯示在【處理工具箱】的【我的模型】節點下。

04 提取縣級區劃

建模第一步:從全部行政區劃中按屬性提取出Nueces縣要素。

將左側的操作面板切換到【輸入】標簽頁,可以看到QGIS的模型提供矢量字段、地圖圖層、坐標參照系(CRS)、字段映射器、字符串、布爾型等輸入參數類型。我們需要為縣圖層定義一個輸入參數,所以找到“+矢量圖層”拖拽到右邊窗口中。

在彈出的【矢量圖層參數定義】對話框中,設置如下參數:

參數名稱:“縣 圖層”。

幾何圖形類型:“多邊形”。

勾選“強制”,表示該參數在模型運行時必須提供,不能為空。

點擊【OK】完成參數定義設置。

可以看到模型窗口中用黃色方框繪制出了“縣 圖層”參數,雙擊該方框可調整參數。

為了按字段篩選縣級區劃,需要定義矢量字段(Vector Field)參數,選中“+向量場”(這里實際是“矢量字段”,翻譯有誤差),拖拽到右邊畫布中。

在參數定義對話框中,設置如下參數:

參數名稱:“縣名 屬性”。

父圖層設置:“縣 圖層”,表示該字段是來自參數“縣 圖層”的屬性。

允許的數據類型:“字符串”。

默認值:“COUNTY”。

勾選“強制”復選框。

點擊【OK】完成設置。

定義【按屬性提取】算法參數以提取“縣 圖層”要素。左側面板切換到【算法】標簽頁,在上方的搜索框中輸入“extract”,找到【矢量選擇】->【按屬性提取】,拖拽到模型窗口中。

在彈出的【按屬性提取】對話框中設置:

Description:提取Nueces縣。

輸入圖層:縣 圖層。

選擇屬性:縣名 屬性。

操作符:=。

值:Nueces。表示提取名為“Nueces”的縣。

提取后(屬性):Nueces縣。表示提取成功時,輸出結果默認情況下保存在“Nueces縣”為名稱的圖層中。在模型運行時,用戶可以另行設定輸出結果的路徑和文件格式。

注意,在模型處理過程中,如果不設置輸出結果的參數,則輸出結果作為中間文件在內存中作為下一步驟的輸入參數,不會被保存,也不會出現在地圖窗口中。

可以看到窗口中增加了一個“提取Nueces縣”的白色方塊,表示算法,綠色方塊“Nueces縣”表示該算法的輸出結果。至此,縣級區域圖層的處理結束,點擊工具欄的【保存】按鈕保存模型。

05 處理機場圖層

建模第二步:按Nueces縣的覆蓋范圍提取位于該縣的機場點。

設置輸入圖層參數。切換到【輸入】標簽頁,雙擊【矢量圖層】添加機場圖層參數,在彈出的參數定義對話框中設置:

參數名稱:“機場 圖層”。

幾何圖形類型:點。

勾選“強制”復選框。

點擊【OK】完成設置。

使用裁剪算法提取處于縣范圍內的機場。切換到【算法】標簽頁,在搜索框中輸入“clip”,找到【矢量疊加】->【裁剪】,拖拽到窗口中。

在【裁剪】對話框中設置參數如下:

Description:裁剪機場

輸入圖層:機場 圖層

疊加圖層:"提取后(屬性)" from algorithm "提取Nueces縣"。

其他參數保持默認即可,點擊【OK】完成設置。

完成機場圖層裁剪后,模型如下:

06 處理城市建成區面圖層

模型構建第三步:處理城市建成區面圖層,即根據需求從城市建成區面圖層按屬性提取出城市Corpus Christi面要素,對該要素做5000米的緩沖區,然后在緩沖區面將建成區擦除。

添加輸入圖層參數。切換到【輸入】標簽頁,雙擊【矢量圖層】,參數定義如下:

參數名稱:城市區域 圖層。

幾何圖形類型:多邊形。

勾選”強制“復選框。

點擊【OK】完成設置。

添加字段參數。雙擊【輸入】標簽頁的參數【向量場】,設置城市區域屬性參數如下:

參數名稱:城市區域 屬性。

父圖層:城市區域 圖層。

允許的數據類型:字符串。

默認值:NAME。

勾選”強制“復選框。

點擊【OK】按鈕完成設置。

切換到【算法】標簽頁,雙擊【矢量選擇】->【按屬性提取】,參數設置如下:

Description:提取Corpus Christi市。

輸入圖層:城市區域 圖層。

選擇屬性:城市區域 屬性。

操作符:=。

值:Corpus Christi。

其他參數保持默認即可。

點擊【OK】完成設置。

使用緩沖區分析計算距離城市5000米的覆蓋范圍。在【算法】標簽頁找到【矢量幾何圖形】->【輪廓】(buffer),雙擊彈出參數設置對話框,參數定義如下:

Description:Corpus Christi緩沖區。

輸入圖層:"提取后(屬性)" from algorithm "提取Corpus Christi市"。

柵格距離結果:5000。

融合結果:是。

其他參數保持默認,點擊【OK】完成設置。

使用差分算法,去除建成區域范圍,得到城市區域5000米內不屬于建成區的環狀地帶。找到【矢量疊加】->【差分】算法,雙擊,設置參數如下:

Description:差分Corpus Christi市。

輸入圖層:"緩沖區建立后" from algorithm "Corpus Christi緩沖區"。

疊加圖層:"提取后(屬性)" from algorithm "提取Corpus Christi市"。

其他參數保持默認,點擊【OK】完成設置。

此時,模型的全圖如下:

07 處理道路圖層

模型構建第四步:處理道路圖層,即從道路圖層按屬性提取縣級道路,然后對提取結果做2000米緩沖區。

添加道路圖層輸入參數。在【輸入】標簽頁雙擊【矢量圖層】,參數定義如下:

參數名稱:道路 圖層。

幾何圖形類型:線條。

勾選”強制“復選框。

點擊【OK】完成設置。

添加用于提取道路的屬性參數。在【輸入】標簽頁雙擊【向量場】,在彈出對話框設置參數定義:

參數名稱:道路 屬性。

父圖層:道路 圖層。

允許的數據類型:字符串。

默認值:RTTYP。

勾選”強制“復選框。

點擊【OK】完成設置。

使用【按屬性提取】提取出縣級道路。切換到【算法】標簽頁,找到【矢量提取】->【按屬性提取】,雙擊,在彈出的對話框中定義如下參數:

Description:提取縣域道路。

輸入圖層:道路 圖層。

輸入屬性:道路 屬性。

操作符:=。

值:C。

其他參數保持默認,點擊【OK】按鈕完成設置。

使用緩沖區算法計算出道路2000米范圍的區域。找到【矢量幾何圖形】->【輪廓】算法,雙擊,在彈出對話框設置如下參數:

Description:道路緩沖區。

輸入圖層:"提取后(屬性)" from algorithm "提取縣域道路"。

柵格距離結果:2000.000000。

融合結果:是。

其他參數保持默認,點擊【OK】完成設置。

道路處理完成后,模型全貌如下圖:

08 處理水系圖層

模型構建第五步:處理水系圖層,即對水系圖層做800米緩沖區。

添加水系圖層輸入參數。雙擊【矢量圖層】,在彈出的參數定義對話框中設置:

參數名稱:水要素圖層。

幾何圖形類型:線條。

勾選”強制“復選框。

點擊【OK】完成設置。

使用緩沖區計算水系800米范圍區域。雙擊【矢量幾何圖形】->【輪廓】,在彈出對話框中設置如下參數:

Description:水要素緩沖區。

輸入圖層:水要素圖層。

柵格距離結果:800.000000。

融合結果:是。

其他參數保持默認,點擊【OK】按鈕完成設置。

09 疊加分析,找到滿足綜合條件的區域

使用相交算法計算出城市建成區、道路緩沖區和水系緩沖區的共同部分。點擊【矢量疊加】->【相交(intersection)】,在彈出對話框中設置:

Description:相交。

輸入圖層:"差分(difference)" from algorithm "差分Corpus Christi市"。

疊加圖層:"緩沖區建立后" from algorithm "道路緩沖區"。

由于需要用城市區域疊加道路、河流兩個圖層,因此要設置【Parent Algorithm】參數,表示多個圖層來源。點擊【Parent Algorithm】右側的【…】按鈕,在 彈出的多項選擇框中勾選”水要素緩沖區“,點擊【OK】關閉多項選擇對話框。

在【相交】對話框中點擊【OK】完成設置。

使用裁剪算法找出滿足條件的機場。在【算法】標簽頁雙擊【矢量疊加】->【裁剪】,在彈出對話框中設置如下參數:

Description:用適宜區域裁剪機場。

輸入圖層:"裁剪后" from algorithm "裁剪機場"。

疊加圖層:"相交(intersection)" from algorithm "相交"。

裁剪后:最終選址方案。

其他參數保持默認,點擊【OK】完成設置。

模型最終全圖如下:

10 運行模型,得到選址結果

點擊工具欄【保存】按鈕,保存模型。點擊工具欄【運行】按鈕,彈出【停機坪選址模型】對話框。

按照下圖依次選擇對應的參數,點擊【運行】按鈕,運行模型。

切換到【記錄】標簽頁,可以查看模型運行過程的詳細輸出。

等待運行結束后,點擊【Close】關閉對話框,返回地圖主窗口。

可以看到【圖層】面板中新增了”Nueces縣“和”最終選址方案“兩個圖層,其中,”最終選址方案“圖層代表模型建議的停機坪選址位置。

11 小結&示范數據下載

使用模型構建器做選址分析的優點在于:一旦模型建立完成,可以反復微調模型的輸入參數,模擬不同的限制條件選擇方案。例如,當將距離道路2000米修改為1500米時,會導致找不到建立停機坪的機場。而實際工作中,決策約束條件經常需要調整,模型的參數也隨之變化,此時只需要在運行模型時改變參數,其他步驟均不需要重新設置,大大方便了決策過程。

然而,不同行業對選擇條件的需求各不相同。例如,咖啡店的選址,一般要考慮附近是否有大商場、與高級寫字樓的距離、朝向(路南還是路北)、甚至考慮坡向(上坡的位置可增加進入店內的幾率)。又如核電站選址,則需要考慮與居民點的距離、附近是否有自然災害風險、對生態環境的影響、緊急情況疏散等。因此,在實際工作中應根據具體的選址需求構建模型,才能得到最佳的選址方案,為決策提供參考。

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 岛国精品在线