生成室内定位数据集 (室内定位)

摘要

用于为现有 ArcGIS IPS 安装生成室内定位数据集。 您可以使用基于调查的方法或无需调查的方法生成数据集。

此工具将更新 ArcGIS IPS 信息模型中的 IPS 定位数据集和 IPS 定位点要素类以及 IPS 定位信号表。

使用情况

  • 该工具使用以下方法之一生成室内定位数据集:

    • 基于调查 - IPS 记录要素由使用 ArcGIS IPS Setup 应用程序在调查期间收集的信号组成。 对于此方法,您仅需提供 IPS 记录和楼层要素,但您也可以提供 IPS 信标要素以启用自适应无线电定位,从而提高 Android 设备上的定位精度。 如果提供 IPS 信标要素,则将过滤掉并非由 IPS 信标要素类中的信标发射,但在 IPS 调查记录期间捕获的无线电信号。
    • 无需调查 - 这些要素用于模拟整个室内环境中蓝牙信号的传播。 对于此方法,需要提供 IPS 信标、IPS 区域、墙壁和楼层要素。
  • 输出数据集名称参数值在目标 IPS 定位数据集参数中设置的要素类的 Dataset Name 字段中必须唯一。

  • 楼层要素参数值必须是符合 ArcGIS Indoors 信息模型中楼层要素类的要素类或要素图层。

    • 如果使用基于调查的生成方法,则楼层必须至少与 LEVEL_ID 字段中的一个有效 IPS 记录要素相关联。
    • 如果使用无需调查生成方法,楼层必须至少与四个信标、一个 IPS 区域和一个墙壁要素相关联。
    • 此外,必须使用以下最新属性,这些属性必须有效且不为 NULL:
      • LEVEL_ID
      • VERTICAL_ORDER
      • FACILITY_ID

  • IPS 记录要素参数值必须是符合 ArcGIS IPS 模型中 IPS_Recordings 要素类的要素图层或要素类。 在典型部署工作流中,参数值是已共享至 ArcGIS OnlineArcGIS Enterprise 的地图的一部分。

    注:

    允许混合蓝牙和 WiFi 部署,但仅限于站点内的不同设施点。 某些设施点可以提供蓝牙定位,某些可以提供 WiFi 定位,但不能将同一设施点的蓝牙和 WiFi 记录均处理为单独的室内定位数据集。

    如果设施点包含两种无线电类型的调查记录,请在运行工具之前选择其中一种无线电类型的要素。 例如,使用按属性选择图层工具来选择包含这两种类型的设施点的所有蓝牙记录,并且仅在所选要素上运行此工具。 SITE_ID 字段对于每个地理处理作业仅包含一个站点 ID。 将其他站点作为单独的室内定位数据集处理。

  • IPS 信标要素参数值必须是符合 IPS Data 模型中 IPS Beacons 要素类的要素图层或要素类。 要素几何必须精确,并且必须使用以下最新属性,这些属性必须有效且不为 NULL:

    • UUID
    • MAJOR
    • MINOR
    • LEVEL_ID
    • RSSI_1M
    注:

    有关详细信息,请参阅如何维护 ArcGIS IPS 信标数据博客文章。

  • IPS 区域要素参数值必须是能够准确代表您要启用室内定位的室内区域的面要素类或要素图层图层。 必须满足以下条件:

    • IPS 区域要素方案包括 LEVEL_ID 字段。
    • IPS 区域要素使用 LEVEL_ID 属性与现有级别相关联。
    • LEVEL_ID 属性不能为空。
    • 要素几何必须包含在关联级别内。

    您可以通过多种方式派生 IPS 区域要素参数值。 推荐的方法是从 ArcGIS Indoors 信息模型中的单元要素类中选择标注为走廊和门厅的要素。 或者,可以手动创建 IPS 区域要素,这为您根据需求和偏好自定义数据集提供了灵活性。 选择派生方法取决于您的要求和用例的复杂性。

  • 墙壁要素参数值必须是表示将部署室内定位的设施中墙壁的物理范围的要素图层或要素类,且尽可能准确。 这些要素可以从现有 Indoors 信息模型中提取墙壁要素参数值方案必须包括楼层感知所需的所有必要属性。 必须满足以下条件:

    • 墙壁必须使用 LEVEL_ID 属性与现有级别相关联。
    • LEVEL_ID 属性不能为空。
    • 要素几何必须包含在关联级别内。
  • 更新现有数据集参数值必须是布尔值。 要更新室内定位数据集,请选中更新现有数据集参数。

    注:

    如果您希望将来更新数据集,请在地图上共享室内定位数据集(IPS 定位数据集和 IPS 定位点要素类以及 IPS 定位信号表)。

  • 仅当选中更新现有数据集参数时,现有数据集参数值才可用。 该参数值必须是目标 IPS 定位数据集参数值中包含的现有室内定位数据集的名称。 该数据集中包含的数据将与工具输入结合使用,生成现有数据集的更新版本。

