Raumbezüge
Raumbezüge enthalten ein Koordinatensystem für X -, Y -, und Z-Werte. In Enterprise-Geodatabases umfasst der Raumbezug auch Toleranz- und Auflösungswerte. Zusammengefasst diese Informationen die Formen der Erde auf einer ebenen Kartendarstellung an.
Jeder Raumbezug enthält auch eine Kennung (oft Well Known-ID, Raumbezugs-ID oder SRID genannt) sowie eine Well Known-Textbeschreibung des Koordinatensystems. Es gibt bestimmte Standard-IDs, z. B. jene, die von der europäischen Petroleumvermessungsgruppe (EPSG) oder Esri definiert wurden, aber die ID für Raumbezüge ist nicht immer standardmäßig. Beim Verschieben der räumlichen Daten zwischen Datenbanken hat dies Auswirkungen. Für weitere Informationen sehen Sie im Abschnitt „Verwendung des Raumbezugssystems in ArcGIs“ nach.
Bei der Erstellung in ArcGIS wird der Feature-Class ein Raumbezugssystem mit einer bestimmten SRID zugewiesen. Wenn kein Raumbezug zugewiesen wird, enthält die Feature-Class einen unbekannten Raumbezug. Dieser Raumbezug und die SRIC beziehen sich auf alle Zeilen der Feature-Class.
Wenn räumliche Tabellen direkt in der Datenbank (außerhalb von ArcGIS) erstellt werden, kann jedem Datensatz in einer räumlichen Tabelle eine andere SRID und ein anderer Raumbezug zugewiesen werden. Wenn Sie diese Datenbanktabellen jedoch in ArcGIS verwenden, erkennt ArcGIS nur eine SRID und einen Raumbezug für die gesamte Tabelle. Sie können einen Abfrage-Layer definieren, um anzugeben, welche SRID verwendet werden soll. Es kann dann in ArcGIS auf alle Zeilen mit dieser SRID zugegriffen werden. Andernfalls liest ArcGIS die SRIC der ersten Tabellenzeile, und in ArcGIS kann nur auf die Zeilen zugegriffen werden, für die diese SRID zugewiesen ist.
Raumbezugstabellen in Enterprise-Geodatabases
In Enterprise-Geodatabases (und Oracle oder PostgreSQL-Datenbanken, in denen der Typ ST_Geometry installiert ist) werden alle Raumbezugssysteme in einer Geodatabase-Systemtabelle gespeichert.
Datenbank und Speichertyp | Geodatabase-Systemtabelle |
---|---|
Oracle (ST_Geometry) | sde.st_spatial_references |
Oracle (SDO_Geometry oder SDEBINARY) | sde.spatial_references |
PostgreSQL (ST_Geometry und PostGIS-Geometrie) | public.sde_spatial_references Es gibt auch eine editierbare Ansicht dieser Tabelle - sde.st_spatial_references – in die Raumbezüge eingefügt werden können. |
Informix (ST_Geometry) | sde.spatial_references |
DB2 (ST_Geometry) | db2gse.st_spatial_reference_systems (Dies ist eine Systemansicht.) |
SQL Server (Geometrie, Geographie und SDEBINARY) | sde_spatial_references |
Das Raumbezugssystem muss in der Raumbezugstabelle vorhanden sein, damit Sie es mit Ihren Daten verwenden können.
Mit ArcGIS 10.1 wird die Geodatabase-Systemtabelle, die für ST_Geometry in Oracle und PostgreSQL verwendet wird, automatisch mit Raumbezugssystemen gefüllt, die EPSG-Codes für die Raumbezugs-IDs (SRIDs) verwenden. In aktualisierten Geodatabases in Oracle und PostgreSQL werden die Raumbezugssysteme den Tabellen „sde.st_spatial_references” und “public.sde_spatial_references” hinzugefügt.
Eine Definition aller Spalten in der Raumbezugstabelle der einzelnen Datenbankmanagementsysteme finden Sie in den Themen zu den entsprechenden Systemtabellen:
Technische Details zur Verwendung des Raumbezugssystems in einer Geodatabase:
Die Parameter von Raumbezugssystemen werden von internen Funktionen verwendet, um die Gleitkommakoordinaten der Geometrie vor dem Speichern in positive 64-Bit-Ganzzahlwerte umzuwandeln und zu skalieren. Beim Abrufen wird das externe Gleitkommaformat der Koordinaten wiederhergestellt.
Die Gleitkommakoordinaten werden durch Subtrahieren der "false x"- und "false y"-Werte in Ganzzahlwerte konvertiert und damit auf den "falschen Ursprung" umgesetzt. Anschließend wird durch Multiplikation mit den XY-Einheiten skaliert, eine halbe Einheit addiert und der Rest abgeschnitten.
Mit den optionalen Z-Koordinaten und den Messwerten wird ähnlich verfahren. Hierbei erfolgt die Umwandlung jedoch mit dem "false z"- bzw. dem "false m"-Wert und die Skalierung mit den Z-Einheiten bzw. mit den M-Einheiten.
Raumbezugstabellen in Datenbanken
Mit Ausnahme des ST_Geometry-Typs, der in einer Oracle- oder PostgreSQL-Datenbank installiert ist, enthalten Datenbanken, die einen SQL-Geometrietyp verwenden, keine ArcSDE-Systemtabelle. Jedes DBMS verfügt über eine eigene Systemtabelle, in der Raumbezüge gespeichert werden. Im Allgemeinen speichern diese Tabellen den Well-Known-Text und die ID des Koordinatensystems, aber nicht Genauigkeits- oder Toleranzwerte.
Die meisten Datenbanken verwenden EPSG-Codes für ihre Raumbezugs-IDs.
Informationen hierzu finden Sie in der DBMS-Dokumentation.
Wie das Raumbezugssystem in ArcGIS verwendet wird
Wenn Sie eine Feature-Class in ArcGIS erstellen, wählen Sie einen Raumbezug. Wenn Sie Ihre Daten in einer Geodatabase speichern, berechnet ArcGIS anhand des von Ihnen gewählten Raumbezugs standardmäßige X -, Y -, Z - und M-Einheiten sowie den Versatz.
Wenn Daten in ArcGIS for Desktop in eine Datenbank oder eine Enterprise-Geodatabase eingefügt oder importiert werden, verwendet ArcGIS die Well-Known Text-Beschreibung und ID des Koordinatensystems der eingehenden Daten zusammen mit der Toleranz und Auflösung, sofern vorhanden, und vergleicht es mit Werten in der Raumbezugssystemtabelle. Wenn eine Übereinstimmung gefunden wird, wird der vorhandene Raumbezug verwendet. Wenn keine Übereinstimmung gefunden wird, - z. B., wenn die eingehenden Daten einen benutzerdefinierten Raumbezug enthalten, - wird in Abhängigkeit des räumlichen Datentyps, der für räumliche Spalte der in der Zieldatenbank oder Geodatabase erstellten Tabelle verwendet wird, fortgefahren.
In der folgenden Tabelle ist aufgeführt, welche SRID in der Zieldatenbank (PostgreSQL, Oracle, SQL Server oder Netezza) verwendet wird, wenn räumliche Daten eingefügt oder importiert werden. Die Wörter bekannt oder unbekannt geben an, ob einem vorhandenen Raumbezug in der Zieldatenbank der Raumbezug in den Quelldaten zugeordnet werden kann.
Ziel | ||||||
Quelle | ST_Geometry | PostGIS Geometry | Oracle SDO_Geometry | SQL Server-Geometrie | SQL Server-Geographie | Netezza Spatial |
Bekannter EPSG-Code mit einer Spalte ST_Geometry, SDEBINARY, PostGIS Geometry, SDO_Geometry, SQL Server Geometry, SQL Server Geography oder Netezza Spatial | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. |
Bekannter EPSG kodiert mit benutzerdefinierter Toleranz und/oder Genauigkeit mit einer Spalte ST_Geometry, SDEBINARY oder Netezza Spatial | Der ArcSDE-Systemtabelle wird eine SRID größer als 300.000 hinzugefügt. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Der EPSG-Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. |
Bekanntes Esri Koordinatensystem mit einer Spalte ST_Geometry, SDEBINARY oder Netezza Spatial | Der Esri Code wird für die Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Die ID ist auf –1 festgelegt. | Die ID ist Null. | Der Esri Code wird für die Raumbezugs-ID verwendet und mit der Geometrie gespeichert. | Esri Koordinatensysteme werden für projizierte Koordinatensysteme verwendet. Da projizierte Koordinatensysteme nicht mit dem Typ SQL Server Geographie verwendet werden können, erscheint eine Fehlermeldung und die Daten können nicht importiert werden. | Der Esri Code wird als Raumbezugs-ID verwendet und mit der Geometrie gespeichert. |
Unbekanntes Koordinatensystem mit einer Spalte ST_Geometry, SDEBINARY, PostGIS Geometry, SDO_Geometry, SQL Server Geometry oder Netezza Spatial | Der ArcSDE-Systemtabelle wird eine SRID größer als 300.000 hinzugefügt. | Die ID ist auf –1 festgelegt. | Die ID ist Null. | Die ID ist auf 0 festgelegt. | Eine Fehlermeldung erscheint und die Daten können nicht importiert werden. | Die ID ist auf 500000 festgelegt. |
Benutzerdefiniertes Oracle-Koordinatensystem mit einer SDO_Geometry-Spalte | Der ArcSDE-Systemtabelle wird eine SRID größer als 300.000 hinzugefügt. | Die ID ist auf –1 festgelegt. | Die benutzerdefinierte Oracle ID wird verwendet, wenn diese in der Quelle enthalten ist. Wenn dies nicht der Fall ist, wird die SRID in der Zieldatenbank auf Null festgelegt. | Die ID ist auf 0 festgelegt. | Eine Fehlermeldung erscheint und die Daten können nicht importiert werden. | Eine Fehlermeldung erscheint und die Daten können nicht importiert werden. |
Benutzerdefiniertes Oracle-Koordinatensystem mit einer PostGIS Geometry-Spalte | Der ArcSDE-Systemtabelle wird eine SRID größer als 300.000 hinzugefügt. | Die benutzerdefinierte PostGIS-ID wird verwendet, wenn diese in der Quelle enthalten ist. Wenn dies nicht der Fall ist, wird die ID in der Zieldatenbank auf -1festgelegt. | Die ID ist Null. | Die ID ist auf 0 festgelegt. | Eine Fehlermeldung erscheint und die Daten können nicht importiert werden. | Eine Fehlermeldung erscheint und die Daten können nicht importiert werden. |
Beim Einfügen oder Importieren von Daten in eine DB2- oder Informix-Datenbank prüft ArcGIS ebenfalls die Raumbezugstabelle auf eine Übereinstimmung. Wird keine Übereinstimmung gefunden, wird der Raumbezugstabelle ein neuer Datensatz mit den neuen Informationen hinzugefügt. Informationen zu den verwendeten IDs finden Sie in der IBM-Dokumentation.
Räumliche Daten mit einem unbekannten Raumbezug können nicht als Service von ArcGIS veröffentlicht werden. Um die Daten zu veröffentlichen, erstellen Sie einen Abfrage-Layer und geben Sie auf dem Abfrage-Layer einen Raumbezug an.