Esri hat im Laufe der Jahre drei Hauptdatenformate zum Speichern von geographischen Informationen entwickelt: Coverages, Shapefiles und Geodatabases. Shapefiles wurden entwickelt, um ein einfaches 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 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.
- Da es sich bei Shapefiles um ein beliebtes offenes Format für die Datenübertragung handelt, bieten viele nicht von Esri stammende Softwarepakete 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-Datei). dBASE ist ein in den frühen 1980er Jahren nicht von Esri entwickeltes 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 Feature-Classes in einer Geodatabase werden die Felder für Shape-Länge und Shape-Fläche von ArcGIS weder berechnet noch verwaltet.
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 nicht von Esri stammenden Softwareanwendung
- Beim Exportieren von Daten für die Verwendung in ArcView GIS 3 oder ArcInfo Workstation
- Für die schnelle Erstellung einfacher Features und Attribute (Denken Sie jedoch an die vorstehend erwähnten Beschränkungen.)
Wann sollten keine Shapefiles verwendet werden?
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 können sie keine NULL-Werte speichern, 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. 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 .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 |
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 nur in ArcGIS-Anwendungen verfügbar, nicht jedoch in Anwendungen anderer Anbieter als Esri.
- Datumsfelder unterstützen nur Datumsangaben. Sie unterstützen keine Zeit.
- 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 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.
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:
Datentyp mit NULL-Wert | NULL-Wert-Ersetzung |
---|---|
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 – 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, d. h., wenn Sie die Form einer Linie oder eines Polygons in einer Geodatabase-Feature-Class bearbeiten, werden die Werte in den Feldern shape_length und shape_area neu berechnet, um die an den Features vorgenommenen Änderungen zu übernehmen. Dies gilt nicht für Shapefiles. Auch wenn das Shapefile über ein shape_area- oder shape_length-Feld verfügt, wird es nicht aktualisiert, wenn Änderungen an dem Shapefile durchgeführt werden.
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 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: