浏览数据加载工作簿

首先,您需要下载 ArcGIS Pro 工程包,其中包含教程所需的所有内容。 在下载工程后,您将浏览将使用的一些数据。

下载数据

在本节中,您将下载并查看本教程的内容。

  1. 下载教程数据

    工程包将自动下载至 Downloads 文件夹。

  2. File Explorer 中,浏览至 Downloads 文件夹,然后双击水数据加载课程文件。

    “水数据加载课程”工程文件

    工程将解压缩到 Documents 文件夹并在 ArcGIS Pro 中打开。 现在可以检查工程内容,以查看与课程有关的所有地图和数据库。

  3. 目录窗格中,单击工程选项卡,然后展开 Maps 文件夹以查看工程中的所有地图。

    工程中的可用地图

    工程包含两个地图:

    • 水资产包 - 此地图指向教程的目标转换数据。 数据库已预填样本数据,但是在完成教程后会覆盖该数据。
    • 水数据管理 - 此地图指向教程的源数据。 可以使用此地图熟悉一下源数据。
  4. 目录窗格中,展开 Databases 文件夹查看工程的数据库。

    工程中的可用数据库

    工程具有与工程同名的默认数据库和两个其他数据库:

    • Water_assetpackage.gdb - 此数据库为本教程中引用的目标数据库。
    • Water_source.gdb - 此数据库为本教程中引用的源数据库。

    您需要将这些数据库的位置保存到文本文件,以在教程的稍后部分中轻松引用。

  5. 目录窗格中,单击 water_source 地理数据库将其选中。
  6. 在功能区的目录选项卡中的剪贴板组中,单击复制路径

    “复制路径”按钮

  7. 打开文本编辑器,例如 Notepad
  8. 在文本编辑器中,粘贴复制的路径。
  9. 目录窗格中,单击 water_assetpackage 地理数据库将其选中。
  10. 目录选项卡中,单击复制路径,然后将该路径粘贴到同一文本编辑器中。
  11. 保存该文本文件。

    接下来,您需要浏览工作簿,用于映射字段以及在数据和数据名之间创建查找。

  12. 目录窗格中,单击工程选项卡,然后打开 Folders\Water Data Loading Lesson\p20 文件夹。

    下面是您将使用的两个主要文件夹:

    • 空白映射 - 此文件夹包含将在本教程中进行填充的空白数据映射工作空间。
    • 完整映射 - 此文件夹包含数据映射工作空间,用于源和目标工作空间的一组完整映射。 如果在教程中受阻,可以引用此工作空间。

    本教程中提供的工作空间是使用数据加载工具创建的。 有关如何创建数据加载工作空间的详细信息,请参考接下来的几步,在本教程结束时获取实用文章、教程和博客的链接。

  13. 右键单击空白映射文件夹,然后选择复制路径将文件夹位置复制到剪贴板。
  14. 将路径粘贴到文本编辑器中。

    在熟悉工程并记录了一些数据路径以供稍后使用后,您将检查要使用的数据加载工作空间。

浏览数据加载工作空间

数据加载工作空间是由数据加载工具创建的一系列电子表格,用于将源数据库中的数据映射到公共设施网络数据模型。 在本教程中,已为您提供数据加载工作空间。 接下来,您将打开并熟悉要使用的数据加载工作空间。 您还将更新工作空间以使用之前下载的课程数据位置。

  1. 打开 File Explorer,然后浏览至 \Water Data Loading Lesson\Blank Mappings 文件夹将其打开。

    “空白映射”文件夹

    空白映射文件夹表示数据加载工作空间,包含如何将数据从源数据库迁移到目标数据库的定义。

    注:

    了解有关数据加载工作空间的详细信息。

  2. 打开 DataReference 工作簿。

    DataReference 工作簿

    您将检查此工作簿的 DataPathSourceTargetMapping 工作表的内容和作用。

  3. 单击 DataPath 工作表进行查看。

    DataPath 选项卡

  4. 在第二行的工作空间列中,粘贴之前记录的源数据库路径。
  5. 使用之前记录的目标数据库路径填充此表的第三行。

    已根据数据更新 DataPath 工作表

    注:

    由于这些文件夹路径特定于用户和工程,因此您的路径可能与所示路径不同。

  6. 单击 SourceTargetMapping 工作表。

    SourceTargetMapping 选项卡

    SourceTargetMapping 工作表显示数据加载工作空间配置为转换的所有图层。

  7. 将所有行的 SourceDefinitionQueryTargetDeleteQuery 列更新为具有表达式 1=1

    已将 SourceDefintionQuery 列更新为 1=1

    将行更新为 1=1 表达式可确保处理源数据库中的每行并在每次运行转换时清除目标数据库。 这样可以在多次运行数据加载时防止数据重复。 创建映射时,需要提高这些查询的可选择性,尤其当将多个源合并为单一目标图层时。 可通过引用 CompleteDataMappings 文件夹查看最终过滤器外观的示例。

    您将加载系统阀和主水管图层,需要确保数据加载工具仅加载这些图层。 可通过将图层的已启用值设置为 True 控制加载的图层。

  8. 找到主水管和系统阀行(分别为第 8 行和第 15 行),确保其已启用列值设置为 True
  9. 确认所有其他行的已启用列值设置为 False

    主水管和系统阀的“已启用”列设置为 True

    如果忘记禁用其他图层,则在处理这些图层时,工具可能失败并可能创建重复数据。

  10. 保存工作簿。

    在此工作簿中,可以访问要使用的其他数据加载工作簿。

  11. 单击单元格 E8 打开主水管的工作簿。

    打开主水管的映射工作簿。

    随即显示主水管的数据映射工作簿。

    主水管数据映射工作簿

    这是将为主水管填充的工作簿。

  12. DataReference 工作簿中,查找系统阀的行(第 15 行),单击该行打开系统阀的数据映射工作簿。

    打开系统阀的映射工作簿。

    这是将为系统阀填充的工作簿。

  13. 保存并关闭 DataReference 工作簿。
    注:

    关闭上述任意工作簿时,保存更改以确保不会损失任何进度。 同时在这些教程中定期保存更改。

