基于QGIS的研究區(qū)域遙感影像裁切下載方法(以岳麓區(qū)為例)
前言
之前有朋友曾經(jīng)跟我交流反饋,想根據(jù)一個(gè)研究區(qū)域的矢量范圍,去下載這個(gè)研究區(qū)域內(nèi)的高清遙感影像作為底圖,而不想要其它區(qū)域的。當(dāng)時(shí)考慮有兩種實(shí)現(xiàn)方案,第一種就是看研究區(qū)域的大小,如果可以提供原始的tif數(shù)據(jù),再使用研究區(qū)域的矢量數(shù)據(jù)進(jìn)行掩膜處理裁切就好。這種方式如果是一些在線(xiàn)圖源和瓦片圖源,幾乎比較麻煩。也有朋友指導(dǎo),說(shuō)可以自己在后端去處理瓦片和研究區(qū)域的空間關(guān)系,相當(dāng)與是空間分析,如果瓦片在研究區(qū)域中,則將瓦片放到包中,供用戶(hù)打包下載,如果不再研究區(qū)域中,則忽略。這種方式?jīng)]具體實(shí)踐過(guò),想來(lái)是比較麻煩的。
最近在看一個(gè)GIS思維的實(shí)操案例,它支持按照空間矢量范圍把在線(xiàn)的遙感影像瓦片轉(zhuǎn)為tif。有了tif不是巧婦難為無(wú)米之炊了?;趖if和shp就可以進(jìn)行柵格數(shù)據(jù)掩膜提取,順利實(shí)現(xiàn)完全按照矢量數(shù)據(jù)范圍提供的影像數(shù)據(jù)了。
本文以湖南省長(zhǎng)沙市岳麓區(qū)為例,主要講解如何基于QGIS這款軟件,把岳麓區(qū)范圍內(nèi)的遙感影像下載,并使用QGIS進(jìn)行切片,最后用Leaflet進(jìn)行展示的例子。對(duì)于不熟悉QGIS軟件的掩膜操作以及如何根據(jù)自己的需要下載在線(xiàn)高清影像的朋友有一定的指導(dǎo)作用。
本文敘述的方式經(jīng)過(guò)本人實(shí)操檢驗(yàn),如果有更方便快捷的方法,勞煩朋友在評(píng)論區(qū)留下經(jīng)驗(yàn)心得,在這不甚感謝。
一、數(shù)據(jù)說(shuō)明
這里的數(shù)據(jù)分類(lèi)三種:第一種是原始數(shù)據(jù),第二種是過(guò)程數(shù)據(jù),第三種是結(jié)果數(shù)據(jù)。下面對(duì)這些數(shù)據(jù)進(jìn)行相應(yīng)的說(shuō)明。在介紹數(shù)據(jù)的時(shí)候,對(duì)本文涉及的數(shù)據(jù)和處理流程做一個(gè)說(shuō)明:

原始數(shù)據(jù)是最開(kāi)始的兩種輸入數(shù)據(jù),一是岳麓區(qū)的空間矢量數(shù)據(jù),二是遙感影像數(shù)據(jù)。過(guò)程數(shù)據(jù)是第一步操作之后的結(jié)果,生成矢量范圍邊界內(nèi)的tif數(shù)據(jù)。結(jié)果數(shù)據(jù)是第二個(gè)步驟的結(jié)果,是完全符合矢量范圍內(nèi)的tif文件。
1、遙感影像
為了演示簡(jiǎn)單,這里使用的在線(xiàn)影像采用湖南衛(wèi)星云遙系統(tǒng)的在線(xiàn)影像。當(dāng)然,您可以使用其它的圖源,比如天地圖、星圖地圖、高德影像等等,都是可以的。在QGIS中的XYZ瓦片中添加云遙影像的訪(fǎng)問(wèn)地址:

| 序號(hào) | 參數(shù) | 值 |
| 1 | 名稱(chēng) | 云遙在線(xiàn)影像 |
| 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 | 坐標(biāo)參照系(CRS) | EPSG:3857 - WGS 84 / Pseudo-Mercator - 投影 |
| 4 | 范圍 | -20037508.3427892439067364,-20037508.3427892550826073 : 20037508.3427892439067364,20037508.3427892439067364 |
| 5 | 單位 | 米 |
使用QGIS加載云遙遙感影像的效果如下所示:

2、矢量范圍
本文以湖南省長(zhǎng)沙市岳麓區(qū)為例,使用岳麓區(qū)的矢量范圍作為研究區(qū)域。

在QGIS中打開(kāi)岳麓區(qū)的空間范圍數(shù)據(jù)效果如下:

以上是對(duì)研究區(qū)域和遙感影像底圖做一個(gè)簡(jiǎn)要介紹,為下面的操作提供一個(gè)堅(jiān)實(shí)的基礎(chǔ)。
二、按矢量范圍導(dǎo)出
這一節(jié)對(duì)應(yīng)上面的第一步,按照矢量范圍導(dǎo)出tif文件。這一步的結(jié)果是至關(guān)重要的一環(huán),沒(méi)有這一步的過(guò)程數(shù)據(jù),將不能生產(chǎn)出實(shí)際的數(shù)據(jù)。本節(jié)將按照操作步驟來(lái)進(jìn)行操作介紹。

1、第一步、導(dǎo)出影像
點(diǎn)擊在線(xiàn)圖源的圖層,鼠標(biāo)右鍵點(diǎn)擊導(dǎo)出,操作界面如下:

2、第二步、設(shè)置輸出格式
在這里,要設(shè)置輸出格式原始數(shù)據(jù),同時(shí)創(chuàng)建vrt的選項(xiàng)建議勾選掉。同時(shí)設(shè)置當(dāng)前的tif文件生成后保存的目錄。

3、設(shè)置裁切范圍
下面設(shè)置導(dǎo)出范圍,值得注意的是,這里的導(dǎo)出范圍其實(shí)并不是空間范圍的實(shí)際邊界,而是這個(gè)矢量編輯的外包框,也就是bbox。雖然不能直接打到我們的目的,但是也是將數(shù)據(jù)的范圍進(jìn)行了極大的減少。基本框定了大致的影像數(shù)據(jù)范圍。

4、設(shè)置分辨率
分辨率的設(shè)置根據(jù)圖源做具體的設(shè)置,如想要高清的圖片,可以把水平和垂直的數(shù)字設(shè)置的小一點(diǎn),這樣生成的tif就會(huì)小很多。

在上述界面中運(yùn)行之后可以得到以下的結(jié)果,這里可以看到,基本是按照我們的預(yù)期導(dǎo)出了遙感影像,使用gis軟件也可以正常打開(kāi)。操作表明第一階段的目標(biāo)已達(dá)到。

三、按矢量范圍掩膜
在得到上述的結(jié)果之后,怎么將遙感影像完全按照區(qū)域范圍來(lái)展示了,而不是有多余的部分,這一節(jié),我們重點(diǎn)闡述使用矢量范圍掩膜進(jìn)行數(shù)據(jù)處理,以此達(dá)到我們的目的。
1、第一步、打開(kāi)裁剪工具
在qgis的右邊工具欄中打開(kāi)裁剪工具,可以支持直接在搜索欄中進(jìn)行搜索查找。

2、第二步、參數(shù)設(shè)置
這里的輸入圖層選擇上一步導(dǎo)出的結(jié)果,掩膜圖層依然選擇岳麓區(qū)的矢量數(shù)據(jù)。特別注意:掩膜圖層后面的綠色圖標(biāo)一定要勾上,否則無(wú)效。按鈕勾上的作用是遍歷圖層,然后拆分單獨(dú)輸出。


3、執(zhí)行掩膜
參數(shù)設(shè)置完畢后,點(diǎn)擊運(yùn)行,執(zhí)行掩膜操作,可以在操作界面中看到以下的操作日志記錄。

執(zhí)行完畢后,得到以下的掩膜結(jié)果,這個(gè)跟我們的需要的是一致的。

