Was ist der Unterschied zwischen Coverage, Shapefiles und Geodatabases in ArcGIS?

24

Ich habe mich über den Unterschied in der Speichermethode für räumliche Daten gewundert, die von Coverages, Shapefiles und Geodatabases in ArcGIS verwendet wird. Coverage war das ursprüngliche Format, gefolgt von Shape Files und jetzt Geodatabases. Was hat sich in diesen neueren Formaten von Shapefiles und Geodatabases verbessert?

Es wäre toll, wenn jemand dies anhand von Beispielen erläutern könnte.

Abhishek Potnis
quelle
1
Ich denke, Shapefiles waren immer mehr für den Datenaustausch als für den Primärspeicher. Das ist sicherlich, wie sie in meiner Erfahrung verwendet werden.
Russell bei ISC
3
Keineswegs. Shapefiles waren das primäre Datenformat für ArcView 1/2 / 3.x. Sie sind sicherlich ein Verwendungsformat (wenn sie ein Übertragungsformat wären, wären sie nicht in mehreren Dateien)
Vince

Antworten:

22

Das ist so eine tolle Frage. Coverages, Shapefile und Geodatabases sind grundsätzlich vom Implementierungsstandpunkt als auch vom philosophischen Standpunkt aus unterschiedliche Geodatenspeicher. Ich werde versuchen, zusammenzufassen, ohne zu tief darauf einzugehen.

1. Deckungen:

Coverages sind interessante Geodatenstrukturen . Sie konzentrieren sich auf die Speicherung der Topologie. Sie werden also feststellen, dass der Schwerpunkt darauf liegt, zuerst die Geometrieelemente zu speichern, dh die Knoten und Kanten, aus denen alle Geometrien bestehen. Sie sehen dann eine separate Gruppe von Tabellen, die diese Geometrien mit den Attributen in Beziehung setzen (und daher zu Features werden).

Aus der ESRI-Hilfe

Eine "saubere" Abdeckung garantiert bestimmte Regeln, zum Beispiel, dass es an jedem Knotenpunkt Knoten gibt, Sie nicht zwei (oder mehr) Knoten übereinander haben (oder sogar innerhalb eines Fuzzy-Toleranzabstands), die es nicht gibt zwei Kanten übereinander usw. Sie haben auch einen Richtungssinn (von-> nach) und können unterscheiden, was sich auf der linken und rechten Seite befindet.

Saubere Abdeckung durch ESRI-Hilfe

Coverages eignen sich sehr gut für Bearbeitungen, bei denen die topologischen Beziehungen berücksichtigt werden müssen (stellen Sie sich vor, Sie bearbeiten eine Flurstücksgrenze). Darüber hinaus werden Abdeckungen sehr gut komprimiert, da sie geometrische Redundanzen konstruktionsbedingt beseitigen. Tatsächlich werden Sie sehen, dass heutzutage moderne Formate wie TopoJSON die gleichen Techniken verwenden, die wir vor einigen Jahrzehnten aus der Berichterstattung gelernt haben.

Die Arbeit mit Coverages kann etwas komplizierter sein, wenn Sie mit 3D-Daten arbeiten (z. B. Modellieren einer Brücke mit einer oberen und einer unteren Seite rechts unten), da die Algorithmen, mit denen wir sie behandelt haben, von Natur aus beabsichtigt waren für 2D - planaren Graphen math.

Warum haben wir uns davon entfernt? Das würde eine längere Zeit in Anspruch nehmen, aber vielleicht sollten wir etwas näher erläutern, was ESRI Shapefiles zuerst populär gemacht hat.

2. ESRI-Shapefiles:

Dann kam das Shapefile. Das wahrscheinlich wichtigste Merkmal war, dass es sich um eine offene Spezifikation handelte , die (vergleichsweise) einfach zu implementieren war. Die Attribute nutzten DBF-Dateien , sodass es bereits viele Bibliotheken gab, die einen großen Teil der Spezifikation implementierten. Es gab kein Konzept von "sauber", was bedeutete, dass sich jede einzelne Geometrie nur darum kümmern musste, sich selbst darzustellen, ohne die Geometrien um sie herum zu berücksichtigen oder dass sie sich überschnitten. Dies bedeutete, dass wir keine komplizierten Berechnungen durchführen mussten, um sicherzustellen, dass ein Shapefile korrekt war (im Gegensatz zum Coverage-Gegenstück).

Haben Sie mehrere Geometrien, die sich kreuzen? Sicher warum nicht. Zwei Punkte übereinander? Sei mein Gast.

Manchmal ist das (wohl) "beste" Format nicht dasjenige, das gewinnt, sondern dasjenige, das angenommen wird. Wenn ein Format einfach zu implementieren ist, besteht eine bessere Wahrscheinlichkeit, dass es übernommen wird als ein kompliziertes. Das war das Shapefile.