您已熟悉主水管和系统阀的数据和映射工作簿。 接下来,您将开始映射数据和数据模型之间的值。


准备系统阀工作簿

在此模块中,您将修改数据加载工作空间,以将源数据中的系统阀转换为对应的公共设施网络要素。

打开数据字典

在开始映射数据之前,您需要使用在线数据字典浏览数据模型。 由于信息分散在数据加载工作空间中的多个工作簿,通常,可以使用在线数据词典轻松查找此信息。

如果对方案进行了任何修改,则这些修改不会在在线帮助的数据字典中进行反映。 在此情况下,您需要引用在数据加载工作空间中创建的方案电子表格。

  1. 转至解决方案的使用配水公共设施网络基础页面。

    在本教程中,您将查看已增强数据字典,因为可通过该字典固定描述数据模型的不同卡片,从而省去了大量滚动浏览过程。

  2. 在解决方案页面中,单击数据字典链接或单击在此提供的链接。

    数据字典链接

    随即显示数据字典。

    在线数据字典主页

    由于在本节中您将查看系统阀,因此需要在数据字典中打开其卡片。

  3. 在内容列表中,展开图层,然后单击水设备

    “水设备”卡片

    水设备卡片随即在显示中显示。 注意子类型字段 ASSETGROUP

    ASSETGROUP 子类型字段

  4. 展开子类型

    系统阀子类型

    在检查列表中,可以看到有一个系统阀选项。 此类的子类型字段称为 ASSETGROUP,填充此图层的字段映射时,需要使用对应于该子类型的值。

  5. 单击系统阀打开其卡片。

    “系统阀”卡片

    系统阀卡片显示了解如何映射字段所需的信息。 接下来,您将映射源数据和数据模型之间的字段。

映射字段

首先,在系统阀工作簿的第一个工作表中填充字段映射。 目的是使用可用数据在目标数据模型中填充所需数量的字段。 并不是要素中的所有字段都是必需的,因此如果字段没有可用值,或者您不确定如何进行填充,可以跳过该字段并稍后返回该字段。

  1. File Explorer 中,浏览至教程文件夹。 在空白映射文件夹中,展开 DataMapping文件夹。 打开 wSystemValve-WaterDevice_System Valve 工作簿。

    打开系统阀工作簿

    注:

    wSystemValve-WaterDevice_System Valve 工作簿后续将称为系统阀工作簿。

  2. 单击 SourceSchema 工作表检查源数据中的字段。

    SourceSchema 选项卡

    SourceSchema 工作表随即显示并列出字段和值。

    SourceSchema 工作表中的字段和值

    如果您的公司保留内部数据字典或方案参考,则还可以引用该信息。

  3. SourceSchema 工作表中的字段列表与 Mapping 工作表中的目标字段列表进行比较,查找两个图层之间的公共字段。
    注:

    打开第二个 Microsoft Excel 窗口可以同时查看两个字段列表。

    在检查两个字段列表后,即可在两个数据集之间映射这些字段。

    目标字段源字段

    globalid

    GlobalID

    diameter

    Diameter

    normalstatus

    NormallyOpen

    presentstatus

    CurrOpen

    operable

    可操作

    installdate

    installdate

    assetid

    FacilityID

    ownedby

    OwnedBy

    maintby

    MaintainedBy

    additionaldevice

    BypassValve

    notes

    LocDesc

    symbolrotation

    旋转

    由于每个子类型的每个字段都具有唯一别名,您还需要将源字段与数据字典进行比较。

  4. 将数据字典与源字段工作簿并排放置。
  5. 在数据字典的系统阀卡片中,展开字段

    “系统阀”卡片中的“字段”已展开

  6. 查找资产组中与源数据模型中的字段匹配的字段别名。

    公共设施网络具有名为 additionaldevice 的字段,用于指示要素是否具有旁通阀。 这与源数据模型中的 BypassValve 字段匹配。

    在检查此资产组中的所有字段后,您将找到可以映射的其他字段。

    目标字段资产组字段源字段

    designtype

    阀类型

    ValveType

    additionaldevice

    具有旁通阀

    BypassValve

    designinfo

    旋转关闭

    TurnsToClose

    lifecyclestatus

    生命周期状态

    ActiveFlag

    现已找到两个系统之间匹配的 15 个字段列表。

    对于其中的每个字段,假设可以将其从源要素直接映射到目标要素。

  7. 返回系统阀工作簿。
  8. 映射工作表中,查找 globalid 字段行。 在 globalid 字段行的表达式列中,单击单元格,单击下拉箭头,然后选择 !GlobalID!

    映射 globalid 字段

    接下来,您将以相同的方式映射剩余字段。

  9. 使用下表作为指南查找每个字段,然后在该字段的表达式列中,选取匹配的源字段。

    目标字段源字段

    diameter

    Diameter

    designtype

    ValveType

    normalstatus

    NormallyOpen

    presentstatus

    CurrOpen

    additionaldetails

    ClockToClose

    designinfo

    TurnsToClose

    operable

    可操作

    installdate

    installdate

    assetid

    FacilityID

    ownedby

    OwnedBy

    maintby

    MaintBy

    additionaldevice

    BypassValve

    notes

    LocDesc

    symbolrotation

    旋转

    lifecyclestatus

    ActiveFlag

    已映射系统阀的所有字段。

    已完成字段映射

    在找到两个模型之间的公共字段后,即已完成在图层中映射要素的第一步。 接下来,您将创建用于查找字段值更改的查找,以确保两个数据模型之间的内容匹配。

为系统阀创建查找

