地震動(dòng)峰值加速度區(qū)劃圖shp矢量化數(shù)據(jù)實(shí)用指南)
簡(jiǎn)介GIS矢量數(shù)據(jù)是地理信息分析的基礎(chǔ)它將空間地物轉(zhuǎn)換為可計(jì)算、可查詢的幾何對(duì)象。地震動(dòng)峰值加速度區(qū)劃圖作為抗震設(shè)防的核心依據(jù)其shp矢量化成果讓工程選址與風(fēng)險(xiǎn)評(píng)估從“看圖”邁向“用數(shù)據(jù)”。這類矢量數(shù)據(jù)不僅支持精確的空間查詢與疊加分析還能與行政區(qū)劃、地形地貌等圖層融合為結(jié)構(gòu)設(shè)計(jì)、巖土勘察、城市規(guī)劃提供量化底圖。在ArcGIS或QGIS中用戶可通過空間連接快速提取項(xiàng)目點(diǎn)的峰值加速度檔位也可利用相交、裁剪等工具進(jìn)行區(qū)域統(tǒng)計(jì)。本文從shp文件結(jié)構(gòu)、字段含義入手系統(tǒng)講解坐標(biāo)系處理、屬性編碼、格式轉(zhuǎn)換及常見故障排查幫助工程與GIS從業(yè)者高效運(yùn)用地震區(qū)劃矢量數(shù)據(jù)。 做巖土、結(jié)構(gòu)或者GIS的人看到《中國(guó)地震動(dòng)峰值加速度區(qū)劃圖shp文件矢量化成果.rar》這個(gè)文件應(yīng)該馬上意識(shí)到這是一份能直接干活的數(shù)據(jù)。它不是一張掃描的PDF也不是柵格jpg而是把國(guó)標(biāo)圖里那些分區(qū)邊界真正轉(zhuǎn)成了帶坐標(biāo)、帶屬性、能查詢的矢量shp圖層。我拿到這套數(shù)據(jù)后的第一反應(yīng)是以前在紙圖上估參數(shù)、拿尺子量距離的日子可以結(jié)束了。這套成果包適合誰結(jié)構(gòu)工程師前期選址、巖土工程師做場(chǎng)地評(píng)價(jià)、GIS數(shù)據(jù)分析師做防災(zāi)底圖、規(guī)劃院做城市抗震風(fēng)險(xiǎn)摸排都會(huì)用到它。你只需要在ArcGIS或者QGIS里把shp拖進(jìn)去就能知道某個(gè)經(jīng)緯度落在哪個(gè)峰值加速度分區(qū)里還能繼續(xù)做疊加分析、裁剪、統(tǒng)計(jì)、出圖。這篇文章我就把它從解壓到實(shí)操的整個(gè)鏈路講透包括SHP文件的文件結(jié)構(gòu)、字段含義、坐標(biāo)系坑、轉(zhuǎn)CAD、轉(zhuǎn)txt、轉(zhuǎn)3dtiles這些常見操作也把最容易翻車的地方都列出來。1. 這個(gè)矢量化成果包到底解決什么問題1.1 地震動(dòng)峰值加速度區(qū)劃圖是什么地震動(dòng)峰值加速度簡(jiǎn)單說就是某一場(chǎng)地在未來一定時(shí)間內(nèi)可能遭遇的地面運(yùn)動(dòng)最大加速度單位是g通常寫成0.10g、0.15g、0.20g這樣的檔位。國(guó)內(nèi)工程界做抗震設(shè)計(jì)時(shí)首先要確定項(xiàng)目所在地的基本設(shè)防參數(shù)依據(jù)就是《中國(guó)地震動(dòng)參數(shù)區(qū)劃圖》國(guó)家標(biāo)準(zhǔn)也就是很多人常說的GB 18306。這部標(biāo)準(zhǔn)把全國(guó)按地震危險(xiǎn)程度劃分成不同的區(qū)每個(gè)區(qū)的峰值加速度不同抗震設(shè)防要求也不同。這份區(qū)劃圖涉及的不只是峰值加速度一個(gè)指標(biāo)還配套了設(shè)計(jì)地震分組、特征周期等參數(shù)。不過很多矢量化成果包重點(diǎn)提取的是峰值加速度分區(qū)邊界因?yàn)樗墙Y(jié)構(gòu)工程師最常用、最容易直觀判斷的那一項(xiàng)。比如你做一個(gè)廠址選址首先要把工程所在區(qū)域劃到某個(gè)設(shè)防檔次里再結(jié)合場(chǎng)地土類別做進(jìn)一步計(jì)算。以前用紙圖你得拿比例尺一點(diǎn)一點(diǎn)對(duì)坐標(biāo)現(xiàn)在有了shp直接空間查詢幾秒鐘出結(jié)果。1.2 為什么要矢量化從“看圖”到“用數(shù)據(jù)”紙圖和柵格圖本質(zhì)上都是“一張畫”你只能靠眼睛判斷某個(gè)點(diǎn)大概在哪個(gè)區(qū)域。矢量化以后每個(gè)區(qū)域邊界變成由坐標(biāo)點(diǎn)串組成的面每個(gè)面帶著屬性字段比如峰值加速度值、所屬檔位、面積等。這樣一來就能做很多以前做不了的事精確查詢?nèi)我饨?jīng)緯度坐標(biāo)落在哪個(gè)分區(qū)可以直接用空間分析工具得到答案不需要肉眼判讀。疊加分析把區(qū)劃圖和地震斷裂帶、地形地貌、人口分布、行政區(qū)劃疊加輸出風(fēng)險(xiǎn)等級(jí)圖。裁剪統(tǒng)計(jì)只取某個(gè)省、某個(gè)流域、某個(gè)規(guī)劃園區(qū)范圍內(nèi)的數(shù)據(jù)統(tǒng)計(jì)不同設(shè)防等級(jí)的面積占比。多格式轉(zhuǎn)換shp可以轉(zhuǎn)CAD用于制圖轉(zhuǎn)txt用于外部程序計(jì)算轉(zhuǎn)geojson/3dtiles用于Web端展示。說白了矢量化把一個(gè)“只能看的數(shù)據(jù)”變成了“可以進(jìn)流程的數(shù)據(jù)”。這在項(xiàng)目評(píng)審、可研報(bào)告、機(jī)場(chǎng)選址、管線工程等場(chǎng)景下價(jià)值很大。1.3 成果包適合誰、什么時(shí)候用我接觸過幾類用得最頻繁的人。第一類是結(jié)構(gòu)工程師他們?cè)诜桨鸽A段想知道建筑高度、結(jié)構(gòu)形式大概需要什么設(shè)防水準(zhǔn)直接拿shp點(diǎn)一下坐標(biāo)就清楚了。第二類是巖土工程師做地震安全性評(píng)價(jià)或者場(chǎng)地類別判定時(shí)需要把PGA分檔作為輸入?yún)?shù)。第三類是GIS工程師他們負(fù)責(zé)搭建城市抗震防災(zāi)數(shù)據(jù)庫(kù)需要把區(qū)劃圖揉進(jìn)自己的底圖體系里。還有做城市更新、房屋普查、保險(xiǎn)精算的也會(huì)用這套數(shù)據(jù)做批量評(píng)估。需要注意這個(gè)shp成果是“區(qū)劃圖數(shù)字化版本”本質(zhì)上是國(guó)家標(biāo)準(zhǔn)圖的屬性轉(zhuǎn)譯。它適合用來做初步判斷、空間統(tǒng)計(jì)和成果表達(dá)但法定依據(jù)仍然要以正式出版物或者權(quán)威部門發(fā)布的電子圖為準(zhǔn)。重大工程、核設(shè)施、大壩這類項(xiàng)目該做的場(chǎng)地地震安全性評(píng)價(jià)一項(xiàng)都不能少不能拿一份shp去替代專業(yè)評(píng)價(jià)報(bào)告。2. 數(shù)據(jù)內(nèi)容與文件結(jié)構(gòu)拆解2.1 RAR解壓后的文件清單拿到這個(gè)壓縮包第一件事是解壓。解壓后你會(huì)看到一套以“shp”為核心的伴生文件組。ESRI Shapefile不是“一個(gè)文件”而是一組文件通過相同主文件名組成一個(gè)完整圖層。常見的伴生文件包括文件后綴作用缺失后果.shp存儲(chǔ)圖形幾何信息點(diǎn)、線、面坐標(biāo)圖層完全無法顯示.shx空間索引記錄圖形記錄的偏移位置有些軟件打開會(huì)報(bào)錯(cuò)或非常卡.dbf屬性表存儲(chǔ)每個(gè)要素的非幾何屬性屬性表為空.prj投影與坐標(biāo)系描述軟件默認(rèn)用未知坐標(biāo)系可能發(fā)生偏移.cpg字符編碼說明中文屬性容易出現(xiàn)亂碼.sbn/.sbx可選的空間索引可自動(dòng)重建不影響我習(xí)慣解壓后先看一眼根目錄把主文件都平鋪在一個(gè)獨(dú)立的文件夾里不要散落在桌面上更不要放在中文路徑特別深的目錄。ArcGIS對(duì)路徑長(zhǎng)度和特殊字符比較敏感路徑太深或者文件夾名包含一些特殊符號(hào)時(shí)打開往往報(bào)“無法識(shí)別數(shù)據(jù)”或彈出“Failed to open shapefile”的錯(cuò)誤。2.2 SHP格式的幾何和屬性原理Shapefile最大的特點(diǎn)是“無拓?fù)洹泵總€(gè)面都是獨(dú)立的相鄰兩個(gè)區(qū)域如果共用一個(gè)邊界它們的邊界線是重復(fù)存儲(chǔ)的。這個(gè)特點(diǎn)帶來的問題是如果直接用普通方式編輯可能出現(xiàn)相鄰面之間出現(xiàn)細(xì)微縫隙或者重疊。好在區(qū)劃圖這種成果數(shù)據(jù)是生產(chǎn)方已經(jīng)整理好的一般不會(huì)出現(xiàn)大的拓?fù)溴e(cuò)誤但你做裁剪或融合操作時(shí)最好留意一下是否有重疊。對(duì)于一個(gè)面圖層.shp文件里存儲(chǔ)的是一組組坐標(biāo)串。區(qū)劃圖的每個(gè)分區(qū)邊界實(shí)際上是由成千上萬個(gè)經(jīng)緯度或投影坐標(biāo)點(diǎn)組成的折線閉合而成。屬性表dbf則是經(jīng)典的數(shù)據(jù)表結(jié)構(gòu)每一行對(duì)應(yīng)一個(gè)面要素。所以你能在一個(gè)圖層里同時(shí)擁有幾何和屬性這是shp成熟且至今仍有大量用戶的原因。如果你想快速瀏覽文件內(nèi)容而電腦沒有安裝GIS軟件也可以用Python讀一下比如用pyshp庫(kù)打印圖層的幾何類型和字段名。下面這段代碼可以看一個(gè)shp的基本信息import shapefile shp_path 中國(guó)地震動(dòng)峰值加速度區(qū)劃圖.shp sf shapefile.Reader(shp_path, encodingutf-8) print(幾何類型:, sf.shapeType) print(要素?cái)?shù)量:, len(sf)) for field in sf.fields: print(字段:, field) # 讀取第一個(gè)要素的幾何信息 shape sf.shape(0) print(第一個(gè)要素的點(diǎn)數(shù):, len(shape.points))運(yùn)行結(jié)果能幫你快速確認(rèn)這個(gè)文件是不是面圖層、字段名是什么以及有沒有讀取出中文屬性。有時(shí)候cpg缺失導(dǎo)致dbf里的中文亂碼用pyshp直接讀出來可能是一堆“錕斤拷”類型的亂碼那就需要手動(dòng)指定編碼。2.3 核心字段解讀與抗震設(shè)計(jì)邏輯打開屬性表后你大概率會(huì)看到這些字段FID、Shape、編號(hào)、峰值加速度值等。峰值加速度通常是一個(gè)數(shù)值字段比如0.10、0.15、0.20、0.30也可能是字符串“0.10g”這種帶單位的格式。如果是后者做聚合統(tǒng)計(jì)和分類時(shí)記得先轉(zhuǎn)成數(shù)值字段。國(guó)標(biāo)里峰值加速度分檔大致有0.04g、0.05g、0.10g、0.15g、0.20g、0.30g、0.40g等檔位這個(gè)梯度是從低烈度區(qū)到高烈度區(qū)逐步上升的。注意建筑抗震設(shè)計(jì)時(shí)用到的“設(shè)計(jì)基本加速度”并不完全等于場(chǎng)地實(shí)際可能的最大加速度它是在若干概率水平、阻尼比、場(chǎng)地條件基礎(chǔ)上綜合得到的。GB 18306-2015給出的是II類場(chǎng)地條件下的數(shù)值實(shí)際工程如果場(chǎng)地是I類可能對(duì)特征周期做調(diào)整III、IV類場(chǎng)地則要按規(guī)范對(duì)設(shè)計(jì)地震動(dòng)參數(shù)進(jìn)行修正。你可以把它理解為“基準(zhǔn)值”不是最終值。這個(gè)字段在后續(xù)做符號(hào)化和重分類時(shí)很有用。比如我想讓0.05g和0.10g的圖斑配色區(qū)分明顯就可以在ArcGIS Pro里基于這個(gè)字段做分級(jí)渲染。如果字段還有“設(shè)防水準(zhǔn)”或“地震分組”也建議保留這些字段和特征周期相關(guān)結(jié)構(gòu)計(jì)算時(shí)會(huì)用到。3. 實(shí)操在ArcGIS/QGIS中快速上手這套數(shù)據(jù)3.1 打開shp與坐標(biāo)系檢查用ArcGIS Pro打開shp非常直接在Catalog面板里找到文件夾把shp文件拖到地圖視圖中就完成了。如果沒有Catalog也可以在“添加數(shù)據(jù)”里選擇。拖進(jìn)去之后我建議先做三件事看一眼內(nèi)容列表里的圖層符號(hào)應(yīng)顯示為多邊形面而不是點(diǎn)或線。右鍵圖層打開屬性表確認(rèn)屬性記錄數(shù)不為0。雙擊圖層查看“源”或“數(shù)據(jù)源”選項(xiàng)卡查看坐標(biāo)系字符串。坐標(biāo)系是矢量化成果最容易出問題的環(huán)節(jié)。區(qū)劃圖成果一般使用CGCS2000地理坐標(biāo)系或者與之配套的高斯投影坐標(biāo)但不同生產(chǎn)單位處理方式不一樣。如果.prj文件寫的是“GCS_China_Geographic_Coordinate_System_2000”那它用的是經(jīng)緯度坐標(biāo)單位是度。如果.prj缺失ArcGIS會(huì)默認(rèn)顯示Unknown這時(shí)候疊加你的項(xiàng)目數(shù)據(jù)十有八九會(huì)偏移。遇到未知坐標(biāo)系我不能憑空硬套。一個(gè)靠譜的方法是先看文件注釋、數(shù)據(jù)包說明或者壓縮包內(nèi)附帶的說明文檔沒有文檔的話再根據(jù)坐標(biāo)范圍判斷如果X范圍是73到135、Y范圍是18到54左右基本可以確定是經(jīng)緯度坐標(biāo)對(duì)應(yīng)CGCS2000或WGS84如果X是七位或八位數(shù)那大概率是投影坐標(biāo)。用ArcGIS Pro的“定義投影”工具手動(dòng)指定好坐標(biāo)系再疊加其他數(shù)據(jù)就正常了。3.2 按坐標(biāo)點(diǎn)查詢地震動(dòng)參數(shù)這是我覺得這套數(shù)據(jù)最有用的場(chǎng)景。假設(shè)你在項(xiàng)目現(xiàn)場(chǎng)測(cè)了一個(gè)坐標(biāo)點(diǎn)比如東經(jīng)102.5度、北緯25.0度想知道它落在哪個(gè)加速度分區(qū)最快的辦法是在ArcGIS Pro中導(dǎo)入坐標(biāo)點(diǎn)可以使用“Excel轉(zhuǎn)表”再把表轉(zhuǎn)成XY點(diǎn)圖層。使用“疊加分析—空間連接”或者“選擇位置”工具讓點(diǎn)圖層和PGA面圖層做空間匹配。在連接字段中勾選PGA字段輸出的點(diǎn)就會(huì)帶上對(duì)應(yīng)的峰值加速度值。也可以用Python的arcpy腳本批量處理這樣不用反復(fù)點(diǎn)界面import arcpy pga_fc 中國(guó)地震動(dòng)峰值加速度區(qū)劃圖.shp point_fc 項(xiàng)目選址點(diǎn).shp output_fc 選址點(diǎn)帶PGA.shp # 空間連接把面圖層的PGA字段連到點(diǎn)圖層 arcpy.analysis.SpatialJoin( target_featurespoint_fc, join_featurespga_fc, out_feature_classoutput_fc, join_operationJOIN_ONE_TO_ONE, join_typeKEEP_ALL, field_mapping, match_optionINTERSECT ) print(完成)這個(gè)操作的本質(zhì)是空間疊加判斷如果點(diǎn)在面內(nèi)部就把面的屬性附加到點(diǎn)上。注意“JOIN_ONE_TO_ONE”帶上周圍的屬性如果項(xiàng)目點(diǎn)就在邊界上有可能會(huì)出現(xiàn)一個(gè)點(diǎn)匹配到兩個(gè)相鄰面的情況這時(shí)需要人工判斷。邊界上的點(diǎn)實(shí)際上屬于哪個(gè)分區(qū)在國(guó)標(biāo)里通常有明確的邊界劃定規(guī)則落到哪個(gè)區(qū)就以哪個(gè)區(qū)的參數(shù)為準(zhǔn)。3.3 結(jié)合縣域輪廓、流域邊界做疊加分析我經(jīng)常做的操作是把PGA數(shù)據(jù)和行政區(qū)劃圖疊加統(tǒng)計(jì)每個(gè)縣的面積占比。這需要用到“按屬性選擇”和“面積制表”工具。例如處理云南省縣域輪廓shp時(shí)可以把PGA面圖層和縣級(jí)面圖層做相交Intersect相交后會(huì)得到一批小面每個(gè)小面既帶縣名又帶PGA檔位再通過“分區(qū)幾何統(tǒng)計(jì)”就能算出每個(gè)縣處于0.10g以上區(qū)域的面積占比。珠江流域這種天然地理邊界也可以用同樣的思路把PGA數(shù)據(jù)裁剪到流域范圍內(nèi)分析流域內(nèi)不同地震動(dòng)參數(shù)的分布特征。做管網(wǎng)和水利工程時(shí)一個(gè)穿越多個(gè)分區(qū)的管線需要把不同區(qū)段單獨(dú)標(biāo)出來這種疊加分析能把整條線的設(shè)防條件拆得明明白白。做這類分析時(shí)我建議先不要在原shp上直接編輯而是用“相交”或“裁剪”工具生成臨時(shí)結(jié)果這樣原始數(shù)據(jù)一直保留出錯(cuò)可以重來。3.4 數(shù)據(jù)裁剪、拆分、合并與空間檢索ArcGIS Pro里拆分shp有幾個(gè)常用手段。按字段拆分適合“每個(gè)PGA檔位一個(gè)圖層”的需求用“拆分”工具按屬性字段拆成多個(gè)shp做網(wǎng)格切片則用“創(chuàng)建漁網(wǎng)”工具先生成規(guī)則格網(wǎng)再和PGA數(shù)據(jù)相交分塊輸出。漁網(wǎng)分割在WebGIS發(fā)布前很常用因?yàn)榇笪募苯影l(fā)布會(huì)導(dǎo)致加載慢切成網(wǎng)格瓦片后客戶端性能好很多。合并多個(gè)shp則用“合并”工具選擇多個(gè)輸入文件輸出成一個(gè)圖層。合并前要確認(rèn)字段名和類型統(tǒng)一如果兩個(gè)shp的字段名相同但類型不同合并結(jié)果可能丟失數(shù)據(jù)。比如一個(gè)shp里加速度存的是文本“0.10”另一個(gè)存的是數(shù)值0.1合并前最好統(tǒng)一成數(shù)值字段。如果你用的是QGIS操作更靈活。直接拖入shp菜單“矢量—地理處理工具”里有裁剪、相交、聯(lián)合等。QGIS對(duì)中文路徑和編碼的兼容總體比ArcGIS好一些遇到亂碼可以在“數(shù)據(jù)源管理—設(shè)置圖層編碼”里手動(dòng)選GBK或UTF-8。4. 常見問題與排查技巧實(shí)錄4.1 沒有cpg文件導(dǎo)致中文亂碼這個(gè)坑太常見了。shp屬性表dbf在舊時(shí)代默認(rèn)用ANSI編碼國(guó)內(nèi)經(jīng)常是GBK而現(xiàn)在很多軟件默認(rèn)按UTF-8打開。如果壓縮包里有.cpg文件并且內(nèi)容寫的是“UTF-8”QGIS和ArcGIS一般都能正確識(shí)別如果沒有.cpg軟件會(huì)猜編碼猜錯(cuò)就出現(xiàn)一串亂碼。我的處理方法是在QGIS里手動(dòng)指定編碼打開shp前在“數(shù)據(jù)源管理器”里點(diǎn)擊“編輯”把編碼從UTF-8改成GBK預(yù)覽正常后確認(rèn)。如果確實(shí)需要長(zhǎng)期使用也可以打開dbf后另存一份UTF-8編碼的新shp。用Python處理也可以import shapefile # 按GBK讀取 sf shapefile.Reader(區(qū)劃圖.shp, encodinggbk) # 重新按UTF-8寫出 w shapefile.Writer(sf.shapeType) for field in sf.fields[1:]: w.field(*field) for record in sf.records(): w.record(*record) for shape in sf.shapes(): w.shape(shape) w.save(區(qū)劃圖_utf8.shp, encodingutf-8)如果你發(fā)現(xiàn)亂碼出現(xiàn)在屬性表的某個(gè)字段上而其他字段正常那也可能是生產(chǎn)方寫入dbf時(shí)本來就混用了編碼這種情況只能手工修正。4.2 打開shp沒有圖形或者位置不對(duì)有時(shí)候你拖進(jìn)ArcMap圖層顯示為空或者圖形整體跑到了大洋里。先別急把范圍設(shè)置成“全圖”看一遍。我用過一個(gè)辦法雙擊圖層勾選“縮放至圖層”如果還是空白打開屬性表確認(rèn)記錄數(shù)是否為0。記錄數(shù)為0說明shp文件里沒有幾何可能是文件損壞或者路徑里含特殊字符記錄數(shù)不為0但顯示不出來優(yōu)先懷疑投影定義有問題。坐標(biāo)系不匹配表現(xiàn)為“明明應(yīng)該在中國(guó)圖形卻偏到了非洲”或者“整體偏移幾公里”。這種情況通常是.prj缺失且軟件默認(rèn)用了WGS84地理坐標(biāo)但數(shù)據(jù)實(shí)際是CGCS2000或者高斯投影坐標(biāo)。我處理過一份數(shù)據(jù)坐標(biāo)范圍看起來是投影坐標(biāo)但.prj里寫的是GCS_WGS_1984導(dǎo)致加載后圖形位置完全錯(cuò)誤。修復(fù)方法是先刪掉錯(cuò)誤的坐標(biāo)定義用“定義投影”重新指定正確坐標(biāo)系。4.3 shp轉(zhuǎn)CAD、轉(zhuǎn)TXT、批量轉(zhuǎn)換要把shp轉(zhuǎn)成CAD常規(guī)路線是在ArcMap里用“導(dǎo)出至CAD”工具它會(huì)生成dwg或dxf。需要注意CAD里沒有GIS屬性表概念面和線的屬性會(huì)丟失保留的只有圖層、線型、顏色這些作圖要素。如果只想把圖斑輪廓導(dǎo)給設(shè)計(jì)院可以先用“要素轉(zhuǎn)線”把面邊界抽出來再導(dǎo)出CAD方便別人在CAD里看到清晰的邊界線。批量多個(gè)shp轉(zhuǎn)CAD可以用ArcGIS的模型構(gòu)建器做一個(gè)循環(huán)或者用FME這類軟件拖幾個(gè)轉(zhuǎn)換器就行。shp轉(zhuǎn)txt主要出現(xiàn)在外部計(jì)算和程序?qū)雸?chǎng)景。比如測(cè)定界、勘測(cè)定界里經(jīng)常需要把界址點(diǎn)坐標(biāo)列表轉(zhuǎn)成txt格式。用Python讀shp并輸出坐標(biāo)是一個(gè)簡(jiǎn)單直接的辦法import shapefile sf shapefile.Reader(區(qū)劃圖.shp, encodingutf-8) sr sf.shapeRecords() with open(區(qū)劃圖坐標(biāo).txt, w, encodingutf-8) as f: for rec in sr: # 第一個(gè)字段作為ID fid rec.record[0] for x, y in rec.shape.points: if x ! float(nan) and y ! float(nan): f.write(f{fid},{x},{y}\n)解析出來的txt如果要交給其他軟件繼續(xù)用要注意坐標(biāo)順序和分隔符避免把X和Y顛倒。批量把多個(gè)shp轉(zhuǎn)txt道理一樣在外層加一個(gè)遍歷目錄的循環(huán)就行。4.4 shp轉(zhuǎn)3dtiles做三維展示近兩年把平面shp轉(zhuǎn)成3dtiles在地理信息三維可視化里很火。原因是Web端如果直接加載幾十MB的shp文件瀏覽器處理不過來轉(zhuǎn)成3dtiles瓦片后加載速度和渲染性能會(huì)好很多。ArcGIS Pro 3.x內(nèi)置了“創(chuàng)建3D Tiles”工具把shp作為輸入后可以輸出3dtiles數(shù)據(jù)包。開源路線可以用CesiumLab這類工具從shp直接轉(zhuǎn)成3dtiles。操作時(shí)我會(huì)特別留意兩點(diǎn)一是三維圖層高程設(shè)置區(qū)劃圖應(yīng)該是貼地的不能把面拔高否則和地形、影像疊加后會(huì)懸空二是字段盡量用英文名稱中文獨(dú)字段在部分三維引擎里解析容易出問題。轉(zhuǎn)到Web場(chǎng)景后你在Cesium里點(diǎn)擊任意位置拾取到PGA值配合其他業(yè)務(wù)圖層可以做成一個(gè)很直觀的抗震設(shè)防可視化門戶。這個(gè)流程對(duì)前端開發(fā)的同事非常友好數(shù)據(jù)放服務(wù)端客戶端按需加載瓦片。4.5 常見問題速查表現(xiàn)象原因解決辦法屬性表中文亂碼cpg缺失或dbf編碼不是UTF-8在QGIS手動(dòng)指定GBK/UTF-8編碼或重新寫一份shp打開shp沒有數(shù)據(jù).shx損壞、路徑過深、文件損壞檢查伴生文件完整移動(dòng)到短路徑目錄必要時(shí)修復(fù)幾何圖形疊加明顯偏移坐標(biāo)系缺失或定義錯(cuò)誤先確認(rèn)原始坐標(biāo)范圍和單位再用“定義投影”修正裁剪后屬性丟失使用方法不正確使用“裁剪”工具時(shí)確保要素類和裁剪要素字段類型匹配轉(zhuǎn)CAD后沒有屬性CAD格式不支持GIS屬性表導(dǎo)出前把關(guān)鍵字段寫入注記/擴(kuò)展屬性dbf字段里有0值或空值原要素本身沒有賦值用空間連接從相鄰要素補(bǔ)值或人工修復(fù)漁網(wǎng)分割后面積統(tǒng)計(jì)不準(zhǔn)確網(wǎng)格與面相交不完整使用“相交”而非“裁剪”保留網(wǎng)格屬性shp轉(zhuǎn)3dtiles后懸空?qǐng)D層高程設(shè)置錯(cuò)誤將高度模式設(shè)為貼地或把Z值置為05. 基于這套數(shù)據(jù)的擴(kuò)展玩法和個(gè)人體會(huì)我最近用這套PGA數(shù)據(jù)做一個(gè)區(qū)域存量建筑風(fēng)險(xiǎn)評(píng)估核心邏輯是把PGA分檔、房屋建造年代、結(jié)構(gòu)類型三個(gè)圖層疊加給每棟建筑一個(gè)綜合風(fēng)險(xiǎn)指數(shù)。如果沒有一份能直接空間計(jì)算的shp數(shù)據(jù)這個(gè)工作幾乎無法鋪開。你會(huì)發(fā)現(xiàn)當(dāng)數(shù)據(jù)形成了可計(jì)算的圖層很多“定性判斷”都能轉(zhuǎn)成“定量輸出”。有一點(diǎn)想提醒大家。這份成果做空間統(tǒng)計(jì)和前期研判很好用但正式項(xiàng)目中不能只依賴這個(gè)shp。建筑結(jié)構(gòu)設(shè)計(jì)最終依據(jù)是規(guī)范條文重大工程需要做地震安全性評(píng)價(jià)不同項(xiàng)目階段對(duì)精度和權(quán)威性的要求也不同。你把shp當(dāng)工作底圖沒問題但別把shp當(dāng)成最終的設(shè)計(jì)依據(jù)這個(gè)邊界一定要清楚。最后分享一個(gè)實(shí)操細(xì)節(jié)無論你在ArcGIS Pro還是QGIS里做分析先給矢量數(shù)據(jù)建立空間索引能明顯提高裁剪和相交的速度。右鍵shp圖層打開屬性在“索引”里添加空間索引數(shù)據(jù)量大的時(shí)候性能差距非常明顯。這套區(qū)劃圖數(shù)據(jù)本身不算大但做全省甚至全國(guó)范圍內(nèi)的疊加分析時(shí)提前建索引能省下不少時(shí)間。本文還有配套的精品資源點(diǎn)擊獲取