ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

建筑轮廓带高度SHP数据处理全流程:从WGS84到三维白模

建筑轮廓带高度SHP数据处理全流程:从WGS84到三维白模 简介银川市建筑轮廓带高度属性矢量SHP数据合集采用全球通用的WGS84坐标系属于独立采集的非OSM数据面向城市规划、建筑设计、GIS开发与科研人员可用于城市三维建模、天际线设计、日照辐射分析、通风模拟、灾害评估与应急管理等空间分析场景。压缩包内共9个文件核心文件为Yinchuan_Buildings_DWG-Polygon.shp并包含.shx几何索引、.dbf属性表、.prj投影定义、.sbn/.sbx空间索引、.cpg编码定义、.xml元数据及说明txt构成一套完整的Shapefile标准组件可直接在ArcGIS、QGIS等软件中加载和编辑。数据包仅2.7MB已有48人学习浏览数据中每栋建筑均具有独立轮廓与高度属性可支持精细的空间查询、统计分析和专题制图。利用这些数据能快速掌握银川市建筑分布与高度特征为城市精细化管理、建筑规划审批及灾害风险评估提供可靠依据非OSM来源也保证了内容的独特性和准确性。 搞GIS的同行应该都有这种经历项目方案里要摆一版带高度的建筑轮廓白模结果手里的SHP要么是OSM上扒下来的稀疏轮廓要么是只有平面没有高度的一张饼。上个月接银川的活儿甲方点名要市域重点片区的三维形态分析我翻遍手头的公开数据源最后是这份“银川市建筑轮廓带高度属性矢量SHP数据合集wgs84坐标系非OSM.zip”救了场。说救场不夸张。这份数据把最耗时间的底子活干完了——建筑轮廓面齐全属性表里还带着高度字段坐标系是WGS84解压后可以直接进GIS拉伸成三维白模。下面就把我拿到这份数据后的完整处理过程写出来包括SHP怎么检查、坐标系怎么验证、高度字段怎么改造、白模怎么生成以及各类报错怎么处理。内容不挑软件ArcGIS和QGIS双线都讲刚入门GIS的小白和干了多年的老手都能找到能用的部分。1. 先弄明白这份数据解决什么问题1.1 建筑轮廓带高度为什么这么值钱建筑轮廓面到处都能搞到但带高度属性的就不多了。在GIS里一个带高度的建筑面集合意味着可以直接把它从二维升到三维而不用重新建模。这带来的是一连串后续应用城市天际线分析把建筑轮廓按高度拉伸成体块可以直观看出哪个片区高、哪个片区低体量估算与规划审查面积乘以高度可以快速算出单栋建筑体量比人工测量快一个数量级环境模拟的建模基础风环境、噪声模拟、太阳能分析都需要三维障碍物哪怕是粗糙的白模也够用。银川这种带高度属性的建筑轮廓数据本身就算稀缺资源。尤其在城市更新、重点片区设计、历史街区高度管控这些项目里一份能直接拉伸的SHP往往能省掉外包建模一大笔费用。1.2 “非OSM”说明它比免费数据精细得多数据包标题里特意写了“非OSM”这种标注在圈内基本等于告诉你这不是OpenStreetMap的志愿者数据而是经过专业加工的成果。OSM建筑数据在国内很多城市都存在覆盖不足、轮廓粗糙、属性缺失的问题尤其缺少高度信息。而“非OSM”这份数据从实际打开的效果看轮廓边界规整、建筑切分合理高度字段也有完整值明显是遥感解译或航测对象提取得到的。这种数据在做规划分析时才敢放心拿来做量化计算。1.3 WGS84坐标系是“国际通用”但用之前要留个心眼WGS84是GPS和全球绝大多数网络地图通用的坐标系优点是不挑软件、不挑底图加载影像和在线地图基本无缝匹配。但国内测绘项目有时要求CGCS2000或西安80。这里要区分两个层面WGS84和CGCS2000的差异在厘米级日常分析和制图几乎可以忽略但如果你需要跟本地测绘成果套合或者交付成果给测绘部门就必须做坐标转换。所以在动手前先确认项目要求。如果只是自己做分析、出效果图WGS84直接用就行要交正式成果再走第4节的转换流程。2. 拿到SHP之后先做三件事再动手2.1 检查SHP配套文件是否齐全很多第一次接触SHP的人以为它是一个文件实际上Shapefile是一组文件的名字。最基本四件套如下表后缀作用缺失影响.shp几何主体无法打开.shx几何索引读取变慢.dbf属性表字段全丢.prj坐标系描述软件猜错坐标系解压zip后先确认这四件套都在。我特别强调.prj因为一旦缺失ArcGIS或QGIS只会把它当“未知坐标系”叠加底图时必然错位。如果这份数据没带.prj可以依据坐标范围反推银川的经度大约在东经106度左右纬度在北纬38度左右坐标值在这个范围且是十进制度数可以基本判断为WGS84经纬度坐标。2.2 zip解压阶段容易踩的坑SHP数据包解压不是“随意解完就行”实际操作中我吃过不少亏别在压缩包内直接双击打开shp配套文件识别不全解压路径尽量用英文别用带空格的目录某些QGIS插件和脚本会挂解压提示“invalid zip archive: could not find eocd”一般是压缩包没下完或二次压缩重下或找到内层压缩包再解。还有一件事要注意数据包如果来自不同渠道建议解压后先看一眼总大小和文件数跟发布说明对一下。文件数对不上说明解压不完整后面再怎么处理都会出问题。2.3 打开属性表先识别高度字段SHP加载进GIS后第一件事是打开属性表找到高度字段。常见命名有HEIGHT、H、H_DZ、FLOOR、楼层等。可以通过字段值分布判断单位值在3到200之间基本是米直接能用值在1到30之间且都是整数大概率是楼层数需要转成米。楼层转高度我很常用字段计算器表达式如下FLOOR * 3.2这里的3.2是住宅层高的经验值。如果是混合业态可以用CASE WHEN分区分业态或者先按统一层高处理后续在白模阶段再整体微调。这个转换务必新增一列“H_EST”不要直接改原字段保留原始数据方便回退。3. 把轮廓面拉伸成三维白模的两条路线3.1 路线AArcGIS系软件的经典拉伸法ArcGIS系软件做建筑白模的思路非常成熟。用ArcGIS Pro举例加载SHP图层右键图层打开符号系统图层绘制类型选“面”符号效果选“拉伸”拉伸表达式选高度字段单位选米在3D模式下查看效果。ArcScene的操作略有不同需要在图层属性里找到“拉伸”选项卡勾选“拉伸图层中的要素”高度字段选中即可。这里的注意事项是ArcGIS拉伸只是显示效果不会生成一个真正的三维模型文件。如果你想导出模型得走第4.3节的路线。3.2 路线BQGIS免费方案效果也很能打如果不想依赖商业授权QGIS完全能扛起这条线。以QGIS 3.x为例加载SHP文件右键图层图层属性切到“3D视图”选项卡在“高度”里选高度字段单位选米菜单栏“视图”中选择“3D地图视图”再加载图层即可查看。QGIS 3D视图的效果足够应付绝大多数方案汇报。再加上QuickMapServices插件可以把影像底图直接叠加进去白模与真实底图对照起来看视觉说服力很强。如果你需要给不懂GIS的同事发一份可交互的成果可以用qgis2threejs插件把3D视图导出成网页版HTML对方双击就能浏览不需要装任何软件。3.3 拉伸之前先修几何否则白模长歪直接在原始SHP上拉伸很可能会遇到三类几何问题自相交面导致体块扭曲、相邻建筑共边未对齐产生缝隙、细碎面导致白模像碎玻璃。我在处理银川数据时先用QGIS的“修复几何”Fix geometries工具跑了一遍再把面积小于10平方米的碎片面删除。删除前先在属性表里用字段计算器加一个AREA字段然后按面积筛选。这个思路对任何城市都适用具体面积阈值可以根据数据精度调整。4. 进阶坐标转换、批量裁剪、转3DTiles4.1 WGS84到底要不要转CGCS2000我在第1.3节留了个话头这里展开说。判断标准主要有两条如果数据只用于自建项目的分析、出图、三维展示WGS84直接用千万别为了“看起来正规”乱转转一次就多一次误差如果要跟本地测绘成果套合、交付正式成果才需要转成CGCS2000。转换操作在ArcGIS里用“投影”工具目标坐标系选择“CGCS2000 / 3-degree Gauss-Kruger zone 35”中央经线105E这个带号覆盖银川区域。如果精度要求高还要配置从WGS84到CGCS2000的地理变换参数具体参数需向当地测绘部门获取。QGIS里用“重投影图层”工具效果一样。转完以后检查一下坐标值的数量级从经纬度变成几百万的米制数值是正常的。这里说的带号35指的是高斯-克吕格3度分带跟UTM的Zone编号不是一回事拿到数据时别搞混。4.2 按区县范围批量裁剪做全市范围的项目时经常需要把这份SHP按区县拆开。ArcGIS用户可以建模型构建器用“迭代要素类”把区县边界逐个作为裁剪范围对建筑图层循环执行裁剪。如果嫌模型构建器麻烦QGIS里用“裁剪”工具加批量模式也行。我更推荐命令行效率最高。用ogr2ogr裁剪单个区县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
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表