您创建了每个字段映射并假设直接在两个图层之间映射每个字段。 在本节中,您将重新访问该假设,并识别需要创建查找才能在两个模型之间进行转换的情况。 数据加载工具用于在源和目标字段之间表示数据的值不同时创建并引用查找工作表。 这可能像将在值 Yes 转换为 Y 或将源数据中的制造商名称列表转换为目标数据中的代码集一样简单。

数据加载工作空间会自动在工作簿中创建关联工作表,前提是已向任意源字段分配属性域。 要识别查找创建位置,检查已创建映射的字段是否在电子表格中具有对应的选项卡。

  1. 查看系统阀工作簿,如有必要,单击映射工作表。 浏览字段并查看是否存在匹配选项卡。

    以下字段具有将检查并为之创建查找的选项卡:

    • ValveType
    • Diameter
    • OwnedBy
    • Maintainedby
    • BypassValve
    • ActiveFlag
  2. 打开包含数据字典的浏览器选项卡。
  3. 系统阀下,展开字段

    “系统阀”卡片上的“字段”已展开

  4. 向下滚动字段列表,找到 designtype 字段。

    显示 designtype 字段的字段列表

  5. designtype 字段行中,查找 Water_Valve_Type,然后单击其旁边的按钮打开阀类型的卡片。

    打开 Water_Valve_Type 卡片。

    随即显示公共设施网络的可用控制阀类型列表。

    公共设施网络的控制阀列表

    您将使用数据字典中列出的类型填写系统阀工作簿中的字段。

  6. 在系统阀工作簿中,打开 VALVETYPE 工作表,并将其值与在线字典中的列表进行比较。

    VALVETYPE 工作表中列出的阀类型

    检查这些列表,可以看到工作簿中的每个值在数据模型中具有对应的代码。

    要创建查找,您需要向 VALVETYPE 工作表添加两列:一个类型列,一个描述列。

  7. VALVETYPE 工作表的 psSystemValveType(描述)字段旁,在 C 列中键入新阀类型。 在 D 列中,键入描述

    查找字段已添加至 VALVETYPE 工作表

    注:

    可以单击列名称 piSystemValveType(描述)跳转至源工作表。

    可以将这些列命名为所需的名称,但在本教程的稍后部分中将在工作簿的其他选项卡中引用这些名称。 在教程中,您将使用指示的名称。 自行迁移时,可以使用自己的命名标准。

  8. 按照表中的信息,使用目标属性域中的类型和描述填充添加的两列。

    新阀类型描述

    球阀

    20

    蝶阀

    21

    圆锥

    22

    闸门阀

    23

    旋塞阀

    24

    Unknown

    0

    注意,数据字典中无 Roundway其他输入项。 通常,源属性域中有些代码在目标属性域中没有对应值。 如果确认您的数据使用这些代码,向目标模型和此电子表格添加新代码和描述。

    注:

    数据加载工作空间是创建工作空间时的地理数据库方案副本。 如果在创建工作空间时对源或目标方案进行任何更改,必须使用更改手动更新数据加载工作空间,或创建新的工作空间并将所有映射迁移至新工作空间。

    在完成创建查找后,您需要更新映射工作表以引用这些列。

  9. 单击映射工作表,查找 designtype 行,然后执行以下操作:
    • 在单元格 D20 中,键入 VALVETYPE
    • 在单元格 E20 中,键入 VALVETYPE
    • 在单元格 F20 中,键入新阀类型

    查找值已添加至 designtype 字段

    键入的值最初以红色高亮显示,因为不允许在同一字段上定义表达式和查找。 要解决此问题,您需要移除表达式。

  10. 对于 designtype 行,在表达式列(单元格 C20)中,选择 !VALVETYPE! 并将其删除。

    行中的红色高亮显示将消失。

    已删除 designtype 字段的表达式

    您已使用之前创建的查找中的工作表名称 (VALVETYPE)、原始字段名称 (VALVETYPE) 和新列名称(新阀类型)更新 designtype 字段。 您还清除了表达式,以在加载过程中使用查找。

    接下来,您将为多个其他字段创建查找。

为多个字段创建查找