Plötzlich hatten Sie mehrere Bibliotheken (Open Source und proprietär) und Softwareanbieter, die dies unterstützten. Alles war großartig.

Die offensichtliche Frage ist dann - warum Geodatabases?

3. Geodatabases:

Ich glaube, Geodatabases sind einer der am meisten missverstandenen Geodatenspeicher. Die Leute betrachten sie normalerweise nur als "Geodatenformat". Vor ein paar Jahren fragte jemand: "Was sind ESRI-Geodatabases?" . Anstatt meine Antwort zu wiederholen, möchte ich Sie bitten, diese zuerst zu lesen. Ich werde warten :)

Nachdem Sie diese Antwort gelesen haben und wissen, was eine Geodatabase ist, kann ich diese Antwort etwas näher erläutern. Zu der Zeit gab es eine Menge Recherchen zur Optimierung von SQL und zum Schreiben von Abfrageoptimierern, die Indizes, Spaltenspeicher usw. nutzten (es gibt immer noch). Indem wir die Geodatabase auf einem SQL-Datenspeicher aufbauen, können wir all diese Recherchen kostenlos nutzen. Wir haben leider nur auf den geospatial Konzepte konzentrieren müssen, und wie die SQL - Datenspeicher besser, die Geodatabase wird immer besser, auch kostenlos . Kein schlechter Vorschlag, oder?

Heutzutage gibt es mehrere Spezifikationen für Geodaten, die herauskommen. Die Jury ist immer noch da draußen, was diese Technologien ersetzen wird (wenn überhaupt). Wenn Sie sich dennoch für dieses Thema interessieren, empfehle ich, die Antwort auf die hier in GIS.SE gestellten Fragen vor einigen Jahren zu lesen: "Gibt es Versuche, die Formdatei zu ersetzen?"

Ich hoffe das hilft!

Ragi Yaser Burhum
quelle
12

Die meisten Informationen finden Sie in der Esri-Hilfe und in einigen Suchanfragen. Deshalb habe ich nur einige gute Lektüren zusammengestellt.

Wie werden Deckungen gespeichert? Da es sich um ein proprietäres Format handelt, werden Sie keine technischen Spezifikationen zur Implementierung der Algorithmen finden (es sei denn, @Vince bringt Licht ins Dunkel).

Shapefiles kamen später und wurden als Standard implementiert, der ein gewisses Maß an Interoperabilität bot. ESRI Shapefile Technical Description enthält die vollständige Beschreibung.

Geodatabases wurden später eingeführt. Zuerst kamen persönliche Geodatabases (MS Access), dann File-Geodatabases (binär verschlüsseltes Format) und Enterprise-Geodatabases (oder ArcSDE-Geodatabases), die die ArcSDE- und DBMS-Technologie nutzten. Weitere Informationen zu Geodatabases finden Sie hier: Geodatabase-Typen und Die Architektur einer Geodatabase .

Eine gute Lektüre zu GIS.SE: Ob File-Geodatabase (* .gdb), Personal-Geodatabase (* .mdb) oder Shapefiles verwendet werden sollen?

In Bezug auf die Leistung wurden viele Benchmarks durchgeführt, und File-Geodatabases erweisen sich beim Lesen und Schreiben von Informationen als am schnellsten. Personal Geodatabases und Shapefiles sind bei weitem langsamer und werden wahrscheinlich nur verwendet, um ältere Systeme zu unterstützen, die mit MS Access-Geschäftslogik oder Shapefile-Lesen / -Konvertierung erstellt wurden.

Auf ArcSDE basierende Geodatabases bieten beim Optimieren des DBMS häufig eine nahezu gleichwertige Leistung wie File-Geodatabases. Dies hängt jedoch vom Typ der gespeicherten Daten, von den Netzwerken und von der Hardware ab. Weitere Informationen zu Benchmarks finden Sie in den Ressourcen zu Esri-Systemdesignstrategien (und hier ).

Alex Tereshenkov
quelle
2
Coverage-Dateiformate wurden in der FORTRAN SDK-Dokumentation dokumentiert (die Grundelemente LAB, ARC und TXT sowie PAT, AAT, PAL, RAT und ein Großteil der Alphabetsuppe). Die meisten "Algorithmen" waren unabhängig vom Dateiformat und daher nicht im SDK dokumentiert.
Vince
2
Ich denke, Personal Geodatabases kamen nach ArcSDE / SDE / SDBE-Geodatabases, aber vor File Geodatabases.
PolyGeo
3
Nach SDBE und SDE sicherlich, aber die Änderung des ArcSDE-Namens war gleichzeitig mit der Veröffentlichung des PGDB-Formats. FGDBs kamen später.
Vince
Daniel Morisette hat das Coverage-Format so weit zurückentwickelt, dass es nützlich ist. Es ist jetzt Teil der GDAL / OGR-Suite. avce00.maptools.org/docs/v7_bin_cover.html
matt wilkie
1
@PolyGeo Du hast recht. Unterhaltsame Tatsache: SDE-unterstützte Access-Datenbanken an einem Punkt. Sie können dies in der ArcSDE-API zum Abrufen von Verbindungsinformationen sehen: help.arcgis.com/de/geodatabase/10.0/sdk/arcsde/api/capi/… SE_DBMS_IS_JET ist für die MS Jet Engine de.wikipedia.org/wiki/Microsoft_Jet_Database_Engine
Ragi Yaser Burhum
8