至此,基于QGIS的研究區(qū)域遙感影像裁切下載方法-以岳麓區(qū)為例的數(shù)據(jù)實(shí)操過(guò)程結(jié)束。如果您想把tif發(fā)布成jpg瓦片,并使用Leaflet的gis組件進(jìn)行web展示應(yīng)該怎么做。再簡(jiǎn)單介紹一下。
四、webgis支持
為了使tif數(shù)據(jù)更加容易被Leaflet或者Cesium、OpenLayers等這些第三方框架進(jìn)行WebGIS系統(tǒng)的展示,還可以進(jìn)行jpg瓦片的發(fā)布。依然以QGIS和Leaflet為例,說(shuō)明如何進(jìn)行瓦片發(fā)布。

1、生成運(yùn)行框架
在配置完相應(yīng)的參數(shù)后,點(diǎn)擊執(zhí)行,然后等待執(zhí)行完成即可。為了演示方便,我們只切到5-9級(jí)。

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
處理算法...
正在啟動(dòng)“生成 XYZ 圖塊(目錄)”算法…
參數(shù)輸入:
{ '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 秒
結(jié)果:
{'OUTPUT_DIRECTORY': 'D:\\test0305', 'OUTPUT_HTML': 'D:/test0305/index.html'}
載入結(jié)果圖層
算法“生成 XYZ 圖塊(目錄)”執(zhí)行已完成
已生成該算法 HTML 格式輸出結(jié)果。
請(qǐng)打開(kāi)結(jié)果對(duì)話(huà)框進(jìn)行檢查。qgis默認(rèn)的webgis展示框架采用的是leaflet,這里以leaflet為例進(jìn)行說(shuō)明。
2、leaflet展示
可以看到leaflet的展示結(jié)果如下,還是比較簡(jiǎn)單的。leaflet的源碼也比較簡(jiǎn)單,很多都是使用在線(xiàn)的資源,完整代碼如下:
<!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>

總結(jié)
以上就是本文的主要內(nèi)容,本文以湖南省長(zhǎng)沙市岳麓區(qū)為例,主要講解如何基于QGIS這款軟件,把岳麓區(qū)范圍內(nèi)的遙感影像下載,并使用QGIS進(jìn)行切片,最后用Leaflet進(jìn)行展示的例子。對(duì)于不熟悉QGIS軟件的掩膜操作以及如何根據(jù)自己的需要下載在線(xiàn)高清影像的朋友有一定的指導(dǎo)作用。如果您也有這樣的需求,心動(dòng)不如行動(dòng),來(lái)實(shí)際操作一下,看能否解決您當(dāng)下遇到的問(wèn)題。歡迎評(píng)論交流。
到此這篇關(guān)于基于QGIS的研究區(qū)域遙感影像裁切下載方法-以岳麓區(qū)為例的文章就介紹到這了,更多相關(guān)QGIS遙感影像裁切下載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vscode安裝rainbow-fart(鼓勵(lì)師)插件
這篇文章主要介紹了vscode安裝rainbow-fart(鼓勵(lì)師)插件的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解
這篇文章主要介紹了net-snmp靜態(tài)編譯鏈接的獲取程序及生成執(zhí)行程序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
從web到內(nèi)網(wǎng)滲透的一次過(guò)程詳解
本文非常詳細(xì)的描述了一次從web到內(nèi)網(wǎng)滲透的一次過(guò)程,并對(duì)每一步過(guò)程做了詳細(xì)的圖文示例及解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09
php和asp利用Shell.Application來(lái)執(zhí)行程序的代碼
關(guān)于用Shell.Application來(lái)執(zhí)行程序,在海陽(yáng)頂端asp木馬里已有示例。用的是ShellExecute 這個(gè)方法。2008-12-12
git-github 子模塊倉(cāng)庫(kù)更新(git submodule)及git中submodule子模塊
這篇文章主要介紹了git-github 子模塊倉(cāng)庫(kù)更新(git submodule)/git中submodule子模塊的添加、使用和刪除,使用子模塊后,不必負(fù)責(zé)子模塊的維護(hù),只需要在必要的時(shí)候同步更新子模塊即可,需要的朋友可以參考下2023-03-03