参数

标注说明数据类型
目标 IPS 定位数据集

将用于存储生成的室内定位数据集的要素类。

Feature Layer
输出数据集名称

输出室内定位数据集的名称。

输出数据集名称在目标 IPS 定位要素类的 Dataset Name 字段中必须是唯一的。

String
生成方法

指定用于生成室内定位数据集的方法。

  • 基于调查数据集将通过处理 IPS 记录生成。
  • 无需调查数据集将通过模拟室内环境中蓝牙信号传播生成。
String
楼层要素

表示设施点内楼层覆盖区的面要素。

Feature Layer
IPS 记录要素
(可选)

包含 IPS Setup 记录的要素类或要素服务。

当更新基于调查的定位数据集时,可以使用 IPS 设置调查和质量记录;但是,仅当选中更新现有数据集参数时,才能使用质量记录。

生成方法参数设置为基于调查时,此参数为必需项。

Feature Layer
IPS 信标要素
(可选)

表示室内环境中部署的蓝牙信标的位置和设置的点要素。

当在生成方法参数设置为基于调查的情况下生成蓝牙室内定位数据集时,提供有效的信标要素可实现自适应无线电定位,从而提高 Android 设备上的室内定位精度。

生成方法参数设置为无需调查时,此参数为必需项。

Feature Layer
IPS 区域要素
(可选)

表示将生成室内定位数据集的区域的面要素。

生成方法参数设置为无需调查时,此参数为必需项。

Feature Layer
墙壁要素
(可选)

表示墙壁的物理范围的面要素。

生成方法参数设置为无需调查时,此参数为必需项。

Feature Layer
更新现有数据集
(可选)

指定是否通过组合现有数据集和工具输入来创建室内定位数据集。 仅当生成方法参数设置为基于调查时,此参数有效。

  • 选中 - 将通过组合现有数据集和工具输入来创建室内定位数据集。
  • 未选中 - 将创建新的室内定位数据集。 这是默认设置。

Boolean
现有数据集
(可选)

目标 IPS 定位数据集参数中设置的要素类中包含的现有数据集的名称。 该参数值必须是目标要素类中包含的现有室内定位数据集的名称。 该数据集中包含的数据将与工具输入结合使用,生成现有数据集的更新版本。 此参数仅与更新现有数据集参数结合使用。

String

派生输出

标注说明数据类型
更新 IPS 定位数据集

包含新创建的室内定位数据集的更新后的 IPS 定位数据集要素类。

Feature Layer

arcpy.indoorpositioning.GenerateIndoorPositioningDataset(target_ips_positioning_datasets, dataset_name, generation_method, in_levels, {in_ips_recordings}, {in_beacons}, {in_ips_areas}, {in_walls}, {update_existing}, {existing_dataset})
名称说明数据类型
target_ips_positioning_datasets

将用于存储生成的室内定位数据集的要素类。

Feature Layer
dataset_name

输出室内定位数据集的名称。

输出数据集名称在目标 IPS 定位要素类的 Dataset Name 字段中必须是唯一的。

String
generation_method

指定用于生成室内定位数据集的方法。

  • SURVEY_BASED数据集将通过处理 IPS 记录生成。
  • SURVEY_LESS数据集将通过模拟室内环境中蓝牙信号传播生成。
String
in_levels

表示设施点内楼层覆盖区的面要素。

Feature Layer
in_ips_recordings
(可选)

包含 IPS Setup 记录的要素类或要素服务。

当更新基于调查的定位数据集时,可以使用 IPS 设置调查和质量记录;但是,仅当 update_existing 参数设置为 UPDATE_EXISTING 时,才能使用质量记录。

当将 generation_method 参数设置为 SURVEY_BASED 时,此参数为必需项。

Feature Layer
in_beacons
(可选)

表示室内环境中部署的蓝牙信标的位置和设置的点要素。

当在 generation_method 参数设置为 SURVEY_BASED 的情况下生成蓝牙室内定位数据集时,提供有效的信标要素可实现自适应无线电定位,从而提高 Android 设备上的室内定位精度。

当将 generation_method 参数设置为 SURVEY_LESS 时,此参数为必需项。

Feature Layer
in_ips_areas
(可选)

表示将生成室内定位数据集的区域的面要素。