Der Hauptunterschied zwischen diesen Formaten besteht in der Art und Weise, in der Features mit Geometrien in Beziehung stehen. In der Blütezeit der Coverages war die Codierungssprache FORTRAN, was feste Puffergrößen in ALLGEMEINEN Blöcken bedeutete. Die restriktivste davon waren 500 Eckpunkte pro Linienprimitiv ("Bogen"). Diese Einschränkung führte das Konzept von "Pseudoknoten" (Stellen, an denen sich Bögen mit nur einem anderen Bogen verbinden) ein und komplizierte viele andere Datenzugriffsoperationen.

Das Abdeckungsmodell verwendete eine "Polygonbogenliste" (PAL) zur Beschreibung von Polygonen, für die ein Polygonschattierungsalgorithmus erforderlich war, um eine Datei zu lesen, um die Liste der Bögen zu erhalten, und dann die Bögen selbst zu lesen, um die Scheitelpunktanzahl zu erhalten und dann genügend RAM zuzuweisen Speichern Sie alle Scheitelpunkte, und lesen Sie die Bögen erneut. Kopieren Sie diesmal die Scheitelpunkte in vorwärts oder rückwärts gerichteter Reihenfolge, um ein vollständiges Polygon zusammenzusetzen. Erst nach zwei Besuchen in der ARC-Datei konnte das Polygon angemessen beschrieben werden, und dann müssten viele der gleichen Bögen (in entgegengesetzter Richtung) aufgerufen werden, um die Polygon-Nachbarn zu schattieren.

Im Vergleich dazu speichern das Shapefile und verschiedene Geodatabase-Formate die gesamte Geometrie als einzelnes Objekt (mit verschiedenen Implementierungsdetails zur physischen Implementierung des Objekts). Dies hat Nachteile beim Versuch, gemeinsam genutzte Grenzen zu bearbeiten, aber diese Operation ist wesentlich seltener als das Schattieren von Polygonen.

Das Speichermodell "Gesamtform" ist der Hauptunterschied zwischen dem Coverage-Format und den neuen. Dieser Unterschied ist so grundlegend, dass kaum ein wirklicher Unterschied zwischen dem Shapefile-Format und den verschiedenen Geodatabase-Formaten erkennbar ist. Tatsächlich wurde das Shapefile-Format verwendet, um über die FGDB-API auf FGDB-Geometrien zuzugreifen, obwohl FGDB dieses genaue Format nicht verwendet, nur weil es einfacher war als die Einführung eines neuen Scheitelpunktlayouts.

Vince
quelle
5

Ein weiterer Unterschied zwischen den Formaten besteht darin, dass eine Geodatabase Beziehungen zwischen Feature-Classes modellieren kann . Wie Ragi bemerkte,

Coverages eignen sich sehr gut für Bearbeitungen, bei denen die topologischen Beziehungen berücksichtigt werden müssen (stellen Sie sich vor, Sie bearbeiten eine Flurstücksgrenze).

Dieses Bewusstsein existiert jedoch nur innerhalb einer einzelnen Abdeckung. Wenn Sie die Beziehungen zwischen zwei oder mehr Abdeckungen modellieren möchten, liegt es in Ihrer Verantwortung, den Code zu schreiben, der nach "illegalen" topologischen Beziehungen sucht.

Wenn beispielsweise Flurstückpolygone keine Lücken aufweisen können und die Flurstückgrenzen genau mit den Straßen, Deckungen oder Shapefiles übereinstimmen sollen, müssen Sie dies überprüfen und alle Fehler, bei denen diese Regeln nicht eingehalten werden, manuell beheben.

Eine Geodatabase kann optional ein Topologieobjekt unterstützen , mit dem Sie die zulässigen topologischen Regeln für Ihre Daten definieren können. Wichtig ist, dass diese Regeln sowohl innerhalb als auch zwischen Feature-Classes in Ihrer Geodatabase auftreten können.

Mit den Topologie-Bearbeitungswerkzeugen in ArcMap können Sie topologische Verstöße finden und in einigen Fällen automatisch beheben .

Vor der Einführung der Geodatabase-Topologie ("die guten alten Zeiten") war es üblich, lange und komplizierte AML-Skripte zu schreiben, um topologische Verstöße zu erkennen, und dann die Coverages manuell in ArcEdit zu bearbeiten (was nicht so viel Spaß machte).

Stephen Blei
quelle