據(jù)處理全流程:從WGS84到三維白模)
簡介銀川市建筑輪廓帶高度屬性矢量SHP數(shù)據(jù)合集采用全球通用的WGS84坐標系屬于獨立采集的非OSM數(shù)據(jù)面向城市規(guī)劃、建筑設(shè)計、GIS開發(fā)與科研人員可用于城市三維建模、天際線設(shè)計、日照輻射分析、通風(fēng)模擬、災(zāi)害評估與應(yīng)急管理等空間分析場景。壓縮包內(nèi)共9個文件核心文件為Yinchuan_Buildings_DWG-Polygon.shp并包含.shx幾何索引、.dbf屬性表、.prj投影定義、.sbn/.sbx空間索引、.cpg編碼定義、.xml元數(shù)據(jù)及說明txt構(gòu)成一套完整的Shapefile標準組件可直接在ArcGIS、QGIS等軟件中加載和編輯。數(shù)據(jù)包僅2.7MB已有48人學(xué)習(xí)瀏覽數(shù)據(jù)中每棟建筑均具有獨立輪廓與高度屬性可支持精細的空間查詢、統(tǒng)計分析和專題制圖。利用這些數(shù)據(jù)能快速掌握銀川市建筑分布與高度特征為城市精細化管理、建筑規(guī)劃審批及災(zāi)害風(fēng)險評估提供可靠依據(jù)非OSM來源也保證了內(nèi)容的獨特性和準確性。 搞GIS的同行應(yīng)該都有這種經(jīng)歷項目方案里要擺一版帶高度的建筑輪廓白模結(jié)果手里的SHP要么是OSM上扒下來的稀疏輪廓要么是只有平面沒有高度的一張餅。上個月接銀川的活兒甲方點名要市域重點片區(qū)的三維形態(tài)分析我翻遍手頭的公開數(shù)據(jù)源最后是這份“銀川市建筑輪廓帶高度屬性矢量SHP數(shù)據(jù)合集wgs84坐標系非OSM.zip”救了場。說救場不夸張。這份數(shù)據(jù)把最耗時間的底子活干完了——建筑輪廓面齊全屬性表里還帶著高度字段坐標系是WGS84解壓后可以直接進GIS拉伸成三維白模。下面就把我拿到這份數(shù)據(jù)后的完整處理過程寫出來包括SHP怎么檢查、坐標系怎么驗證、高度字段怎么改造、白模怎么生成以及各類報錯怎么處理。內(nèi)容不挑軟件ArcGIS和QGIS雙線都講剛?cè)腴TGIS的小白和干了多年的老手都能找到能用的部分。1. 先弄明白這份數(shù)據(jù)解決什么問題1.1 建筑輪廓帶高度為什么這么值錢建筑輪廓面到處都能搞到但帶高度屬性的就不多了。在GIS里一個帶高度的建筑面集合意味著可以直接把它從二維升到三維而不用重新建模。這帶來的是一連串后續(xù)應(yīng)用城市天際線分析把建筑輪廓按高度拉伸成體塊可以直觀看出哪個片區(qū)高、哪個片區(qū)低體量估算與規(guī)劃審查面積乘以高度可以快速算出單棟建筑體量比人工測量快一個數(shù)量級環(huán)境模擬的建?;A(chǔ)風(fēng)環(huán)境、噪聲模擬、太陽能分析都需要三維障礙物哪怕是粗糙的白模也夠用。銀川這種帶高度屬性的建筑輪廓數(shù)據(jù)本身就算稀缺資源。尤其在城市更新、重點片區(qū)設(shè)計、歷史街區(qū)高度管控這些項目里一份能直接拉伸的SHP往往能省掉外包建模一大筆費用。1.2 “非OSM”說明它比免費數(shù)據(jù)精細得多數(shù)據(jù)包標題里特意寫了“非OSM”這種標注在圈內(nèi)基本等于告訴你這不是OpenStreetMap的志愿者數(shù)據(jù)而是經(jīng)過專業(yè)加工的成果。OSM建筑數(shù)據(jù)在國內(nèi)很多城市都存在覆蓋不足、輪廓粗糙、屬性缺失的問題尤其缺少高度信息。而“非OSM”這份數(shù)據(jù)從實際打開的效果看輪廓邊界規(guī)整、建筑切分合理高度字段也有完整值明顯是遙感解譯或航測對象提取得到的。這種數(shù)據(jù)在做規(guī)劃分析時才敢放心拿來做量化計算。1.3 WGS84坐標系是“國際通用”但用之前要留個心眼WGS84是GPS和全球絕大多數(shù)網(wǎng)絡(luò)地圖通用的坐標系優(yōu)點是不挑軟件、不挑底圖加載影像和在線地圖基本無縫匹配。但國內(nèi)測繪項目有時要求CGCS2000或西安80。這里要區(qū)分兩個層面WGS84和CGCS2000的差異在厘米級日常分析和制圖幾乎可以忽略但如果你需要跟本地測繪成果套合或者交付成果給測繪部門就必須做坐標轉(zhuǎn)換。所以在動手前先確認項目要求。如果只是自己做分析、出效果圖WGS84直接用就行要交正式成果再走第4節(jié)的轉(zhuǎn)換流程。2. 拿到SHP之后先做三件事再動手2.1 檢查SHP配套文件是否齊全很多第一次接觸SHP的人以為它是一個文件實際上Shapefile是一組文件的名字。最基本四件套如下表后綴作用缺失影響.shp幾何主體無法打開.shx幾何索引讀取變慢.dbf屬性表字段全丟.prj坐標系描述軟件猜錯坐標系解壓zip后先確認這四件套都在。我特別強調(diào).prj因為一旦缺失ArcGIS或QGIS只會把它當“未知坐標系”疊加底圖時必然錯位。如果這份數(shù)據(jù)沒帶.prj可以依據(jù)坐標范圍反推銀川的經(jīng)度大約在東經(jīng)106度左右緯度在北緯38度左右坐標值在這個范圍且是十進制度數(shù)可以基本判斷為WGS84經(jīng)緯度坐標。2.2 zip解壓階段容易踩的坑SHP數(shù)據(jù)包解壓不是“隨意解完就行”實際操作中我吃過不少虧別在壓縮包內(nèi)直接雙擊打開shp配套文件識別不全解壓路徑盡量用英文別用帶空格的目錄某些QGIS插件和腳本會掛解壓提示“invalid zip archive: could not find eocd”一般是壓縮包沒下完或二次壓縮重下或找到內(nèi)層壓縮包再解。還有一件事要注意數(shù)據(jù)包如果來自不同渠道建議解壓后先看一眼總大小和文件數(shù)跟發(fā)布說明對一下。文件數(shù)對不上說明解壓不完整后面再怎么處理都會出問題。2.3 打開屬性表先識別高度字段SHP加載進GIS后第一件事是打開屬性表找到高度字段。常見命名有HEIGHT、H、H_DZ、FLOOR、樓層等??梢酝ㄟ^字段值分布判斷單位值在3到200之間基本是米直接能用值在1到30之間且都是整數(shù)大概率是樓層數(shù)需要轉(zhuǎn)成米。樓層轉(zhuǎn)高度我很常用字段計算器表達式如下FLOOR * 3.2這里的3.2是住宅層高的經(jīng)驗值。如果是混合業(yè)態(tài)可以用CASE WHEN分區(qū)分業(yè)態(tài)或者先按統(tǒng)一層高處理后續(xù)在白模階段再整體微調(diào)。這個轉(zhuǎn)換務(wù)必新增一列“H_EST”不要直接改原字段保留原始數(shù)據(jù)方便回退。3. 把輪廓面拉伸成三維白模的兩條路線3.1 路線AArcGIS系軟件的經(jīng)典拉伸法ArcGIS系軟件做建筑白模的思路非常成熟。用ArcGIS Pro舉例加載SHP圖層右鍵圖層打開符號系統(tǒng)圖層繪制類型選“面”符號效果選“拉伸”拉伸表達式選高度字段單位選米在3D模式下查看效果。ArcScene的操作略有不同需要在圖層屬性里找到“拉伸”選項卡勾選“拉伸圖層中的要素”高度字段選中即可。這里的注意事項是ArcGIS拉伸只是顯示效果不會生成一個真正的三維模型文件。如果你想導(dǎo)出模型得走第4.3節(jié)的路線。3.2 路線BQGIS免費方案效果也很能打如果不想依賴商業(yè)授權(quán)QGIS完全能扛起這條線。以QGIS 3.x為例加載SHP文件右鍵圖層圖層屬性切到“3D視圖”選項卡在“高度”里選高度字段單位選米菜單欄“視圖”中選擇“3D地圖視圖”再加載圖層即可查看。QGIS 3D視圖的效果足夠應(yīng)付絕大多數(shù)方案匯報。再加上QuickMapServices插件可以把影像底圖直接疊加進去白模與真實底圖對照起來看視覺說服力很強。如果你需要給不懂GIS的同事發(fā)一份可交互的成果可以用qgis2threejs插件把3D視圖導(dǎo)出成網(wǎng)頁版HTML對方雙擊就能瀏覽不需要裝任何軟件。3.3 拉伸之前先修幾何否則白模長歪直接在原始SHP上拉伸很可能會遇到三類幾何問題自相交面導(dǎo)致體塊扭曲、相鄰建筑共邊未對齊產(chǎn)生縫隙、細碎面導(dǎo)致白模像碎玻璃。我在處理銀川數(shù)據(jù)時先用QGIS的“修復(fù)幾何”Fix geometries工具跑了一遍再把面積小于10平方米的碎片面刪除。刪除前先在屬性表里用字段計算器加一個AREA字段然后按面積篩選。這個思路對任何城市都適用具體面積閾值可以根據(jù)數(shù)據(jù)精度調(diào)整。4. 進階坐標轉(zhuǎn)換、批量裁剪、轉(zhuǎn)3DTiles4.1 WGS84到底要不要轉(zhuǎn)CGCS2000我在第1.3節(jié)留了個話頭這里展開說。判斷標準主要有兩條如果數(shù)據(jù)只用于自建項目的分析、出圖、三維展示W(wǎng)GS84直接用千萬別為了“看起來正規(guī)”亂轉(zhuǎn)轉(zhuǎn)一次就多一次誤差如果要跟本地測繪成果套合、交付正式成果才需要轉(zhuǎn)成CGCS2000。轉(zhuǎn)換操作在ArcGIS里用“投影”工具目標坐標系選擇“CGCS2000 / 3-degree Gauss-Kruger zone 35”中央經(jīng)線105E這個帶號覆蓋銀川區(qū)域。如果精度要求高還要配置從WGS84到CGCS2000的地理變換參數(shù)具體參數(shù)需向當?shù)販y繪部門獲取。QGIS里用“重投影圖層”工具效果一樣。轉(zhuǎn)完以后檢查一下坐標值的數(shù)量級從經(jīng)緯度變成幾百萬的米制數(shù)值是正常的。這里說的帶號35指的是高斯-克呂格3度分帶跟UTM的Zone編號不是一回事拿到數(shù)據(jù)時別搞混。4.2 按區(qū)縣范圍批量裁剪做全市范圍的項目時經(jīng)常需要把這份SHP按區(qū)縣拆開。ArcGIS用戶可以建模型構(gòu)建器用“迭代要素類”把區(qū)縣邊界逐個作為裁剪范圍對建筑圖層循環(huán)執(zhí)行裁剪。如果嫌模型構(gòu)建器麻煩QGIS里用“裁剪”工具加批量模式也行。我更推薦命令行效率最高。用ogr2ogr裁剪單個區(qū)縣ogr2ogr p a hrefhttps://download.csdn.net/download/weixin_56231426/92510341 stylecolor:#ec7500;font-size:14px; 本文還有配套的精品資源點擊獲取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p