Mais

Conectando pontos localizados no lado oposto do meridiano de data internacional usando Python GDAL / OGR?

Conectando pontos localizados no lado oposto do meridiano de data internacional usando Python GDAL / OGR?


Dada uma lista de coordenadas, preciso criar um arquivo de forma de linha unindo cada um dos pontos com um script Python GDAL / OGR. O procedimento descrito aqui Converter pontos XY em uma linha? funciona bem em quase todos os casos, exceto quando os pontos estão cruzando o meridiano de mudança de data. Quando isso acontece, a linha conecta os dois pontos cruzando o mundo inteiro, o que é um erro óbvio.

Como posso forçar o script a conectar os 2 pontos pela distância mais curta?

Aqui estão alguns exemplos de coordenadas:

lon, lat 172,5, 50,0 175,0, 43,4 -175,0, 35,0 -173,1, 31 -172,1, 28,0 -171,3, 26,5 -173,9, 21,8

Para a distância mais curta, você pode querer dar uma olhada no cálculo de grandes círculos.

Aqui está um exemplo feito no QGIS: grandes círculos no QGIS e exportação em 3857 webmap

O CRS local não quebra na linha de data.

Se sua área de interesse estiver próxima à linha da data, você pode usar uma projeção de mercator transversal local:

+ proj = tmerc + lat_0 = 50 + lon_0 = 172,5 + x_0 = 0 + y_0 = 0 + a = 6371000 + b = 6371000 + unidades = m + no_defs

ou siga meu conselho em QGIS exibir arquivos de formatos de países do mundo centralizados no oceano pacífico usando Robinson, Miller Cylindrical ou outra projeção

Se você deseja exibir suas linhas em uma projeção "normal", você tem que densificar sua geometria de linha e cortá-la na linha de data (semelhante a Linhas em objetos sp reprojetados com projeção de Mollweide)