还必须为五个字段创建查找。 您需要遵循创建字段并填充值这一过程,但是为了简化,无需继续转至数据字典。 将为您提供正确值。 如果想要使用用于在数据字典中查找值的工作流程,可以这样做,但是说明不会包含该内容。

  1. 执行以下步骤为 BYPASSVALVE 工作表创建查找:
    • BYPASSVALVE 工作表中,添加两个列标题新附加设备描述
    • 新附加设备列的单元格 C2 中,键入 2,在单元格 C3 中,键入 1
    • 描述列的单元格 D2 中,键入,在单元格 D3 中键入

    已输入 BYPASSVALVE 查找字段

  2. 执行以下步骤在映射工作表中继续创建查找:
    • 映射工作表中,转至第 32 行 (additionaldevice),清除表达式。
    • 对于 LookupSheetLookupKeys 列,键入 BYPASSVALVE
    • LookupValue 列中,键入新附加设备

    已在“映射”工作表中键入 additionaldevice 的查找值

    已为 additionaldevice 字段创建查找。 接下来,将为 ownedby 字段创建查找。

  3. 执行以下步骤为 ownedby 字段创建查找:
    • 所有者工作表中,添加两个列标题新所有者描述
    • 新所有者列中的第一个空白单元格 (C2) 中,键入 1,在单元格 C3 中,键入 2,在单元格 C4 中,键入 100
    • 描述列的单元格 D2 中,键入我们的机构,在单元格 D3 中,键入私有,在单元格 D4 中,键入其他

    已为“所有者”工作表创建查找

  4. 执行以下步骤在映射工作表中继续创建查找:
    • 映射工作表中,转至第 30 行 (ownedby),清除表达式。
    • 对于 LookupSheetLookupKeys 列,键入所有者
    • 对于 LookupValue,键入新所有者

    已在“映射”工作表中键入 ownedby 的查找值

    您已为 ownedby 字段创建查找。 接下来,将为 maintby 字段创建查找。

  5. 执行以下步骤为 maintby 字段创建查找:
    • 维护者工作表中,添加两个列标题新维护者描述
    • 新维护者列的第一个空白单元格 (C2) 中,键入 1,在单元格 C4 中,键入 100
    • 描述列的单元格 D2 中,键入我们的机构,在单元格 D3 中,键入私有,在单元格 D4 中,键入其他

    已为“维护者”工作表创建查找

  6. 执行以下步骤在映射工作表中继续创建查找:
    • 映射工作表中,转至第 31 行 (maintby),清除表达式。
    • 对于 LookupSheetLookupKeys 列,键入维护者
    • 对于 LookupValue,键入新维护者

    已在“映射”工作表中键入 maintby 的查找值

    接下来,您将在 lifecyclestatus 字段中为系统阀创建最终查找。

  7. 执行以下步骤为 lifecyclestatus 字段创建查找:
    • 活动标志工作表中,添加两个列标题新生命周期状态描述
    • 新生命周期状态列的第一个空白单元格 (C2) 中,键入 256,在单元格 C3 中,键入 8
    • 描述列的单元格 D2 中,键入停止服务,在单元格 D3 中键入服务中

    已为“活动标志”工作表创建查找

  8. 执行以下步骤在映射工作表中继续创建查找:
    • 映射工作表中,转至第 36 行 (lifecyclestatus),清除表达式。
    • 对于 LookupSheetLookupKeys 列,键入活动标志
    • 对于 LookupValue,键入新生命周期状态

    已在“映射”工作表中键入 lifecyclestatus 的查找值

    现已完成系统阀的查找。

为 diameter 字段创建查找。

接下来,您需要为 Diameter 字段创建查找。 此字段具有许多值,因此您需要在已完成的映射工作簿中复制粘贴值。

  1. 在系统阀工作簿中,单击直径工作表。

    随即显示直径工作表。

    “直径”工作表

    源数据包含 piPipeDiameter(描述)的值。 接下来,您需要查看数据字典中的值以查看匹配情况。

  2. 打开包含数据字典的浏览器选项卡。
  3. 系统阀卡片的字段部分中,查找 diameter 字段。
  4. 单击 9_Water_Diameter 旁的按钮查看其值。

    展开 Water_Diameter

    随即显示 Water_Diameter 编码属性域值。

    Water_Diameter 编码值属性域

  5. 将源工作表中的值与数据字典中的值进行比较。

    源数据中的 ½ 英寸没有输入项,因此不会在查找中包含此项。

  6. 返回系统阀工作簿的直径工作表。
  7. 添加两个列标题新直径描述

    查找字段已添加至“直径”工作表

    接下来,您需要复制源数据中的值并将其粘贴到查找字段中,因为大部分值相同。

  8. 选择单元格 A2 至 B31。 右键单击选定单元格,然后选择复制

    复制单元格 A2 至 B31。

  9. 单击单元格 C2,右键单击,然后选择粘贴
  10. 在单元格 C31 中,将 –1 更改为 0,在单元格 D31 中,将其他更改为未知

    在查找列中更改值

    接下来,您需要调整映射工作表,以便 diameter 字段使用之前创建的查找,而不是当前分配的表达式。

  11. 单击映射工作表将其打开。
  12. 在 A 列中,查找包含 diameter 字段 (A17) 的行。
  13. 在单元格 C17 中清除表达式,然后键入以下值:
    • 在单元格 D17 中,对于 LookupSheet,键入直径
    • 在单元格 E17 中,对于 LookupKeys,键入直径
    • 在单元格 F17 中,对于 LookupValue,键入新直径

    键入 diameter 字段的查找值

    您已为 diameter 字段创建查找,并且已完成系统阀查找创建。

    注:

    要查看每个查找的精确外观,请参考工程的已完成映射文件夹中的 wSystemValve-WaterDevice_System Valve 工作簿。

填充资产组和资产类型

要素中的两个最重要的值为其资产组和资产类型。 这些字段用于控制要素在公共设施网络中的行为方式。 这包括显示要素的图层及其符号系统、规则和许多其他行为。 本节将演示如何使用在前面几节中学到的方法填充每个要素的资产组和资产类型。

您之前确定了当前使用的是系统阀资产组,此资产组的子类型代码为 2。

  1. 在系统阀工作簿的映射工作表中,对于 assetgroup,将表达式值设置为 2

    对于 assetgroup,将表达式设置为 2。

    通过将表达式设置为数字,意味着源数据中系统阀图层中的所有要素将转换为目标模型中的系统阀。 接下来,您将确定此图层的一个或多个资产类型。

  2. 查看包含数据字典的浏览器选项卡,然后展开水设备卡片。 展开子类型,然后单击系统阀

    数据字典中的“系统阀”选项

    随即显示系统阀卡片。

    系统阀卡片介绍了模型中系统阀的作用,并且还可用于检查分配给此资产组的任何方案或规则。

  3. 系统阀卡片中,展开资产类型,查找系统资产类型,然后查看其代码。

    “系统阀”卡片显示资产类型

    您可以阅读所有资产类型的描述并选择看起来最适合的类型。 在此情况下,系统阀资产组的系统资产类型似乎是最适合此图层中的要素的选择。

  4. 映射工作表中,对于 assettype,将表达式设置为 170

    系统资产类型代码为 170

    当转换运行时,这将确保源数据库中的每个系统阀在资产类型为系统的系统阀图层中显示。 如果确定源系统阀图层包含其他类型阀(例如隔离区阀、压力区阀或消火栓阀),则可以重复用于创建查找的过程,以为资产类型字段创建查找。

  5. 保存系统阀工作簿。

    您已成功映射字段并为系统阀创建查找。 接下来,您将对水线执行相同的操作。


