Überlegungen zur Geoverarbeitung für die Shapefile-Ausgabe
Esri hat im Lauf der Jahre drei Hauptdatenformate zum Speichern von geographischen Informationen entwickelt: Coverages, Shapefiles und Geodatabases. Shapefiles wurden entwickelt, um ein einfaches, nicht topologisches Format zum Speichern von geographischen Informationen und Attributinformationen bereitzustellen. Aufgrund ihrer Einfachheit sind Shapefiles ein äußerst beliebtes offenes Format für die Datenübertragung. Die Entscheidung für Shapefiles ist zwar aufgrund ihrer Einfachheit scheinbar nahe liegend, jedoch sind ihre Verwendungsmöglichkeiten eingeschränkt. Dieses Problem wird durch Geodatabases gelöst. Wenn Sie Shapefiles verwenden, sollten Sie ihre Einschränkungen kennen. Diese werden nachfolgend grob erläutert:
- Mit den Simple Features und Attribute, die in einem Shapefile gespeichert werden können, lassen sich nicht alle Eigenschaften geographischer Daten erfassen. Beispielsweise werden Annotations, Attributbeziehungen, Topologiebeziehungen, Attributdomänen und Subtypes, Koordinatengenauigkeit und -auflösung sowie zahlreiche weitere Funktionen in Geodatabases, jedoch nicht in Shapefiles, unterstützt.
- Da es sich bei Shapefiles um ein beliebtes offenes Format für die Datenübertragung handelt, bieten viele Softwarepakete von Drittanbietern Shapefiles als Ausgabe. (Die Shapefile-Formatspezifikation finden Sie unter http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf.) Leider erzeugen diese Pakete nicht immer ordnungsgemäß formatierte Shapefiles. Vielleicht mussten Sie selbst schon die frustrierende Erfahrung machen, beschädigte Shapefiles aus einer anderen Quelle zu erhalten.
- Shapefiles speichern Attribute im dBASE-Dateiformat (.dbf-Dateien). dBASE ist ein in den frühen 1980er Jahren von Dritten entwickeltes Format und war damals das beliebteste Format zum Speichern von Attributtabellen. Seither wurden jedoch eine Reihe von Verbesserungen in der Darstellung von Daten entwickelt, z. B. der Unicode-Standard, der die meisten weltweit vorhandenen Schriftsysteme unterstützt. Dies ist einer der Gründe, warum Shapefiles sich nicht gut zum Speichern von Informationen in anderen Sprachen als Englisch eignen.
Aufgrund dieser (und weiterer) Probleme sind Shapefiles nicht für die aktive Datenbankverwaltung zu empfehlen. Sie sind nicht für den inzwischen allgemein üblichen Lebenszyklus der Erstellung, Bearbeitung, Versionierung und Archivierung der Daten geeignet.
Wann sollten Shapefiles verwendet werden?
- Beim Exportieren von Daten für die Verwendung in einer Drittanbieter-Softwareanwendung
- Beim Exportieren von Daten für die Verwendung in ArcView 3 oder ArcInfo Workstation
- Wenn Sie schnell Simple Features und Attribute, z. B. für ArcGIS Server-Geoverarbeitungs-Services, erstellen müssen (wobei Sie sich jedoch der unten beschriebenen Einschränkungen bewusst sein müssen)
Wann sollten keine Shapefiles verwendet werden?
Von einigen unten genannten Ausnahmen abgesehen, können Shapefiles zum Speichern einer Simple-Feature-Geometrie verwendet werden. Jedoch eignen sich Shapefiles nicht für Attribute. Beispielsweise können Shapefiles keine Nullwerte speichern, Zahlen werden in Shapefiles gerundet, Unicode-Zeichenfolgen werden unzureichend unterstützt, die Länge von Feldnamen ist auf 10 Zeichen begrenzt, und Datum und Uhrzeit können nicht gemeinsam in einem Feld gespeichert werden. Dies sind nur die wichtigsten Probleme. Außerdem werden Funktionen in Geodatabases, z. B. Domänen und Subtypes, von Shapefiles nicht unterstützt. Sie sollten daher Shapefiles nur verwenden, wenn lediglich äußerst einfache Attribute vorhanden und keine Geodatabase-Funktionen erforderlich sind.
Shapefile-Komponenten und -Dateierweiterungen
Shapefiles werden in drei oder mehr Dateien gespeichert, die über dasselbe Präfix verfügen und in demselben Systemordner (Shapefile-Workspace) gespeichert werden. Die einzelnen Dateien sind sichtbar, wenn Sie den Ordner in Windows Explorer (nicht in ArcCatalog) anzeigen.
Erweiterung |
Beschreibung |
Erforderlich? |
---|---|---|
.shp |
Die Hauptdatei, in der die Feature-Geometrie gespeichert wird. In dieser Datei werden keine Attribute gespeichert, sondern nur die Geometrie. |
Ja |
.shx |
Eine Begleitdatei zu der .shp-Datei, in der die Positionen einzelner Feature-IDs in der .shp-Datei gespeichert werden. |
Ja |
.dbf |
Die dBASE-Tabelle, in der die Attributinformationen von Features gespeichert werden. |
Ja |
.sbn und .sbx |
Dateien, in denen der räumliche Index der Features gespeichert wird. |
Nein |
.atx |
Wird für jeden in ArcCatalog erstellten dBASE-Attributindex erstellt. |
Nein |
.ixs und .ixs |
Geokodierungsindex für Shapefiles mit Lese-/Schreibzugriff. |
Nein |
.prj |
Die Datei, in der die Koordinatensysteminformationen gespeichert werden. |
Nein |
.xml |
Metadaten für ArcGIS; dient dem Speichern von Informationen über das Shapefile. |
Nein |
Geometrieeinschränkungen
- Die Größe einer Shapefile-Komponentendatei ist auf 2 GB begrenzt. Dies entspricht maximal ca. 70 Millionen Punkt-Features. Die tatsächliche Anzahl von Linien- oder Polygon-Features, die Sie in einem Shapefile speichern können, hängt von der Anzahl von Stützpunkten pro Linie bzw. Polygon ab (ein Stützpunkt entspricht einem Punkt).
- Shapefiles enthalten keine XY-Toleranz wie Geodatabase-Feature-Classes. Die XY-Toleranz ist der minimale Abstand zwischen Koordinaten, ehe sie als gleich betrachtet werden. Mit der XY-Toleranz werden Beziehungen zwischen Features in derselben Feature-Class oder in unterschiedlichen Feature-Classes überprüft. Sie wird auch beim Bearbeiten von Features in großem Umfang verwendet. Wenn Sie einen Vorgang ausführen, bei dem Features verglichen werden, z. B. bei Verwendung der Overlay-Werkzeuge, des Werkzeugs Ausschneiden, des Werkzeugs Layer lagebezogen auswählen oder eines anderen Werkzeugs, das mehrere Feature-Classes als Eingabe akzeptiert, sollten Sie statt Shapefiles Geodatabase-Feature-Classes (die über eine XY-Toleranz verfügen) verwenden.
- Ein Shapefile kann aufgrund der Shape-Komprimierungsmethoden drei bis fünf Mal mehr Speicher als eine File- oder SDE-Geodatabase erfordern.
- Shapefiles unterstützen Multipatches, bieten jedoch keine Unterstützung für die folgenden erweiterten Multipatch-Funktionen:
- Texturkoordinaten
- Texturen und Teilfarben
- Beleuchtungsnormalen
- Der räumliche Index für ein Shapefile ist im Vergleich zum räumlichen Index einer Geodatabase-Feature-Class ineffizient. Daher erfordern räumliche Abfragen (z. B. das Auswählen von Features in einem Polygon) mehr Zeit als bei einer Geodatabase-Feature-Class. Diese Ineffizienz ist nur wahrnehmbar, wenn eine große Anzahl von Features behandelt wird.
- Parametrisch definierte Kurven (auch Kreisbögen genannt) werden von Shapefiles nicht unterstützt. Parametrische Kurven werden erstellt, indem Geodatabase-Feature-Classes bearbeitet werden, wie unter Erstellen einer Kurve beschrieben. Das Zeichnen von Kreisbögen erfolgt mit einer mathematischen Formel. Wenn Sie eine Geodatabase-Feature-Class, die Kreisbogen-Features enthält, in ein Shapefile exportieren, werden die Kurven-Features in einfache Linien-Features mit nahe beieinander liegenden Stützpunkten konvertiert, um die Kurvenform zu erfassen.
Attributeinschränkungen
- Im Gegensatz zu anderen Formaten speichern Shapefiles numerische Attribute im Zeichenformat und nicht im Binärformat. Bei reellen Zahlen (Zahlen mit Dezimalstellen) kann dies zu Rundungsfehlern führen. Diese Einschränkung gilt nur für Attribute und nicht für Shape-Koordinaten. Die folgende Tabelle bietet einen Überblick über die Feldbreite für die einzelnen Attributdatentypen.
Feldbreiten in dBASEGeodatabase-Datentyp
dBASE-Feldtyp
dBASE-Feldbreite (Anzahl von Zeichen)
Objekt-ID
Zahl
9
Short Integer
Zahl
4
Long Integer
Zahl
9
Float
Float
13
Double
Float
13
Text
Zeichen
254
Datum
Datum
8
- Der dBASE-Dateistandard unterstützt nur ANSI-Zeichen in den Feldnamen und -werten. Esri hat umfassende Unicode-Unterstützung für dBASE-Dateien bereitgestellt, damit Sie Unicode-Feldnamen und -Feldwerte speichern können. Diese zusätzliche Unterstützung ist jedoch nur in ArcGIS-Anwendungen und nicht in Drittanbieteranwendungen verfügbar. Esri entwickelt die Unterstützung von Unicode in dBASE ständig weiter, da weiterhin Probleme festgestellt und gelöst werden müssen.Hinweis:
Wenn in Feldnamen oder Feldwerten Unicode unterstützt werden muss, empfehlen wir nachdrücklich, Geodatabases statt Shapefiles zu verwenden.
- Für Datumsfelder wird entweder das Datum oder die Uhrzeit unterstützt, jedoch nicht Datum und Uhrzeit in demselben Feld.
- Nullwerte werden in Shapefiles nicht unterstützt. Wenn eine Feature-Class, die Nullwerte enthält, in ein Shapefile konvertiert wird, werden die Nullwerte wie folgt geändert:
Datentyp mit Nullwert |
Shapefile-Darstellung |
---|---|
Zahl – Wenn das Werkzeug die Ausgabe von NULL, unendlich oder NaN (Not a Number, keine Zahl) erfordert |
-1.7976931348623158e+308 (IEEE-Standard für den maximalen negativen Wert) |
Zahl (alle anderen Geoverarbeitungswerkzeuge) |
0 |
Text |
" " (leer – kein Leerzeichen) |
Datum |
Wird als 0 gespeichert, jedoch als "<Null>" angezeigt. |
- Feldnamen dürfen nicht länger als 10 Zeichen sein.
- Die maximale Datensatzlänge für ein Attribut beträgt 4.000 Byte. Die Datensatzlänge ist die Anzahl von Bytes zum Definieren aller Felder und nicht die Anzahl von Bytes zum Speichern der tatsächlichen Werte.
- Die maximale Anzahl von Feldern beträgt 255. Bei einer Konvertierung in ein Shapefile werden die ersten 255 Felder konvertiert, wenn diese Begrenzung überschritten wird.
- Die dBASE-Datei muss mindestens ein Feld enthalten. Wenn Sie ein neues Shapefile oder eine neue dBASE-Tabelle erstellen, wird als Standardfeld ein Ganzzahl-ID-Feld erstellt.
- dBASE-Dateien unterstützen keine BLOBs, GUIDs, globalen IDs, Koordinaten-IDs oder Raster-Felder.
- dBASE-Dateien bieten außer einer WHERE-Klausel keine SQL-Unterstützung.
- Attributindizes werden beim Speichern von Bearbeitungen gelöscht, und Sie müssen sie von Grund auf neu erstellen.
Nicht unterstützte Funktionen
Shapefiles verfügen über keine erweiterten Datentypen auf Workspace- oder Feature-Class-Ebene. Bei jeder Konvertierung einer Geodatabase-Feature-Class oder eines anderen Formats in ein Shapefile gehen folgende Elemente verloren:
- Subtypes
- Attributdomänen
- Geometrische Netzwerke
- Topologien
- Annotation
Shapefiles und Geoverarbeitung
Jedes Geoverarbeitungswerkzeug, das eine Feature-Class ausgibt, ermöglicht Ihnen die Auswahl eines Shapefiles oder einer Geodatabase-Feature-Class als Ausgabeformat. Entsprechend ermöglicht Ihnen ein Werkzeug, das eine Tabelle ausgibt, die Auswahl einer dBASE-Datei (DBF) oder einer Geodatabase-Tabelle als Ausgabe. Sie sollten das Format immer mit Bedacht auswählen und die Folgen der Konvertierung einer Geodatabase-Eingabe in eine Shapefile-Ausgabe berücksichtigen.
Geoverarbeitungswerkzeuge generieren automatisch eine Ausgabe-Feature-Class oder Ausgabe-Tabelle. Diese automatisch generierte Ausgabe basiert auf einer Reihe von Faktoren, wie in Verwenden der Umgebungseinstellungen "Aktueller Workspace" und "Scratch-Workspace" beschrieben. Wenn die Umgebungseinstellung für den Scratch-Workspace auf einen Systemordner und nicht auf eine Geodatabase festgelegt ist, handelt es sich bei der automatisch generierten Ausgabe-Feature-Class um ein Shapefile oder eine dBASE-Datei (siehe Abbildung unten).
Sie sollten den Scratch-Workspace auf eine File-Geodatabase festlegen, sodass die automatisch generierte Ausgabe in eine File-Geodatabase und nicht in ein Shapefile oder eine DBF-Tabelle geschrieben wird.
Weitere Informationen zu Geoverarbeitungsumgebungen
Da das Schreiben in Shapefiles schnell erfolgt, werden sie häufig zum Schreiben von Zwischendaten in Modellen verwendet, weil dies die Modellausführung beschleunigt. Das Schreiben in eine File-Geodatabase erfolgt jedoch fast genauso schnell wie das Schreiben in ein Shapefile. Wenn die Geschwindigkeit nicht von ausschlaggebender Bedeutung ist, sollten Sie daher für Zwischen- und Ausgabedaten immer eine File-Geodatabase verwenden. Wenn Sie dennoch Shapefiles verwenden, beachten Sie die oben beschriebenen Einschränkungen, und verwenden Sie Shapefiles nur für Simple Features und Attribute. Eine Alternative zur Verwendung von Shapefiles für Zwischendaten ist das Schreiben von Features in den In-Memory-Workspace.
Weitere Informationen zum In-Memory-Workspace
Raumbezug und Shapefiles
Im Abschnitt Raumbezug und Geoverarbeitung wird die Bedeutung von Raumbezugseigenschaften bei Verwendung von Geoverarbeitungswerkzeugen erläutert. Es gibt eine Reihe von Geoverarbeitungsumgebungen, die den von Werkzeugen verwendeten Raumbezug steuern. Die folgenden Umgebungen werden NICHT berücksichtigt, wenn die Ausgabe eines Werkzeugs ein Shapefile ist: