Рабочий процесс геообработки для подтипов

Таблицы и классы пространственных объектов базы геоданных хранят объекты одного типа, то есть объекты, имеющие одинаковое поведение и атрибуты. Например, класс пространственных объектов с названием WaterMains может хранить данные о напорных водопроводных сетях. Все водопроводные сети ведут себя одинаково и имеют атрибуты ReferenceID, Depth, Material, GroundSurfaceType, Size и PressureRating.

Хотя все объекты в классе пространственных объектов или таблице должны иметь одинаковое поведение и атрибуты, не все объекты будут иметь одни и те же атрибутивные домены. Например, в водопроводной сети может быть так, что только магистральные водопроводы могут иметь давление от 40 до 100 фунтов на кв. дюйм, в то время как распределительные водопроводы могут иметь давление от 50 до 75 фунтов на кв. дюйм. Для соблюдения данного ограничения можно использовать атрибутивный домен. Для реализации такого правила проверки вам не нужно создавать отдельные классы объектов для магистральных и распределительных водопроводов, но вам нужно будет различать эти типы водопроводов друг от друга, чтобы установить отдельный набор доменов и значений по умолчанию. Это можно сделать с помощью подтипов.

В каких случаях стоит использовать подтипы

Важный вопрос проектирования баз геоданных возникает, когда необходимо решить, где целесообразно использовать подтипы, а где требуются дополнительные классы объектов. При различении объектов по их значениям по умолчанию, атрибутивным доменам, правилам связности и правилам отношений, рекомендуется создавать отдельные подтипы для одного класса объектов или таблицы.

Когда вы различаете объекты на основе разного поведения, атрибутов или прав доступа, либо на основе того, являются ли объекты многоверсионными, вам необходимо создать несколько классов объектов.

Рабочий процесс для подтипов

Для создания подтипов для класса объектов или таблицы используются следующие шаги:

  1. Задать поле подтипа - определяет поле входной таблицы или класса пространственных объектов, в котором хранятся коды подтипов
  2. Добавить подтип - Добавляет новый подтип к набору подтипов в классе объектов или таблице
  3. Задать подтип по умолчанию - устанавливает уникальное значение по умолчанию для подтипа, также называемое кодом.

В следующем примере подтипы создаются для представления различных типов фитингов в классе объектов фитингов водопроводных труб.

Первый шаг — определить поле, используемое для хранения информации о подтипе:

import arcpy
arcpy.env.workspace = "C:/data/Montgomery.gdb"
arcpy.management.SetSubtypeField("Water/Fittings", "TYPECODE")

После определения поля подтипа коды подтипов добавляются в список подтипов:

arcpy.management.AddSubtype("Water/Fittings", "0", "unknown")
arcpy.management.AddSubtype("Water/Fittings", "1", "bend")
arcpy.management.AddSubtype("Water/Fittings", "2", "cap")
arcpy.management.AddSubtype("Water/Fittings", "3", "cross")
arcpy.management.AddSubtype("Water/Fittings", "4", "coupling")
arcpy.management.AddSubtype("Water/Fittings", "5", "expansion joint")
arcpy.management.AddSubtype("Water/Fittings", "6", "offset")
arcpy.management.AddSubtype("Water/Fittings", "7", "plug")
arcpy.management.AddSubtype("Water/Fittings", "8", "reducer")
arcpy.management.AddSubtype("Water/Fittings", "9", "saddle")
arcpy.management.AddSubtype("Water/Fittings", "10", "sleeve")
arcpy.management.AddSubtype("Water/Fittings", "11", "tap")
arcpy.management.AddSubtype("Water/Fittings", "12", "tee")
arcpy.management.AddSubtype("Water/Fittings", "13", "weld")
arcpy.management.AddSubtype("Water/Fittings", "14", "riser")

Последний шаг — установка кода подтипа по умолчанию:

arcpy.management.SetDefaultSubtype("Water/Fittings", "2")

Связанные разделы