准备水线工作簿

在此模块中,您将修改数据加载工作空间,以将源数据中的系统阀转换为对应的公共设施网络要素。

打开数据字典

与在先前的系统阀模块中一样,在对数据进行映射之前,您将浏览目标图层的数据模型,使用在线帮助中的数据字典查找此信息。

如果对方案进行了任何修改,则这些修改不会在在线帮助的数据字典中进行反映。 在此情况下,您需要引用在数据加载工作空间中创建的方案电子表格。

  1. 打开包含数据字典的浏览器选项卡。

    可随时浏览主水管并进行制图,因此,您将打开水线对应的卡片。 数据字典可能仍打开到水设备类别,因此您将先折叠该类别。

  2. 在数据字典中,单击水设备将其折叠。

    折叠水设备卡片。

    在折叠水设备后,可以看到水线。 您需要浏览此部分,因为主水管是一种水线。

  3. 图层下,单击水线查看其卡片。

    水线卡片

    水线卡片即会添加至显示。

    注意子类型字段 ASSETGROUP

  4. 展开子类型,然后查找与主水管对应的子类型。

    主水管子类型

    在检查列表后,注意有一个主水管值。 此类的子类型字段称为 ASSETGROUP,填充此图层的字段映射时,需要使用对应于此子类型的值。

  5. 在卡片中,展开主水管查看其信息。

    展开主水管子类型。

    可以使用主水管卡片中的信息了解如何对字段进行映射。

映射字段

首先,在主水管工作簿的第一个工作表中填充字段映射。 目的是使用当前数据模型中的可用数据在目标数据模型中填充所需数量的字段。 并不是要素中的所有字段都是必需的,因此如果某些字段没有值,或者您不确定如何进行填充,可以跳过该字段并稍后返回该字段。

  1. File Explorer 中,转至下载数据的位置,浏览至 Water Data Loading Lesson\Blank Mappings\DataMapping\Polylines,然后打开 wMain-WaterLine_Water Main
    注:

    可以打开 Water Data Loading Lesson\Complete Mappings\DataMapping\Polylines\wMain-WaterLine_Water Main 作为绘制字段时的参考。 必须先修改其名称,才能打开两个同名工作簿。

  2. 单击 SourceSchema 工作表检查源数据中的所有字段。

    SourceSchema 选项卡

    注:

    如果您的公司保留内部数据字典或方案参考,则可以在绘制字段时引用该信息。

  3. SourceSchema 工作表中的字段列表与 TargetSchema 工作表中的字段列表进行比较,查找两个图层之间的公共字段。

    在检查两个字段列表后,即可在两个数据集之间映射这些字段。

    目标字段源字段

    globalid

    GlobalID

    installdate

    InstallDate

    assetid

    FacilityID

    ownedby

    OwnedBy

    maintby

    MaintBy

    diameter

    Diameter

    material

    Material

    由于每个子类型的每个字段都具有唯一别名,您还需要将源字段与数据字典进行比较。

  4. 将在线数据字典与显示 SourceSchema 工作表的工作簿并排放置。
  5. 在数据字典的主水管卡片中,展开字段

    展开“主水管”卡片中的“字段”。

  6. 查找资产组中与源数据模型中的字段匹配的字段别名。

    显示 designtype 字段的主水管的资产组

    公共设施网络具有名为 designtype 的字段,用于表示流经此主水管的水类型。 这与源数据模型中的 WaterType 字段匹配。

    在检查此资产组中的所有字段后,您将找到可以映射的其他字段。

    目标字段源字段

    lifecyclestatus

    ActiveFlag

    designtype

    WaterType

    现已找到两个系统之间匹配的九个字段列表

    目标字段源字段

    globalid

    GlobalID

    installdate

    InstallDate

    assetid

    FacilityID

    ownedby

    OwnedBy

    maintby

    MaintBy

    diameter

    Diameter

    lifecyclestatus

    ActiveFlag

    material

    Material

    designtype

    WaterType

    对于其中的每个字段,假设可以将其从源要素直接映射到目标要素。 您将在稍后部分中重新访问并改进此假设。

  7. 在主水管工作簿中,单击映射工作表。
  8. TargetField 列中,查找 globalid 字段(单元格 A8)。 在 globalid 字段的表达式列中,单击空白单元格,单击下拉菜单,然后选择 !GlobalID!
  9. 对于剩余的八个目标字段,在表达式列中,选取器对应的源字段。 使用以下信息作为指导:

    目标字段源字段

    installdate

    InstallDate

    assetid

    FacilityID

    ownedby

    OwnedBy

    maintby

    MaintBy

    diameter

    Diameter

    lifecyclestatus

    ActiveFlag

    material

    Material

    designtype

    WaterType

    您已映射目标和源之间的所有必要字段。

    已完成字段映射

    接下来,您将检查字段映射并创建查找。

创建查找

数据加载工具将在源数据具有属性域的创建查找工作表。 然后,当源和目标字段之间的数据不同时,可以引用查找工作表和字段。 这可能像将在值 Yes 转换为 Y 或将源数据中的制造商名称列表转换为目标数据中的代码集一样简单。

您创建了每个字段映射并假设直接在两个图层之间映射每个字段。 接下来,您将重新访问该假设,并查找必须创建查找才能在两个模型之间进行转换的情况。

