3d GIS数据来源与编辑工具
1、卫星遥感
2、航空摄影测量
3、地面实测技术
全站仪
3维扫描
3D GIS数据制作全流程详解
一、数据采集:多源数据获取
3D GIS数据的制作需从多维度采集地理空间信息,以下是主要采集方式及适用场景:
(一)遥感与航测技术
-
卫星遥感
- 设备:Landsat、Sentinel等光学卫星,或TerraSAR-X雷达卫星。
- 数据类型:多光谱影像(用于提取地物属性)、LiDAR点云(用于生成DEM/DTM)。
- 流程:卫星过境获取原始影像→辐射定标与几何校正→正射纠正生成DOM(数字正射影像)。
- 优势:覆盖范围广,适合大范围地形建模。
-
航空摄影测量
- 设备:无人机(如大疆Matrice 300 RTK)搭载光学相机或激光雷达(LiDAR)。
- 作业方式:按航线飞行拍摄重叠影像(航向重叠率60%-80%,旁向重叠率30%-50%)。
- 数据成果:通过Pix4D、ContextCapture等软件处理,生成点云、TIN(三角网模型)、OBJ/3DS格式的三维模型。
- 精度:地面分辨率可达厘米级,适用于城市级精细建模。
(二)地面实测技术
-
全站仪与GNSS
- 设备:徕卡TS系列全站仪、Trimble GNSS接收机。
- 应用场景:获取建筑角落点、道路边界、电力设施等高精度坐标(误差<5cm)。
- 数据格式:CSV/XLS,包含X/Y/Z坐标及属性信息(如地物类型、高度)。
-
三维激光扫描
- 设备:Faro Focus S150地面扫描仪,每秒可采集百万级点云。
- 流程:站点布设→扫描获取点云(含RGB色彩信息)→点云拼接(使用靶标或特征匹配)→去除噪声→生成Mesh网格模型。
- 优势:毫米级精度,适用于文物保护、复杂建筑外立面建模。
(三)辅助数据采集
- BIM模型导入:从Revit、Bentley等软件导出IFC格式模型,提取建筑结构、管线等内部细节。
- 公开数据获取:通过OpenStreetMap下载矢量路网、建筑轮廓;利用USGS EarthExplorer获取免费DEM数据(分辨率30m/90m)。
二、数据处理:从原始数据到三维模型
采集后的数据需经过清洗、融合、建模等处理,形成结构化的3D GIS数据。
(一)点云处理
- 软件工具:CloudCompare、Global Mapper、LiDAR360。
- 关键步骤:
- 去噪:手动删除离群点(如飞鸟、车辆),或使用统计滤波、半径滤波自动剔除噪声。
- 分类:将点云分为地面点(生成DEM)、非地面点(如建筑、植被),常用算法包括RANSAC平面拟合、移动窗口滤波。
- 网格化:通过Delaunay三角剖分生成TIN模型,或使用泊松重建算法生成高精度Mesh模型(含纹理贴图)。
(二)影像处理与纹理映射
- 正射影像生成:使用ENVI/Erdas进行影像镶嵌、匀色,输出标准DOM文件(如GeoTIFF格式,含地理坐标)。
- 纹理提取:从DOM或航空影像中裁剪地物纹理(如屋顶瓦片、墙面砖纹),保存为PNG/JPG格式。
- 映射到模型:在3ds Max/Maya中,将纹理坐标(UV)与Mesh模型绑定,实现真实感渲染(需注意纹理分辨率与模型精度匹配)。
(三)多源数据融合
- 矢量与栅格叠加:将CAD设计图(如管线矢量数据)与DEM叠加,检查空间冲突(如管线埋深是否符合地形)。
- 尺度匹配:统一不同来源数据的坐标系(如从WGS84转换为CGCS2000)、分辨率(如将2m分辨率影像重采样为0.5m)。
- 属性关联:通过唯一标识符(如建筑ID)将模型与数据库字段(如建筑面积、使用性质)关联,实现属性查询与分析。
三、建模方法:从基础地形到精细场景
根据应用需求(如城市规划、应急救援),选择不同建模精度与技术路线。
(一)地形建模
- 基础地形:使用SRTM/ALOS DEM数据,通过ArcGIS/TerrainComposer生成栅格地形,分辨率可选10m-100m。
- 精细地形:结合LiDAR点云生成TIN模型,突出地形细节(如悬崖、河床),适用于水利工程模拟。
- 地形渲染:叠加植被覆盖、土壤类型等栅格数据,通过山体阴影(Hillshade)增强立体感。
(二)城市级白模建模
- 批量建模技术:
- 规则化建模:基于建筑轮廓矢量数据,通过ArcGIS CityEngine的CGA规则批量生成BOX模型( extrusion拉伸高度)。
- 倾斜摄影自动建模:利用ContextCapture/Metashape对无人机影像进行密集匹配,生成包含建筑外立面的“白模”(无纹理或简单纹理)。
- 数据格式:导出为OSGB格式(倾斜摄影标准格式)或CityGML(含语义信息的城市模型)。
(三)精细单体建模
- 手工建模:使用Blender/Revit创建复杂结构(如曲面建筑、桥梁),导入GIS平台时需简化面数(避免渲染卡顿)。
- 参数化建模:在SketchUp中使用插件(如SketchUp to CityGML)生成带参数的模型(如窗户尺寸、屋顶坡度可编辑)。
- 室内建模:通过Navisworks将BIM模型转换为3D GIS兼容格式(如3DXML),保留墙体、管线、设备等内部细节。
四、数据质检与优化:确保模型可用性
- 几何精度检查:
- 使用全站仪实测点对比模型坐标,误差需<2倍空间分辨率(如0.5m分辨率模型误差应<1m)。
- 检查模型拓扑关系(如建筑底面是否贴合地形,道路是否交叉贯通)。
- 纹理质量优化:
- 去除纹理拉伸、错位(如曲面模型UV展开不当导致贴图变形)。
- 压缩纹理文件(如将4K纹理降采样为1K),减少数据量的同时保持视觉效果。
- 性能优化:
- 简化模型面数(使用Quad Decimation算法将三角面数减少30%-50%)。
- 分层加载:将模型按LOD(Level of Detail)分级,近景显示精细模型,远景显示简化模型,提升GIS平台渲染效率。
五、数据输出与应用:适配不同GIS平台
- 格式转换:
- 轻量化格式:3D Tiles(.b3dm/.i3dm)用于Web端展示(如Cesium平台);GLTF/GLB用于移动端(如ArcGIS Runtime)。
- 专业格式:ArcGIS Pro支持的Multipatch格式(含几何与属性)、QGIS的3D Mesh图层。
- 属性附加:通过FME/Global Mapper将Excel表格属性(如人口数据、建筑年代)批量挂接到模型上,支持SQL查询与空间分析。
- 动态数据集成:叠加实时数据(如气象雷达、交通流量),实现3D GIS场景中的动态可视化(如台风路径模拟、消防疏散演练)。
六、典型工具链推荐
阶段 | 工具名称 | 核心功能 |
---|---|---|
数据采集 | 大疆智图、PIX4Dmatic | 无人机航线规划与影像处理 |
点云处理 | CloudCompare | 点云去噪、分类、网格化 |
三维建模 | ContextCapture | 倾斜摄影自动建模(生成OSGB格式) |
模型优化 | Blender + Decimate Modifier | 模型面数简化与纹理烘焙 |
数据管理 | ArcGIS Pro 3D Analyst | 多源数据融合、LOD生成、属性关联 |
web展示 | Cesium + 3D Tileset | 基于WebGL的3D场景发布与交互 |
七、注意事项
- 坐标系统一:项目启动前需明确基准面(如西安80、北京54)与投影方式(如UTM、高斯克吕格),避免数据错位。
- 数据安全:涉及涉密区域(如军事管理区)需使用加密传输与存储,建模成果需通过等保测评。
- 效率平衡:根据项目预算与精度要求选择技术路线,例如小范围精细建模优先使用激光扫描,大范围场景可结合卫星遥感与自动建模。
通过以上流程,可构建从宏观地形到微观地物的全要素3D GIS数据,为智慧城市、地质灾害监测、数字孪生等领域提供基础空间数据支撑。
相关文章:
3d GIS数据来源与编辑工具
1、卫星遥感 2、航空摄影测量 3、地面实测技术 全站仪 3维扫描 3D GIS数据制作全流程详解 一、数据采集:多源数据获取 3D GIS数据的制作需从多维度采集地理空间信息,以下是主要采集方式及适用场景: (一)遥感与航测…...

