Como posso converter coordenadas geomagnéticas em coordenadas geográficas sem fazer as contas sozinho?

10

Eu tenho alguns dados que estão em coordenadas geomagnéticas; isto é, são latitude e longitude, mas em referência ao pólo norte magnético no Canadá, e não ao polo norte geográfico. Como você pode imaginar, eu gostaria de combiná-los com outros dados que estão em outros sistemas de coordenadas.

(Os dados se originaram como um cálculo do oval auroral; isto é, eles se originaram como geomagnéticos e não há nenhuma fonte geográfica que eu pudesse consultar, mesmo em princípio.)

Os dados serão armazenados no PostGIS.

A maneira mais fácil de fazer isso é encontrar um código EPSG para o sistema de coordenadas geomagnéticas, marcar os dados com esse código e, em seguida, tudo é magicamente reprojetado para o que eu precisar no momento. No entanto, não encontro nenhum código EPSG no spatialreference.org que contenha geomagnético ou magnético . Várias pesquisas no Google também não aparecem.

Para o nível de precisão necessário, qualquer sistema de coordenadas de latitude / longitude (por exemplo, WGS84) modificado para ter um pólo norte diferente é bom o suficiente. Portanto, se houver uma maneira fácil de definir um sistema de coordenadas e carregá-lo no PostGIS, tudo bem também.

Esclarecimento

Por exemplo, suponha que, em vez de converter de coordenadas geomagnéticas em geográficas, eu simplesmente desejasse converter de UTM 15N em WGS84. Eu poderia salvar o objeto UTM no PostGIS sem modificação e marcá-lo com o código EPSG 26915 . Então, quando eu fiz uma consulta mais tarde, eu poderia dizer ao PostGIS, "retorne os resultados no código EPSG 4326 ", e o PostGIS seria convertido para WGS84 automaticamente.

Da mesma forma, eu gostaria de marcar os dados geomagnéticos com algum sistema de coordenadas e deixar o PostGIS fazer a reprojeção nos bastidores, sem que eu precise chamar uma reproject()função manualmente.

Reid
fonte
1
Você poderia explicar como suas coordenadas geomagnéticas foram obtidas em primeiro lugar? Eu acho que isso pode ser a chave para uma solução precisa: parece provável que eles sejam calculados a partir de coordenadas geográficas. (Caso contrário, como alguém poderia medir diretamente uma latitude geomagnética ?)
whuber
@ whuber, pergunta editada. Obrigado pelo esclarecimento.
Reid

Respostas:

7

Não tenho certeza se qualquer fonte aberta suporta esse geomagnético para geográfico.

Mas se você está tendo poucas coordenadas, pls. tente isso ..
http://wdc.kugi.kyoto-u.ac.jp/igrf/gggm/index.html

A NASA publicou o algoritmo, você pode tentar http://idlastro.gsfc.nasa.gov/ftp/pro/astro/mag2geo.pro

vadivelan
fonte
1
Abri um ticket para a equipe do proj4. Eles podem adicionar suporte a ele em uma versão posterior? trac.osgeo.org/proj/ticket/178
nickves
Alguém portou o código geo2mag.pro IDL para Python . Esse código inverso é muito parecido com mag2geo.pro. Aqui está o código portado em Python .
21814 Serge Sergei Stroobandt
2

Os links fornecidos por vadivelan deixam claro que as coordenadas geomagnéticas são apenas uma rotação da esfera, de modo que (a) o pólo norte passa pelo atual pólo sul magnético e (b) o meridiano principal passa pelos pólos físico e magnético.

Por exemplo, o IGRF-95 usa a posição do pólo norte magnético em 1995, a latitude 79,30 e longitude -71,41 graus.

As rotações esféricas podem ser calculadas de várias maneiras , tipicamente convertendo para coordenadas cartesianas geocêntricas 3D, aplicando uma transformação linear (através de uma multiplicação de matriz 3 x 3 ou uma multiplicação de quaternário) e convertendo de volta para coordenadas esféricas. Mas se você não deseja programar isso, existe um truque:um GIS que suporta projeções oblíquas pode girar por meio de uma reprojeção. Apenas projete as coordenadas geomagnéticas como se fossem coordenadas geográficas, digamos, por meio de um aspecto polar da projeção estereográfica (com um meridiano central a 0 graus). Em seguida, desprojete o resultado usando o aspecto oblíquo da mesma projeção com latitude de origem em 79,30 e meridiano central de -71,41. Por fim, projete mais uma vez usando qualquer projeção desejada para obter a "reprojeção mágica".

whuber
fonte
Hmm. Existe uma maneira de eu definir um sistema de coordenadas GEOS ou PROJ, ou algo mais que o PostGIS aceite, e deixar uma biblioteca executar a reprojeção sem que eu precise explicitamente?
Reid
Depende do que você quer dizer com "explicitamente". Em algum momento - de preferência o mais cedo possível no processo - você deve converter fisicamente as coordenadas de geomagnéticas em geográficas. Você pode fazer isso uma vez usando um GIS adequado (por exemplo, o QGIS parece que funcionaria) ou um utilitário de reprojeção. Você não precisa conhecer as equações de reprojeção para isso se usar o truque que descrevi.
whuber
Deixe-me esclarecer a pergunta para responder a isso.
Reid