如何从无到有创造GIS数据

介绍

在实际项目执行过程中,我们常常面临无法通过网络获取某些GIS(地理信息系统)数据的情况。这种情况可能由数据的敏感性和安全性问题导致,或者是因为复杂的获取流程。不管遇到哪种障碍,当必要的数据不可获得时,我们必须自己动手创造这些数据。本文深入探讨了这个需求,提供了一个实用的指南,介绍如何快速有效地创造几种基本的GIS数据。

工具准备

工具 说明
r2v 可以将位图转换为矢量数据的软件
illustrator 矢量图像设计软件
QGIS 开源GIS工具,提供数据的显示、编辑和分析功能
CesiumJS 用于做GIS数据展示
CesiumLab 可以将SHP数据转为3DTiles建筑白模
水经注 GIS数据下载工具,Level高的数据需要收费

行政区域边界

数据说明

在网上查找我国的行政区域划分时,通常能够获取到省级、地级、县级和乡级(含镇、民族镇、乡、民族乡、街道办事处)等四级完整的行政区划数据。然而,村居级别的详细信息往往并不统一公开发布在网络上,这个数据我们可以通过位图转矢量的方式获取。

操作步骤

  1. 获取原始图片,可以通过拍摄纸质地图或者下载电子版地图得到原始文件,尽量正面高清光照均匀无投影,以便后续操作。
  2. 使用图像处理工具(photoshop之类)处理原始图片,清除文字、斑纹,仅保留点线面之类的地理信息,提高对比度,让背景尽量纯净无杂色。
  3. 使用工具进行边界识别并自动矢量化,导出.shp格式的文件,后面会介绍位图矢量化的三种方法。
  4. 把矢量数据拖到QGIS中修复处理,以卫星影像图垫底,把文件导入QGIS创建图层,调整尺寸、角度、位置以契合影像图,然后将破碎的区域边界修复。
  5. 完整的边界线图层可以直接转换为多边形数据图层。另外还需要补充行政区域中心,新建点图层后,参照原始图片绘制中心点即可。
  6. 将每个图层数据导出geojson数据格式,导出前记得选择合适的坐标系(默认wgs84),就可以在地图引擎上使用了。

位图矢量化的三种方法

  1. 使用chatGPT识别图片并返回svg矢量图,不得不说AI真的很强大,它马上写了个python脚本并生成了最终文件,可惜出来的数据太破碎了后期加工成本太高,等我学会了用python微调,这应该会是最便捷的方法。

  2. 使用illustrator自带的位图转矢量功能,这个方法效率也挺高的,还可以在转换完成后直接做修复处理,但问题是对原始图片要求较高,对比度较差的区域转换出来的内容破碎感还是比较严重

  3. 使用专业的r2v工具将位图转换为矢量,这个工具的好处就是它可以提前调整好边界阈值,最终出来的数据,相比之下破碎内容是最少的

建筑轮廓

数据说明

高质量的城市建筑轮廓数据需要通过专业的遥感卫星、航拍摄影、激光雷达(LiDAR)等手段进行精确测绘,并结合实地调查予以修正和完善,这是一项耗时耗力且成本高昂的工作,导致拥有此类数据的机构或个人不愿意轻易公开。如果项目对城市模型的精细化要求没有特别高,可以在AI技术的辅助下快速生成一些数据。

操作步骤

  1. 使用GIS数据下载工具(水经注等)下载高清的卫星影像图,截取项目展示所需的区域即可,精细度级别需要L18(空间分辨率1.19米)或者以上,导出TIF格式文件。

  2. 使用阿里云的AI-SEG进行单目标提取,直接生成SHP格式的矢量数据,极大程度减少人工绘制工作量。

  3. AI识别当然会有缺陷,这部分缺陷需要识别参数微调和人工二次处理来修复,在步骤二经过微调或者尽可能准确的数据后,直接导入到QGIS进行二次处理,比如粘连在一起的建筑轮廓,需要手工把它们切开;批量给建筑轮廓赋予名称、面积、高度等属性。

  4. 将SHP转换为3DTiles模型图层。在QGIS将SHP格式数据导出,打开Cesiumlab通用模型切片功能进行转换,即可快速生成白模。

  5. 如果对白模不满意,可以在转换前准备好各种条件的模型模型贴图,并设置好贴图规则(比如高度为1层的模型使用贴图1,高度为2层的模型使用贴图2等),这些规则的可用参数就是步骤3我们为每个建筑轮廓设定的属性。

  6. 导出3DTiles文件在地图引擎中使用。cesiumlab导出的文件包可以作为静态文件独立部署,或者放到项目工程中,调用入口文件tileset.json这些就不赘述了,可以看以往文章《在高德地图中实现3DTiles》

总结

以上就是在面对无法通过互联网获取GIS数据的情况时,我们可以尝试的方法,这里面全是个人经验总结。可以发现使用了很多工具,碍于篇幅无法对这些工具的操作步骤开展细说,即使展开了可能也会不慎全面。在实践中我们会遇到各种无法预料的问题,且将本文作为指南,具体操作中的问题和解决方法可以由作为读者的你来分项。

相关链接

CesiumLab 数据转换平台

AI Earth 地理数据云平台

水经注 地理数据下载工具

相关推荐
y先森3 小时前
CSS3中的伸缩盒模型(弹性盒子、弹性布局)之伸缩容器、伸缩项目、主轴方向、主轴换行方式、复合属性flex-flow
前端·css·css3
前端Hardy3 小时前
纯HTML&CSS实现3D旋转地球
前端·javascript·css·3d·html
susu10830189113 小时前
vue3中父div设置display flex,2个子div重叠
前端·javascript·vue.js
IT女孩儿4 小时前
CSS查缺补漏(补充上一条)
前端·css
吃杠碰小鸡5 小时前
commitlint校验git提交信息
前端
虾球xz6 小时前
游戏引擎学习第20天
前端·学习·游戏引擎
我爱李星璇6 小时前
HTML常用表格与标签
前端·html
疯狂的沙粒6 小时前
如何在Vue项目中应用TypeScript?应该注意那些点?
前端·vue.js·typescript
小镇程序员6 小时前
vue2 src_Todolist全局总线事件版本
前端·javascript·vue.js
野槐6 小时前
前端图像处理(一)
前端