要识别需要查找的位置,检查已创建映射的字段是否在电子表格中具有对应的选项卡。

  1. 在水线工作簿中,查看映射工作表,然后滚动工作表列表查看其名称,检查是否有与字段匹配的工作表。

    具有匹配选项卡的字段

    数据加载工作空间会自动在工作簿中创建工作表,前提是已向任意源字段分配属性域。 可通过这些工作表以快捷、简单的方式创建查找。

    以下字段具有对应的选项卡并且必须检查:

    • OwnedBy
    • Maintainedby
    • Diameter
    • ActiveFlag
    • Material
    • WaterType

    您需要检查每个映射的源和目标方案的方案才能弄清楚映射是什么。 可以使用目标方案选项卡或在线数据字典,查看哪些字段已分配属性域。 在此示例中,您将使用在线字典避免必须在多个电子表格之间进行导航。

  2. 查看数据字典。 在字段列表中,查找材料,然后展开属性域 Water_Main_Material

    Water_Main_Material 属性域

    属性域值将在下面的卡片中显示。

    Water_Main_Material 卡片

  3. 在主水管工作簿中,单击材料工作表,然后将其值与在线字典中的属性域编码值列表进行比较。

    “材料”选项卡中的值

    接下来,您将通过向材料工作表添加列创建查找。

  4. 材料工作表中,键入两个其他列名称新材料描述

    向“材料”工作表添加查找字段。

    注:

    可以将这些列命名为所需的名称,但在本教程的稍后部分中将在工作簿的其他选项卡中引用这些名称。 因此,在本教程中,将使用指示的名称。 自行迁移时,可以使用自己的命名标准。

    根据源和目标属性域列表,您将识别源数据模型中每个材料值的新材料代码。 如果在源模型中找到没有对应的目标值的值,将代码设置为 0,并将描述设置为未知。 如果已使用这些代码填充模型中的数据,必须将新材料代码添加至目标模型,并在此查找中引用这些代码。

    为了节省时间,您需要从已完成主水管工作表复制所有代码和描述,而不是手动进行添加。

  5. File Explorer 中,浏览至教程数据文件夹,然后展开 \Completed Mappings\DataMapping\Polylines。 双击 wMain-WaterLine_Water Main 打开已完成主水管工作簿。

    打开已完成主水管工作簿。

  6. 在已完成主水管工作簿中,单击材料选项卡。

    此工作表包含创建查找所需的所有信息。 注意,有一些类型在数据中不存在。 对于这些类型,值将设置为 0,描述将设置为未知

  7. 选择单元格 C2 至 D37,然后按 Ctrl+C 复制这些值。

    从已完成映射工作簿中复制值。

  8. 返回主水管工作簿的材料工作表。 单击单元格 C2,然后按 Ctrl+V 粘贴值。

    通常,源属性域中有些代码在目标属性域中没有对应值。 如果确认您的数据使用这些代码,向目标模型和此电子表格添加新代码和描述。

    注:

    数据加载工作空间是创建工作空间时的地理数据库方案副本。 如果在创建工作空间时对源或目标方案进行任何更改,必须使用更改手动更新数据加载工作空间,或创建新的工作空间并将所有映射迁移至新工作空间。

    在完成创建查找后,您需要更新映射选项卡以引用这些新列。

  9. 使用目标属性域中的代码和描述填充新材料描述列。
  10. 单击映射工作表,然后查找材料行。 对于 LookupSheetLookupKeys 列,键入材料。 对于 LookupValue 列,键入新材料

    “材料”行已填写并显示一个错误

    键入的值以红色高亮显示,因为无法在同一字段上定义表达式和查找。

  11. 材料行中,移除表达式,以使转换使用查找填充此字段。

    从材料行中移除表达式。

    移除表达式时,将清除行中的红色高亮显示内容。 接下来,您需要构建剩余查找。 还需要构建五个查找。 您需要使用提供的值,而不是查阅每个字段的数据字典。 但是,您可以查阅数据字典验证结果。

  12. 执行以下步骤为 ownedby 字段创建查找:
    • 单击所有者工作表。
    • 添加两个列标题新所有者描述
    • 在单元格 C2 中,键入 1,然后在单元格 D2 中,键入我们的机构
    • 在单元格 C3 中,键入 2,然后在单元格 D3 中,键入私有
    • 在单元格 C4 中,键入 100,然后在单元格 D4 中,键入其他

    “查找”字段已添加至“所有者”工作表

  13. 映射工作表中,查找 ownedby 行,然后执行以下操作:
    • 移除表达式字段中的值。
    • 对于 LookupSheetLookupKeys,键入所有者
    • 对于 LookupValue,键入新所有者

    已为 ownedby 字段创建查找

  14. 执行以下步骤为 maintby 字段创建查找:
    • 单击维护者工作表。
    • 添加两个列标题新维护者描述
    • 在单元格 C2 中,键入 1,然后在单元格 D2 中,键入我们的机构
    • 在单元格 C3 中,键入 2,然后在单元格 D3 中,键入私有
    • 在单元格 C4 中,键入 100,然后在单元格 D4 中,键入其他

    已在“维护者”工作表中创建和填充字段

  15. 映射工作表中,查找 maintby 字段,然后执行以下操作:
    • 移除表达式字段中的值。
    • 对于 LookupSheetLookupKeys,键入维护者
    • 对于 LookupValue,键入新维护者
  16. 执行以下步骤为 diameter 字段创建查找:
    • 单击直径工作表。
    • 添加两个列标题新直径描述
    • 在主水管的已完成工作簿中,单击直径选项卡。 将单元格 C2 复制到 D31。
    • 在主水管工作簿的直径工作表中,单击单元格 C2 并复制值。

    直径代码和描述已粘贴到主水管工作簿中。

  17. 映射工作表中,查找 diameter 字段,然后执行以下操作:
    • 移除表达式字段中的值
    • 对于 LookupSheetLookupKeys,键入直径
    • 对于 LookupValue,键入新直径

    已完成 diameter 字段的查找

  18. 执行以下步骤为 activeflag 字段创建查找:
    • 单击活动标志工作表。
    • 添加两个列标题新生命周期状态描述
    • 在单元格 C2 中,键入 256,然后在单元格 D2 中,键入停止服务
    • 在单元格 C3 中,键入 8,然后在单元格 D3 中,键入服务中

    “活动标志”查找的代码和描述

  19. 映射工作表中,查找 lifecyclestatus 字段,然后执行以下操作:
    • 移除表达式字段中的值
    • 对于 LookupSheetLookupKeys,键入活动标志
    • 对于 LookupValue,键入新生命周期状态

    已完成 lifecyclestatus 字段的查找

  20. 执行以下步骤为 designtype 字段创建查找:
    • 单击水类型工作表。
    • 添加两个列标题新设计类型描述
    • 新设计类型列中,从单元格 C2 开始向下逐一键入 142000
    • 描述列中,从单元格 D2 开始向下逐一键入饮料生水灌溉未知未知未知

    已为“水类型”工作表创建查找值。

  21. 映射工作表中,查找 designtype 字段,然后执行以下操作:
    • 移除表达式字段中的值。
    • 对于 LookupSheetLookupKeys,键入水类型
    • 对于 LookupValue,键入新设计类型

    已完成水线的查找

  22. 保存工作簿。

    接下来,您将查看资产类型和资产组值。