当将 generation_method 参数设置为 SURVEY_LESS 时,此参数为必需项。

Feature Layer
in_walls
(可选)

表示墙壁的物理范围的面要素。

当将 generation_method 参数设置为 SURVEY_LESS 时,此参数为必需项。

Feature Layer
update_existing
(可选)

指定是否通过组合现有数据集和工具输入来创建室内定位数据集。 仅当 generation_method 参数设置为 SURVEY_BASED 时,该参数才有效。

  • UPDATE_EXISTING将通过组合现有数据集和工具输入来创建室内定位数据集。
  • NO_UPDATE_EXISTING将创建新的室内定位数据集。 这是默认设置。
Boolean
existing_dataset
(可选)

target_ips_positioning_datasets 参数中设置的要素类中包含的现有数据集的名称。 该参数值必须是目标要素类中包含的现有室内定位数据集的名称。 该数据集中包含的数据将与工具输入结合使用,生成现有数据集的更新版本。 此参数仅与 update_existing 参数结合使用。

String

派生输出

名称说明数据类型
out_ips_datasets

包含新创建的室内定位数据集的更新后的 IPS 定位数据集要素类。

Feature Layer

代码示例

GenerateIndoorPositioningDataset 示例 1(Python 独立脚本)

以下 Python 独立脚本演示了如何使用 GenerateIndoorPositioningDataset 函数的基于调查方法生成室内定位数据集。

# Name: GenerateIndoorPositioningDataset_example1.py
# Description: Generates an indoor positioning dataset
# using the survey-based method.

# Import system modules
import arcpy.indoorpositioning as ips

# Set local variables
ips_datasets = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\\IPS_Positioning_Datasets"
dataset_name = 'NewDataset'
levels = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\\Levels"
ips_recordings = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\\IPS_Recordings"

# Call the GenerateIndoorPositioningDataset tool

ips.GenerateIndoorPositioningDataset(target_ips_positioning_datasets=ips_datasets,
                                     dataset_name=dataset_name,
                                     generation_method='SURVEY_BASED',
                                     in_levels=levels,
                                     in_ips_recordings=ips_recordings)
GenerateIndoorPositioningDataset 示例 2(Python 独立脚本)

以下 Python 独立脚本演示了如何使用 GenerateIndoorPositioningDataset 函数的无需调查的方法生成室内定位数据集。

# Name: GenerateIndoorPositioningDataset_example2.py
# Description: Generates an indoor positioning dataset
# using the survey-less method.

# Import system modules
import arcpy.indoorpositioning as ips

# Set local variables
ips_datasets = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\\IPS_Positioning_Datasets"
dataset_name = 'NewDataset'
levels = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\\Levels"
beacons = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\\IPS_Beacons"
ips_areas = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\\IPS_Areas"
walls = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\\Walls"

# Call the GenerateIndoorPositioningDataset tool
ips.GenerateIndoorPositioningDataset(target_ips_positioning_datasets=ips_datasets,
                                     dataset_name=dataset_name,
                                     generation_method='SURVEY_LESS',
                                     in_levels=levels,
                                     in_beacons=beacons,
                                     in_ips_areas=ips_areas,
                                     in_walls=walls)
GenerateIndoorPositioningDataset 示例 3(Python 独立脚本)

以下 Python 独立脚本演示了如何使用基于调查的方法,通过组合现有数据集和工具输入的数据来更新现有的室内定位数据集。

# Name: GenerateIndoorPositioningDataset_example3.py 
# Description: Updates an existing indoor positioning dataset using the
# survey-based method by combining data from an existing dataset and the 
# tool inputs.

# Import system modules 

import arcpy.indoorpositioning as ips

# Set local variables 
ips_datasets = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\IPS_Positioning_Datasets" 
existing_dataset = 'Dataset1' 
dataset_name = 'Dataset1_updated'
levels = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\Levels" 
ips_recordings = r"C:\\Users\\myUser\\Documents\\ArcGIS\\Projects\\DemoProject\\DemoProject.gdb\IPS_Recordings" 

# Call the GenerateIndoorPositioningDataset tool 
ips.GenerateIndoorPositioningDataset(target_ips_positioning_datasets=ips_datasets,
                                     dataset_name=dataset_name,
                                     generation_method='SURVEY_BASED',
                                     in_levels=levels,
                                     in_ips_recordings=ips_recordings,
                                     update_existing="UPDATE_EXISTING",
                                     existing_dataset=existing_dataset)

许可信息

  • Basic: 否
  • Standard: 需要 ArcGIS IPS
  • Advanced: 需要 ArcGIS IPS

相关主题