Comment enseigner à ogr2ogr une projection?

11

J'ai généré JSON à partir d'ArcGIS que je souhaite convertir en GeoJSON dans EPSG 4326. Cela échoue:

$ 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?

J'ai trouvé un message sur le forum qui dit que 102100 peut être changé en 3857, ce qui est mathématiquement identique. Donc, cela fonctionne, avec le même message d'erreur:

$ 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?

Cependant, j'ai plusieurs fichiers dans le système de projection 102100. J'aimerais enseigner à ogr2ogr la projection 102100, afin que je puisse scripter la conversion. Existe-t-il un moyen de mettre à jour la configuration afin que 102100 soit reconnu et traité de la même manière que 3857?

Mise à jour - Ces données proviennent de l'API REST d'ArgGIS Server 9.3.1. Si je ne spécifie pas de référence spatiale de sortie, j'obtiens 102100, qu'ils définissent comme le système de coordonnées projeté "WGS_1984_Web_Mercator_Auxiliary_Sphere" . Un moyen beaucoup plus simple d'atteindre mon objectif est de demander la projection souhaitée, avec le outSR=4326paramètre de requête. La question est toujours valable si vous n'avez pas accès aux données originales.

jwhitlock
la source

Réponses:

11

Comme 102100 et 3857 sont mathématiquement identiques, je pense que vous pouvez ignorer les erreurs en toute sécurité et continuer à remplacer les srs source en utilisant le drapeau -s_srs .

Vous pouvez essayer d'ajouter la définition de 102100 dans votre $ GDAL_DATA $ mais ce n'est pas vraiment recommandé. Si vous voulez vraiment le faire, voici la méthode et l'avertissement qui l'accompagne de Frank Warmerdam :

Les fichiers .csv sont principalement destinés aux systèmes de coordonnées EPSG, il n'est donc pas vraiment approprié de les étendre manuellement.

Mais vous pouvez ajouter vos propres dictionnaires personnalisés d'une manière similaire à gdal / data / cubewerx_extra.wkt. Ces fichiers de dictionnaire sont constitués de lignes avec un nom court, une virgule, puis la définition WKT du système de coordonnées.

Vous pouvez référencer une telle définition à partir de SetFromUserInput () et des programmes qui utilisent cette fonction (tels que s_srs, a_srs, t_srs pour gdal_translate, ogr2ogr et gdalwarp) en utilisant le formulaire:

gdal_translate -a_srs DICT: cubewerx_extra.wkt, 41001

J'espère que ça aide. Bonne chance!

RK
la source
1
Merci, j'ai fait quelque chose de similaire à ce que vous avez suggéré. Mon $GDAL_DATA$répertoire est à /usr/local/share/gdalet EPSG 3857 est défini pcs.csvdans ce dossier. J'ai copié cette ligne dans pcs.override.csvet changé l'ID (première colonne) de 3857 à 102100. À ce stade, les conversions ont fonctionné sans l' -s_srsindicateur. La solution à plus long terme consistait à obtenir mes données source dans une projection connue, afin que je puisse utiliser ogr2ogr uniquement pour la conversion de format, plutôt que de mélanger les projections.
jwhitlock