填充资产组和资产类型

要素中的两个最重要的值为其资产组和资产类型。 这些字段用于控制要素在公共设施网络中的行为方式。 这包括显示要素的图层及其符号系统、规则和许多其他行为。 本节将演示如何使用在前面几节中学到的方法填充每个要素的资产组和资产类型。

  1. 在数据字典中,查看水线卡片。
    注:

    向上滚动,因为该卡片已在屏幕顶部附近打开。

    水线卡片

    您之前确定了当前使用的是主水管资产组,此资产组的子类型代码为 1。

    “主水管”资产组显示代码 1

  2. 在水线工作簿的映射工作表中,对于 assetgroup 字段,将表达式值设置为 1

    将 assetgroup 字段的表达式值设置为 1。

    通过将表达式设置为数字,意味着源数据中主要图层中的所有要素将转换为目标模型中的主水管。 接下来,您将确定此图层的一个或多个资产类型。

  3. 返回数据字典和水线卡片。 单击主水管打开其卡片。

    “主水管”卡片

    此卡片介绍了模型中主水管的作用,并且还可用于检查分配给此资产组的任何方案或规则。

  4. 展开资产类型以查看数据模型中的可用主水管类型。

    数据模型中的主水管资产类型

    您可以阅读所有资产类型的描述并选择看起来最适合的类型。 在此情况下,已知源图层中的主水管为数据模型中的输水总管配水总管。 可以使用 TRANSMISS 标志对其进行区分。

    接下来,您将创建查找以确保输水总管的资产类型为 1,配水总管的资产类型为 2。

  5. 在水线工作簿中,单击 TRANSMISS 工作表。 添加两列新资产类型描述

    “查找”字段已添加至 TRANSMISS 工作表

  6. 新资产类型列的单元格 C2 中,键入 1,在单元格 C3 中,键入 2
  7. 描述列的单元格 D2 中,键入输水总管,然后在单元格 D3 中,键入配水总管

    已输入主水管描述

  8. 单击映射工作表,然后查找 assettype 字段。 对于 LookupSheetLookupKeys 列,键入 TRANSMISS。 对于 LookupValue,键入新资产类型

    已为 assettype 创建查找

  9. 保存工作簿。

在创建映射后,源数据库的主水管图层中的所有要素将在目标数据库的水线图层的主水管子类型中显示。 如果要素的 TRANSMISS 值为,其资产类型值为输水总管 (1);如果其 TRANSMISS 值为,则其资产类型值为配水总管 (2)。

如果资产类型为必填字段并且在公共设施网络中很重要,则必须确保已填充每个要素的 TRANSMISS 字段并且字段值正确。 如果值缺失或错误,则稍后第一次构建网络时将导致错误。

您现在已完全填充主水管的数据映射工作簿。 下一步是使用之前创建的映射和查找将数据加载到公共设施网络数据模型中。


将数据加载到公共设施网络中

现在,您将使用 Esri 数据加载工具运行之前填充的数据映射工作空间。 此模块为可选模块,因为它需要更改随 ArcGIS Pro 安装的默认 Python 环境,而一些用户可能没有信心执行该操作或可能没有权限执行该操作。

但是,如果您可以完成本模块,您不仅能够运行之前创建的数据映射工作空间,还可以为自己的数据库创建数据加载工作空间。

数据加载工具检查

要完成此部分,您可能需要管理员帮助您在计算机中安装更多软件。 要安装此解决方案,需要将新的 Conda 包添加至 ArcGIS ProPython 环境。 由于无法更改 ArcGIS Pro 的默认环境,因此需要克隆默认环境。 如果您没有信心自行执行这些步骤,则可以让管理员为您执行这些步骤。

  1. 如有必要,在 ArcGIS Pro 中打开水数据加载工程。
  2. 在功能区分析选项卡的地理处理组中,单击工具

    “分析”选项卡显示“工具”按钮

  3. 地理处理窗格中,单击工具箱

    “地理处理”窗格中的“工具箱”选项卡

  4. 浏览工具箱列表,查找以 D 开头的工具箱。

    以 D 开头的工具箱

如果在工具箱列表中看到数据加载工具工具箱,则表示工具已在计算机中安装,您可以前往下一部分。

如果未看到数据加载工具工具箱,则要执行加载操作,必须进行安装。

下载 Esri 数据加载工具解决方案

