NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模
可以使用各种技术制作物理地形模型。 3D 打印是小型模型的不错选择。 对于较大的模型,我们建议堆叠使用激光切割机或其他工具切割的板材。 铣削是另一种选择,但比 3D 打印噪音更大、灰尘更多。 打印的高程模型在教学、外展活动、非正式学习环境(如博物馆、旅游局、城市规划等)中很有用。
本文介绍如何使用(大部分)免费工具从各种自由地形数据(数字高程模型,DEM)创建可打印的 STL 模型。 从地形数据生成 STL 模型可能类似于从 3D 扫描生成模型,因为一些数字高程模型 (DEM) 也使用点云。 此文本正在构建中,可能需要重新组织。 目前,我只是记下我正在玩的东西。 到目前为止,我确定了几种创建有效数字高程模型的方法。
- 最简单的解决方案是使用 Touch Terrain 和 Terrain2STL。 截至 2021 年 5 月,Touch Terrain(见下文)是现有最好的在线服务,而且完全免费。
- 另一个功能强大且用途广泛的工具组合是使用 QGIS 和 Demto3D 插件。 使用 QGIS 读取数字高程模型的 3D 打印
1、工作流程概述
工作流程的概要如下(一些工具允许组合步骤,在某些情况下步骤以不同的顺序或不同的方式完成):
- 得到一个模型。 这通常需要一些提取工作,例如 下载一个文件,从给定的坐标位置提取一个正方形
- 将模型转换为 3D 模型(数字高程模型通常不是 3D 模型)
- 使模型具有平底流形。
- 缩放、旋转和重新定位(如有必要)
- 将此模型转换为 STL。
- 使用 STL 编辑器修复模型,例如 使用 Netfabb(修复工具)或 Meshmixer(“制作实体”)
- 如果模型代表一个非常小的区域,您可以“按原样”对其进行切片。 如果它更大,考虑减少三角形(如果之前没有做过),例如 使用免费的 Meshlab 程序来做到这一点(见下文)
- 如果需要,裁剪 x,y 方向。 如果有需要,在底部添加一个框。
- 调整 Z 轴(如果之前没有做过)。 在某些情况下,您可能希望将水平距离强调 2、3 或 4 倍。
- 切片并打印出来。 这并不像看起来那么容易,原因有二。 模型可能很大,必须调整切片机设置以避免打印中止(特别是喷嘴卡在塑料中)。
2、数字高程模型格式
数字高程模型 (DEM) 是根据高程数据创建的地形表面的数字表示。 有两种:
- 数字地形模型 (DTM) 仅包括地形
- 数字表面模型 (DSM) 包括顶部的事物,例如建筑物)。
尚不清楚(对我们而言)测量树木和房屋尖端的雷达模型是 DTM 还是 DSM。
使用的格式有很多种。 水平分辨率的差异可能很重要。 例如。 SwissALTI3D只有2m米,Eu-DEM是25米,免费的SRTM数据在30到90米之间。 90 米的分辨率足以用于更大的区域,例如 100x100 公里。 打印较小的山脉需要 30 米的分辨率。 高度存在误差(通常以平均误差表示)。
维基百科有一个很好的 GIS 文件格式列表,其中包括可以包含 DEM 数据的格式。 根据维基百科的数字高程模型文章,DEM 可以表示为栅格(正方形网格,在表示高程时也称为高度图)或基于矢量的不规则三角网络 (TIN)。
根据维基百科(2017 年 3 月),栅格数据由单元格的行和列组成,每个单元格存储一个值。 栅格数据可以是每个像素(或像元)都包含一个颜色值的栅格图像。 为每个像元记录的附加值可能是离散值(例如土地利用)、连续值(例如温度)或空值(如果没有可用数据)。 虽然栅格单元存储单个值,但可以通过使用栅格波段来扩展它以表示 RGB(红色、绿色、蓝色)颜色、颜色图(专题代码和 RGB 值之间的映射)或具有一行的扩展属性表 对于每个唯一的单元格值。
同样,根据维基百科的 GIS 文件格式文章,存在三种类型的矢量图形元素:点(表示精确位置点)、线(表示道路、河流等)和多边形。 高程可以用等高线或多边形网格表示,通常是不规则三角网 (TIN)。 “TIN 是物理陆地表面或海底的基于矢量的表示,由不规则分布的节点和具有三维坐标(x、y 和 z)的线组成,这些节点和线排列在不重叠的三角形网络中。” .
下面我们只列出了我们使用过的以及本文中出现的大部分数据类型
Name | File extension | Description | Data type | |
---|---|---|---|---|
ESRI ASCII GRID | asc | A popular GIS specific exchange format. See Esri grid (wikipedia) | raster | |
geoTIFF | tif or tiff | Annotations to the 2D TIFF format. See GeoTIFF (Wikipedia) | raster (grid) | |
DXF | dxf | Autocad proprietary but many tools can import/export | vector | |
XYZ | xyz | Initially designed to describe molecule geometry. | vector (point clouds, each point has a x/y/z coordinate and there are no links between points) | |
SRTM HGT | hgt | SRTM original format | raster | |
DEM | dem | geospatial file format developed by the United States Geological Survey | raster | |
Collada | dae | 3D models used withing Keyhole Markup Language (KML), Google Earth | vector | |
GeoJSON | json | Popular exchange format for open source GIS packages | vector |
3、数字高程模型(DEM)库
NASA 航天飞机雷达地形测绘任务 (SRTM) 在 2000 年收集了全球范围内免费提供的大多数 DEM 数据。绘制地球地图(海洋和极地除外)用了 11 天。 SRTM 数据的分辨率如下:
- 30 弧秒(DTED 级别 0)- 大约 900 米间距
- 3 弧秒(DTED 级别 1)- 大约 90 米间距
- 1 弧秒(DTED 级别 2)- 大约 30 米间距
在世界范围内或在国家或地方基础上还有许多其他 DEM 数据集(主要或次要)。 其中一些数据集使用了 SRTM 数据集。 OpenStreetMap Wiki SRTM 文章中提供了一个很好的可用 SRTM 数据集列表。
下面是一些 DEM 存储库。 在你实际获取数据之前,其中的大多数都需要一些“思考”。
Name | Resolution (x/y axis) | Mean errors (z) depend on slope | Data Source | |
CGIAR-CSI SRTM | 90m | Allows finding and exporting squares with 90 resolution for the whole earth. | ||
USGS EROS (US Geological survey) - EarthExplorer | 30 to 90m | Various, e.g. SRTM | The Earthexplorer allows finding map squares according to area and criteris, e.g. I found 30m resolution SRTM data for Geneva ara. Since the tiles cover small areas you may have to combine these. | |
ViewFinderPanoramas (VFP) | 30.92m | SRTM and ASTER GDEM | ||
EU-DEM | 30.92m | |||
EOWeb Poral (DE) | ||||
DHM25 | 25m | 2-8m | Swisstopo | Prior to SwissALTI3D, based in essence on the 1:25000 maps. This data set is free |
SwissALTI3D | 2m | Swisstopo | commercial dataset |
4、 使用 TouchTerrain
TouchTerrain 软件 由 Chris Harding 和 Franek Hasiuk(爱荷华州立大学)开发,是一种非常易于使用的在线服务,也可用作离线程序,用于创建可打印的 3D STL 模型。 它从 Earth Engine 获取 DEM 数据并将它们转换为 STL。 它有一堆设置(简单和“专家”)。 它还允许打印多个 3D 模型,这些模型可以粘合在一起成为一个更大的模型。
使用方法如下:
- 选择 DEM 地图服务(高程数据源),例如 AW3D30
- 在世界地图中选择一个区域,单击当前地图视图中的重新居中框
- 指定打印机选项,例如 瓦片宽度,打印机的挤出机宽度,模型底座厚度(从最低点开始,而不是海平面),垂直夸大。
- 将选项保存到 URL(以便您可以为解决方案添加书签),例如 Geneva basin
点击导出
5、 使用 Terrain2STL
Terrain2STL 在过去是最简单和最快的开始方式,并且是 Touch Terrain 的替代品。 任何具有中等 3D 网格操作技能的初学者都可以做到。
Terrain2STL 是一项允许在 Google 地图上选择正方形的在线服务。 根据这些坐标,它将从 Nasa/cgiar-csi 数据中提取一个区域并生成 STL。 引用:“Terrain2STL 是一项免费使用的服务,但如果您想帮助支持该网站,欢迎捐款。 Terrain2STL 使用 2000 年的 SRTM3 数据集创建 STL 文件,该数据集在赤道上的分辨率约为 90 米。” (Terrain2STL 主页,2017 年 2 月)
它只需要一些裁剪和一些 STL 修复,例如 Netfabb Studio 或其他 STL 修复/切片软件可以很好地处理的东西。
我测试了这项服务,它工作得很好,例如 我打印了 Teide 和 Caldera Blanca 火山。 唯一需要注意的是 SRTM3 数据集的 90m 分辨率。 Caldera Blanca 是兰萨罗特岛上一座 300 米的小山,并没有以非常有趣的方式出现。 泰德峰(包括它古老的巨大火山口)创造了一个足够好的模型。
如果你想要更多的控制,你可以使用 QGIS 解决方案。 如果你拥有 Linux 系统,您也可以使用下面提供相同类型结果的 hill 程序。 虽然确定地图的坐标和尺寸需要更多时间,但制作地图的速度更快。
最后,你应该知道打印 3D 模型可能需要与你通常使用的切片器设置不同的切片器设置。
原文链接:3D printing of digital elevation models
BimAnt翻译整理,转载请标明出处