基于QGIS的研究區(qū)域遙感影像裁切下載方法(以岳麓區(qū)為例)
前言
之前有朋友曾經跟我交流反饋,想根據一個研究區(qū)域的矢量范圍,去下載這個研究區(qū)域內的高清遙感影像作為底圖,而不想要其它區(qū)域的。當時考慮有兩種實現方案,第一種就是看研究區(qū)域的大小,如果可以提供原始的tif數據,再使用研究區(qū)域的矢量數據進行掩膜處理裁切就好。這種方式如果是一些在線圖源和瓦片圖源,幾乎比較麻煩。也有朋友指導,說可以自己在后端去處理瓦片和研究區(qū)域的空間關系,相當與是空間分析,如果瓦片在研究區(qū)域中,則將瓦片放到包中,供用戶打包下載,如果不再研究區(qū)域中,則忽略。這種方式沒具體實踐過,想來是比較麻煩的。
最近在看一個GIS思維的實操案例,它支持按照空間矢量范圍把在線的遙感影像瓦片轉為tif。有了tif不是巧婦難為無米之炊了?;趖if和shp就可以進行柵格數據掩膜提取,順利實現完全按照矢量數據范圍提供的影像數據了。
本文以湖南省長沙市岳麓區(qū)為例,主要講解如何基于QGIS這款軟件,把岳麓區(qū)范圍內的遙感影像下載,并使用QGIS進行切片,最后用Leaflet進行展示的例子。對于不熟悉QGIS軟件的掩膜操作以及如何根據自己的需要下載在線高清影像的朋友有一定的指導作用。
本文敘述的方式經過本人實操檢驗,如果有更方便快捷的方法,勞煩朋友在評論區(qū)留下經驗心得,在這不甚感謝。
一、數據說明
這里的數據分類三種:第一種是原始數據,第二種是過程數據,第三種是結果數據。下面對這些數據進行相應的說明。在介紹數據的時候,對本文涉及的數據和處理流程做一個說明:
原始數據是最開始的兩種輸入數據,一是岳麓區(qū)的空間矢量數據,二是遙感影像數據。過程數據是第一步操作之后的結果,生成矢量范圍邊界內的tif數據。結果數據是第二個步驟的結果,是完全符合矢量范圍內的tif文件。
1、遙感影像
為了演示簡單,這里使用的在線影像采用湖南衛(wèi)星云遙系統(tǒng)的在線影像。當然,您可以使用其它的圖源,比如天地圖、星圖地圖、高德影像等等,都是可以的。在QGIS中的XYZ瓦片中添加云遙影像的訪問地址:
序號 | 參數 | 值 |
1 | 名稱 | 云遙在線影像 |
2 | URL | https://wprd01.is.autonavi.com/appmaptile?&x={x}&y={y}&z={z}&lang=zh_cn&size=2&scl=1&style=6<ype=7 |
3 | 坐標參照系(CRS) | EPSG:3857 - WGS 84 / Pseudo-Mercator - 投影 |
4 | 范圍 | -20037508.3427892439067364,-20037508.3427892550826073 : 20037508.3427892439067364,20037508.3427892439067364 |
5 | 單位 | 米 |
使用QGIS加載云遙遙感影像的效果如下所示:
2、矢量范圍
本文以湖南省長沙市岳麓區(qū)為例,使用岳麓區(qū)的矢量范圍作為研究區(qū)域。
在QGIS中打開岳麓區(qū)的空間范圍數據效果如下:
以上是對研究區(qū)域和遙感影像底圖做一個簡要介紹,為下面的操作提供一個堅實的基礎。
二、按矢量范圍導出
這一節(jié)對應上面的第一步,按照矢量范圍導出tif文件。這一步的結果是至關重要的一環(huán),沒有這一步的過程數據,將不能生產出實際的數據。本節(jié)將按照操作步驟來進行操作介紹。
1、第一步、導出影像
點擊在線圖源的圖層,鼠標右鍵點擊導出,操作界面如下:
2、第二步、設置輸出格式
在這里,要設置輸出格式原始數據,同時創(chuàng)建vrt的選項建議勾選掉。同時設置當前的tif文件生成后保存的目錄。
3、設置裁切范圍
下面設置導出范圍,值得注意的是,這里的導出范圍其實并不是空間范圍的實際邊界,而是這個矢量編輯的外包框,也就是bbox。雖然不能直接打到我們的目的,但是也是將數據的范圍進行了極大的減少?;究蚨舜笾碌挠跋駭祿秶?。
4、設置分辨率
分辨率的設置根據圖源做具體的設置,如想要高清的圖片,可以把水平和垂直的數字設置的小一點,這樣生成的tif就會小很多。
在上述界面中運行之后可以得到以下的結果,這里可以看到,基本是按照我們的預期導出了遙感影像,使用gis軟件也可以正常打開。操作表明第一階段的目標已達到。
三、按矢量范圍掩膜
在得到上述的結果之后,怎么將遙感影像完全按照區(qū)域范圍來展示了,而不是有多余的部分,這一節(jié),我們重點闡述使用矢量范圍掩膜進行數據處理,以此達到我們的目的。
1、第一步、打開裁剪工具
在qgis的右邊工具欄中打開裁剪工具,可以支持直接在搜索欄中進行搜索查找。
2、第二步、參數設置
這里的輸入圖層選擇上一步導出的結果,掩膜圖層依然選擇岳麓區(qū)的矢量數據。特別注意:掩膜圖層后面的綠色圖標一定要勾上,否則無效。按鈕勾上的作用是遍歷圖層,然后拆分單獨輸出。
3、執(zhí)行掩膜
參數設置完畢后,點擊運行,執(zhí)行掩膜操作,可以在操作界面中看到以下的操作日志記錄。
執(zhí)行完畢后,得到以下的掩膜結果,這個跟我們的需要的是一致的。
至此,基于QGIS的研究區(qū)域遙感影像裁切下載方法-以岳麓區(qū)為例的數據實操過程結束。如果您想把tif發(fā)布成jpg瓦片,并使用Leaflet的gis組件進行web展示應該怎么做。再簡單介紹一下。
四、webgis支持
為了使tif數據更加容易被Leaflet或者Cesium、OpenLayers等這些第三方框架進行WebGIS系統(tǒng)的展示,還可以進行jpg瓦片的發(fā)布。依然以QGIS和Leaflet為例,說明如何進行瓦片發(fā)布。
1、生成運行框架
在配置完相應的參數后,點擊執(zhí)行,然后等待執(zhí)行完成即可。為了演示方便,我們只切到5-9級。
QGIS版本:3.16.0-Hannover QGIS代碼版本:43b64b13f3 Qt版本:5.11.2 GDAL版本:3.1.4 GEOS版本:3.8.1-CAPI-1.13.3 PROJ版本:Rel. 6.3.2, May 1st, 2020 處理算法... 正在啟動“生成 XYZ 圖塊(目錄)”算法… 參數輸入: { 'BACKGROUND_COLOR' : QColor(0, 0, 0, 0), 'DPI' : 96, 'EXTENT' : '12535412.114300000,12575346.466499999,3245784.656600000,3284165.097400000 [EPSG:3857]', 'METATILESIZE' : 4, 'OUTPUT_DIRECTORY' : 'D:\\test0305', 'OUTPUT_HTML' : 'D:/test0305/index.html', 'QUALITY' : 75, 'TILE_FORMAT' : 0, 'TILE_HEIGHT' : 256, 'TILE_WIDTH' : 252, 'TMS_CONVENTION' : False, 'ZOOM_MAX' : 9, 'ZOOM_MIN' : 5 } Using 4 CPU Threads: Generating tiles for zoom level: 5 Generating tiles for zoom level: 6 Generating tiles for zoom level: 7 Generating tiles for zoom level: 8 Generating tiles for zoom level: 9 執(zhí)行完成,花了0.75 秒 結果: {'OUTPUT_DIRECTORY': 'D:\\test0305', 'OUTPUT_HTML': 'D:/test0305/index.html'} 載入結果圖層 算法“生成 XYZ 圖塊(目錄)”執(zhí)行已完成 已生成該算法 HTML 格式輸出結果。 請打開結果對話框進行檢查。
qgis默認的webgis展示框架采用的是leaflet,這里以leaflet為例進行說明。
2、leaflet展示
可以看到leaflet的展示結果如下,還是比較簡單的。leaflet的源碼也比較簡單,很多都是使用在線的資源,完整代碼如下:
<!DOCTYPE html> <html> <head> <title>Leaflet Preview</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" rel="external nofollow" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/> <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin=""></script> <style type="text/css"> body { margin: 0; padding: 0; } html, body, #map{ width: 100%; height: 100%; } </style> </head> <body> <div id="map"></div> <script> var map = L.map('map').setView([28.126732442018323, 112.78689114484018], 10.5); L.tileLayer('file:///D%3A/test0305/{z}/{x}/{y}.png', { minZoom: 9, maxZoom: 12, tms: false, attribution: 'Generated by TilesXYZ' }).addTo(map); </script> </body> </html>
總結
以上就是本文的主要內容,本文以湖南省長沙市岳麓區(qū)為例,主要講解如何基于QGIS這款軟件,把岳麓區(qū)范圍內的遙感影像下載,并使用QGIS進行切片,最后用Leaflet進行展示的例子。對于不熟悉QGIS軟件的掩膜操作以及如何根據自己的需要下載在線高清影像的朋友有一定的指導作用。如果您也有這樣的需求,心動不如行動,來實際操作一下,看能否解決您當下遇到的問題。歡迎評論交流。
到此這篇關于基于QGIS的研究區(qū)域遙感影像裁切下載方法-以岳麓區(qū)為例的文章就介紹到這了,更多相關QGIS遙感影像裁切下載內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解
這篇文章主要介紹了net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08php和asp利用Shell.Application來執(zhí)行程序的代碼
關于用Shell.Application來執(zhí)行程序,在海陽頂端asp木馬里已有示例。用的是ShellExecute 這個方法。2008-12-12git-github 子模塊倉庫更新(git submodule)及git中submodule子模塊
這篇文章主要介紹了git-github 子模塊倉庫更新(git submodule)/git中submodule子模塊的添加、使用和刪除,使用子模塊后,不必負責子模塊的維護,只需要在必要的時候同步更新子模塊即可,需要的朋友可以參考下2023-03-03