Wie unterrichte ich ogr2ogr über eine Projektion?

11

Ich habe JSON aus ArcGIS generiert , das ich in EPSG 4326 in GeoJSON konvertieren möchte. Dies schlägt fehl:

$ ogr2ogr -f GeoJSON -t_srs EPSG:4326 out.geo.json in.arcgis.json OGRGeoJSON
ERROR 6: EPSG PCS/GCS code 102100 not found in EPSG support files.  Is this a valid
EPSG coordinate system?

Ich habe einen Forumsbeitrag gefunden , der besagt, dass 102100 in 3857 geändert werden kann, was mathematisch identisch ist. Das funktioniert also mit der gleichen Fehlermeldung:

$ ogr2ogr -f GeoJSON -s_srs EPSG:3857 -t_srs EPSG:4326 out.geo.json in.arcgis.json OGRGeoJSON 
ERROR 6: EPSG PCS/GCS code 102100 not found in EPSG support files.  Is this a valid
EPSG coordinate system?

Ich habe jedoch mehrere Dateien im 102100-Projektionssystem. Ich möchte ogr2ogr etwas über die 102100-Projektion beibringen, damit ich die Konvertierung per Skript ausführen kann. Gibt es eine Möglichkeit, die Konfiguration so zu aktualisieren, dass 102100 wie 3857 erkannt und behandelt wird?

Update - Diese Daten stammen aus der REST-API von ArgGIS Server 9.3.1. Wenn ich keinen Ausgabe-Raumbezug spezifiziere, erhalte ich 102100, die sie als projiziertes Koordinatensystem "WGS_1984_Web_Mercator_Auxiliary_Sphere" definieren . Eine viel einfachere Möglichkeit, mein Ziel zu erreichen, besteht darin, mit dem outSR=4326Abfrageparameter nach der gewünschten Projektion zu fragen . Die Frage ist weiterhin gültig, wenn Sie keinen Zugriff auf Originaldaten haben.

jwhitlock
quelle

Antworten:

11

Da 102100 und 3857 mathematisch identisch sind, können Sie die Fehler sicher ignorieren und einfach die Quell-srs mit dem Flag -s_srs überschreiben .

Sie können versuchen, die Definition für 102100 in $ GDAL_DATA $ hinzuzufügen, dies wird jedoch nicht wirklich empfohlen. Wenn Sie es aber wirklich wollen, hier die Methode und die dazugehörige Warnung von Frank Warmerdam :

Die CSV-Dateien sind hauptsächlich für EPSG-Koordinatensysteme vorgesehen, daher ist es nicht wirklich angebracht, sie manuell zu erweitern.

Sie können jedoch Ihre eigenen benutzerdefinierten Wörterbücher ähnlich wie bei gdal / data / cubewerx_extra.wkt hinzufügen. Diese Wörterbuchdateien bestehen aus Zeilen mit einem Kurznamen, einem Komma und der WKT-Definition des Koordinatensystems.

Sie können auf eine solche Definition in SetFromUserInput () und in Programmen verweisen, die diese Funktion verwenden (z. B. s_srs, a_srs, t_srs für gdal_translate, ogr2ogr und gdalwarp).

gdal_translate -a_srs DICT: cubewerx_extra.wkt, 41001

Ich hoffe das hilft. Viel Glück!

RK
quelle
1
Danke, ich habe etwas Ähnliches getan, wie Sie vorgeschlagen haben. Mein $GDAL_DATA$Verzeichnis befindet sich in /usr/local/share/gdalund EPSG 3857 ist pcs.csvin diesem Ordner definiert. Ich habe diese Zeile in kopiert pcs.override.csvund die ID (erste Spalte) von 3857 auf 102100 geändert. Zu diesem Zeitpunkt funktionierten die Konvertierungen ohne das -s_srsFlag. Die längerfristige Lösung bestand darin, meine Quelldaten in einer bekannten Projektion abzurufen, sodass ich ogr2ogr nur für die Formatkonvertierung verwenden konnte, anstatt Projektionen einzumischen.
Jwhitlock