Zusammenfassung
Konvertiert eine nicht räumliche Tabelle basierend auf XY-Koordinaten oder Straßenangaben in Punkt-Features und aktualisiert ein bestehendes Dataset mit den neuen oder aktualisierten Datensatzinformationen aus der Tabelle.
Verwendung
Es muss eine Point-Feature-Class oder ein Feature-Layer vorliegen, wenn Datensätze aus der Eingabetabelle angehängt oder aktualisiert werden.
Sie können mit diesem Werkzeug Tabellendaten verwenden, die aus Ihrem Einsatzleitrechner-System oder Datensatzmanagement-System exportiert wurden.
Dieses Werkzeug unterstützt die folgenden Tabellenformate als Eingabe:
- Geodatabase
- dBASE (.dbf)
- Kommagetrennte Werte (.csv oder .txt)
- Microsoft Excel-Arbeitsblätter (.xls oder .xlsx)
- In-Memory-Tabellensichten
Für die Dateieingabe (.csv oder .txt) wird die erste Zeile der Eingabedatei für die Feldnamen in der Ausgabetabelle verwendet. Feldnamen dürfen keine Leerzeichen oder Sonderzeichen (z. B. $ oder *) enthalten. Sie erhalten eine Fehlermeldung, wenn die erste Zeile der Eingabedatei Leerzeichen oder Sonderzeichen enthält.
Für das Ausführen von Geokodierungsvorgängen mit dem ArcGIS World Geocoding Service ist eine ArcGIS Online-Organisationssubskription erforderlich. Weiterhin werden dabei Credits verbraucht. Das Organisationskonto muss über ein ausreichendes Credit-Guthaben verfügen, um die gesamte Geokodierungsanforderung durchzuführen.
Wenn die optionale Parametertabelle Tabelle der ungültigen Datensätze erstellt wird, enthält die Tabelle Datensätze, die nicht als neue oder aktualisierte Features verarbeitet werden. Der vollständige Datensatz der Eingabetabelle wird zur Parametertabelle Tabelle der ungültigen Datensätze zusammen mit dem Feld INV_REASON hinzugefügt. Das Feld INV_REASON enthält einen Code, mit dem der Grund dafür angegeben wird, dass der Datensatz nicht als neues oder aktualisiertes Feature verarbeitet werden konnte.
Das Feld INV_REASON wird zur Tabelle der ungültigen Datensätze mit den folgenden Codes hinzugefügt:
- NULL_ADDR: Alle Adressfelder des Datensatzes der Eingabetabelle enthalten NULL-Werte.
- NULL_ID: Die Eingabe-ID-Felder des Datensatzes der Eingabetabelle enthalten NULL-Werte.
- NULL_XY: Die X- und Y-Koordinatenfelder der Eingabetabelle enthalten einen NULL-Wert.
- BAD_DATE: Das Eingabedatum des Datensatzes der Eingabetabelle ist NULL oder konnte nicht in ein gültiges Datum konvertiert werden.
- BAD_ADDR: Der Adresskandidat aus dem Datensatz der Eingabetabelle weist keine Übereinstimmung auf.
- BAD_FM: Die Feldzuordnung des Datensatzes der Eingabetabelle ist fehlgeschlagen, da ein Wert nicht zum Ausgabefeld hinzugefügt werden konnte. So können Textwerte zum Beispiel nicht numerischen Feldern hinzugefügt werden, und Textwerte können Textfeldern nicht hinzugefügt werden, wenn die Werte länger als die Feldlänge sind.
- DUP_ID: Der Datensatz der Eingabetabelle weist eine doppelte ID auf und wurde nicht im Hinblick auf die Ziel-Features aktualisiert, weil er älter ist als der bestehende Datensatz oder weil ein neuerer Datensatz vorliegt. Dies wird durch das Datum der letzten Änderung bestimmt. Wenn das Datum der letzten Änderung nicht verwendet wird, wird dies durch den höchsten Wert für OBJECTID festgelegt.
Wenn der Parameter Tabelle der ungültigen Datensätze leer ist, wird die Datei invalid_records_<timestamp>.fid in Ihrer Scratch-Workspace-Umgebung erstellt. Diese Datei enthält den Wert OBJECTID jedes Datensatzes der Eingabetabelle, der nicht im Parameter Ziel-Features hinzugefügt oder aktualisiert werden.
Wenn die beiden Parameter Vorhandene Ziel-Features aktualisieren und Geometrie für vorhandene Features aktualisieren aktiviert werden (jeweils update_target = "UPDATE" in Python und update_geometry = "UPDATE_GEOMETRY" in Python), werden die Positionsfelder im Parameter Eingabetabelle mit den Positionsfeldern im Parameter Ziel-Features verglichen, um festzulegen, ob die Geometrie im Parameter Ziel-Feature aktualisiert wird. Wenn der Positionstyp auf Adressen festgelegt wird, werden die Werte der Adressfelder verglichen. Wenn eine Differenz zwischen dem Datensatz der Eingabetabelle und den Parameterwerten von Ziel-Features vorliegt, wird die Geometrie von Ziel-Features mit der geokodierten Position basierend auf den Adressfeldern im Datensatz Eingabetabelle aktualisiert. Der Datensatz Eingabetabelle wird nicht geokodiert, wenn keine Differenz entdeckt wird.
Syntax
arcpy.ca.UpdateFeaturesWithIncidentRecords(in_table, target_features, location_type, {x_field}, {y_field}, {coordinate_system}, {address_locator}, {address_type}, {address_fields}, {invalid_records_table}, {where_clause}, {update_target}, {match_fields}, {in_date_field}, {target_date_field}, {update_matching}, {update_geometry}, {field_matching_type}, {field_mapping}, time_format)
Parameter | Erklärung | Datentyp |
in_table | Die Tabelle, die die XY-Koordinaten oder Adressen enthält, die die Position der Datensätze definieren. | Table View |
target_features | Die Point-Feature-Class oder der Feature-Layer, die/der aktualisiert werden soll. | Feature Layer |
location_type | Gibt an, ob Features mithilfe von XY-Koordinaten oder Adressen erstellt werden.
| String |
x_field (optional) | Das Feld in der Eingabetabelle, das die X-Koordinaten (oder den Längengrad) enthält. Dieser Parameter wird nur aktiviert, wenn der Parameter location_type auf COORDINATES gesetzt ist | Field |
y_field (optional) | Das Feld in der Eingabetabelle, das die Y-Koordinaten (oder den Breitengrad) enthält. Dieser Parameter wird nur aktiviert, wenn der Parameter location_type auf COORDINATES gesetzt ist | Field |
coordinate_system (optional) | Das Koordinatensystem der X- und Y-Koordinaten. Dieser Parameter wird nur aktiviert, wenn der Parameter location_type auf COORDINATES gesetzt ist | Coordinate System |
address_locator (optional) | Der für die Geokodierung der Adressentabelle zu verwendende Adressen-Locator. Wenn dieser Parameter für die Verwendung von ArcGIS World Geocoding Service festgelegt wurden, kann diese Operation Credits verbrauchen. Hinweis:Wenn Sie einen lokalen Adressen-Locator verwenden, ist das Hinzufügen der Erweiterung .loc nach dem Locator-Namen am Ende des Locator-Pfades optional. Dieser Parameter wird nur aktiviert, wenn der Parameter location_type auf ADDRESSES gesetzt ist | Address Locator |
address_type (optional) | Gibt an, wie vom Adressen-Locator verwendete Adressfelder den Feldern in der Eingabe-Adressentabelle zugeordnet werden.
Wählen Sie SINGLE_FIELD_ADDRESS, wenn die vollständige Adresse in einem Feld der Eingabetabelle gespeichert ist, z. B. 303 Peachtree St NE, Atlanta, GA 30308. Wählen Sie MULTI_FIELD_ADDRESS, wenn die Eingabeadressen in mehrere Felder wie Adresse, Stadt, Bundesstaat und Postleitzahl für eine allgemeine US-amerikanische Adresse unterteilt sind. Dieser Parameter wird nur aktiviert, wenn der Parameter location_type auf ADDRESSES gesetzt ist | String |
address_fields [address_fields,...] (optional) | Die Felder der Eingabetabelle, die den Feldern der Locator-Adressfelder des Adressen-Locators entsprechen. Einige Locators unterstützen mehrere Eingabe-Adressenfelder wie Address, Address2 und Address3. In diesem Fall kann das Adressenelement auf mehrere Felder aufgeteilt werden. Zum Zeitpunkt der Geokodierung werden die Adressenfelder dann verkettet. Beispielsweise werden sowohl 100, Main st und Apt 140 als Angabe in drei Feldern als auch 100 Main st und Apt 140 in zwei Feldern bei der Geokodierung zu 100 Main st Apt 140 verkettet. Wenn Sie ein optionales, vom Adressen-Locator verwendetes Eingabe-Adressfeld keinem Feld in der Eingabe-Adressentabelle zuordnen möchten, geben Sie an, dass keine Zuordnung erfolgen soll, indem Sie den Feldnamen nicht angeben. Dieser Parameter wird nur aktiviert, wenn der Parameter location_type auf ADDRESSES gesetzt ist | Value Table |
invalid_records_table (optional) | Die Ausgabetabelle, die eine Liste mit ungültigen Datensätzen und den entsprechenden Ungültigkeitscodes enthält. | Table |
where_clause (optional) | Der SQL-Ausdruck, mit dem eine Teilmenge der Datensätze des Eingabe-Datasets ausgewählt wird. Wenn mehrere Eingabe-Datasets angegeben werden, werden sie alle anhand des Ausdrucks ausgewertet. Wenn keine Datensätze dem Ausdruck für ein Eingabe-Dataset entsprechen, werden keine Datensätze aus diesem Dataset an das Ziel angehängt. Weitere Informationen zur SQL-Syntax finden Sie unter SQL-Referenz für in ArcGIS verwendete Abfrageausdrücke. | SQL Expression |
update_target (optional) | Gibt an, ob bestehende Datensätze im Parameter target_features aktualisiert werden.
| Boolean |
match_fields [match_fields,...] (optional) | Die ID-Felder, die für das Festlegen der Zuordnungen zwischen den in_table-Werten und den target_features-Werten verwendet werden. Dieser Parameter wird nur aktiviert, wenn der Parameter update_target auf UPDATE gesetzt ist | Value Table |
in_date_field (optional) | Das Datum der letzten Änderung der Datensätze von in_table. Es werden Datums- und Zeichenfolgen-Feldtypen unterstützt. Dieser Parameter wird nur aktiviert, wenn der Parameter update_target auf UPDATE gesetzt ist | Field |
target_date_field (optional) | Das Feld, das das Datum der letzten Änderung der Datensätze target_features enthält. Das Feld muss den Datentyp "Datum" aufweisen. Dieser Parameter wird nur aktiviert, wenn der Parameter update_target auf UPDATE gesetzt ist | Field |
update_matching (optional) | Gibt an, ob nur vorhandene Datensätze aktualisiert werden oder ob vorhandene Datensätze aktualisiert werden und neue Datensätze hinzugefügt werden.
Dieser Parameter wird nur aktiviert, wenn der Parameter update_target auf UPDATE gesetzt ist | Boolean |
update_geometry (optional) | Gibt an, ob die Geometrie der vorhandenen Features aktualisiert wird.
Dieser Parameter wird nur aktiviert, wenn der Parameter update_target auf UPDATE gesetzt ist | Boolean |
field_matching_type (optional) | Gibt an, ob die Felder der Eingabetabelle den Feldern der Ziel-Features entsprechen müssen, damit die Daten angehängt werden können.
| String |
field_mapping (optional) | Legt fest, wie die Attributfelder aus der Eingabetabelle an die Ziel-Features übertragen oder ihnen zugeordnet werden. Dieser Parameter wird nur aktiviert, wenn der Parameter field_matching_type auf FIELD_MAP gesetzt ist. Da die Eingabetabellenwerte an ein vorhandenes Ziel-Feature angehängt werden, das vordefinierte Felder hat, können Sie den Typ der Felder in der Feldzuordnung nicht hinzufügen, entfernen oder ändern. Sie können jedoch Vereinigungsregeln für jedes Ausgabefeld festlegen. Mit Vereinigungsregeln geben Sie an, wie Werte aus zwei oder mehr Eingabefeldern zu einem einzigen Ausgabewert zusammengeführt bzw. kombiniert werden. Es gibt mehrere Vereinigungsregeln, mit denen Sie bestimmen können, wie das Ausgabefeld mit Werten gefüllt wird.
In Python kann dieser Parameter mit der FieldMappings-Klasse definiert werden. | Field Mappings |
time_format | Das Format des Eingabefeldes, das die Zeitwerte enthält. Der Typ kann "Short", "Long", "Float", "Double", "Text" oder "Date" sein. Sie können ein Standardzeitformat aus der Dropdown-Liste wählen oder ein benutzerdefiniertes Format eingeben. Hinweis:Bei den Formatzeichenfolgen wird die Groß- und Kleinschreibung berücksichtigt.
Weitere Informationen über benutzerdefinierte Datumsangaben und Zeitformate Dieser Parameter ist nur aktiv, wenn der Parameterwert in_date_field ein Textfeld ist und der Parameterwert target_date_field ein Datumsfeld ist bzw. der Eingabewert des Parameters field_mapping ein Textfeld ist und der Ausgabewert ein Datumsfeld ist. Dieser Parameter wird nur aktiviert, wenn der Parameter update_target auf UPDATE gesetzt ist | String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
updated_target_features | Die aktualisierten Ziel-Features. | Feature-Layer |
Codebeispiel
Das folgende Skript veranschaulicht, wie die Funktion UpdateFeaturesWithIncidentRecords im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.env.workspace = r"C:\data\city_pd.gdb"
arcpy.ca.UpdateFeaturesWithIncidentRecords("C:/data/calls_for_service_records.csv",
"calls_for_service_features",
"COORDINATES",
"Longitude",
"Latitude",
4326)
Das folgende eigenständige Skript ist ein Beispiel für die Verwendung der Funktion UpdateFeaturesWithIncidentRecords in einem Skript:
# Name: UpdateFeaturesWithIncidentRecords.py
# Description: Update the calls for service feature class with new updates from the records management system (RMS).
# Import script modules
import arcpy
# Set the workspace
arcpy.env.workspace = r"C:/data/city_pd.gdb"
# Address Field Pairs formatted as ["Locator Address Field Name", "Input Field Name"]
address_field_pairs = [
["Address", "locdesc"],
["Address2", ""],
["Address3", ""],
["Neighborhood", ""],
["City", "municipality"],
["Subregion", ""],
["Region", "state"],
["Postal", "zip5"],
["PostalExt", ""],
["CountryCode", ""]
]
arcpy.ca.UpdateFeaturesWithIncidentRecords("C:/data/calls_for_service_records.csv",
"calls_for_service_features",
location_type="ADDRESSES",
address_locator="https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service",
address_type="MULTI_FIELD_ADDRESS",
address_fields=address_field_pairs,
update_target="UPDATE",
match_fields=[["callid", "callid"]],
update_matching="UPSERT",
update_geometry="UPDATE_GEOMETRY",
field_matching_type="AUTOMATIC")
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja