Wie aktualisiere ich die Längeneigenschaft des Feature-Class-Felds in ArcGIS Desktop?


10

Ich habe eine Feature-Class mit einem Zeichenfolgenfeld, mit dem ich die Länge von 10 auf 25 aktualisieren möchte.

Gibt es eine Möglichkeit oder ein Werkzeug, um diese Eigenschaft zu aktualisieren, ohne ein neues Feld erstellen und den Feldrechner verwenden zu müssen, um die Datensätze von einem alten in ein neues Feld zu verschieben?


Dieses Skript unten macht das, was ich will. Das einzige, was es tut, ist, das aktualisierte Feld an das Ende der Tabelle zu verschieben (wobei die ursprüngliche Feldreihenfolge nicht beibehalten wird).

http://arcscripts.esri.com/details.asp?dbid=16503

Eine andere Option, die vielversprechend schien, ist die Verwendung des Werkzeugs Feature Class to Feature Class (Zugriff auf dieses Tool, indem Sie in ArcCatolog mit der rechten Maustaste auf eine Ebene klicken und Einzeloption Exportieren> in Geodatabase auswählen). Es wird zwar eine neue Ebene erstellt, Sie können jedoch Feldnamen und Eigenschaftsinformationen aktualisieren. Es scheint auch, dass Sie die Feldreihenfolge mit den Pfeilen "Eingabefeld nach oben / unten verschieben" ändern können, aber sie scheinen nicht zu funktionieren.

Es muss eine Lösung geben, um nur Feldeigenschaften zu bearbeiten, ohne ein neues Feld erstellen zu müssen.


Handelt es sich um eine bestimmte Datenquelle? Für Shapefiles?
Underdark

@underdark, Die Feature-Class befindet sich in einer Geodatabase.
Artwork21

Nicht, dass es Ihnen derzeit hilft, aber nach den Kommentaren zu dieser ArcGIS-Idee zu urteilen , erwägen sie, dies in "der Zukunft" zu implementieren.
Chad Cooper

XTools enthält das Tool "Table Restructure", das das ganze Heben beim Ändern der Eigenschaften des Feldes übernimmt, aber leider ist es nicht eines der kostenlosen Tools, die mit der Erweiterung geliefert werden.
Kenbuja

Antworten:


12

Soweit mir bekannt ist, gibt es derzeit keine Möglichkeit, Schemaänderungen in einer Geodatabase vorzunehmen, ohne Felder zu löschen und hinzuzufügen oder Feature-Classes / Tabellen zu löschen und neu zu laden. Letzteres empfehle ich, um die Feldreihenfolge aufrechtzuerhalten.

Was ich normalerweise mache ist:

  1. Erstellen Sie eine Sicherungskopie der ursprünglichen Feature-Class
  2. Exportieren Sie das Schema der ursprünglichen Feature-Class in eine XML-Datei
  3. Ändern Sie das Schema in einem Texteditor oder in ArcGIS Diagrammer 10.0 , 10.1 oder 10.2 .
  4. Löschen Sie die ursprüngliche Feature-Class
  5. Importieren Sie das Schema zurück in die Geodatabase
  6. Verwenden Sie das Append-Tool, Simple Data Loader oder Object Loader, um den Inhalt der Sicherungs-Feature-Class in die neu importierte Feature-Class zu laden. Siehe die „Über Laden von Daten in vorhandene Feature - Classes und Tabellen“ Hilfethema für weitere Informationen.

Ab ArcGIS 10.1 gibt es Geoverarbeitungswerkzeuge für den XML- Import / -Export. Ab 10.0 müssen Sie ArcObjects entweder verwenden oder manuell ausführen. Ein ArcObjects-Beispiel finden Sie unter: Exportieren eines XML-Arbeitsbereichsdokuments


Welchen XML-Export mache ich, Arbeitsbereichsdokument oder Recordset-Dokument?
Artwork21

1
Arbeitsbereich und die Option Nur Schema (keine Daten), wenn Sie die obigen Schritte ausführen.
blah238

Ok, also habe ich meine Updates vorgenommen, um die XML-Datei in Diagrammer als Arbeitsbereichsdokument zu speichern. Wenn ich versuche, das Schema wieder in die Feature-Class zu laden, kann ich nur das Recordset-Dokument laden, nicht den Arbeitsbereich. Und Diagrammer veröffentlicht nur in einem Arbeitsbereichsdokument. Wie umgehen Sie das?
Artwork21

1
Klicken Sie mit der rechten Maustaste auf die Verbindung Geodatabase / Datenbank und führen Sie Importieren -> XML-Arbeitsbereichsdokument aus.
blah238

1
Dieses Verfahren hat perfekt funktioniert! Verwenden Sie den Simple Data Loader-Assistenten
Elliott,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.