创建集成网格场景图层包 (数据管理)

描述

可根据 OpenSceneGraph 二进制 (OSGB) 数据创建场景图层包。

使用方法

  • 与其他 3D 图形格式一样,OSGB 数据格式本身并不支持指定和捕捉模型坐标系。通常,OSGB 格式文件是笛卡尔坐标系中的输出,该坐标系用于将数据定位在固定的坐标。模型的 x、y 和 z 坐标本质上并不是地理位置;而是相对于任一几何原点 (0,0,0) 的位置。用于此类模型的一个典型坐标系是 Easting-Northing-UP (ENU) 约定,其中可将 x 轴视为正东方向,y 轴视为正北方向,z 轴视为向上方向。要正确地对模型进行地理配准,必须提供其他元数据 .xml.3mx 或坐标定位文件 (.wld3);可将其放置在包含 OSGB 格式文件的文件夹旁边,或通过锚点参数进行指定。

  • 如果不存在用于对模型进行地理配准的文件,则可以创建坐标定位文件 (.wld3) 以指定原点。该空格或逗号分隔文件可以用十进制度格式表示为 <From x,y,z> <space> <To x,y,z>

    用于对模型进行地理配准的示例坐标定位文件。只有一个坐标对需要包含锚点坐标。

    0, 0, 0 -117.17222, 34.0392512, 0
  • 如果 OSGB 格式文件是使用已知坐标系创建的,则将投影文件 (.prj) 放置在包含 OSGB 格式文件的文件夹旁边,以正确地对模型进行地理配准。例如,如果输入文件路径为 C:\temp\data 且 OSGB 格式文件位于子文件夹 C:\temp\data\Tile_001C:\temp\data\Tile_002 中,则将投影文件或元数据文件放置在 C:\temp\data 文件夹中。

  • 下表列出了要用于 OSGB 模型的每个输入坐标系的地理配准文件:

    输入坐标系地理配准文件

    局部坐标系 (ENU)

    .xml、坐标定位 (.wld3)、.3mx 或点要素类

    投影坐标系

    投影文件 (.prj)

    地理坐标系

    投影文件 (.prj)

  • OSGB 格式文件由 Drone2Map 和第三方提供商进行创建。有关这些提供商的完整列表,请参阅集成网格场景图层

语法

arcpy.management.CreateIntegratedMeshSceneLayerPackage(in_dataset, out_slpk, {anchor_point}, {file_suffix}, {out_coor_system}, {max_texture_size}, {texture_optimization})
参数说明数据类型
in_dataset
[in_dataset,...]

OSGB 格式文件或包含 OSGB 格式文件的文件夹,将导入到集成网格场景图层包中。此参数允许选择多个 OSGB 格式文件或选择包含 OSGB 格式文件的多个文件夹。

File; Folder
out_slpk

将创建的集成网格场景图层包。

File
anchor_point
(可选)

将用于定位 OSGB 模型中心的点要素、.3mx.xml.wld3 文件。如果要素类中存在多个点,则将仅使用第一个点对数据进行地理配准。

Feature Layer; File
file_suffix
(可选)

指定将针对输入数据集进行处理的文件。

  • *将对所有二进制文件(不考虑其扩展名)进行处理以确定其是否为 OSGB 格式。
  • osgb将仅处理具有 .osgb 扩展名的文件。
String
out_coor_system
(可选)

输出场景图层包的坐标系。它可以是任意投影坐标系或自定义坐标系。支持的地理坐标系包括 WGS 1984 和 China Geodetic Coordinate System 2000。WGS 1984 和 EGM96 大地水准面分别是默认的水平和垂直坐标系。可通过以下任一方式指定坐标系:

  • 指定 .prj 文件的路径。
  • 引用具有所需坐标系的数据集。
  • 使用 arcpy.SpatialReference 对象。

Spatial Reference
max_texture_size
(可选)

每个场景图层节点的最大纹理大小(以像素为单位)。

Long
texture_optimization
(可选)

指定根据使用场景图层包的目标平台优化的纹理。桌面平台包括 Windows、Linux 和 Mac 平台。

  • Desktop纹理格式将进行优化,可用于桌面和 web 平台。纹理格式将为 JPEG 和 DXT。这是默认设置。
  • None纹理格式将进行优化,可用于桌面平台。纹理格式将为 JPEG。
String

代码示例

CreateIntegratedMeshSceneLayerPackage 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

import arcpy
arcpy.env.workspace = "C:/temp"
arcpy.CreateIntegratedMeshSceneLayerPackage_management(
    "terrain_osgb", "mesh.slpk", "anchor.wld3", "OSGB", arcpy.SpatialReference(4326))
CreateIntegratedMeshSceneLayerPackage 示例 2(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

import arcpy
arcpy.env.workspace = "C:/temp"
arcpy.CreateIntegratedMeshSceneLayerPackage_management(
    ["Tile_+001_+001", "Tile_+001_+002", "Tile_+002_+001"], "mesh.slpk", 
    "anchor.shp", "OSGB", arcpy.SpatialReference(4326), 2048, "DESKTOP")

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题