戰(zhàn)指南)
1. 地理數(shù)據(jù)獲取的痛點(diǎn)與全能電子地圖下載器3.0的定位干GIS這行十來年最常被問到的不是空間分析怎么做而是底圖數(shù)據(jù)從哪來。不管是做城市規(guī)劃、環(huán)境監(jiān)測(cè)、農(nóng)業(yè)估產(chǎn)還是搞三維建模、路徑分析第一步永遠(yuǎn)是搞到靠譜的底圖。衛(wèi)星影像、行政邊界、地形圖、路網(wǎng)數(shù)據(jù)這些東西看著網(wǎng)上到處都是真到用的時(shí)候才發(fā)現(xiàn)要么清晰度不夠要么坐標(biāo)系對(duì)不上要么下載下來一堆瓦片拼不到一起。全能電子地圖下載器3.0就是沖著這個(gè)痛點(diǎn)來的。它本質(zhì)上是一個(gè)多源地圖瓦片抓取與拼接工具能把常見在線地圖服務(wù)的地圖數(shù)據(jù)按指定范圍、指定層級(jí)批量下載到本地然后自動(dòng)拼接成一張完整的、帶地理坐標(biāo)信息的柵格圖。支持衛(wèi)星影像、電子地圖、地形圖、行政邊界等多種圖層類型輸出格式能直接對(duì)接ArcGIS、QGIS、Global Mapper這些主流GIS軟件。適合誰用做GIS開發(fā)需要離線底圖的工程師、搞遙感影像處理需要參考底圖的研究人員、做城鄉(xiāng)規(guī)劃需要現(xiàn)狀圖的從業(yè)者以及任何需要把在線地圖搬到本地做進(jìn)一步分析的人。哪怕你剛接觸GIS只要知道經(jīng)緯度范圍和需要的層級(jí)這個(gè)工具就能幫你把數(shù)據(jù)拿到手。注意本文討論的是地圖數(shù)據(jù)的合法獲取與使用所有操作應(yīng)遵守相關(guān)地圖服務(wù)的使用條款下載的數(shù)據(jù)僅用于個(gè)人學(xué)習(xí)、科研或內(nèi)部工作用途不得用于商業(yè)分發(fā)或違反服務(wù)條款的場(chǎng)景。2. 核心功能拆解與技術(shù)原理2.1 多源地圖服務(wù)的接入機(jī)制全能電子地圖下載器3.0的核心能力之一是聚合了多個(gè)地圖服務(wù)源。它內(nèi)置了常見的地圖服務(wù)地址模板包括衛(wèi)星影像、電子地圖、地形暈渲、行政邊界等類型。每個(gè)地圖源本質(zhì)上是一組URL模板形如https://{server}/tile/{z}/{x}/{y}.png其中{z}是縮放層級(jí){x}和{y}是瓦片行列號(hào){server}是負(fù)載均衡的服務(wù)器編號(hào)。工具根據(jù)用戶選定的地理范圍和層級(jí)計(jì)算出所有需要下載的瓦片坐標(biāo)然后并發(fā)請(qǐng)求這些URL把返回的圖片按行列號(hào)保存到本地。這里有個(gè)關(guān)鍵點(diǎn)不同地圖源的瓦片編號(hào)規(guī)則可能不同。有的用TMS方案原點(diǎn)在左下角有的用XYZ方案原點(diǎn)在左上角還有的用WMS服務(wù)直接返回指定范圍的圖片。工具內(nèi)部做了適配層用戶只需要框選范圍、選層級(jí)剩下的坐標(biāo)換算由程序自動(dòng)完成。2.2 瓦片金字塔與層級(jí)選擇邏輯地圖瓦片采用金字塔結(jié)構(gòu)第0層是整個(gè)世界的一張256x256像素圖片第1層是2x2共4張第n層是2^n x 2^n張。每增加一層分辨率翻倍覆蓋同一地理范圍所需的瓦片數(shù)量變?yōu)樵瓉淼?倍。層級(jí)選擇直接決定了下載數(shù)據(jù)量和最終影像的清晰度。以Web墨卡托投影為例第18層的分辨率大約是0.6米/像素第19層約0.3米/像素。但很多地圖服務(wù)在超過第18層后就不再提供真實(shí)影像而是把第18層的圖片放大顯示。所以盲目追求高層級(jí)不僅浪費(fèi)下載時(shí)間還可能拿到一堆插值放大的假高清圖。我的經(jīng)驗(yàn)是做城市級(jí)現(xiàn)狀調(diào)查第16到17層足夠做地塊級(jí)別的詳細(xì)分析第18層是性價(jià)比最高的選擇再往上除非確認(rèn)該區(qū)域有更高分辨率的原始影像否則沒必要。2.3 坐標(biāo)投影與輸出格式下載下來的瓦片默認(rèn)是Web墨卡托投影EPSG:3857這是絕大多數(shù)在線地圖服務(wù)使用的投影。但GIS分析中常用的可能是WGS84地理坐標(biāo)系EPSG:4326或各種地方坐標(biāo)系。工具提供了投影轉(zhuǎn)換選項(xiàng)可以在拼接完成后直接輸出目標(biāo)坐標(biāo)系的數(shù)據(jù)。輸出格式方面常見的有GeoTIFF、PNGWorld File、JPEGWorld File等。GeoTIFF是最推薦的因?yàn)樗训乩碜鴺?biāo)信息直接嵌入文件頭導(dǎo)入ArcGIS或QGIS時(shí)自動(dòng)識(shí)別位置不需要額外配準(zhǔn)。World File方案則是把坐標(biāo)信息寫在一個(gè)單獨(dú)的文本文件里雖然也能用但文件管理上多了一層麻煩。提示如果下載范圍跨帶了多個(gè)UTM投影帶建議先用Web墨卡托下載再在GIS軟件里做投影轉(zhuǎn)換避免工具內(nèi)部轉(zhuǎn)換時(shí)出現(xiàn)接邊問題。3. 實(shí)操流程從零開始下載一張可用的底圖3.1 環(huán)境準(zhǔn)備與基礎(chǔ)配置工具本身是綠色版解壓后直接運(yùn)行主程序即可不需要安裝。但有幾個(gè)前置條件需要確認(rèn)系統(tǒng)時(shí)間準(zhǔn)確。HTTPS請(qǐng)求對(duì)時(shí)間敏感時(shí)間偏差過大會(huì)導(dǎo)致證書驗(yàn)證失敗。磁盤空間充足。第18層、覆蓋一個(gè)中等城市的范圍下載量可能在幾個(gè)GB到幾十GB之間。建議預(yù)留至少50GB的可用空間。網(wǎng)絡(luò)連接穩(wěn)定。雖然工具支持?jǐn)帱c(diǎn)續(xù)傳但頻繁斷線會(huì)拖慢整體進(jìn)度。首次運(yùn)行時(shí)建議先進(jìn)入設(shè)置界面把緩存目錄和輸出目錄改到非系統(tǒng)盤。熱詞里有人問為啥我拷貝的gis地圖包自動(dòng)保存在c盤就是因?yàn)槟J(rèn)路徑設(shè)在了用戶目錄下。改到D盤或E盤既避免占滿系統(tǒng)盤也方便后續(xù)管理。3.2 框選下載范圍與層級(jí)設(shè)定打開工具后主界面是一張?jiān)诰€地圖。操作流程如下在地圖上導(dǎo)航到目標(biāo)區(qū)域可以用鼠標(biāo)滾輪縮放也可以輸入經(jīng)緯度直接定位。點(diǎn)擊框選按鈕在地圖上拖拽出需要下載的矩形范圍。工具會(huì)實(shí)時(shí)顯示該范圍的經(jīng)緯度邊界和預(yù)計(jì)瓦片數(shù)量。在圖層列表中選擇地圖源。衛(wèi)星影像選衛(wèi)星類行政邊界選邊界類電子地圖選地圖類。設(shè)置下載層級(jí)。工具通常會(huì)顯示一個(gè)層級(jí)滑塊從1到20左右。建議先選一個(gè)較小的范圍測(cè)試確認(rèn)效果后再擴(kuò)大。點(diǎn)擊開始下載工具會(huì)顯示進(jìn)度條、已下載瓦片數(shù)、剩余時(shí)間等信息。這里有個(gè)細(xì)節(jié)如果框選的范圍很大而層級(jí)很高瓦片數(shù)量可能達(dá)到幾十萬甚至上百萬。工具會(huì)提示預(yù)計(jì)下載量如果超過合理范圍建議縮小范圍或降低層級(jí)。我一般會(huì)先算一下范圍面積平方公里乘以每平方公里瓦片數(shù)估算總下載量。第18層每平方公里大約需要4000到6000張瓦片一個(gè)100平方公里的區(qū)域就是40到60萬張這個(gè)量級(jí)需要認(rèn)真考慮是否必要。3.3 下載過程中的監(jiān)控與調(diào)整下載啟動(dòng)后主界面會(huì)顯示實(shí)時(shí)進(jìn)度。幾個(gè)關(guān)鍵指標(biāo)需要關(guān)注指標(biāo)正常范圍異常處理下載速度50-200張/秒低于10張/秒檢查網(wǎng)絡(luò)或降低并發(fā)數(shù)失敗率低于5%高于10%暫停后重新開始剩余時(shí)間根據(jù)總量估算突然變大說明遇到限流磁盤寫入持續(xù)有數(shù)據(jù)停止增長(zhǎng)檢查磁盤空間如果發(fā)現(xiàn)失敗率飆升通常是觸發(fā)了地圖服務(wù)的請(qǐng)求頻率限制。這時(shí)候應(yīng)該暫停下載等待幾分鐘后再繼續(xù)或者降低并發(fā)線程數(shù)。工具設(shè)置里一般有并發(fā)數(shù)選項(xiàng)默認(rèn)可能是10到20調(diào)到5左右會(huì)穩(wěn)定很多。注意不要長(zhǎng)時(shí)間滿速下載同一地圖源容易被臨時(shí)限制。多個(gè)地圖源交替使用或者分時(shí)段下載是更穩(wěn)妥的策略。3.4 拼接輸出與坐標(biāo)配置下載完成后工具會(huì)自動(dòng)進(jìn)入拼接階段。拼接的邏輯是把所有瓦片按行列號(hào)排列成一張大圖然后根據(jù)瓦片的地理范圍計(jì)算整張圖的坐標(biāo)信息。輸出設(shè)置里有幾個(gè)關(guān)鍵選項(xiàng)輸出格式選GeoTIFF兼容性最好。坐標(biāo)系如果后續(xù)要在ArcGIS里做分析選WGS84或Web墨卡托如果要和已有數(shù)據(jù)疊加選和目標(biāo)數(shù)據(jù)一致的坐標(biāo)系。圖片質(zhì)量PNG無損但文件大JPEG有損但體積小。做分析用PNG做展示用JPEG質(zhì)量設(shè)90以上。NoData值如果下載范圍不是矩形邊緣會(huì)有空白區(qū)域設(shè)一個(gè)NoData值比如0或-9999方便后續(xù)裁剪。拼接完成后用QGIS打開輸出的GeoTIFF檢查位置是否正確。可以疊加一個(gè)已知的矢量邊界看看是否套合。如果發(fā)現(xiàn)偏移大概率是坐標(biāo)系選錯(cuò)了重新輸出一次即可。4. 常見問題與排查技巧實(shí)錄4.1 下載的地圖在GIS軟件里位置不對(duì)這是最常見的問題原因通常有三個(gè)坐標(biāo)系不匹配。下載時(shí)選的坐標(biāo)系和GIS軟件里其他數(shù)據(jù)的坐標(biāo)系不一致。比如底圖是Web墨卡托矢量數(shù)據(jù)是WGS84直接疊加就會(huì)偏移。解決方法是在GIS軟件里做動(dòng)態(tài)投影或者下載時(shí)就選和目標(biāo)數(shù)據(jù)一致的坐標(biāo)系。瓦片編號(hào)方案搞反了。有些地圖源用TMS方案有些用XYZ方案如果工具適配錯(cuò)了拼接出來的圖會(huì)上下顛倒。表現(xiàn)是地圖內(nèi)容正確但位置南北對(duì)調(diào)。這時(shí)候需要在工具設(shè)置里切換瓦片方案重新下載。地理范圍計(jì)算錯(cuò)誤。框選時(shí)如果地圖本身有偏移比如某些地圖源在中國區(qū)域有加密偏移下載下來的坐標(biāo)就是不準(zhǔn)確的。這種情況需要先確認(rèn)地圖源是否有偏移如果有需要在GIS軟件里做糾偏處理。4.2 下載速度慢或頻繁失敗速度慢的原因和應(yīng)對(duì)方法網(wǎng)絡(luò)帶寬不足檢查是否有其他程序占用帶寬暫停后重試。并發(fā)數(shù)過高觸發(fā)限流降低并發(fā)數(shù)到5以下增加請(qǐng)求間隔。地圖源服務(wù)器響應(yīng)慢換一個(gè)地圖源或者換個(gè)時(shí)間段下載。DNS解析慢在系統(tǒng)hosts里綁定地圖服務(wù)器IP跳過DNS查詢。頻繁失敗的處理流程先暫停等5分鐘降低并發(fā)數(shù)重新開始。如果還是失敗換地圖源。如果所有地圖源都失敗檢查本機(jī)網(wǎng)絡(luò)是否正常。4.3 輸出文件太大或太小文件太大通常是層級(jí)選高了或者輸出格式選了PNG。一個(gè)第18層、100平方公里的GeoTIFFPNG格式可能在2到5GBJPEG格式在500MB到1GB。如果只是做展示JPEG足夠如果要做像素級(jí)分析PNG更合適。文件太小可能是下載不完整或者拼接時(shí)出了問題。檢查瓦片緩存目錄看看實(shí)際下載了多少張和預(yù)計(jì)數(shù)量對(duì)比。如果差很多說明下載中斷了需要重新下載缺失的部分。4.4 導(dǎo)入其他GIS軟件時(shí)的兼容性問題熱詞里有人問gis導(dǎo)入天地圖底圖和gis文件投影轉(zhuǎn)化這兩個(gè)問題經(jīng)常一起出現(xiàn)。天地圖的服務(wù)是WMS/WMTS格式全能電子地圖下載器下載的是瓦片格式兩者在GIS軟件里的加載方式不同。如果要在ArcGIS里加載下載好的底圖直接用添加數(shù)據(jù)即可GeoTIFF會(huì)自動(dòng)識(shí)別坐標(biāo)。如果要在QGIS里加載同樣直接拖入。如果要在AutoCAD里用需要先轉(zhuǎn)成CAD支持的格式或者用ArcGIS做格式轉(zhuǎn)換。投影轉(zhuǎn)化方面如果下載的是Web墨卡托要在ArcGIS里轉(zhuǎn)成WGS84用投影柵格工具即可。注意柵格投影轉(zhuǎn)換會(huì)有重采樣選雙線性插值或三次卷積效果較好。4.5 常見問題速查表問題現(xiàn)象可能原因解決方法地圖位置偏移坐標(biāo)系不匹配統(tǒng)一坐標(biāo)系或做動(dòng)態(tài)投影地圖上下顛倒瓦片方案搞反切換TMS/XYZ方案重新下載下載速度極慢并發(fā)過高被限流降低并發(fā)數(shù)增加間隔輸出文件異常大層級(jí)過高或格式不當(dāng)降低層級(jí)改用JPEG拼接后有空白部分瓦片下載失敗檢查失敗列表補(bǔ)下缺失瓦片導(dǎo)入CAD后坐標(biāo)不對(duì)CAD不支持地理坐標(biāo)先轉(zhuǎn)成平面坐標(biāo)再導(dǎo)入歷史影像無法下載地圖源不提供歷史圖層換支持歷史影像的源行政邊界不準(zhǔn)確地圖源邊界數(shù)據(jù)舊換用官方邊界數(shù)據(jù)源5. 進(jìn)階技巧與效率提升方案5.1 批量下載與任務(wù)隊(duì)列管理如果需要下載多個(gè)區(qū)域或多個(gè)層級(jí)的數(shù)據(jù)手動(dòng)一個(gè)個(gè)操作效率太低。工具通常支持任務(wù)隊(duì)列功能可以預(yù)先配置多個(gè)下載任務(wù)然后讓工具依次執(zhí)行。配置方法在任務(wù)管理界面新建任務(wù)設(shè)置范圍、層級(jí)、地圖源、輸出路徑保存后加入隊(duì)列。隊(duì)列支持排序和優(yōu)先級(jí)調(diào)整重要的任務(wù)放前面。執(zhí)行時(shí)可以設(shè)置完成后關(guān)機(jī)或完成后休眠適合掛機(jī)下載。我一般會(huì)按區(qū)域分塊每個(gè)塊單獨(dú)一個(gè)任務(wù)輸出到不同的文件夾。這樣即使某個(gè)任務(wù)失敗也不影響其他任務(wù)。而且分塊下載后后續(xù)做鑲嵌或裁剪也更靈活。5.2 歷史影像的獲取與對(duì)比分析熱詞里歷史衛(wèi)星影像和衛(wèi)星歷史影像圖出現(xiàn)頻率很高說明這是很多人的剛需。全能電子地圖下載器3.0如果支持歷史影像圖層可以通過切換時(shí)間軸來下載不同時(shí)期的影像。操作上先確認(rèn)地圖源是否提供歷史影像。有些地圖服務(wù)有歷史或時(shí)間序列選項(xiàng)選中后會(huì)出現(xiàn)時(shí)間滑塊。拖動(dòng)滑塊到目標(biāo)時(shí)間然后按正常流程下載即可。下載多期影像后可以在GIS軟件里做變化檢測(cè)。方法是對(duì)兩期影像做差值運(yùn)算或分類后比較提取變化區(qū)域。注意不同時(shí)期的影像可能存在色差和分辨率差異需要先做輻射歸一化和重采樣。5.3 與GIS分析流程的對(duì)接下載的底圖最終要服務(wù)于分析。常見的對(duì)接方式作為參考底圖在ArcGIS或QGIS里放在最底層上面疊加矢量數(shù)據(jù)用于制圖輸出。作為分析數(shù)據(jù)做柵格計(jì)算、分類、提取等操作。注意柵格分辨率要和地圖層級(jí)匹配第18層約0.6米第17層約1.2米。作為三維底圖導(dǎo)入SketchUp、Blender或ArcGIS Pro做三維場(chǎng)景。需要先把柵格轉(zhuǎn)成紋理再貼到地形模型上。作為切片底圖如果要在Web端發(fā)布需要把大圖切成瓦片包。ArcGIS的創(chuàng)建地圖切片包工具可以完成這個(gè)操作。熱詞里gis中創(chuàng)建地圖切片包和gis地圖下鉆就是這類需求。切片包適合在ArcGIS Online或Portal上發(fā)布下鉆則是通過層級(jí)切換實(shí)現(xiàn)不同詳細(xì)程度的展示。5.4 面積計(jì)算與平差處理熱詞里gis計(jì)算永久基本農(nóng)田兩位數(shù)面積和gis面積平差工具反映了面積計(jì)算的精度問題。用下載的底圖做面積量算時(shí)需要注意底圖坐標(biāo)系如果是Web墨卡托面積會(huì)有變形因?yàn)槟ㄍ型队霸诟呔暥鹊貐^(qū)面積放大嚴(yán)重。做面積計(jì)算前先轉(zhuǎn)成等面積投影如Albers或Lambert。柵格轉(zhuǎn)矢量后的面積和實(shí)際面積可能有差異因?yàn)闁鸥襁吔缡卿忼X狀的。用柵格轉(zhuǎn)面工具后再做平滑或概化處理。面積平差是指多個(gè)地塊面積之和與總面積不一致時(shí)按比例調(diào)整各地塊面積。ArcGIS的平差工具或Python腳本可以實(shí)現(xiàn)。5.5 數(shù)據(jù)管理與備份策略下載的數(shù)據(jù)量可能很大管理不好容易亂。建議按以下結(jié)構(gòu)組織項(xiàng)目名稱/ ├── 原始瓦片/ │ ├── 衛(wèi)星_18層/ │ ├── 邊界_14層/ │ └── 地形_16層/ ├── 拼接輸出/ │ ├── 衛(wèi)星_18層.tif │ ├── 邊界_14層.tif │ └── 地形_16層.tif ├── 分析結(jié)果/ │ ├── 變化檢測(cè)/ │ └── 面積統(tǒng)計(jì)/ └── 文檔/ └── 數(shù)據(jù)說明.txt數(shù)據(jù)說明文件里記錄下載時(shí)間、地圖源、層級(jí)、坐標(biāo)系、范圍等信息方便后續(xù)追溯。備份時(shí)只備份拼接輸出和分析結(jié)果原始瓦片可以重新下載不必占用備份空間。6. 個(gè)人實(shí)操心得與幾個(gè)容易踩的坑說幾個(gè)我實(shí)際用下來覺得值得注意的點(diǎn)。第一不要迷信最高層級(jí)。很多人一上來就選第19層、第20層覺得越清晰越好。實(shí)際上大部分地圖源在第18層以上都是插值放大的下載下來文件巨大但信息量沒有增加。先下載第17層看看效果如果確實(shí)需要更高清晰度再針對(duì)重點(diǎn)區(qū)域下載第18層。第二下載前先做小范圍測(cè)試。選一個(gè)1平方公里左右的小區(qū)域下載第18層拼接輸出導(dǎo)入GIS檢查位置和清晰度。確認(rèn)沒問題后再擴(kuò)大范圍。這個(gè)習(xí)慣能幫你省下大量重復(fù)下載的時(shí)間。第三注意地圖源的更新頻率。有些地圖源的衛(wèi)星影像幾年才更新一次下載前先看看影像日期。如果要做現(xiàn)勢(shì)性分析得找更新頻率高的源。第四輸出路徑不要有中文和空格。雖然現(xiàn)代GIS軟件對(duì)中文路徑的支持好了很多但為了避免不必要的麻煩還是用英文和數(shù)字命名文件夾和文件。第五下載完成后及時(shí)整理瓦片緩存。瓦片緩存目錄會(huì)隨著下載次數(shù)增加而膨脹定期清理不再需要的緩存能釋放大量磁盤空間。第六如果要做歷史影像對(duì)比盡量選擇同一季節(jié)的影像。不同季節(jié)的植被、光照條件差異很大會(huì)影響變化檢測(cè)的準(zhǔn)確性。最后分享一個(gè)小技巧如果下載的區(qū)域跨了多個(gè)地圖源的覆蓋范圍可以分塊下載后拼接。比如A源覆蓋西半部分B源覆蓋東半部分分別下載后在GIS軟件里做鑲嵌。鑲嵌時(shí)注意接邊處的色差可以用直方圖匹配來勻色。這個(gè)工具后續(xù)還可以和Python腳本結(jié)合實(shí)現(xiàn)自動(dòng)化下載。比如用requests庫模擬瓦片請(qǐng)求用rasterio庫做拼接和投影轉(zhuǎn)換用geopandas做范圍計(jì)算。這樣就能把整個(gè)流程腳本化適合需要頻繁更新底圖的場(chǎng)景。