NeRF PyTorch 源码解读 - 体渲染
文章目录 1. 体渲染公式推导1.1. T ( t ) T(t) T(t) 的推导1.2. C ( r ) C(r) C(r) 的推导 2. 体渲染公式离散化3. 代码解读 1. 体渲染公式推导 如下图所示,渲染图像上点 P P P 的颜色值 c c c 是累加射线 O P → \overrightarrow{OP} OP 在近平面和远平面范围…...

SpringBoot 数据库批量导入导出 Xlsx文件的导入与导出 全量导出 数据库导出表格 数据处理 外部数据
介绍 poi-ooxml 是 Apache POI 项目中的一个库,专门用于处理 Microsoft Office 2007 及以后版本的文件,特别是 Excel 文件(.xlsx 格式)和 Word 文件(.docx 格式)。 在管理系统中需要对数据库的数据进行导…...

解决:install via Git URL失败的问题
为解决install via Git URL失败的问题,修改安全等级security_level的config.ini文件,路径如下: 还要重启: 1.reset 2.F5刷新页面 3.关机服务器,再开机(你也可以省略,试试) 4.Wind…...

OpenCV CUDA模块特征检测------创建Harris角点检测器的GPU实现接口cv::cuda::createHarrisCorner
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 该函数创建一个 基于 Harris 算法的角点响应计算对象,专门用于在 GPU 上进行高效计算。 它返回的是一个 cv::Ptrcv::cuda::Cornernes…...

