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.

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!


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.