ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

零代码提取建筑信息:用Bigemap实现建筑轮廓与属性自动化

零代码提取建筑信息:用Bigemap实现建筑轮廓与属性自动化 零代码提取建筑信息不是口号是我在项目里实测过的工作流。之前给一个城区更新项目做现状调研需要把片区里几百栋建筑的轮廓、层数、大致高度和占地范围全部落到图面上。按照传统做法要么拉着一堆人去现场用测距仪一栋栋量要么用CAD描图然后人工填属性表再要么写Python调第三方API做遥感识别——前两种费人费时第三种对没有编程基础的规划同事来说基本等于没戏。后来我换了思路直接用Bigemap把这件事拆成了“看图勾轮廓”加“自动算属性”两步走全程没有写一行代码几百栋建筑的轮廓、面积、周长和高度信息在半天内全部整理完毕导出成通用格式后直接丢进GIS平台使用。这篇文章就围绕这套流程展开讲清楚它的适用场景、操作细节、属性数据怎么来的以及我在实际使用中踩过的坑。1. 零代码提取建筑信息到底解决了什么问题1.1 为什么我会关注这个需求建筑信息提取在不少行业里都是高频需求。城市规划要做现状底图房产评估要了解楼栋体量应急管理需要掌握重点区域的建筑分布甚至做三维城市建模、日照分析、通视分析都离不开带属性的建筑轮廓数据。过去这些数据多来自测绘部门但测绘数据更新周期长、获取门槛高中小型项目往往等不起。Bigemap这类GIS工具的价值在于它把“看图、描绘、计算、导出”这一整套能力整合到了一个界面里。用户不需要会ArcGIS的复杂操作也不需要懂GDAL、Shapefile、PostGIS这些底层概念只需要会鼠标操作就能用卫星影像做参考把建筑轮廓转成矢量面片并且让软件自动附带面积、周长、中心点坐标等基本属性。配合它的属性编辑功能你还能手动补上楼栋的层数、高度等业务字段最终导出的成果可以直接用于绝大多数GIS软件。1.2 “零代码”的真实含义很多人听到“零代码”会本能怀疑是不是又是噱头这里我需要先把概念界定清楚。零代码不等于零操作也不等于全自动。它的准确含义是你不需要具备任何编程能力不需要写任何脚本或代码片段所有操作都通过图形界面完成。在我做的那个项目里“零代码”具体体现在三个方面没有写Python脚本去调用遥感处理库没有在ArcGIS里用Model Builder搭建分析流程甚至连Excel公式都没怎么用面积和周长是软件自动算好的。你需要做的就是“看着影像把房子轮廓描出来”这一件事。剩下的计算和输出格式转换软件替你完成。这背后的原理并不复杂建筑轮廓本质上是多边形面积和周长是多边形的几何属性任何GIS软件都能按数学公式自动算出来。Bigemap只是把这个能力包成了一个普通人也能点到的按钮。1.3 适合谁来学这套流程这套方案特别适合以下几类人规划师、建筑师、咨询顾问需要快速了解某个片区建筑情况做市场调研、选址分析的人需要建筑体量作为参考指标测绘、GIS相关专业的学生或从业者想找一条比传统操作更快的路径应急管理、网格化管理人员需要为自己的辖区建一份建筑底图。如果你会用电脑鼠标会看卫星影像上的房子长什么样那么这套流程你就能学会。别的那些听起来很高深的坐标投影、GIS数据格式转换工具已经在后台处理了你只需要对基本概念有一个感性认识即可。2. 核心细节解析Bigemap能提取哪些信息信息从哪里来2.1 建筑高度、面积、周长的数据来源差异做这个工作前必须先把一个关键问题搞清楚面积、周长是软件自动算的高度可不是。面积和周长的计算逻辑很简单。你在影像上描出一个建筑轮廓软件立刻把这个轮廓转成一个封闭多边形然后按你当前使用的坐标系计算多边形的面积常用单位是平方米和周长常用单位是米。注意这里的面积通常是指“建筑投影占地面积”即建筑基底面积不含楼顶附属物。这个指标在规划领域就是“建筑基底面积”和“建筑面积”是两个概念。高度信息则完全不同。Bigemap本身不是一个能直接从卫星影像里反演建筑高度的专业遥感软件所以它提供的高度信息通常来自以下几种途径数据源底图自带的地物高度标注用户在属性表里手动输入的层数或估算高度通过建筑阴影进行人工估算部分地区的高精度建筑物数据里自带的高度字段。在实操中用得最多的还是“用户参照经验填写”。这听起来不够“自动”但实际效率并不低。因为很多时候你只需要一个估值精度比如“这栋楼大概6层按3米一层算高度约18米”对规划分析来说已经够用了。Bigemap把层数、备注等字段交给用户填反而比强行“自动识别”更灵活。2.2 属性表的结构设计与字段配置在开始批量勾画之前我建议你先理一理字段结构。Bigemap新建一个面图层后默认可能有名称、备注等基础字段但面向建筑信息提取得可不够。比较合理的字段设计是字段名含义填写方式name建筑名称/编号手动或自动命名layer楼层地上层数手动填写height建筑高度米手动填写或按层数估算area建筑面积/基底面积㎡软件自动生成perimeter周长米软件自动生成remark备注结构、用途等手动填写Bigemap里允许你往图层属性表里添加字段。虽然这个功能不像Access或Excel那样直观但添加过程本身不需要代码。你只需要在图层属性里设置字段名和类型然后回到图形界面逐栋填写。一个小技巧是先批量把轮廓勾完再回头统一填属性。因为勾轮廓时你注意力在图形上一栋楼一栋楼去填层数容易打乱节奏。全部轮廓完成后再批量补属性效率会高很多。2.3 底图选择影像清晰度决定勾画效率Bigemap内置了多种在线地图源包括影像图、天地图、OpenStreetMap等。提取建筑信息时我个人强烈推荐使用高清晰度卫星影像作为底图。判断标准非常简单你能不能在影像上清楚看出每栋建筑的屋顶边界。有些老城区影像分辨率较低房屋连成一片屋檐和巷道界限模糊这时候强行勾画很容易出错。经验之谈是优先用最新的高分影像把缩放级别调整到屋顶轮廓清晰后再开始勾画。如果某些区域被云或者树影遮挡你可以结合街景模式、历史影像做辅助判断。Bigemap里的历史影像功能也能看到同一位置过去的样貌对识别在建建筑或临时建筑有帮助。3. 实操全流程从新建图层到导出成果3.1 建立工作空间与图层第一步是打开Bigemap新建一个项目文件或者直接新建一个临时图层。我的习惯是每一片区域单独建一个工作空间这样不易混乱。假设我需要做某个街道的建筑信息提取我会建立一个名为“街道建筑信息”的项目然后把地图定位到目标街道。接下来在图层管理区域新建一个面图层。这个图层就是后续用来存建筑轮廓的容器。Bigemap支持直接在界面上创建点、线、面三种类型这里选“面”。图层新建完成后建议你先设置一下属性字段。在这个阶段把name、layer、height、remark等字段加好后面就不用回头再改结构。3.2 用多边形工具勾画建筑轮廓把地图放大到可以清晰分辨屋顶边缘的程度选择“绘制多边形”工具沿着屋顶边界逐个点击形成一个闭合多边形。这里有几个直接影响后期成果质量的关键操作细节贴合屋顶外边缘不要沿着墙根画。卫星影像看到的是屋顶俯视图边界就是屋顶的边界。如果你按自己的想象去描墙根面积会明显偏小。一般情况下建筑的轮廓就是矩形或多边形转角点勾画时要尽量准确不要偷懒用大弧度曲线代替。除非是异形建筑否则每个直角都最好能描出来。相邻建筑紧贴时两栋要分别勾画不要合并成一个多边形。除非这栋楼确实是同一建筑体。对于有悬挑结构、雨棚、阳台外扩比较明显的建筑以主体结构为准不用把每一块阳台都画进去否则面积会虚高。勾画完一栋建筑后软件会生成一个多边形要素同时自动计算面积和周长。你可以边画边看数值是否合理比如一栋普通住宅楼基底面积几百上千平方米周长一两百米如果出现几平方米或者几万平方米的异常值大概率是画错了。3.3 批量勾画的节奏控制几百栋建筑一栋栋勾画确实需要耐心。为了不至于犯困出错我摸索出一个比较高效的流程先按“街区”为单位推进。从地图左上角开始按Z字形逐行勾画画完一个街区再移动到下一个。千万不要东画一栋西画一栋这样后期检查时会疯掉。画完一批之后及时保存。Bigemap虽然稳定性不错但万一程序崩溃或者电脑断电没保存的辛辛苦苦勾画的成果就有丢失风险。如果是做较大范围的数据提取还可以考虑多人协作把区域划分成几个网格每个人负责一块最后把各自的图层导出再合并这样效率会翻倍。不过注意合并之后字段定义要保持一致否则后续统计会出问题。3.4 导出成果格式选择与坐标系设置当所有建筑轮廓勾画完毕、属性填写完成后下一步就是导出。Bigemap支持导出多种GIS格式常用的有Shapefile.shp几乎是GIS领域的“通用语言”ArcGIS、QGIS、PostGIS、FME都能读GeoJSON轻量级很适合Web地图、Leaflet、Mapbox等前端使用KML适用于Google Earth和部分移动端应用DXF适合CAD用户直接在AutoCAD中打开。导出时务必关注坐标系。如果数据只在一个范围内展示用当前地图的投影坐标系即可如果后续要和测绘数据叠加最好统一成CGCS2000或者地方坐标系。Bigemap导出时通常会让用户选择坐标系把你需要的选上就行。我在做规划项目时一般导出两种格式一份Shapefile用于ArcGIS分析一份DXF用于CAD制图。这样两边的人都能直接用不用再做格式转换。4. 属性信息补全与面积周长的精度控制4.1 楼层与高度字段的填写策略面积和周长是自动生成的但楼层层数和建筑高度仍需人工填写。这两项数据直接影响后续的容积率、建筑密度、天际线分析等所以取值要尽量靠谱。我们常用的策略是“按片区经验值估计”。普通住宅层高取3米/层写字楼取3.6~4.2米/层底商或厂房按实际高度猜。如果是正规小区在房产信息平台或地图POI数据里通常能查到总层数把那当成参考填入图层即可。实际操作中我会先在属性表里把“layer”字段填上然后用计算工具Bigemap支持对属性字段进行批量计算但需要你自己输入表达式这里不用编程语言只是简单的字段间运算生成“height layer × 3”再把个别特殊楼栋手动修正。要注意的是这种按层数乘以层高估得的“高度”和真实建筑高度之间往往有几米误差。原因很简答——一楼大堂可能挑高5米顶层还有电梯机房、水箱间等。如果你只是做宏观分析这个误差通常可以接受如果要对每一栋建筑精确到米级那就必须依靠测高仪或实测数据影像提取这条路不适合。4.2 面积周长的计算逻辑与常见偏差Bigemap算面积、周长本质上是基于投影平面上的多边形顶点坐标做的几何计算。这里牵扯到一个很多新手容易踩的坑不同投影坐标系下同一块地的面积计算结果会有差异。比如在Web墨卡托投影下高纬度地区的面积会被明显放大越靠近两极误差越大。中国大部分地区处于北半球中纬度误差虽然不像北极圈那么离谱但实际算下来也会偏离真实值几个百分点。如果你需要比较精确的面积数据尽量使用“高斯-克吕格投影”下的相应分带坐标系或者使用“阿尔伯斯等积圆锥投影”。Bigemap里可以设置地图显示坐标系如果只为了算面积建议把单位切换到合适的投影系再算。这里插一个亲测对比某个区域在Web墨卡托下算出的面积比其他投影下大了接近6%。如果项目对面积精度有硬性要求这个差异足够让成果被专家质疑。所以做数据入库前一定确认统一坐标基准不要混着用。4.3 通过属性表批量检查异常数据几百个面要素逐个肉眼检查不现实效率太低。我常用一种更聪明的办法——利用属性表排序功能找异常。勾画完所有建筑后打开图层属性表按“area”字段从大到小排序看看面积最大的一批数值是不是合理。如果某栋楼面积大到离谱比如30000㎡而你画的是一个普通住宅那很可能是不小心把一片街区画成一个多边形了。同理按面积从小到大排序可以找出那些面积只有十几平方米的碎小多边形这些多半是误画的线条残留或错误的两点闭合应该删除。周长也同理检查长宽比异常的建筑。比如一栋周长300米、面积只有100㎡的细长条肉眼可见是画拧了。删除重画比手动改坐标快得多。5. 常见问题与排查技巧实录5.1 影像底图不清晰导致误判实际做数据时最常遇到的就是区域影像清晰度不够。老城区自建房密集屋顶之间只隔几十厘米高分影像尚可分辩但普通影像上就是连成一片。这时候你要想办法找更清晰的底图源或者借助周边地物关系判断建筑边界。另一种情况是树木遮挡严重。有些小区绿化和建筑高度接近树冠盖住了屋顶从正上方看不到建筑轮廓。我自己的经验是先找到楼盘或小区的规划图、户型图等参考数据或者用Bigemap的历史影像功能查看没有茂密树冠季节的影像。如果这些都找不到那只能到现场跑一趟或者根据周边建筑规律进行推断。5.2 导出后打开发现坐标系不对很多同学会遇到这样的问题在Bigemap里看着挺好的数据导出Shapefile放到ArcGIS或QGIS里位置跑到了非洲或者海里。几乎都是坐标系设置问题导致的。解决办法是在Bigemap里导出时要明确数据源坐标系。如果你不选软件会用默认的WGS84经纬度坐标这在大多数场景下没有大问题。但如果当前工程用了投影坐标而导出的时候设置混淆了就会出偏差。正确做法是在导出对话框中确认坐标系和你的目标GIS软件保持一致。如果数据已经导出但坐标系错了也不要慌——在ArcGIS或QGIS里可以通过“定义投影”工具重新指定坐标系不需要回到Bigemap重新导出。5.3 数据量大时卡顿严重做了几个街道甚至整个城区的数据图层要素数量可能上千。这时候在Bigemap里移动地图或点击属性表都会感觉越来越卡。这主要是软件性能瓶颈你有几个优化的方向把完成好的区域拆分成多个小图层存放不要所有建筑都堆在一个图层里关闭不必要底图图层减少渲染压力属性表检查数据时只保留需要检查的字段显示隐藏不需要的大字段尤其是文本备注类的字段。如果真的到了几千栋建筑的程度我的建议是直接导出为Shapefile丢到QGIS或ArcGIS里做后续操作。Bigemap适合快速提取和初加工但重型数据处理和专业级制图还是需要更专业的工具配合。5.4 建筑轮廓重叠、重复勾画进行大范围勾画时还容易出现一个隐性错误同一个建筑不小心画了两次两个多边形几乎完全重合。这在网格化管理那类用途中影响不大可一旦做面积汇总统计重复计算会直接让结果失真。排查方法有两个一个是利用属性表按面积排序看看有没有面积和位置几乎一样的成对要素另一个是在Bigemap里把图层透明度调低一点肉眼扫一遍看有没有明显重叠的色块。比较稳妥的做法是在勾画时养成“画完一栋就在心里打个勾”的习惯配合地图的网格索引可以有效避免漏画和重画。5.5 高度估算与实际不符的修正思路曾经我在做一个城市设计项目时按3米/层给一片写字楼估算了高度结果导入日照分析软件后发现建筑阴影范围明显偏短。后来查了下才发现那几栋楼一层层高是4.5米顶层还有两层的设备夹层。这算是个教训。高度字段对日照分析、通视分析这类对垂直维度敏感的分析影响极大。遇到高层建筑或商业建筑不要一律按经验倍数估算建议使用地图POI信息、房产销售页面中提供的总层数和楼层高度做修正。如果确实没有数据至少将结构类型框架结构、框剪结构等纳入参考不同结构类型的层高差异很大。6. 数据成果的后续应用与经验总结6.1 建筑信息如何接入GIS平台数据从Bigemap导出后后续应用才是关键。我整理了几种常见的接法针对不同场景可以直接套用城乡规划现状分析将Shapefile导入ArcGIS/QGIS用面积字段汇总片区的建筑密度、用高度字段做高度分区渲染城市三维建模将带高度的面要素导入SketchUp或CityEngine拉伸成白模快速生成建筑体块人口估算或商业选址把建筑轮廓与人口栅格、POI数据叠加通过面积和楼层数估算片区建筑规模Web端可视化把数据导出为GeoJSON直接丢给前端工程师用Leaflet或Mapbox渲染。每一次导出到其他平台都要核对字段完整性尤其是area、perimeter、height这几个核心字段避免因字段名冲突或类型不符造成数据读不全。6.2 多人协作时的数据规范如果你是把这套流程交给团队同事一起做我建议在开工前就定好一套数据规范避免最后合并时出现各种兼容问题。规范里至少应该包括图层命名规则建议为“区域_建筑信息_日期”这样的格式字段名统一不要一半人用“floor”一半人用“layer”坐标系统一约定好导出时使用哪个坐标系属性取值规则比如层数填整数、高度单位统一为米、备注信息不出现特殊符号。这些约定不是难事但如果没有提前约定后续数据合并和清洗的时间可能会拖到你想骂人。实测下来前面多花十分钟理规范后面能省几个小时去修数据。6.3 关于精度和边界的理性认知最后想聊一个关于这套方法定位的问题。通过Bigemap影像勾画得到的建筑轮廓、面积、周长、高度本质上属于“基于影像判读的估算数据”它的精度能满足项目前期研究、概念规划、现状普查等要求但不一定能满足竣工测量、不动产测绘、国土确权等要求。如果你要做的是精确测绘成果还是必须采用全站仪、无人机倾斜摄影等专业手段。说这些不是泼冷水而是希望大家对数据有清醒的边界认知。我自己在实际项目中用得很顺手但每次把数据交给政府或甲方时都会在文档里明确数据来源和精度范围反而更赢得了信任。你拿一套坐标准确的普查数据和一套精确到厘米的实测数据比精度没有意义关键是用对地方。拿这套流程输出片区建筑基底数据、估算开发强度、做方案比选这是它的主战场拿它去写进不动产登记资料那是强人所难。工具不完美但用对了场景它就是效率利器。
返回列表