【氮化镓】钝化层对p-GaN HEMT阈值电压的影响
2021年5月13日,中国台湾阳明交通大学的Shun-Wei Tang等人在《Microelectronics Reliability》期刊发表了题为《Investigation of the passivation-induced VTH shift in p-GaN HEMTs with Au-free gate-first process》的文章。该研究基于二次离子质谱(SIMS)、光致发光(PL)…...

C++:优先级队列
目录 1. 概念 2. 特征 3. 优先级队列的使用 1. 概念 优先级队列虽然名字有队列二字,但根据队列特性来说优先级队列不满足先进先出这个特征,优先级队列的底层是用堆来实现的。 优先级队列是一种容器适配器,就是将特定容器类封装作为其底层…...

睡眠分期 html
截图 代码 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>睡眠图表</title><script src…...
Java求职者面试:Spring、Spring Boot、Spring MVC与MyBatis技术深度解析
Java求职者面试:Spring、Spring Boot、Spring MVC与MyBatis技术深度解析 一、第一轮提问(基础概念问题) 1. 请解释什么是Spring框架?它的核心功能是什么? JY:Spring是一个开源的Java/Java EE企业级应用开…...

Github 2025-05-29 Go开源项目日报Top9
根据Github Trendings的统计,今日(2025-05-29统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目9Assembly项目1Ollama: 本地大型语言模型设置与运行 创建周期:248 天开发语言:Go协议类型:MIT LicenseStar数量:42421 个Fork数量:27…...
前端项目种对某个文件夹进行大小写更改,git识别不到差异导致无变化
问题背景 开发过程中可能遇到一个文件名要更改大小写,但是更改后之后本地会有变化,但是git识别不到差异化,正常去更改一个文件名称git差异化会出现删除了原有文件,新增了一个新文件,但是更改大小写则不会 如何解决 在终端中输入git config…...

AWS VPC 网络详解:理解云上专属内网的关键要素
全面解读 AWS VPC、子网、安全组、路由与 NAT 网关的实际应用 在使用 AWS 云服务的过程中,许多用户最先接触的是 EC2(云服务器)。但你是否曾遇到过这样的情况:实例启动正常,却无法访问公网?或者数据库无法…...

Ubuntu24.04.2 + kubectl1.33.1 + containerdv1.7.27 + calicov3.30.0
Ubuntu24.04.2 kubectl1.33.1 containerdv1.7.27 calicov3.30.0 安装Ubuntu24.04.2 kubectl1.33.1 containerdv1.7.27 calicov3.30.0 1.安装Ubuntu24.04.2,设置阿里云镜像地址 $ sudo vim /etc/apt/sources.list.d/ubuntu.sources URIs: https://mirrors.aliy…...

循环神经网络(RNN)全面教程:从原理到实践
循环神经网络(RNN)全面教程:从原理到实践 引言 循环神经网络(Recurrent Neural Network, RNN)是处理序列数据的经典神经网络架构,在自然语言处理、语音识别、时间序列预测等领域有着广泛应用。本文将系统介绍RNN的核心概念、常见变体、实现方法以及实际…...

uniapp 键盘顶起页面问题
关于uniapp中键盘顶起页面的问题。这是一个在移动应用开发中常见的问题,特别是当输入框位于页面底部时,键盘弹出会顶起整个页面,导致页面布局错乱。 pages.json 文件内,在需要处理软键盘的页面添加 softinputMode 配置࿱…...
利用TOA与最小二乘法直接求解
为了利用到达时间(TOA)和最小二乘法直接求解,我们首先需要理解TOA定位的基本原理和最小二乘法的应用。 步骤1: 理解TOA定位原理 到达时间(TOA)定位是通过测量信号从发射源到达接收器的时间来确定位置的一种方法。假设…...
SpringBoot系列之RabbitMQ 实现订单超时未支付自动关闭功能
系列博客专栏: JVM系列博客专栏SpringBoot系列博客 RabbitMQ 实现订单超时自动关闭功能:从原理到实践的全流程解析 一、业务场景与技术选型 在电商系统中,订单超时未支付自动关闭功能是保障库存准确性、提升用户体验的核心机制。传统定时任…...

【C++高级主题】命令空间(五):类、命名空间和作用域
目录 一、实参相关的查找(ADL):函数调用的 “智能搜索” 1.1 ADL 的核心规则 1.2 ADL 的触发条件 1.3 ADL 的典型应用场景 1.4 ADL 的潜在风险与规避 二、隐式友元声明:类与命名空间的 “私密通道” 2.1 友元声明的基本规则…...
ArcGIS Pro 3.4 二次开发 - 地图创作 1
环境:ArcGIS Pro SDK 3.4 + .NET 8 文章目录 ArcGIS Pro 3.4 二次开发 - 地图创作 11 样式管理1.1 如何通过名称获取项目中的样式1.2 如何创建新样式1.3 如何向项目添加样式1.4 如何从项目中移除样式1.5 如何向样式添加样式项1.6 如何从样式中移除样式项1.7 如何判断样式是否可…...
2.1HarmonyOS NEXT开发工具链进阶:DevEco Studio深度实践
HarmonyOS NEXT开发工具链进阶:DevEco Studio深度实践 在HarmonyOS NEXT全栈自研的技术体系下,DevEco Studio作为一站式开发平台,通过深度整合分布式开发能力,为开发者提供了从代码编写到多端部署的全流程支持。本章节将围绕多设…...
MyBatis常用注解全解析:从基础CRUD到高级映射
MyBatis常用注解全解析:从基础CRUD到高级映射 本文全面解析MyBatis核心注解体系,涵盖基础操作、动态SQL、关系映射等高级特性,助你彻底掌握MyBatis注解开发精髓 一、MyBatis注解概述 1.1 注解 vs XML配置 MyBatis同时支持XML配置和注解两种…...

国标GB28181设备管理软件EasyGBS视频平台筑牢文物保护安全防线创新方案
一、方案背景 文物作为人类文明的珍贵载体,具有不可再生性。当前,盗窃破坏、游客不文明行为及自然侵蚀威胁文物安全,传统保护手段存在响应滞后、覆盖不全等局限。随着5G与信息技术发展,基于GB28181协议的EasyGBS视频云平台&…...
十二、【核心功能篇】测试用例列表与搜索:高效展示和查找海量用例
【核心功能篇】测试用例列表与搜索:高效展示和查找海量用例 前言准备工作第一步:更新 API 服务以支持分页和更完善的搜索第二步:创建测试用例列表页面组件 (`src/views/testcase/TestCaseListView.vue`)第三步:测试列表、搜索、筛选和分页总结前言 当测试用例数量逐渐增多…...

Baklib内容中台AI重构智能服务
AI驱动智能服务进化 在智能服务领域,Baklib内容中台通过自然语言处理技术与深度学习框架的深度融合,构建出具备意图理解能力的知识中枢。系统不仅能够快速解析用户输入的显性需求,更通过上下文关联分析算法识别会话场景中的隐性诉求…...

数据库包括哪些?关系型数据库是什么意思?
目录 一、数据库包括哪些 (一)关系型数据库 (二)非关系型数据库 (三)分布式数据库 (四)内存数据库 二、关系型数据库是什么 (一)关系模型的基本概念 …...

Python爬虫监控程序设计思路
最近因为爬虫程序太多,想要为Python爬虫设计一个监控程序,主要功能包括一下几种: 1、监控爬虫的运行状态(是否在运行、运行时间等) 2、监控爬虫的性能(如请求频率、响应时间、错误率等) 3、资…...
Edge浏览器怎样开启兼容模式
允许站点在 IE 模式下重新加载: 打开 Edge 浏览器,点击右上角的三个点图标,选择 “设置”(或者按下 “Alt F” 组合键后再点击 “设置”)。在设置页面中,切换到左侧的 “默认浏览器” 选项卡。在 “Intern…...

【HarmonyOS 5】Laya游戏如何鸿蒙构建发布详解
【HarmonyOS 5】Laya游戏如何鸿蒙构建发布详解 一、前言 LayaAir引擎是国内最强大的全平台引擎之一,当年H5小游戏火的时候,腾讯入股了腊鸭。我还在游戏公司的时候,17年曾经开发使用腊鸭的H5小游戏,很怀念当年和腊鸭同事一起解决…...
C++ TCP传输心跳信息
在C++ TCP程序中实现心跳机制是保持连接活跃、检测连接状态的重要手段。以下是几种常见的心跳实现方式: 1. 应用层心跳(推荐) 基本心跳实现 #include <iostream> #include <thread> #include <chrono>...
Elasticsearch | 如何将修改已有的索引字段类型并迁移数据
CodingTechWork 引言 在 Elasticsearch 中,一旦索引的字段类型被定义,就无法直接修改已有字段的类型。例如,如果你已经将 timestamp 字段的类型设置为 TEXT,并希望将其更改为 DATE 类型,这将需要一些额外的步骤。在这…...