Bagaimana saya mengajar ogr2ogr tentang proyeksi?

11

Saya memiliki JSON yang dihasilkan dari ArcGIS yang ingin saya konversi ke GeoJSON di EPSG 4326. Ini gagal:

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

Saya menemukan posting forum yang mengatakan 102100 dapat diubah menjadi 3857, yang secara matematis identik. Jadi, ini berfungsi, dengan pesan kesalahan yang sama:

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

Namun, saya memiliki beberapa file di sistem proyeksi 102100. Saya ingin mengajar ogr2ogr tentang proyeksi 102100, jadi saya bisa membuat skrip konversi. Apakah ada cara untuk memperbarui konfigurasi sehingga 102100 dikenali dan diperlakukan sama dengan 3857?

Pembaruan - Data ini dari API REST dari ArgGIS Server 9.3.1. Jika saya tidak menentukan referensi spasial keluaran, maka saya mendapatkan 102100, yang mereka definisikan sebagai sistem koordinat yang diproyeksikan "WGS_1984_Web_Mercator_Auxiliary_Sphere" . Cara yang jauh lebih mudah untuk mencapai tujuan saya adalah meminta proyeksi yang diinginkan, dengan outSR=4326parameter kueri. Pertanyaannya masih valid jika Anda tidak memiliki akses ke data asli.

jwhitlock
sumber

Jawaban:

11

Karena 102100 dan 3857 identik secara matematis, saya pikir Anda dapat dengan aman mengabaikan kesalahan dan hanya melanjutkan dengan menimpa sumber srs menggunakan flag -s_srs .

Anda dapat mencoba menambahkan definisi untuk 102100 dalam $ GDAL_DATA $ Anda, tetapi itu tidak benar-benar direkomendasikan. Jika Anda benar-benar ingin melakukannya, berikut adalah metode dan peringatan yang menyertai dari Frank Warmerdam :

File .csv terutama ditujukan untuk sistem koordinat EPSG, jadi tidak terlalu tepat untuk memperpanjangnya secara manual.

Tetapi Anda dapat menambahkan kamus khusus Anda sendiri dengan cara yang mirip dengan gdal / data / cubewerx_extra.wkt. File kamus ini terdiri dari baris dengan nama pendek, koma dan kemudian definisi WKT dari sistem koordinat.

Anda dapat merujuk definisi seperti itu dari SetFromUserInput () dan program yang menggunakan fungsi itu (seperti s_srs, a_srs, t_srs untuk gdal_translate, ogr2ogr dan gdalwarp) menggunakan formulir:

gdal_translate -a_srs DICT: cubewerx_extra.wkt, 41001

Saya harap ini membantu. Semoga berhasil!

RK
sumber
1
Terima kasih, saya melakukan sesuatu yang mirip dengan yang Anda sarankan. $GDAL_DATA$Direktori saya berada di /usr/local/share/gdal, dan EPSG 3857 didefinisikan di pcs.csvdalam folder itu. Saya menyalin baris itu ke pcs.override.csv, dan mengubah ID (kolom pertama) dari 3857 menjadi 102100. Pada saat itu, konversi berfungsi tanpa -s_srsbendera. Solusi jangka panjang adalah untuk mendapatkan data sumber saya dalam proyeksi yang dikenal, sehingga saya bisa menggunakan ogr2ogr untuk konversi format saja, daripada campuran dalam proyeksi.
jwhitlock