这是使用 Esri ArcGIS CityEngine 连接器和 Cesium for Omniverse 扩展将 Esri ArcGIS CityEngine 内容与 NVIDIA Omniverse 中的铯离子数据集相结合的指南。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial - Building data exported from Esri ArcGIS CityEngine georeferenced onto Cesium World Terrain with Bing Maps Aerial imagery.
从 Esri ArcGIS CityEngine 导出的建筑物数据使用 Bing 地图航空影像地理配准到 Cesium World Terrain。

您将学习如何:

  • 从 ArcGIS CityEngine 准备和导出 3D 内容。
  • 将此内容准确定位在铯世界地形上。

先决条件

  • 了解如何在 NVIDIA Omniverse USD Composer 中设置基本的 Cesium for Omniverse 舞台。查看我们的 Cedium for Omniverse 快速入门指南,了解有关开始使用 Cesium for Omniverse 扩展的说明。
  • 表示真实位置的 ArcGIS CityEngine 场景,地理配准到基于 UTM 的坐标系。按照本指南使用 CityEngine 中的获取地图数据工具创建场景。
  • 从 Omniverse 启动器安装的 ArcGIS CityEngine Omniverse 连接器。

地理配准概念

建筑软件通常更喜欢局部笛卡尔坐标系而不是地理坐标系,以满足精度、准确性和简化工作流程的需求。局部坐标系为定义和操作精确测量提供了一种方便的方法,而不会与地球曲率和经纬度坐标等地理因素相关。

当涉及到全宇宙的铯时,它通常采用地理的、以地球为中心的地球固定坐标系,将地球表示为一个精确的 3D 地球仪。因此,要将以本地坐标表示的建筑模型定位到地理数据集(如地球仪)上,转换过程变得必要。

幸运的是,CityEngine 场景通常基于真实世界的地图数据构建,并提供必要的信息来帮助从局部坐标系转换为地理坐标系。请务必注意,虽然本教程中的工作流可以在地球上准确定位 CityEngine 数据,但它没有解释地球曲率的方法。这意味着对于特别大的CityEngine场景,模型边缘的数据可能无法相对于铯地球仪的表面准确定位。

根据您的使用案例,这可能不是问题。常见的工作流是使用地理空间数据集(如铯地球仪)作为“背景”内容,其主要功能是仅提供视觉上下文,并且可以接受较低级别的精度。最终,您的用例将决定设计和上下文数据所需的精度级别。

1准备和导出城市引擎场景

1在城市引擎中打开场景。本教程假定您已将 CityEngine 场景地理定位到 UTM 坐标系。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

2单击“编辑>首选项”以打开“首选项”窗口,然后单击列表中的“场景”条目以显示场景首选项。记下场景坐标系条目中显示的 EPSG 代码;本教程稍后将需要这样做。关闭“首选项”窗口。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

3在 3D 视口中,通过使用鼠标拖动选择或按键盘上的 CTRL + A 来选择要导出的所有几何图形。

转到“文件>导出模型”,从列表中选择“全向连接器”选项,然后单击“下一步”。

5如果要在导出中包含 CityEngine 地形,请确保在常规设置部分下的导出设置窗口中将地形图层下拉列表设置为导出所有地形图层

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

6展开几何设置部分,然后单击中心按钮。这将创建一个偏移,用于将数据从其当前位置移位,使其更接近场景的原点 (0,0,0)。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

7将 Y 偏移量设置为零。这将帮助我们在 Omniverse 中准确定位模型的高度一次。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

8在您喜欢的文本编辑器中记下 X 偏移和 Z 偏移值。在步骤 2 中,我们需要这些来执行本地坐标和地理坐标之间的转换。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

9单击完成按钮将场景导出为美元。

阿拉伯数字计算地理空间位置

1访问浏览器中的 epsg.io 坐标计算器

阿拉伯数字输入坐标系下,单击更改。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

3搜索从“城市引擎”首选项窗口获取的 EPSG 代码并选择它。对于本教程中的示例数据,使用代码 32632

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

输出坐标系下,确保选择了 EPSG:4 WGS 4979,并且输出坐标下的格式设置为 dec

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

5输入坐标下,否定从城市引擎导出模型窗口获得的 X 偏移值,然后在 X 字段中输入该值。在 Y 字段中输入 Z 偏移值。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

请务必先否定 X 偏移值。例如,如果 CityEngine 的值为 -500,000,则在 X 字段中输入值 500,000。

6单击变换按钮以转换坐标。

7生成的纬度和经度应显示在输出坐标下。记下这些值,因为它们将在下一步中使用。您也可以单击在地图上显示位置以确认提供的坐标与地球上适合您的工程的正确位置对齐。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

3导入和地理配准

1打开 Omniverse USD 编辑器,确保按照快速入门教程启用 Omniverse Fabric 场景委托

阿拉伯数字打开在步骤 2 中创建的 USD 文件。如果未显示任何内容,请按 F 缩放范围。您应该在舞台中看到您的城市引擎内容。如果您的内容显示为黑暗,请尝试从视口的右上角选择“晴空呈现”照明选项。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

3在“铯”窗口中,将“世界地形 + 必应地图航拍图像”添加到舞台。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

从阶段中,选择铯地理参考 prim 以在“属性”窗口中显示其属性

Cesium for Omniverse/CityEngine tutorial: From the stage, select the CesiumGeoreference prim to display its properties in the Property window.

5在“属性”窗口中,输入从 EPSG.io 获取的纬度和经度。现在,输入高度值为 0.0。稍后将计算更准确的高度。

Cesium for Omniverse/CityEngine tutorial: In the Property window, enter the latitude and longitude obtained from EPSG.io. For now, enter the height value as 0.0. A more accurate height will be calculated later.

6您应该会看到 CityEngine 建筑物的顶部通过地形出现在正确的位置,表明使用了准确的纬度和经度。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

7使用 Esri 世界高程的 CityEngine UTM 场景的高度值基于平均海平面进行定义。铯世界地形的高度值基于 WGS84 椭球体定义。为了尽可能准确地对齐两者,需要计算平均海平面和椭球体高度之间的差异。此差异可用于垂直偏移铯世界地形。

8访问浏览器中的UNAVCO身高计算器

9在坐标框中,输入工程的纬度和经度,后跟高度 0.0,以逗号分隔。单击提交

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

10向下滚动以查找结果,然后从大地水准面高度 (m) 列中复制值。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

11将此值粘贴到全宇宙中铯地理参考素数的高度字段中。

Cesium for Omniverse/CityEngine tutorial: Paste this value into the Height field of the CesiumGeoreference prim in Omniverse.

12铯世界地形应该会降低,现在要与从CityEngine导出的地形准确对齐。

Cesium for Omniverse: Esri ArcGIS CityEngine Tutorial

跨项目使用的高度基准面会有所不同。可能需要其他方法来准确计算从工程数据到铯世界地形或正在使用的其他数据集的高度基准面差。

后续步骤

按照我们的舞台照明和捕捉图像和视频教程来准备您的项目并捕捉令人惊叹的视觉效果。

cesium.com/learn 的内容和代码示例在 Apache 2.0 许可证下提供。您可以在商业或非商业应用程序中使用这些代码示例。