Esri nutzt hauptsächlich zwei Datenformate zum Speichern von geographischen Informationen: Shapefiles und Geodatabases. Shapefiles wurden entwickelt, um ein einfaches Format zum Speichern von geographischen Informationen und Attributinformationen bereitzustellen. Aufgrund ihrer Einfachheit sind Shapefiles ein 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. Im Folgenden finden Sie einen Abriss dieser Einschränkungen:
- Mit den Simple Features und Attributen, die in einem Shapefile gespeichert werden können, lassen sich nicht alle Eigenschaften geographischer Daten erfassen. Beispielsweise werden Annotationen, Attributbeziehungen, Topologiebeziehungen, Attributdomänen und Subtypes, Koordinatengenauigkeit und -auflösung sowie zahlreiche weitere Funktionen in Geodatabases, jedoch nicht in Shapefiles, unterstützt.
- Shapefiles speichern Attribute im dBASE-Dateiformat (.dbf-Datei). dBASE ist ein in den frühen 1980er Jahren entwickeltes, nicht von Esri stammendes Format und war damals das beliebteste Format zum Speichern von Attributtabellen. Seither wurde 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.
- Im Gegensatz zu Geodatabase-Feature-Classes werden die Felder für Shape-Länge und Shape-Fläche in Shapefiles nicht vom System verwaltet.
Shapefiles sind nicht für die aktive Datenbankverwaltung zu empfehlen, da sie nicht für den inzwischen allgemein üblichen Lebenszyklus der Erstellung, Bearbeitung, Versionierung und Archivierung der Daten geeignet sind.
Die Verwendung von Shapefiles kann in den folgenden Situationen vorteilhaft sein:
- Beim Exportieren von Daten für die Verwendung in einer nicht von Esri stammenden Softwareanwendung
- Für die schnelle Erstellung von Simple Features und Attributen
Von einigen unten genannten Ausnahmen abgesehen, können Shapefiles zum Speichern von Simple-Feature-Geometrie verwendet werden. Jedoch eignen sich Shapefiles nicht für Attribute. Beispielsweise werden in Shapefiles keine NULL-Werte gespeichert, Zahlen werden gerundet, Unicode-Zeichenfolgen werden unzureichend unterstützt, die Länge von Feldnamen ist auf 10 Zeichen begrenzt, und in Datumsfeldern werden keine Uhrzeiten erfasst. Außerdem werden in Geodatabases verfügbare Funktionen, z. B. Domänen und Subtypes, nicht in Shapefiles unterstützt. Sie sollten daher Shapefiles nur verwenden, wenn in den Daten äußerst einfache Attribute vorliegen 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 Ordner gespeichert werden. Die einzelnen Dateien sind sichtbar, wenn der Ordner im File Explorer angezeigt wird. In ArcGIS Pro hingegen sind sie nicht sichtbar.
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 dBASE-Attributindex erstellt. | Nein |
.ixs und .mxs | 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 |
Einschränkungen bei Shapefile-Daten
Für Shapefiles gelten die folgenden Einschränkungen:
- Die Größe einer Shapefile-Komponentendatei ist auf 2 GB begrenzt. Dies entspricht maximal ca. 70 Millionen Punkt-Features. Die Anzahl von Linien- oder Polygon-Features in einem Shapefile 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 verschiedenen 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. beim Ausführen der Werkzeuge im Toolset "Überlagerung", des Werkzeugs "Ausschneiden", des Werkzeugs "Layer lagebezogen auswählen" oder eines anderen Werkzeugs, das mehrere Feature-Classes als Eingabe akzeptiert, müssen Sie statt Shapefiles Geodatabase-Feature-Classes (die über XY-Toleranz verfügen) verwenden.
- Ein Shapefile kann aufgrund der Shape-Komprimierungsmethoden drei bis fünf Mal mehr Speicherplatz als eine File- oder Enterprise-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 durch die Bearbeitung von Geodatabase-Feature-Classes erstellt, wie unter Erstellen von Kreisbögen 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 Bogen-Features in einfache Linien-Features mit nahe beieinander liegenden Stützpunkten konvertiert, um die Kurvenform darzustellen.
Attributeinschränkungen
Für die Attribuierung in Shapefiles gelten die folgenden Einschrä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.
Geodatabase-Datentyp dBASE-Feldtyp dBASE-Feldbreite (Anzahl von Zeichen) Object ID
Zahl
9
Short Integer
Zahl
4
Long Integer
Zahl
9
Float
Float
13
Double
Float
13
Text
Zeichen
254
Datum
Datum
8
Feldbreiten in dBASE - Datumsfelder unterstützen nur Datumsangaben, keine Zeitangaben.
Vorsicht:
Die fehlende Unterstützung von Zeitangaben in Datumsfeldern stellt eine ernsthafte Beschränkung für alle Werkzeuge dar, die zeitliche Analysen durchführen.
- 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. Wird diese Begrenzung überschritten, werden bei einer Konvertierung in ein Shapefile die ersten 255 Felder konvertiert.
- Die dBASE-Datei muss mindestens ein Feld enthalten. Wenn ein Shapefile oder eine dBASE-Tabelle erstellt wird, ist standardmäßig ein Integer-ID-Feld enthalten.
- dBASE-Dateien unterstützen keine Felder vom Typ BLOB, GUID, Global-ID und Raster.
- Mit Ausnahme von WHERE-Klauseln bieten dBASE-Dateien keine SQL-Unterstützung.
- Attributindizes werden beim Speichern von Bearbeitungen gelöscht, sodass sie von Grund auf neu erstellt werden müssen.
In ArcGIS Pro wird in dBASE-Dateien für Feldnamen und Feldwerte standardmäßig der ANSI-Zeichensatz unterstützt. Esri bietet Unicode-Unterstützung für dBASE-Dateien, in denen Unicode-Feldnamen und -Feldwerte unterstützt werden. Diese zusätzliche Unterstützung ist allerdings u. U. in Anwendungen, die von anderen Anbietern als Esri stammen, nicht verfügbar. Zur Unterstützung weiterer Zeichensätze legen Sie für den dbfDefault-Registrierungswert einen entsprechenden Codeseitenbezeichner fest.
Die Längeneigenschaft eines Zeichenfolgenfeldes variiert je nach Datenquelle. In einer dBASE-Datei repräsentiert die Feldlänge die Anzahl der unterstützten Bytes. In einer File-Geodatabase-Tabelle hingegen repräsentiert die Feldlänge die Anzahl der Zeichen. Ein Shapefile mit der Feldlänge 10 kann also lediglich drei chinesische 3-Byte-Zeichen enthalten. Beim Exportieren einer Tabelle mit Multibyte-Zeichen in eine dBASE-Tabelle werden die Werte möglicherweise nicht erwartungsgemäß übertragen. Wenn die Länge der Multibyte-Zeichen die Feldlänge überschreitet, enthalten Feldwerte leere oder unerwartete Werte.
NULL-Wert-Darstellung
NULL-Werte werden in Shapefiles nicht unterstützt. Wenn eine Feature-Class, die NULL-Werte enthält, in ein Shapefile konvertiert wird oder eine Datenbanktabelle in eine dBASE-Datei konvertiert wird, werden die NULL-Werte wie in der folgenden Tabelle beschrieben geändert.
Vorsicht:
Bei der Verwendung von Shapefiles oder dBASE-Dateien (.dbf) als Eingabe für Werkzeuge kann ArcGIS nicht bestimmen, ob ein Feldwert einen NULL-Wert oder einen gültigen Wert darstellt.
Datentyp mit NULL-Wert | NULL-Wert-Ersetzung |
---|---|
Zahl (Typ "Double"): 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 (Typ "Long"): Wenn das Werkzeug die Ausgabe von NULL, unendlich oder NaN (Not a Number, keine Zahl) erfordert | -214748364 |
Zahl (Typen "Double" und "Long"): Alle anderen Geoverarbeitungswerkzeuge | 0 |
Text | " " (leer – eine Leerstelle) |
Datum | Wird als 0 gespeichert, jedoch als <NULL> angezeigt |
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
Shape-Länge und Shape-Fläche
Für Line- oder Polygon-Feature-Classes, die in einer Geodatabase gespeichert sind, werden die Felder shape_length und shape_area von ArcGIS berechnet und verwaltet. Wenn die Geometrie einer Linie oder eines Polygons in einer Geodatabase-Feature-Class bearbeitet wird, werden die Werte in den Feldern shape_length und shape_area automatisch aktualisiert. Dies trifft nicht auf Shapefiles zu. Auch wenn ein Shapefile über das Feld shape_area oder shape_leng verfügt, wird es nicht aktualisiert, wenn Änderungen an dem Shapefile vorgenommen werden.
Shapefiles und Geoverarbeitung
Die meisten Geoverarbeitungswerkzeuge, die eine Feature-Class ausgeben, unterstützen als Ausgabeformat sowohl Shapefiles als auch Geodatabase-Feature-Classes. Ähnlich verhält es sich mit den meisten Werkzeugen, die Tabellen ausgeben: Sie unterstützen als Ausgabe sowohl dBASE-Dateien (.dbf) als auch Geodatabase-Tabellen.
Wenn Sie ein Werkzeug im Bereich Geoverarbeitung verwenden, erstellt das Werkzeug automatisch einen Pfad zur Ausgabe-Feature-Class oder -tabelle. Wenn die Umgebungseinstellung "Aktueller Workspace" auf einen Ordner und nicht auf eine Geodatabase festgelegt ist, handelt es sich bei dem Ausgabe-Feature-Class-Pfad um ein Shapefile oder eine dBASE-Datei. Standardmäßig ist die Umgebungseinstellung "Aktueller Workspace" auf eine Geodatabase festgelegt.
Weitere Informationen zu Geoverarbeitungsumgebungen
Da das Schreiben in Shapefiles schnell erfolgt, werden sie gelegentlich zum Schreiben von Zwischendaten in Modellen verwendet, um die Modellausführung zu beschleunigen. 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, ist daher für Zwischen- und Ausgabedaten die Verwendung von File-Geodatabases vorzuziehen. Eine Alternative zur Verwendung von Shapefiles für Zwischendaten ist das Schreiben von Features in den memory-Workspace.
Raumbezug und Shapefiles
Im Thema 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: