Geoverarbeitungs-Workflow für Subtypes

In Geodatabase-Tabellen und -Feature-Classes werden Objekte desselben Typs gespeichert, also Objekte mit demselben Verhalten und denselben Attributen. In einer Feature-Class mit dem Namen "WaterMains" können beispielsweise Druckwasserhauptleitungen gespeichert werden. Alle Wasserhauptleitung haben dasselbe Verhalten und besitzen die Attribute ReferenceID, Depth, Material, GroundSurfaceType, Size und PressureRating.

Obwohl bei allen Objekten in einer Feature-Class oder Tabelle das Verhalten und die Attribute identisch sein müssen, sind die Attributdomänen nicht bei allen Objekten identisch. Zum Beispiel kann es in einem Wassernetz richtig sein, dass nur in Übertragungswasserhauptleitungen ein Druck von 40 bis 100 psi herrschen kann, während in Verteilungswasserhauptleitungen ein Druck von 50 bis 75 psi herrschen kann. Zur Umsetzung dieser Beschränkung können Sie eine Attributdomäne verwenden. Um eine derartige Validierungsregel zu implementieren, ist es nicht notwendig, separate Feature-Classes für Übertragungs- und Verteilungswasserhauptleitungen zu erstellen. Sie können aber separate Domänen und Standardwerte erstellen, um Wasserhauptleitungen dieser Typen voneinander zu unterscheiden. Dazu können Sie Subtypes verwenden.

Verwendung von Subtypes

Beim Geodatabase-Entwurf entsteht ein bedeutendes Problem dann, wenn Sie entscheiden müssen, an welcher Stelle Subtypes geeignet sind und an welcher Stelle zusätzliche Feature-Classes erforderlich sind. Wenn Sie Objekte anhand ihrer Standardwerte, Attributdomänen, Konnektivitätsregeln und Beziehungsregeln unterscheiden möchten, dann wird empfohlen, dass Sie separate Subtypes für eine einzelne Tabelle oder Feature-Class erstellen.

Wenn Sie Objekte anhand der Unterschiede hinsichtlich Verhalten, Attributen oder Zugriffsberechtigungen oder anhand der Frage, ob es sich um ein mehrfach versioniertes Objekt handelt, unterscheiden möchten, dann müssen Sie mehrere Feature-Classes erstellen.

Workflow für Subtypes

Mit den folgenden Schritten können Subtypes für eine Feature-Class oder Tabelle erstellt werden:

  1. Subtype-Feld festlegen: Definiert das Feld in der Eingabe-Tabelle oder -Feature-Class, in dem die Subtype-Codes gespeichert sind.
  2. Subtype hinzufügen: Fügt den Subtypes in einer Feature-Class oder Tabelle einen neuen Subtype hinzu.
  3. Standard-Subtype festlegen: Legt den eindeutigen Standardwert eines Subtypes fest. Dieser wird auch als Code bezeichnet.

Im folgenden Beispiele werden Subtypes erstellt, um Anschlussstücke verschiedener Typen in einer Feature-Class für Anschlussstücke an Wasserleitungen darzustellen.

Im ersten Schritt wird das Feld definiert, in dem die Informationen zum Subtype gespeichert werden:

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

Nachdem das Subtype-Feld definiert wurde, werden der Liste der Subtypes die Subtype-Codes hinzugefügt:

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")

Im letzten Schritt wird der Standard-Subtype-Code festgelegt:

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

Verwandte Themen