接下来,您将安装数据加载工具解决方案。 在此过程中,第一步是克隆 ArcGIS Pro 的默认 Python 环境。 所有步骤均位于解决方案页面中,但是还可以直接在教程中访问这些步骤。

  1. ArcGIS Pro 的功能区上,单击工程选项卡。

    单击“工程”选项卡,

  2. 在“新建工程”窗格中,单击包管理器

    单击“包管理器”。

    随即显示包管理器

    “包管理器”用于管理环境和包。 在本例中,“活动环境”为默认 arcgispro-py3 环境。 由于 ArcGIS Pro 将使用此环境的许多组件,因此无法对其进行修改。 您将克隆此环境以创建可以修改的副本。

  3. 活动环境下拉列表旁,单击设置。

    单击设置。

  4. 单击克隆环境以创建默认 Python 环境的副本。

    单击“克隆环境”。

  5. 接受克隆环境的默认名称和位置,然后单击确定

    接受新环境的默认名称和路径。

    注:

    如果您无权在计算机中安装软件,则可能需要管理员帮助您执行上述步骤。

    克隆环境涉及将大量 Python 文件复制到新文件夹中,因此其需要几分钟的时间。

  6. 克隆完成后,单击克隆的环境以将其选中。

    单击新环境。

  7. 单击新环境的“更多”按钮,然后单击激活

    单击“更多”,然后单击“激活”。

    激活过程将需要一分钟左右的时间。 该过程完成后,克隆的环境旁将存在一个绿条,表明其处于活动状态。

  8. 单击刷新包元数据按钮。

    单击“刷新包元数据”按钮。

    刷新包元数据将检索最新的一组可用包。

  9. 单击确定
  10. 关闭 ArcGIS Pro
  11. 重新启动 ArcGIS Pro 并打开 Water Data Loading Lesson 工程。

    在克隆默认 Python 环境后,您需要安装数据加载工具解决方案。

  12. ArcGIS Pro 中,单击工程选项卡,然后单击包管理器

    克隆的环境将在活动环境框中列出。

  13. 包管理器中,单击添加包以查看可用于安装的包。
  14. 在搜索框中,键入 dlt 查找 dltsolutions 包。

    搜索 dlt 以查找数据加载解决方案包。

  15. 单击安装

    单击安装。

  16. 安装包窗口中,单击我同意条款和条件,然后单击安装

    同意条款和条件,然后进行安装。

  17. 完成安装后,退出 ArcGIS Pro
  18. 启动 ArcGIS Pro 并打开水数据加载课程工程。
  19. 单击工程选项卡,然后单击包管理器选项卡。 在已安装包列表中,向下滚动并找到 dltsolutions 包。

    解决方案位于已安装的包列表中。

  20. 单击返回箭头返回至工程。
  21. 在功能区的分析选项卡中,单击工具。 在地理处理窗格中,单击工具箱,然后查找数据加载工具工具箱。

    “数据加载工具”工具箱已添加至“地理处理”窗格

在安装数据加载工具工具箱后,现在可随时将数据迁移至公共设施网络中。

运行数据迁移

接下来,您需要运行数据加载地理处理工具,将水数据库中的数据转换到公共设施网络中。 首先,您需要验证数据路径。

  1. File Explorer 中,浏览至 \Water Data Loading Lesson\Blank Mappings 文件夹,双击 DataReference 工作簿将其打开。

    DataReference 工作簿

    注:

    您已在教程的稍早部分中填充这些值,但是如果缺少该步骤或正在使用其他数据库,可以现在纠正这些路径。

    第二行指向源数据库,第三行指向目标数据库。

  2. 返回 ArcGIS Pro
  3. 地理处理窗格中,展开数据加载工具,然后单击执行数据加载

    “执行数据加载”工具

    随即显示执行数据加载工具。

  4. 对于数据引用工作簿,单击浏览按钮。 浏览至教程数据文件夹,展开 \Water Data Loading Lesson\Blank Mappings 文件夹,然后双击 DataReference 工作簿。

    浏览至 DataReference 工作簿

    注:

    具体路径可能稍有变化,因为每个包的命名方式唯一并且在首次打开时置于 Documents\ArcGIS\Projects 文件夹中。

    数据加载目的地参数将自动设置为目标,因此可以保持该参数不变。

  5. 单击运行使用提供的映射运行数据加载。

    该工具将使用示例数据集在几分钟内完成。 还可以使用完整的数据映射运行该工具,以将映射输出与完整映射输出进行比较。

    注:

    如果收到错误或警告,可以单击查看详细信息按钮查看消息。 还可以使用此按钮检查工具的消息,以更好地了解转换过程的工作原理。

查看结果

在此部分中,您将使用 ArcGIS Pro 检查转换结果,以确定是否已正确映射数据。 由于已将数据加载工作空间配置为转换为资产包数据库,因此可以使用工程包含的水资产包地图检查数据。

  1. ArcGIS Pro 目录窗格中,根据需要单击工程选项卡。
  2. 地图下,右键单击水资产包,然后单击打开

    打开“水资产包”地图。

    随即显示该地图,并在地图中显示之前加载的水资产。

    您之前加载的水资产将在地图中显示。

  3. 内容窗格中,展开 Water Device 图层。
  4. 右键单击系统阀,然后选择属性表

    打开 System Valve 图层对应的表。

  5. 检查每一行和每一列,然后检查迁移后的数据。

    “系统阀”表

    注:

    对于较大的数据库,可以使用 ArcGIS Data Reviewer 或数据工程工具,确认转换是否完成且正确。

  6. 在表中,右键单击第一个阀,然后选择缩放至

    缩放至某个阀。

    将在地图中选中并缩放至对应的阀要素。

    已在地图中缩放至阀

    可在此放大和缩小地图,或检查邻近要素的属性,确保已正确迁移要素。

您已通过映射字段并创建查找以确保两个数据库完全匹配,成功将数据从源数据库迁移到目标数据模型中。 如果发现在转换后某些数据缺失或未正确转换,调整数据映射工作空间,然后重新运行转换。 如果在运行迁移后看见重复数据,重新访问此模块的第一部分,之前在该部分中设置了目标删除查询,启用并禁用了数据引用工作簿中的某些图层。