Polígonos na linha de dados internacional [-180 .. + 180 longitude]

9

Estou tentando gerar polígonos para faixas orbitais de satélite. Até agora, tenho um método para gerar duas linhas que representam a borda de cada faixa em [lat, long]. Alguns dos trechos cruzam a linha de dados internacional e, por isso, envolvem-se:

embrulho

Consegui resolver isso com ogr2ogr -wrapdateline:

ogr2ogr -wrapdateline  -f "ESRI Shapefile" test.shp orbits.shp

O que divide as linhas provavelmente

Agora eu quero ser capaz de gerar polígonos no interior das duas linhas. Por exemplo, no caso em que uma borda da faixa cruza a linha de dados, um polígono preenche quando emerge do outro lado, como:

preencher

Preciso de um método automatizado, pois preciso repetir muito a tarefa. De preferência em python, é assim que eu gerei as linhas. Aqui estão os dois shapefiles que contêm as linhas: envolvente ; datelinefixed

James
fonte
Para obter idéias adicionais, consulte os tópicos relacionados em gis.stackexchange.com/questions/429 e gis.stackexchange.com/questions/18562 . É possível que as idéias apresentadas em gis.stackexchange.com/questions/17788 também possam ser úteis. Eu me pergunto, no entanto, o que você quer dizer com "interior": esses polígonos não são bem definidos, portanto, no mínimo, você precisa fornecer informações para indicar (a) qual lado de cada polilinha é considerado "interior" e (b) como cortá-los perto dos postes.
whuber

Respostas:

2

Você pode criar uma projeção mercator personalizada centralizada aproximadamente no centro da faixa. Por exemplo, use para a faixa 25:

+proj=merc +lon_0=-140 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

Nesta projeção, a faixa não é quebrada pela linha de dados. Você pode criar o polígono a partir da linha.

insira a descrição da imagem aqui

Em seguida, crie um polígono cortado entre -179,95 ° E e 179,95 ° E no EPSG: 4326:

Nr;WKT
1;POLYGON ((-179.95 89, 179.95 89, 179.95 -89, -179.95 -89, -179.95 89))

Reprojete-o também no seu CRS personalizado e subtraia-o do polígono da faixa.

Após reprojetar novamente para o EPSG: 4326, a faixa é dividida corretamente pela linha de dados:

insira a descrição da imagem aqui

Continue com todas as faixas que cruzam a linha de dados.

AndreJ
fonte
1

Eu reescreveria o processo de geração de linha swathe para começar e terminar no mesmo espaço longo e longo contínuo. ou seja, se uma linha começasse a 170 ° e terminasse em -170 °, eu reescreveria o processo para terminar em 190 °, sem envolver em -180,180

Então você pode criar polígonos ininterruptos entre suas linhas.

Em seguida, use um processo de clipe para dividir os polígonos nas linhas 180, -180 e deslocar as partes que estiverem fora do espaço -180.180 adicionando ou subtraindo 360 ° conforme apropriado.

Basta fazer tudo antes de salvá-lo com uma determinada projeção / dado

Mr Purple
fonte