Como ensino ogr2ogr sobre uma projeção?

11

Tenho JSON gerado a partir do ArcGIS que desejo converter para GeoJSON no EPSG 4326. Isso falha:

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

Encontrei uma postagem no fórum que diz que 102100 pode ser alterado para 3857, que é matematicamente idêntico. Então, isso funciona, com a mesma mensagem de erro:

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

No entanto, tenho vários arquivos no sistema de projeção 102100. Gostaria de ensinar ogr2ogr sobre a projeção 102100, para que eu possa escrever a conversão. Existe uma maneira de atualizar a configuração para que 102100 seja reconhecido e tratado da mesma maneira que 3857?

Atualização - Esses dados são da API REST do ArgGIS Server 9.3.1. Se eu não especificar uma referência espacial de saída, recebo 102100, que eles definem como o sistema de coordenadas projetado "WGS_1984_Web_Mercator_Auxiliary_Sphere" . Uma maneira muito mais fácil de realizar meu objetivo é solicitar a projeção desejada, com o outSR=4326parâmetro query. A pergunta ainda é válida se você não tiver acesso aos dados originais.

jwhitlock
fonte

Respostas:

11

Como 102100 e 3857 são matematicamente idênticos, acho que você pode ignorar com segurança os erros e apenas continuar substituindo os srs de origem usando o sinalizador -s_srs .

Você pode tentar adicionar a definição para 102100 no seu $ GDAL_DATA $, mas isso não é realmente recomendado. Se você realmente deseja fazer isso, aqui está o método e o aviso de Frank Warmerdam :

Os arquivos .csv destinam-se principalmente aos sistemas de coordenadas EPSG, portanto, não é realmente apropriado estendê-los manualmente.

Mas você pode adicionar seus próprios dicionários personalizados de maneira semelhante a gdal / data / cubewerx_extra.wkt. Esses arquivos de dicionário consistem em linhas com um nome abreviado, uma vírgula e, em seguida, a definição WKT do sistema de coordenadas.

Você pode fazer referência a essa definição em SetFromUserInput () e programas que usam essa função (como s_srs, a_srs, t_srs para gdal_translate, ogr2ogr e gdalwarp) usando o formato:

gdal_translate -a_srs DICT: cubewerx_extra.wkt, 41001

Eu espero que isso ajude. Boa sorte!

RK
fonte
1
Obrigado, fiz algo semelhante ao que você sugeriu. Meu $GDAL_DATA$diretório está em /usr/local/share/gdale o EPSG 3857 está definido pcs.csvnessa pasta. Copiei essa linha para pcs.override.csve alterei o ID (primeira coluna) de 3857 para 102100. Nesse ponto, as conversões funcionavam sem o -s_srssinalizador. A solução a longo prazo foi colocar meus dados de origem em uma projeção conhecida, para que eu pudesse usar ogr2ogr apenas na conversão de formatos, em vez de misturar projeções.
jwhitlock