Astronomia

Como converter de coordenadas cartesianas J2000 para coordenadas cartesianas galácticas?

Como converter de coordenadas cartesianas J2000 para coordenadas cartesianas galácticas?



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Estou usando um banco de dados de estrelas (o banco de dados HYG) que tem posições e velocidades xyz para as estrelas. Isto tem + X em direção ao equinócio vernal, + Z em direção ao pólo celestial norte, + Y em direção à Ascensão Reta 6 horas e é baseado em J2000 e centralizado no sol.

Eu gostaria de convertê-los em um sistema de coordenadas galácticas cartesianas centrado no sol, com + X apontando para seu centro e + Z em ângulo de forma que saia do plano galáctico no lado norte.

Deve ser apenas uma rotação simples, mas depois de muitas pesquisas, não consigo encontrar a rotação a ser usada, nem uma forma de convertê-la por meio de um terceiro sistema. Alguém sabe como obter a matriz de rotação correta aqui? (ou algum outro método de rotação)


Para transformar um $ (x, y, z) $ equatorial em um $ galáctico (x_G, y_G, z_G) $, a documentação do lançamento de dados Gaia 1, seção 3.1.7, usa

$$ begin {bmatrix} x_G y_G z_G end {bmatrix} = mathbf {A} '_ G begin {bmatrix} x y z end {bmatrix} $$

Onde

$$ mathbf {A} '_ G = begin {bmatrix} {−0,054876} ~ {−0,873437} ~ {−0,483835} {+0,494109} ~ {−0,444830} ~ {+0,746982} {−0,867666 } ~ {−0,198076} ~ {+0.455984} end {bmatrix} $$ é composto de três rotações de quadro coordenadas $$ mathbf {A} '_ G = mathbf {R} _Z (-l_ Omega) ~ mathbf {R} _X (90 ^ circ - delta_G) ~ mathbf {R} _Z ( alpha_G + 90 ^ circ) $$ com o pólo norte galáctico nas coordenadas equatoriais $ ( alpha_G = 192,859 ^ circ, delta_G = + 27,128 ^ circ) $ e o equador galáctico cruzando o equador celestial na longitude galáctica $ l_ Omega = 32,932 ^ circ $.

Equivale à transformação definida no catálogo Hipparcos, volume 1, secção 1.5.3.

Murray 1989 e Liu 2011 fornecem matrizes semelhantes cujos elementos diferem após 6 casas decimais, o que importa apenas se você precisar de precisão de subarcosegundos.


Como converter longitude, latitude e elevação em coordenadas cartesianas?

Baixei os dados meteorológicos e eles têm os valores de longitude (em decimal), latitude (em decimal) e elevação (em m). Não há informações sobre o sistema de coordenadas usado. Como posso convertê-lo em coordenadas cartesianas? Minhas tentativas estão abaixo. Mas, meu problema é encontrar as fórmulas certas

Uma resposta aqui de Daphna Shezaf usa fórmulas diferentes. No entanto, não usa elevações. Eu apreciaria se alguém pudesse esclarecer minha confusão, a elevação deve ser usada na conversão de long / lat ou não? Quais são as fórmulas certas? Tentei comparar o resultado dos meus códigos neste site usando long, lat, elev específico. Meus dois métodos acima têm resultados que estão longe do resultado obtido no site


Qual é a coordenada cartesiana 3-D usada na vida real?

Vivemos em um mundo 3D, então as coordenadas cartesianas 3D são usadas para descrever problemas em nosso mundo. No entanto, até que tenhamos telas holográficas, a maneira como normalmente exibimos as informações é 2D, como papel ou monitores. Portanto, o 3D normalmente é projetado em 2D, podendo ser uma projeção em perspectiva ou uma projeção ortográfica.

Os usos mais comuns de coordenadas 3D são em engenharia, física e computação gráfica. Isso seria feito com softwares como AutoCAD, Maya, SoftImage, 3DS Max e Blender. Como você sabe, filmes animados por computador podem ser exibidos em 3D ou 2D, mas ambos ainda têm perspectiva. Para ter projeções em perspectiva, é necessário modelar tudo em 3D.

A captura de movimentos é feita em 3D, para que possam ser inseridos em jogos de computador ou efeitos especiais em filmes assim como em filmes de animação.

Em engenharia, edifícios ou pontes ou qualquer estrutura, exige 3D para que os trabalhadores saibam a largura, comprimento e altura para construir as coisas. Outro uso sobre o qual você deve ter ouvido falar são as impressoras 3D, obviamente, você precisa de coordenadas 3D para enviar à impressora para que ela construa algo significativo.

Existem alguns outros usos que você pode conhecer, como mapas topográficos que mostram a altura de uma posição 2D ou um monitor de tráfego aéreo mostra a posição 2D de uma aeronave, mas exibe sua altitude ao lado da posição.


Respostas e Respostas

Estou trabalhando nessas questões, mais especificamente na segunda maneira por 3-4 dias depois da escola :(

Estou trabalhando nessas questões, mais especificamente na segunda maneira por 3-4 dias depois da escola :(

Observe que outra maneira de ver isso é:

## Delta vec aprox Delta r hat + r Delta theta hat < theta> ##

Observe que outra maneira de ver isso é:

## Delta vec aprox Delta r hat + r Delta theta hat < theta> ##

Obrigado pela sua resposta! Você me fez feliz, eu estava checando aqui a cada 5 minutos para ver algo novo: P

Sinto muito, não entendo como você fez essa derivação de ## Delta vec##.

Além disso, gosto do primeiro método também. Acho que sou uma pessoa um pouco perfeccionista, não consigo pular tudo facilmente algo me faz focar neles ao invés de continuar. Eu me pergunto o que eu poderia perder pulando esse método e não tenho uma resposta exata, é claro. Acho que poderia enfrentar esse método ou essas coisas no futuro. O que você pensa sobre isso?

Não consigo abrir o arquivo pdf em # 6.

No entanto, ainda estou confuso sobre onde realmente está o seu problema. Então, vamos fazer os conceitos novamente. Você começa com as coordenadas cartesianas do plano euclidiano, ou seja, existem dois vetores de unidade perpendiculares ## vec_j ##. O vetor posição é dado em função do tempo por
$ vec(t) = x_j (t) vec_j. $
Aqui e no seguinte, a convenção de soma de Einstein (cartesiana) é usada, ou seja, você deve somar índices iguais de 1 a 2.

Agora vamos introduzir as coordenadas polares. Eles estão relacionados aos cartesianos por
$ vec= r ( cos theta vec_1 + sin theta vec_2).$
Agora você deseja usar em qualquer ponto uma base adaptada às coordenadas generalizadas ## q_1 = r ## e ## q_2 = theta ##.

Para esse fim, você pensa no plano a ser coberto por linhas de coordenadas, ou seja, por ## r ## - linhas em que ## theta ## é mantido constante e ## r ## percorre seu intervalo, ou seja, ## r in mathbb_ <& gt0> ## e ## theta ## - linhas em que ## r ## é mantido fixo e ## theta ## é executado em seu intervalo, ou seja, ## theta in [0,2 pi) ##.

Agora, em uma primeira etapa, você introduz a base holonômica, que é simplesmente dada pelos vetores tangentes às linhas ## r ## e às linhas ## theta ##, fornecidas pelas derivadas parciais correspondentes wrt. as coordenadas generalizadas,
$ vec_r = partial_r vec= ( cos theta vec_1 + sin theta vec_2), quad vec_ < theta> = parcial_ < theta> vec= r (- sin theta vec_1 + cos theta vec_2).$
Agora você percebe que esses vetores são sempre perpendiculares entre si, ou seja, ## vec_r cdot vec_ < theta> = 0 ##.

Agora é conveniente, nesse caso, normalizar esse vetor e ter uma base cartesiana em qualquer ponto do plano que consiste nos vetores normalizados perpendiculares. Para esse fim, você calcula
$ g_r = | vec_r | = 1, quad g _ < theta> = | vec_ < theta> | = r $
e então apresentar
$ vec_r = frac <1> vec_r = vec_r = ( cos theta vec_1 + sin theta vec_2), quad vec_ < theta> = frac <1>> vec_ < theta> = (- sin theta vec_1 + cos theta vec_2).$
Agora, se você tem um campo vetorial arbitrário, pode decompor seus componentes em relação a essa base, mas essa base depende de onde você está no espaço. Portanto, ao tomar derivativos, você deve levar em consideração essa dependência da base na posição. Para isso, você precisa das derivadas parciais dos vetores de base wrt. as coordenadas generalizadas. Você pode calcular facilmente usando os componentes cartesianos fornecidos acima. Você consegue
$ partial_r vec_r = 0, quad parcial_ < theta> vec_= vec_ < theta>, quad partial_r vec_ < theta> = 0, quad parcial_ < theta> vec_ < theta> = - vec_R.$

Agora, para seu exemplo da velocidade da massa do ponto. Nas coordenadas polares você tem
$ vec= r vec_R.$
Agora, para obter a velocidade, você deve obter a derivada de tempo desse vetor, incluindo os vetores de base. Para isso, você usa a regra da cadeia para funções que dependem das variáveis ​​independentes ## r ## e ## theta ##:
$ dot < vec> = ponto vec_r + r ponto < vec> _r = ponto vec_r + r ( ponto parcial_r vec_r + ponto < theta> parcial_ < theta> vec_r) = ponto vec_r + r dot < theta> vec_ < theta>. $
É tudo que você precisa!


Coordenadas cartesianas na Via Láctea (M45)

Estou tentando fazer alguns gráficos 3D de aglomerados de estrelas e queria ver se alguém poderia verificar a sanidade do meu método para calcular as coordenadas (x, y, z) de coordenadas galácticas, o Sol sendo (x = 0, y = 0, z = 0). Estou usando algumas das estrelas mais brilhantes do M45 como meus objetos de teste. Vamos usar a estrela Alcyone como exemplo. Abaixo estão as Coordenadas Galácticas (do banco de dados SIMBAD, eu acredito):

  • Distância: 403 (+/- 50) ay
  • Longitude (°, min, seg): (166, 40, 6,2)
  • Latitude (°, min, seg): (-23, 27, 19,1)

Convertido em sistema de coordenadas esféricas, onde (°, min, seg) é totalmente convertido em graus:

Achei que poderia converter isso para cartesiano, em unidades de anos-luz (ly):

Usando isso, as coordenadas de Alcyone a princípio se tornam: (-359.7376898696, 85.2479782529, -160.4075331494)

Agora, para um teste. Eu fiz isso para as 11 estrelas mais brilhantes em M45 e plotei-as no Octave (que é como o Matlab, apenas gratuito). Aqui está um vídeo ilustrando como isso se parece, junto com algumas capas de tela abaixo:


1 resposta 1

Consegui carregar o catálogo hip_main.dat em uma tabela assim:

(Você deve ser capaz de colocar a URL do nome do arquivo também, mas por algum motivo isso não funcionou para mim, mas funcionou se eu baixasse manualmente o arquivo para o meu diretório local primeiro - o problema parece ser esse o arquivo original no servidor é compactado com gzip e o leitor de CDS fica confuso com o .gz no nome do arquivo. Isso seria uma coisa boa e fácil de corrigir no Astropy.)

Possui coordenadas em hms / dms e também em graus. Os graus são mais rápidos de analisar, então fiz um SkyCoord a partir deles. Ele detecta automaticamente que os formatos estão em graus:

Ele também detecta corretamente o ICRS J1991.25 do ReadMe.

Você pode obter uma posição do observador ligado à Terra, por exemplo:

(Estou apenas usando um local conhecido aqui, mas você pode colocar as coordenadas em qualquer lugar da Terra).

Então, se você quiser, pode criar um quadro alt / az local como:

Você também pode converter isso para coordenadas cartesianas com local_coords.cartesian.

Infelizmente, quando se trata de projetá-los em algum FoV do céu para fins de simulação de imagem, isso está um pouco além de mim. Eu provavelmente poderia descobrir, mas provavelmente outra pessoa saberá mais prontamente como fazer isso. Mas pelo menos agora você tem parte da equação (se estou entendendo sua pergunta corretamente).


Como converter de coordenadas cartesianas J2000 para coordenadas cartesianas galácticas? - Astronomia

Quando um SlaMap é criado pela primeira vez, ele simplesmente executa um mapeamento de unidade (nulo) em um par de coordenadas. Usando a função astSlaAdd, uma série de etapas de conversão de coordenadas podem então ser adicionadas, selecionadas daquelas fornecidas pela Biblioteca de Astronomia Posicional SLALIB (Starlink User Note SUN / 67). Isso permite que as conversões de várias etapas entre uma variedade de sistemas de coordenadas celestes sejam montados a partir dos blocos de construção fornecidos pelo SLALIB.

Para obter detalhes sobre as conversões de coordenadas individuais disponíveis, consulte a descrição da função astSlaAdd.

Licença

Este programa é distribuído na esperança de que seja útil, mas SEM NENHUMA GARANTIA, nem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Consulte a GNU General Public License para obter mais detalhes.

Você deve ter recebido uma cópia da GNU General Public License junto com este programa, caso contrário, escreva para a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, EUA

Resumo da classe aninhada

Classes / interfaces aninhadas herdadas da classe uk.ac.starlink.ast.Mapping

Resumo do Campo

Campos herdados da classe uk.ac.starlink.ast.Mapping

Campos herdados da classe uk.ac.starlink.ast.AstObject

Resumo do construtor

Resumo do Método

Métodos herdados da classe uk.ac.starlink.ast.Mapping

Métodos herdados da classe uk.ac.starlink.ast.AstObject

Métodos herdados da classe java.lang.Object

Detalhe do construtor

SlaMap

SlaMap

Detalhe do Método

Quando um SlaMap é criado pela primeira vez (usando astSlaMap), ele simplesmente executa um mapeamento de unidade (nulo). Usando astSlaAdd (repetidamente, se necessário), uma ou mais etapas de conversão de coordenadas podem ser adicionadas, as quais o SlaMap executará em sequência. Isso permite que as conversões de várias etapas entre uma variedade de sistemas de coordenadas celestes sejam montados a partir dos blocos de construção fornecidos pelo SLALIB.

Normalmente, se o atributo Invert de um SlaMap é zero (o padrão), então sua transformação direta é realizada realizando cada uma das conversões de coordenadas individuais especificadas por astSlaAdd na ordem dada (ou seja, com a conversão adicionada mais recentemente aplicada por último).

Esta ordem é invertida se o atributo Invert do SlaMap for diferente de zero (ou se a transformação inversa for solicitada por qualquer outro meio) e cada conversão de coordenada individual também for substituída por seu próprio inverso. Este processo inverte o efeito geral do SlaMap. Nesse caso, a primeira conversão a ser aplicada seria o inverso da mais recentemente adicionada.

Notas

Conversões SLALIB


- "ADDET" (EQ): Adiciona os termos E da aberração.
- "SUBET" (EQ): Subtrai os termos E da aberração.
- "PREBN" (BEP0, BEP1): Aplicar o modelo de precessão Bessel-Newcomb pré-IAU 1976 (FK4).
- "PREC" (EP0, EP1): Aplicar o modelo de precessão IAU 1975 (FK5).
- "FK45Z" (BEPOCH): Converta FK4 em FK5 (sem movimento adequado ou paralaxe).
- "FK54Z" (BEPOCH): Converta FK5 em FK4 (sem movimento adequado ou paralaxe).
- "AMP" (DATA, EQ): Converte aparente geocêntrico em lugar médio.
- "MAP" (EQ, DATE): Converta o local médio em aparente geocêntrico.
- "ECLEQ" (DATA): Converta as coordenadas da eclíptica para FK5 J2000.0 equatorial.
- "EQECL" (DATA): Converter equatorial FK5 J2000.0 em coordenadas eclípticas.
- "GALEQ": Converte as coordenadas galácticas para FK5 J2000.0 equatorial.
- "EQGAL": Converta as coordenadas FK5 J2000.0 equatorial em galácticas.
- "HFK5Z" (JEPOCH): Converta as coordenadas ICRS para FK5 J2000.0 equatorial.
- "FK5HZ" (JEPOCH): Converta as coordenadas equatoriais FK5 J2000.0 para ICRS.
- "GALSUP": Converta coordenadas galácticas em supergalácticas.
- "SUPGAL": Converta coordenadas supergalácticas em galácticas.
- "J2000H": Converta J2000.0 dinâmico para ICRS.
- "HJ2000": Converter ICRS em J2000.0 dinâmico.
- "R2H" (ÚLTIMO): Converta RA em Ângulo de Horas.
- "H2R" (LAST): Converta o ângulo da hora em RA.

Por exemplo, para usar a conversão "ADDET", que leva um único argumento EQ, você deve consultar a documentação da rotina SLALIB SLA_ADDET. Isso descreve a conversão em detalhes e mostra que EQ é a época Besseliana da média do equador e do equinócio. Esse valor deve ser fornecido a astSlaAdd em args [0].

Além disso, as seguintes sequências podem ser fornecidas para conversões mais complexas que não correspondem a qualquer uma única rotina SLALIB (DIURAB é a magnitude do vetor de aberração diurna em unidades de "dia / (2.PI)", DATE é o Juliano Modificado Data da observação, e (OBSX, OBSY, OBZ) são as coordenadas cartesianas Heliocêntrico-Áries-Eclíptica, em metros, do observador):


- "HPCEQ" (DATA, OBSX, OBSY, OBSZ): Converta as coordenadas Helioprojetivas-Cartesianas para J2000.0 equatorial.
- "EQHPC" (DATA, OBSX, OBSY, OBSZ): Converta as coordenadas equatoriais J2000.0 para Helioprojetivo-Cartesiano.
- "HPREQ" (DATA, OBSX, OBSY, OBSZ): Converta as coordenadas Helioprojetivas-Radiais para J2000.0 equatorial.
- "EQHPR" (DATA, OBSX, OBSY, OBSZ): Converta as coordenadas equatoriais J2000.0 para Helioprojetivo-Radial.
- "HEEQ" (DATA): Converta as coordenadas helio-eclípticas para J2000.0 equatorial.
- "EQHE" (DATA): Converta as coordenadas equatoriais J2000.0 em hélio-eclíptica.
- "H2E" (LAT, DIRUAB): Converte as coordenadas do horizonte para equatorial.
- "E2H" (LAT, DIURAB): Converte as coordenadas equatoriais em horizonte.

Observe, as conversões "H2E" e "E2H" convertem entre as coordenadas do horizonte topocêntrico (azimute, elevação) e as coordenadas equatoriais locais aparentes (ângulo horário, declinação). Assim, os efeitos da aberração diurna são levados em consideração nas conversões, mas os efeitos da refração atmosférica não.


Utilitários astronômicos¶

Funções de utilidade astronômica e classes baseadas na biblioteca libnova.

lsl.astro.B1950_UTC_JD¶ UTC dia juliano da época de coordenadas J2000.0. lsl.astro.B1950_to_J2000(pos)

Converta época B1950 em época J2000 para coordenadas equatoriais.

Parâmetro: pos - objeto do tipo equ_posn fornecendo coordenadas B1950

Retorna: objeto do tipo equ_posn fornecendo coordenadas J2000.

lsl.astro.DJD_OFFSET¶ Compensação em dias entre o horário UNIX (época 01/01/1970) e o dia juliano padrão. lsl.astro.J2000_UTC_JD¶ Diferença em segundos entre os tempos TT e TAI. lsl.astro.J2000_to_B1950(pos)

Converta época J2000 em época B1950 para coordenadas equatoriais.

Parâmetro: pos - objeto do tipo equ_posn fornecendo coordenadas J2000

Retorna: objeto do tipo equ_posn fornecendo coordenadas B1950.

lsl.astro.MJD_OFFSET¶ Compensação em dias entre o dia juliano padrão e o dia juliano de Dublin. lsl.astro.SECS_IN_DAY¶ Dia juliano UTC da época de coordenadas B1950.0. lsl.astro.TAI_TT_OFFSET¶ & # 8221 Velocidade da luz em metros / segundo. lsl.astro.UNIX_OFFSET¶ O número de segundos em um dia lsl.astro.add_hms(fonte, dest)

Wrapper para a função libnova ln_add_hms (). Adiciona horas de tempo / ângulo, minutos, segundos.

Param: source - Objeto do tipo hms represeting angle 1. Param: dest - Objeto do tipo hms represeting angle 2.

Retorna o objeto do tipo hms que representa a soma dos ângulos.

Wrapper para a função libnova ln_add_secs_hms (). Adicione segundos às horas de tempo / ângulo, minutos, segundos.

Param: hms - Objeto do tipo hms que representa o ângulo. Parâmetro: segundos - deslocamento de segundos (flutuante) para adicionar ao ângulo.

Retorna o objeto do tipo hms que representa ângulo + deslocamento.

Wrapper para a estrutura ln_date da libnova. Representa o tempo UT em unidades de calendário.

Membros públicos: anos - Data anos (inteiro). meses - Data meses (inteiro). dias - dias de data (inteiro). horas - data horas (inteiro). minutos - minutos de data (inteiro). segundos - segundos da data (flutuante). carregar(dateStr, timeStr)

Carregue o objeto de data de strings formatadas.

Param: dateStr - Uma string de formato AAAA-MM-DD fornecendo a data. Param: timeStr - Uma string de formato HH: MM: SS.S dando tempo.

to_jd()¶ Converta a hora do calendário em dia juliano. Retorna a hora UTC em dias julianos (flutuante). to_zone(gmtoff = Nenhum)

Converta a hora do calendário UTC em hora do calendário local.

Parâmetro: gmtoff - deslocamento de segundos locais do UTC (inteiro -43200 a 43200). se definido como Nenhum, o valor de deslocamento do módulo de tempo é usado para a localização atual

Retorna o objeto do tipo zonedate que representa a hora local.

Wrapper para a função libnova ln_date_to_zonedate (). Converta a hora do calendário UTC em hora do calendário local.

Parâmetro: data - um objeto de data que representa a hora UTC. Parâmetro: gmtoff - deslocamento de segundos do UTC (inteiro -43200 a 43200).

Retorna o objeto do tipo zonedate que representa a hora local.

Wrapper para a função libnova ln_deg_to_dms (). Converta ângulos de flutuação de graus em graus, minutos, segundos.

Parâmetro: graus - Ângulo em graus (flutuante).

Retorna o objeto do tipo dms que representa o ângulo.

Wrapper para a função libnova ln_deg_to_hms (). Converta ângulos flutuantes em graus em horas, minutos, segundos.

Parâmetro: graus - Ângulo em graus (flutuante).

Retorna o objeto do tipo hms que representa o ângulo.

Wrapper para a função libnova ln_deg_to_rad (). Converta graus em radianos.

Parâmetro: graus - Ângulo em graus (flutuante).

Retorna o ângulo em radianos (float).

Converta graus de longitude em segundos.

Parâmetro: graus - longitude (graus flutuantes)

Retorna: Deslocamento de segundos (flutuante) no tempo para longitude.

Obtenha cossenos de direção dos ângulos de azimute e zênite. Esta função calcula os valores do cosseno com base no sistema de coordenadas LWA:

Parâmetro: posn - objeto do tipo hrz_posn que fornece a posição local

Retorna uma tupla (l, m, n) de valores flutuantes para os cossenos de direção.

Wrapper para a estrutura libnova ln_dms. Representa ângulos em graus, minutos, segundos.

Membros públicos: neg - Verdadeiro se medido a oeste de GM, ao sul de EQ False se medido a leste de GM, ao norte de EQ.

graus - graus do ângulo (inteiro). minutos - minutos angulares (inteiro). segundos - segundos do ângulo (flutuante).

to_deg()¶ Converta ângulos em graus, minutos, segundos para flutuar em graus. Retorna o ângulo em graus (flutuação). to_hms()¶ Converta ângulos de graus, minutos, segundos em horas, minutos, segundos. Retorna: objeto do tipo hms que representa o ângulo. lsl.astro.dms_to_deg(dms)

Wrapper para a função libnova ln_dms_to_deg (). Converta ângulos em graus, minutos e segundos em graus flutuantes.

Param: dms - Objeto do tipo dms que representa o ângulo.

Retorna o ângulo em graus (flutuação).

Wrapper para a função libnova ln_dms_to_rad (). Converta ângulos, graus, minutos e segundos em radianos.

Param: dms - Objeto do tipo dms que representa o ângulo.

Retorna o ângulo em radianos (float).

Representa a posição como longitude e latitude eclíptica.

Membros públicos: lng - Coordenada de longitude da posição (graus flutuantes). lat - Coordenada da posição da latitude (graus flutuantes). Os membros também podem ser acessados ​​por subscrito: ecl_posn [0] = lng ecl_posn [1] = lat to_equ(jD)

Obtenha coordenadas equatoriais de coordenadas eclípticas para um determinado momento.

Parâmetro: jD - UTC dia juliano (flutuante).

Retorna o objeto do tipo equ_posn que representa a posição equatorial.

Wrapper para a estrutura ln_equ_posn da libnova. Representa as coordenadas da posição equatoral / celeste.

Membros públicos: ra - Posição do ângulo de ascensão reta (graus flutuantes). dec - ângulo de declinação da posição (graus de flutuação). Os membros também podem ser acessados ​​por subscrito: equ_posn [0] = ra equ_posn [1] = dez separação_ angular(posn)

Obtenha a separação angular da posição equatorial.

Parâmetro: posn - Objeto do tipo equ_posn que representa a posição do corpo 2.

Retorna a separação angular em graus (flutuação).

formato()¶ Retorne uma tupla (ra, dec) onde ra é um objeto hms e dec é um objeto dms que representa as coordenadas de posição ra e dec. precess(jD)

Obtenha a posição do objeto celestial, levando em consideração a precessão. As coordenadas equatoriais devem ser para a época J2000.

Parâmetro: jD - UTC dia juliano (flutuante) para medir a posição.

Retorna: Posição equatorial ajustada do objeto como tipo equ_posn.

Obtenha coordenadas eclípticas de coordenadas equatoriais.

Parâmetro: jD - UTC dia juliano (flutuante).

Retorna o objeto do tipo lnlat_posn que representa a posição eclipítica.

Obtenha coordenadas galácticas J2000 a partir de coordenadas equatoriais aparentes.

Parâmetro: jD - UTC dia juliano para obter a posição.

Retorna o objeto do tipo gal_posn que representa a posição galáctica do objeto & # 8217s.

Obtenha coordenadas horizontais locais de coordenadas equatoriais / celestiais.

Parâmetro: observador - Objeto do tipo lnlat_posn que representa a posição do observador. Parâmetro: jD - UTC dia juliano (flutuante).

Retorna o objeto do tipo hrz_posn que representa a posição local.

Wrapper para a estrutura libnova ln_gal_posn. Representa as coordenadas da posição galáctica.

Membros públicos: l - Ângulo de longitude da posição (graus flutuantes). b - Ângulo de latitude da posição (graus flutuantes). Os membros também podem ser acessados ​​por subscrito: gal_posn [0] = l gal_posn [1] = b formato()¶ Retorne uma tupla (lng, lat) onde lng é um objeto dms e lat é um objeto dms que representa as coordenadas galácticas de longitude e latitude. to_equ(jD)

Obtenha coordenadas equatoriais aparentes de coordenadas galácticas J2000.

Parâmetro: jD - UTC dia juliano para obter a posição.

Retorna o objeto do tipo equ_posn que representa a posição equatorial aparente do objeto.

Classe para representar a posição geográfica em termos de longitude, latitude e altitude. Este é um conjunto de coordenadas geodésicas baseadas no modelo WGS84.

Membros públicos: lng - longitude (float) lat - latitude (float) elv - elevação (float) Os membros também podem ser acessados ​​por subscrito: geo_posn [0] = lng geo_posn [1] = lat geo_posn [2] = elv lsl.astro.get_angular_separation(posn1, posn2)

Wrapper para a função libnova ln_get_angular_separation (). Obtenha separação angular das posições equatoriais.

Parâmetro: posn1 - objeto do tipo equ_posn que representa a posição do corpo 1. Parâmetro: posn2 - Objeto do tipo equ_posn que representa a posição do corpo 2.

Retorna a separação angular em graus (flutuação).

Wrapper para a função libnova ln_get_apparent_posn (). Obtenha a posição aparente do objeto celeste levando em consideração a precessão, nutação, aberração e, opcionalmente, o movimento adequado.

Parâmetro: posição_média - posição média equatorial J2000 do objeto como tipo equ_posn.

Parâmetro: jD - UTC dia juliano (flutuante) para medir a posição. Parâmetro: movimento_próprio - objeto do tipo equ_posn dando movimento adequado ao objeto & # 8217s

Retorna: Posição equatorial aparente do objeto do tipo equ_posn.

Wrapper para a função libnova ln_get_apparent_sidereal_time (). Obtenha a hora sideral aparente do dia juliano.

Parâmetro: jD - UTC dia juliano (flutuante).

Retorna o tempo sideral aparente do GM (horas de flutuação).

Wrapper para a função libnova ln_get_date (). Converta o dia juliano em hora do calendário.

Parâmetro: jD - hora UTC em dias julianos (float).

Retorna o objeto do tipo data que representa a hora UTC.

Wrapper para a função libnova ln_get_date_from_sys (). Obtém a hora do calendário a partir do relógio do sistema.

Retorna o objeto do tipo data que representa a hora UTC.

Wrapper para a função libnova ln_get_day_of_week (). Obtém o dia da semana a partir da hora do calendário.

Parâmetro: data - objeto do tipo data que representa a hora UTC.

Retorna o dia da semana (0 = domingo, 6 = sábado).

Wrapper para a função libnova ln_ecl_from_equ (). Obtenha coordenadas eclípticas de coordenadas equatoriais para um determinado tempo.

Param: object_ - Objeto do tipo equ_posn que representa a posição equatorial. Parâmetro: jD - UTC dia juliano (flutuante).

Retorna o objeto do tipo ecl_posn que representa a posição da eclíptica.

Wrapper para a função libnova ln_get_ecl_from_rect (). Obtenha coordenadas eclípticas de coordenadas retangulares.

Param: rect - Objeto do tipo rect_posn que representa a posição.

Retorna o objeto do tipo lnlat_posn que representa a posição eclíptica.

Wrapper para a função libnova ln_get_equ2000_from_gal (). Obtenha coordenadas equatoriais J2000 de coordenadas galácticas.

Param: object_ - Objeto do tipo gal_posn que representa a posição galáctica.

Retorna o objeto do tipo equ_posn que representa a posição equatorial do J2000.

Wrapper para a função libnova ln_get_equ_aber (). Obtenha a posição do objeto celeste responsável pela aberração.

Parâmetro: posição_média - posição média equatorial J2000 do objeto como tipo equ_posn.

Parâmetro: jD - UTC dia juliano (flutuante) para medir a aberração.

Retorna: Posição equatorial ajustada do objeto como tipo equ_posn.

Wrapper para a função libnova ln_get_equ_from_ecl (). Obtenha coordenadas equatoriais de coordenadas eclípticas para um determinado momento.

Parâmetro: object_ - Objeto do tipo lnlat_posn que representa a posição eclíptica. Parâmetro: jD - UTC dia juliano (flutuante).

Retorna o objeto do tipo equ_posn que representa a posição equatorial.

Wrapper para a função libnova ln_get_equ_from_gal (). Obtenha coordenadas equatoriais B1950 de coordenadas galácticas.

Param: object_ - Objeto do tipo gal_posn que representa a posição galáctica.

Retorna o objeto do tipo equ_posn que representa a posição equatorial B1950.

Wrapper para a função libnova ln_get_equ_from_hrz (). Obtenha coordenadas equatoriais / celestes a partir de coordenadas horizontais locais.

Param: object_ - Objeto do tipo hrz_posn que representa a posição horizontal. Parâmetro: observador - Objeto do tipo lnlat_posn que representa a posição do observador. Parâmetro: jD - UTC dia juliano (flutuante).

Retorna o objeto do tipo equ_posn que representa a posição equatorial.

Transforme coordenadas retangulares em coordenadas equatoriais.

Param: posn - Objeto do tipo rect_posn que dá posição.

Retorna: Objeto do tipo equ_posn fornecendo coordenadas equatoriais.

Wrapper para a função libnova ln_get_equ_pm (). Ajusta a posição equatorial de um objeto estelar em conformidade com o movimento adequado.

Parâmetro: posição_média - posição média equatorial J2000 do objeto como tipo equ_posn. Param: proper_motion - Objeto do tipo equ_posn dando movimento adequado ao objeto & # 8217s

Parâmetro: jD - UTC dia juliano (flutuante) para medir a posição.

Retorna: Posição equatorial ajustada do objeto como tipo equ_posn.

Wrapper para a função libnova ln_get_equ_prec (). Obtenha a posição do objeto celestial, levando em consideração a precessão. Funciona apenas para a conversão de e para a época J2000.

Parâmetro: posição_média - posição média equatorial J2000 do objeto como tipo equ_posn. Parâmetro: jD - UTC dia juliano (flutuante) para medir a posição.

Retorna: Posição equatorial ajustada do objeto como tipo equ_posn.

Wrapper para a função libnova ln_get_equ_prec2 (). Obtenha a posição do objeto celestial que explica a precessão. Se libnova tiver uma versão inferior a 0.12.0, a função ln_get_equ_prec_2 () não estará disponível e a adoção da biblioteca NOVAS C de precession () será chamada em seu lugar.

Parâmetro: posição_média - primeira posição equatorial do objeto como tipo equ_posn. Parâmetro: fromJD - UTC Dia juliano (float) da primeira vez. Parâmetro: toJD - UTC dia juliano (flutuante) da segunda vez.

Retorna: Posição equatorial do objeto como tipo equ_posn convertido de tempo 1 para tempo 2. lsl.astro.get_gal_from_equ(objeto_)

Wrapper para a função libnova ln_gal_from_equ (). Obtenha coordenadas galácticas de coordenadas equatoriais B1950.

Parâmetro: object_ - Objeto do tipo equ_posn que representa a posição equatorial B1950.

Retorna o objeto do tipo gal_posn que representa a posição galáctica.

Wrapper para a função libnova ln_gal_from_equ2000 (). Obtenha coordenadas galácticas de coordenadas equatoriais J2000.

Parâmetro: object_ - Objeto do tipo equ_posn que representa a posição equatorial J2000.

Retorna o objeto do tipo gal_posn que representa a posição galáctica.

Transforme coordenadas retangulares ECEF em coordenadas geográficas. Adaptado de & # 8220 Satellite Orbits & # 8221, Montenbruck and Gill 2005, 5.85 - 5.88. Veja também o método gpstk ECEF :: asGeodetic ().

Param: posn - objeto do tipo rect_posn dando posição.

Retorna: objeto do tipo geo_posn fornecendo coordenadas geográficas.

lsl.astro.get_gmtoff()¶ Obtenha o deslocamento UTC local com base no módulo de tempo Python e nas informações do sistema. lsl.astro.get_hrz_from_equ(objeto_, observador, jD)

Wrapper para a função libnova ln_get_hrz_from_equ (). Obtenha coordenadas horizontais locais de coordenadas equatoriais / celestiais.

Param: object_ - Objeto do tipo equ_posn que representa a posição celestial. Parâmetro: observador - Objeto do tipo lnlat_posn que representa a posição do observador. Parâmetro: jD - UTC dia juliano (flutuante).

Retorna o objeto do tipo hrz_posn que representa a posição local.

Wrapper para a função libnova ln_get_julian_day (). Converta a hora do calendário em dia juliano.

Parâmetro: data - objeto do tipo data que representa a hora UTC.

Retorna a hora UTC em dias julianos (flutuante).

Wrapper para a função libnova ln_get_julian_from_sys ().

Retorna o dia juliano UTC (flutuante) do relógio do sistema.

Wrapper para a função libnova ln_get_julian_from_timet (). Obtém o dia juliano a partir do horário Unix.

Parâmetro: time_ - horário Unix em segundos (inteiro)

Retorna o dia juliano UTC (flutuante).

Wrapper para a função libnova ln_get_julian_local_date (). Converta a hora do calendário local em dia juliano.

Param: zonedate - Objeto do tipo zonedate que representa a hora local.

Retorna a hora UTC em dias julianos (flutuante).

Wrapper para a função libnova ln_get_jupiter_equ_coords (). Obtenha as coordenadas equatoriais aparentes de Júpiter e # 8217s do dia juliano. Explica aberração e precessão, mas não nutação.

Parâmetro: jD - UTC dia juliano (flutuante).

Retorna o objeto do tipo equ_posn que representa a posição equatorial.

Obtenha a ascensão, o trânsito e os horários definidos de Júpiter e # 8217 a partir do dia juliano.

Parâmetro: jD - UTC dia juliano (flutuante). Parâmetro: observador - Objeto do tipo lnlat_posn que representa a posição do observador.

Retorna o objeto do tipo rst_time que representa os tempos das efemérides UTC ou Nenhum se o objeto for circumpolar. lsl.astro.get_libnova_version()

Get version of libnova C library in use.

Returns: A tuple of version numbers for libnova C library.

Get apparent local sidereal time from Julian day.

Param: lng - longitude degrees (float), E = positive, W = negative Param: jD - UTC Julian day (float).

Returns: Local apparent sidereal time (float hours).

Wrapper for libnova ln_get_lunar_equ_coords() function. Get the Moon’s apparent equatorial coordinates from Julian day. Accounts for aberration and precession, but not nutation.

Param: jD - UTC Julian day (float).

Returns object of type equ_posn representing equatorial position.

Get the Moon’s rise, transit, set times from Julian day.

Param: jD - UTC Julian day (float). Param: observer - Object of type lnlat_posn representing observer position.

Returns Object of type rst_time represeting UTC ephemeris times, or None if the object is circumpolar. lsl.astro.get_mars_equ_coords(jD)

Wrapper for libnova ln_get_mars_equ_coords() function. Get Mars’ apparent equatorial coordinates from Julian day. Accounts for aberration and precession, but not nutation.

Param: jD - UTC Julian day (float).

Returns object of type equ_posn representing equatorial position.

Get Mars’ rise, transit, set times from Julian day.

Param: jD - UTC Julian day (float). Param: observer - Object of type lnlat_posn representing observer position.

Returns Object of type rst_time represeting UTC ephemeris times, or None if the object is circumpolar. lsl.astro.get_mean_sidereal_time(jD)

Wrapper for libnova ln_get_mean_sidereal_time() function. Get mean sidereal time from Julian day.

Param: jD - UTC Julian day (float).

Returns GM mean sidereal time (float hours).

Wrapper for libnova ln_get_nutation() function. Get nutation corrections for a given time.

Param: jD - UTC Julian day (float) to measure nutation.

Returns: Nutation corrections as object of type nutation.

Wrapper for libnova ln_get_object_rst() function. Get rise, set, and transit times of a celstial object.

Param: jD - UTC Julian day (float) target time. Param: observer - object of type lnlat_posn giving observer position Param: object_ - object of type equ_posn giving target equatorial position

Returns: Object of type rst_time giving object’s ephemeris UTC times, or None if the object is circumpolar. lsl.astro.get_precession(jD1, pos, jD2)

Caculate precession of equatorial coordinates from one epoch to another.

Param: jD1 - UTC Julian day of epoch 1. Param: pos - object of type equ_posn giving epoch 1 position Param: jD2 - UTC Julian day of epoch 2.

Returns: object of type equ_posn giving epoch 2 position.

Transform equatorial coordinates to rectangular coordinates.

Param: posn - Object of type equ_posn giving position.

Returns: Object of type rect_posn giving rectangular coordinates (normallized to 1).

Transform geographical coordinates to ECEF rectangular coordinates. Adopted from “Satellite Orbits”, Montenbruck and Gill 2005, 5.83 - 5.84. Also see gpstk Geodetic::asECEF() method.

Param: posn - object of type geo_posn giving geographical coordinates.

Returns: object of type rect_posn giving ECEF position.

Wrapper for libnova ln_get_rel_posn_angle() function. Get relative position angle from equatorial positions.

Param: posn1 - Object of type equ_posn representing body 1 position. Param: posn2 - Object of type equ_posn representing body 2 position.

Returns position angle in degrees (float).

Wrapper for libnova ln_get_saturn_equ_coords() function. Get Saturn’s apparent equatorial coordinates from Julian day. Accounts for aberration and precession, but not nutation.

Param: jD - UTC Julian day (float).

Returns object of type equ_posn representing equatorial position.

Get Saturn’s rise, transit, set times from Julian day.

Param: jD - UTC Julian day (float). Param: observer - Object of type lnlat_posn representing observer position.

Returns Object of type rst_time represeting UTC ephemeris times, or None if the object is circumpolar. lsl.astro.get_solar_equ_coords(jD)

Wrapper for libnova ln_get_solar_equ_coords() function. Get Sun’s apparent equatorial coordinates from Julian day. Accounts for aberration and precession, and nutation.

Param: jD - UTC Julian day (float).

Returns object of type equ_posn representing equatorial position.

Wrapper for libnova ln_get_solar_rst() function. Get Sun’s rise, transit, set times from Julian day.

Param: jD - UTC Julian day (float). Param: observer - Object of type lnlat_posn representing observer position.

Returns Object of type rst_time represeting UTC ephemeris times, or None if the object is circumpolar.. lsl.astro.get_tai_from_sys()¶ Return the current time taken from the system clock as a TAI MJD (float). lsl.astro.get_timet_from_julian(jD)

Wrapper for libnova ln_get_timet_from_julian() function. Gets Unix time from Julian day.

Param: jD - UTC Julian day (float).

Returns Unix timet in seconds (integer).

Wrapper for libnova ln_get_venus_equ_coords() function. Get Venus’ apparent equatorial coordinates from Julian day. Accounts for aberration and precession, but not nutation.

Param: jD - UTC Julian day (float).

Returns object of type equ_posn representing equatorial position.

Get Venus’ rise, transit, set times from Julian day.

Param: jD - UTC Julian day (float). Param: observer - Object of type lnlat_posn representing observer position.

Returns Object of type rst_time represeting UTC ephemeris times, or None if the object is circumpolar. class lsl.astro.hms(hours=None, minutes=None, seconds=None)

Wrapper for libnova ln_hms structure. Represents times/angles in hours, minutes, seconds.

Public members: hours - Angle/time hours (integer). minutes - Angle/time minutes (integer). seconds - Angle/time seconds (float). to_deg()¶ Convert angles hours, minutes, seconds to float degrees. Returns angle in degrees (float). to_dms()¶ Convert angle hours, minutes, seconds to degrees, minutes, seconds. Returns: object of type dms representing angle. to_sec()¶ Convert angle hours, minutes, seconds to seconds. Returns: time/angle as seconds. lsl.astro.hms_to_deg(hms)

Wrapper for libnova ln_hms_to_deg() function. Convert angles hours, minutes, seconds to float degrees.

Param: hms - Object of type hms representing angle.

Returns angle in degrees (float).

Wrapper for libnova ln_hms_to_rad() function. Convert angles hours, minutes, seconds to float radians.

Param: hms - Object of type hms representing angle.

Returns angle in radians (float).

Convert hours, minutes, seconds to seconds.

Param: hms - object of type hms representing time/angle.

Returns: Seconds (float) offset of time/angle.

Wrapper for libnova ln_hrz_posn structure. Represents horizontal local position coordinates. The original libnova convention has been modified for the LWA wrapper. libnova measures azimuth angle clockwise from south to west, with due south equal to 0 degrees. LWA measures azimuth angle clockwise from north to east, with due north equal to 0 degrees. Also, method for using zenith angle instead of altitude angle have been added.

Public members: az - Position azimuth angle (float degrees). alt - Position altitude angle (float degrees) Members may also be accessed by subscript: hrz_posn[0] = az hrz_posn[1] = alt dir_cos()

Get direction cosines from horizontal coordinates.

Returns: A tuple (l,m,n) of float values for the direction cosines. l = unit vector in E direction (azimuth = 90) m = unit vector in N direction (azimuth = 0) n = unit vector in zenith direction (zenith = 0, altitude = 90) to_equ(observer, jD)

Get equatorial/celestial coordinates from local horizontal coordinates.

Param: observer - Object of type lnlat_posn representing observer position. Param: jD - UTC Julian day (float).

Returns object of type equ_posn representing equatorial position.

zen(value=None)¶ If value is None, returns position zenith angle (float degrees [0, 180]) Otherwise, sets the altitude according to the zenith angle value. lsl.astro.hrz_to_nswe(pos)

Wrapper for libnova ln_hrz_to_nswe() function. Get cardinal/ordinal azimuth direction.

Param: pos - Object of type hrz_posn giving local position.

Returns string giving direction.

Get modified julian day value from julian day value.

Param: jd - julian day (should be >= 2400000.5)

Returns: Modified julian day.

Convert Julian days into seconds.

Param: jD - Julian days (float).

Returns: Seconds as a float.

Get the number of leap seconds for given UTC time value.

Param: utcJD - The UTC JD time. This should be greater than 2441317.5 (1972 JAN 1).

Returns: The number of leap seconds (float) for the UTC time.

Wrapper for libnova ln_lnlat_posn structure. Represents position coordinates in latitude and longitude. When representing a geographical location, the longitude is negative when measured west of GM and positive is measured east of GM.

Public members: lng - Position longitude coordinate (float degrees). lat - Position latitude coordinate (float degrees). Members may also be accessed by subscript: lnlat_posn[0] = lng lnlat_posn[1] = lat formato()¶ Return a tuple (lng, lat) where lng is an dms object and lat is a dms object representing longitude and latitude position coordinates. lsl.astro.mjd_to_jd(mjd)

Get julian day value from modified julian day value.

Param: mjd - modified julian day (should be >= 0.0)

Wrapper for libnova ln_nutation structure. Provides nutation information in longitude and obliquity.

Public members: longitude - Nutation in longitude (float degrees). obliquity - Nutation in ecliptic obliquity (float degrees). ecliptic - Obliquity of the ecliptic (float degrees). formato()¶ Return a tuple (lng, obl, ecl) where lng is an dms object, obl is a dms object, and ecl is a dms object representing nutation in longitude and obliquity, and obliquity of the ecliptic. lsl.astro.rad_to_deg(radians)

Wrapper for libnova ln_rad_to_deg() function. Convert radians to degress.

Param: radians - Angle in radians (float).

Returns angle in degress (float).

Wrapper for libnova ln_rad_to_dms() function. Convert angles float radians to degrees, minutes, seconds.

Param: radians - Angle in radians (float).

Returns object of type dms representing angle.

Wrapper for libnova ln_rad_to_hms() function. Convert angles float radians to hours, minutes, seconds.

Param: radians - Angle in radians (float).

Returns object of type hms representing angle.

Put angle into range [0, 360].

Param: degrees - large angle (float degrees)

Returns: angle in range (float degrees)

Wrapper for libnova ln_rect_posn structure. Represents rectangular/Cartesian position coordinates.

Public members: X - Position X coordinate (float). Y - Position Y coordinate (float). Z - Position Z coordinate (float). Members may also be accessed by subscript: rect_posn[0] = X rect_posn[1] = Y rect_posn[2] = Z class lsl.astro.rst_time(rise=None, set=None, transit=None)

Wrapper for libnova ln_rst_time structure. Represents ephemeris rist, set, and transit times.

Public members: rise - Rise time in UTC Julian days (float). set - Set time in UTC Julian days (float). transit - Transit time in UTC Julian days (float). formato()¶ Return a tuple (rise, set, transit) where all three are date objects representing the ephemeris times. lsl.astro.sec_to_jd(secs)

Convert seconds into julian days.

Param: secs - seconds (float)

Returns: Julian days as a float.

Get the TT JD time value for a given TAI JD time value.

Param: taiJD - The TAI JD time (float).

Returns: The TT JD value (float).

Get the UTC JD time value for a given TAI JD time value.

Param: taiJD - The TAI JD time (float). This should be greater than 2441317.5 (1972 JAN 1).

Returns: The UTC JD value (float).

Get UNIX time value for a given TAI MJDvalue.

Param: taiMJD - The TAI MJD time (float).

Get the UTC JD time value for a given TAI MJD value.

Param: mjdTAI - The TAI MJD time (float).

Returns: The UTC JD value (float).

Get the TAI JD time value for a given TT JD time value.

Param: ttJD - The TT JD time (float).

Returns: The TAI JD value (float).

Get the TDB JD time value for a given TT JD time value. Adopted from “Astronomical Almanac Supplement”, Seidelmann 1992, 2.222-1.

Param: ttJD - The TT JD time (float).

Returns: The TDB JD value (float).

Get the UTC JD time value for a given TT JD time value.

Param: ttJD - The TT JD time (float).

Returns: The UTC JD value (float).

Get the TAI MJD time value for a given UNIX time value.

Param: unixTime - the UNIX time (int/float)

Returns: The TAI MJD value.

Get the UTC JD time value for a given UNIX time value.

Param: unixTime - the UNIX time (int/float)

Get the TAI JD time value for a given UTC JD time value.

Param: utcJD - The UTC JD time (float). This should be greater than 2441317.5 (1972 JAN 1).

Returns: The TAI JD value (float).

Get the TT JD time value for a given UTC JD time value.

Param: utcJD - The UTC JD time (float).

Returns: The TT JD value (float).

Get the TAI MJD time value for a given UTC JD value.

Param: utcJD - The UTC JD time (float).

Returns: The TAI MJD value.

Get UNIX time value for a given UTC JD value.

Param: utcJD - The UTC JD time (float).

Wrapper for libnova ln_zonedate structure. Represents local time in calendar units.

Public members: years - Date years (integer). months - Date months (integer). days - Date days (integer). hours - Date hours (integer). minutes - Date minutes (integer). seconds - Date seconds (float). gmtoff - Seconds offset from GM (integer). to_date()¶ Convert local calendar time to UTC calendar time. Returns object of type date representing UTC time. to_jd()¶ Convert calendar time to Julian day. Returns UTC time in Julian days (float). lsl.astro.zonedate_to_date(zonedate)

Wrapper for for libnova ln_zonedate_to_date() function. Convert local calendar time to UTC calendar time.


Conteúdo

The three coordinates (ρ, φ, z) of a point P are defined as:

  • The radial distance ρ is the Euclidean distance from the z axis to the point P.
  • The azimuth φ is the angle between the reference direction on the chosen plane and the line from the origin to the projection of P on the plane.
  • The height z is the signed distance from the chosen plane to the point P.

Unique cylindrical coordinates

As in polar coordinates, the same point with cylindrical coordinates (ρ, φ, z) has infinitely many equivalent coordinates, namely (ρ, φ ± n×360°, z) and (−ρ, φ ± (2n + 1)×180°, z), where n is any integer. Moreover, if the radius ρ is zero, the azimuth is arbitrary.

In situations where one needs a unique set of coordinates for each point, one may restrict the radius to be non-negative (ρ ≥ـ) and the azimuth φ to lie in a specific interval spanning 360°, such as (−180°,+180°] or [0,360°).

Conventions

The notation for cylindrical coordinates is not uniform. The ISO standard 31-11 recommends (ρ, φ, z), where ρ is the radial coordinate, φ the azimuth, and z the height. However, the radius is also often denoted r ou s, the azimuth by θ or t, and the third coordinate by h or (if the cylindrical axis is considered horizontal) x, or any context-specific letter.

In concrete situations, and in many mathematical illustrations, a positive angular coordinate is measured counterclockwise as seen from any point with positive height.


How to convert from Cartesian J2000 coordinates to Cartesian Galactic coordinates? - Astronomia

Bernard Kumi-Boateng 1 , , Yao Yevenyo Ziggah 1 , 2

1 Department of Geomatic Engineering, University of Mines and Technology, Tarkwa, Ghana

2 Department of Surveying and Mapping, China University of Geosciences, Wuhan, P.R. China

Abstrato

Ghana a developing country still adopt the non-geocentric ellipsoid known as the War Office 1926 as its horizontal datum for all surveying and mapping activities. Currently, the Survey and Mapping Division of Lands Commission in Ghana has adopted the satellite positioning technology such as Global Positioning System based on a geocentric ellipsoid (World Geodetic System 1984 (WGS84)) for its geodetic surveys. It is therefore necessary to establish a functional relationship between these two different reference frames. To accomplish this task, the Bursa-Wolf transformation model was applied in this study to obtain seven transformation parameters namely three translations, three rotations and a scale factor. These parameters were then used to transform the WGS84 data into the War office system. However, Ghana’s national coordinate system is a projected grid coordinate and thus the new War Office coordinates (X, Y, Z) obtained are not applicable. There is therefore the need to project these coordinates onto the transverse Mercator of Ghana. To do this, the new war office data (X, Y, Z) attained must first be transformed into geodetic coordinates. The reverse conversion from cartesian (X, Y, Z) to its corresponding geodetic coordinate (φ, λ, h) is computation intensive with respect to the estimation of geodetic latitude and height. This study aimed at evaluating the performance of seven methods in transforming from cartesian coordinates to geodetic coordinates within the Ghana Geodetic Reference Network. The seven reverse techniques considered are Simple Iteration, Bowring Inverse equation, method of successive substitution, Paul’s method, Lin and Wang, Newton Raphson and Borkowski’s method. The obtained results were then projected onto the transverse Mercator projection to get the new projected grid coordinates in the Ghana national coordinate system. These results were compared with the existing coordinates to assess their performance. The authors proposed the Paul’s method to be a better fit for the Ghana geodetic reference network based on statistical indicators used to evaluate the reverse methods performance.

Keywords: bursa-wolf model, coordinate transformation, geodetic coordinates, geocentric coordinates

direito autoral © 2016 Science and Education Publishing. Todos os direitos reservados.

Cite this article:

  • Bernard Kumi-Boateng, Yao Yevenyo Ziggah. Accuracy Assessment of Cartesian (X, Y, Z) to Geodetic Coordinates (φ, λ, h) Transformation Procedures in Precise 3D Coordinate Transformation – A Case Study of Ghana Geodetic Reference Network. Journal of Geosciences and Geomatics. Vol. 4, No. 1, 2016, pp 1-7. http://pubs.sciepub.com/jgg/4/1/1
  • Kumi-Boateng, Bernard, and Yao Yevenyo Ziggah. "Accuracy Assessment of Cartesian (X, Y, Z) to Geodetic Coordinates (φ, λ, h) Transformation Procedures in Precise 3D Coordinate Transformation – A Case Study of Ghana Geodetic Reference Network." Journal of Geosciences and Geomatics 4.1 (2016): 1-7.
  • Kumi-Boateng, B. , & Ziggah, Y. Y. (2016). Accuracy Assessment of Cartesian (X, Y, Z) to Geodetic Coordinates (φ, λ, h) Transformation Procedures in Precise 3D Coordinate Transformation – A Case Study of Ghana Geodetic Reference Network. Journal of Geosciences and Geomatics, 4(1), 1-7.
  • Kumi-Boateng, Bernard, and Yao Yevenyo Ziggah. "Accuracy Assessment of Cartesian (X, Y, Z) to Geodetic Coordinates (φ, λ, h) Transformation Procedures in Precise 3D Coordinate Transformation – A Case Study of Ghana Geodetic Reference Network." Journal of Geosciences and Geomatics 4, não. 1 (2016): 1-7.

At a glance: Figures

1. Introdução

Surveying with the advancement of modern science and technology has undergone an epoch-making transformation to break the spatial limitations of classical surveys, and to enter a new stage of development of modern surveying. One of the most important discovery that science and technology has provided the geo-scientific community due to its global coverage and free access is the Global Navigation Satellite Systems (GNSS) [1] . This GNSS technology such as Global Positioning System (GPS) furnishes the principal technology for geomatic and geodetic activities for both develop and developing countries. As an example, it is well known that in Ghana the GPS has been adopted as a viable tool for the majority of geodetic surveys due to its numerous advantages over classical methods of surveying. It is worth stating that the GPS ellipsoid of reference is the World Geodetic System 1984 (WGS84) and thus provides coordinates in latitude, longitude and ellipsoidal height. It is pertinent to note that it was indicated in [2] that assimilating GPS data into the mapping system of a country like Ghana cannot be done straightforwardly without appropriate mathematical conversions to determine transformation parameters. In an effort to have such integration into the mapping system of Ghana, the initial step is to convert the geodetic coordinates to the cartesian coordinate system. The method of directly converting geodetic coordinates to cartesian coordinates can be carried out using Bowring forward equation [3, 4] . Conversely, it was emphasized by [5] that the reverse transformation is more complex considering the latitude and the geodetic height. This problem has been attributed to the inability of the latitude to be separated from the radius of curvature in the prime vertical when carrying out the reverse approach. Thus, creating a lot of research interests among geodesist and mathematicians. It is worth mentioning that several methods have been developed in estimating the latitude and geodetic height respectively. These methods as stated in [6] could be divided into three categories namely Exact or closed form approaches, Approximation methods, and Iterative methods.

A comparative study of the above mentioned techniques have been carried out by researchers from various countries. For instance, [7] tested two direct and four indirect methods on a region covering Australia and found to give acceptable results for the computation of and . It was concluded in their study that Lin and Wang’s method was appreciably faster than the other five methods and was recommended for use in Australia. Reference [8] reviewed exact transformation formulas and compared with the approximation methods by considering their computational complexity and sensitivity to computer round off error. The author concluded that the exact transformation formulas produced negligible errors in coordinate transformation and thus recommend to be used in practice. Reference [9] evaluated four non-iterative and four iterative methods in transforming cartesian coordinates to its corresponding geodetic coordinates. It was found that the iterative methods were faster than the non-iterative and converges to a sub millimetre accuracy exceeding the requirements of any practical application. In [10] a general overview of ten iterative methods and one direct method were presented. The author concluded that the direct procedure is fairly simple and straightforward compared with the iterative methods that requires an approximation to get at the desired solution. Reference [11] demonstrated that the Bowring’s inverse method in terms of computational speed was faster than Borkowski. However, it was shown that Lin and Wang method is faster than Bowring’s method [12] .

Several authors have proposed new techniques for transforming geocentric coordinates to geodetic coordinates. For example, [13] introduced a closed-form algebraic technique that is applicable globally including the poles regardless of the eccentricity value of the ellipsoids. The proposed method produced refine values when compared with Bowring Inverse equation. In [14] an exact and relatively simple analytical transform of the rectangular coordinates to the geodetic coordinates was presented. The method was based on one solution of the quartic equation. Reference [15] developed a more robust algorithm that yields more accurate results than most of the published algorithms. A significant attribute of the procedure is that the processing time is nearly a constant. A vector-based algorithm to transform cartesian coordinate to geodetic coordinates was introduced by [16] and was further extended to triaxial ellipsoids [17] . Both algorithms showed identical result in accuracy, similar computer processing unit requirements, and also worked well for celestial bodies having significantly greater flattening than the Earth. Reference [18] compared computational intelligence algorithms with the conventional methods in transforming geocentric coordinates into geodetic coordinates. Among all the methods, the differential search algorithm applicable to numerical optimization problems yielded a very high level of accuracy.

It should be known that the situation in Ghana is different as researchers have only utilized the Bowring inverse equation in their datum transformation. For instance, in [19] the Bowring Inverse equation was applied in datum transformation between WGS84 and War Office datum. The same inverse method was implemented also in [2] and [20] . In view of the above development, it can be seen that such a comparative study on the applicability of the reverse methods within the Ghana geodetic reference network has not been fully investigated. This study thus compares seven of the reverse techniques developed by researchers namely Simple Iteration, Bowring Inverse equation, Lin and Wang method, Paul’s method, method of Successive Substitution, Newton Raphson approach, and Borkowski’s method within the Ghana geodetic reference network. It is worth stating that that these are not the only techniques for computing geodetic latitude ( ) from cartesian coordinate (X, Y, Z). Hence, this study is not definitive since only a small selection of the published techniques are chosen. However, the choice of the methods was influenced by its gaining popularity in usage within the last two decades by researchers.

2. Study Area

Ghana is a country located at the Western part of Africa sharing boarders with Cote D’Ivoire to the West, Togo to the East, Burkina Faso to the North and the Gulf of Guinea to the South. The country has a 239,460 km 2 generally consisting of low plains [21] with 2,093 km of international land borders. Figure 1 shows the study area.

This study covers the first phase of the ongoing project by the Ghana Survey and Mapping Division of Lands Commission in establishing a new geodetic reference network base on the International Terrestrial Reference System (ITRS) [1] . The choice of the five out of ten administrative regions for the first phase of the project was due to the following reasons almost all the natural resources such as gold, bauxite, manganese, oil, timber, cocoa, diamond and many others found in the country are situated in these regions. Hence, contributing significantly to the economic growth of Ghana.

3. Methods

Secondary data of common points in both WGS84 and War Office 1926 geodetic coordinates for the new and old Ghana geodetic reference network were obtained from the Survey and Mapping Division of Lands Commission in Ghana. The Bowring forward equation was first used to transform the geodetic coordinates into cartesian coordinates because it is a prerequisite in most 3D datum transformation parameter determination. The direct transformation of the geodetic coordinates above a reference ellipsoid to the cartesian coordinates (X, Y, Z) could be carried out using the Bowring forward equation. This equation is expressed mathematically as:

Where φ = Latitude, λ = longitude, f = flattening , e = eccentricity. The radius of curvature in the prime vertical plane N, and the first eccentricity are given by

3.2. Bursa-Wolf Transformation Model

Figure 2 shows the geometry of the Bursa–Wolf transformation model. The X, Y, Z axes of system 1 are rotated by very small angles from the X, Y, Z axes of system 2, and the origins of the two systems are displaced by translations in the directions of the X, Y, Z axes of system 2 [22] . and are vectors of coordinates in both systems and t is a vector of translations.

The mathematical relationship between coordinates in both systems can be written in the form of a vector equation [22] ) .

Alternatively, the Bursa–Wolf transformation may be written as

The new War office rectangular coordinates obtained after applying the Bursa-Wolf parameters determined need to be transformed back into geodetic coordinates (latitude, longitude, ellipsoidal heights) to enable projection of the coordinate onto the transverse Mercator that is utilized in Ghana. This will also enable the coordinates to be expressed in the Ghana national projected grid coordinate system (Easting, Northing). The reverse transformation was carried out using seven inverse equation models. The various models applied are described in the subsequent section.

An approximate latitude value was computed from the equation

where , second eccentricity is given us with uma e b being the semi-major and minor axis of the reference ellipsoid respectively. The approximate value, was then used in the right hand side (RHS) of the equation

to evaluate , on the left hand side (LHS). The new value, was then applied in the right hand side (RHS) to give the next value . This procedure was repeated until the difference between successive LHS values, , reaches an acceptable limit thus, the iteration converges to a solution of .

3.3.2. Bowring Inverse Equation

The starting value, was obtained from the relationship between the geocentric and parametric latitude using

The required latitude was then computed from

Where is the parametric latitude uma is the semi-major axis of the reference ellipsoid is the perpendicular distance from the rotational axis is the first eccentricity and is the second eccentricity expressed as .

This iterative method uses Newton Raphson Iteration to evaluate a scalar multiplier q of the normal vector to the ellipsoid [23] . Once q was calculated, simple relationships between cartesian coordinates of P and its normal projection Q onto the ellipsoid at P were used to evaluate the cartesian coordinates of Q. The initial approximation of the latitude was computed using

The latitude, and height, h were finally estimated from the equations below

The and were obtained from

It should be noted that h is negative if is less than .

Paul’s method is direct in so far as is obtained from a simple closed equation but only after several intermediate variables have been evaluated. Thus, having X, Y, Z for a point related to an ellipsoid, the latitude, was obtained by computing the following variables ( ) in order from the following equations

It should be noted that all square roots in have the same sign as Z .The geodetic latitude, was estimated from

Detailed description of the Paul’s method can be found in [7] .

3.3.5. Method of Successive Substitution

The method of Successive Substitution is popular because of its programming simplicity. This method is comparable to that of simple iteration. A starting value was first calculated from the relationship

This was used on the RHS of the equation below

to evaluate (and hence ) on the LHS. This new value, was then applied on the RHS to give the next value, (and hence ). The procedure was repeated until the difference between successive LHS values , reached an acceptable limit. Thus, the iteration converges to a solution for and hence φ.

The Newton Raphson iteration can improve the rate of convergence for in successive substitution solution for real roots of equation given in the form of an iterative equation as

Onde n represents iteration and the function is expressed as

The derivative of the function is given as

A starting latitude value, was obtained from

The iteration continued until the correction factor in reached an acceptable small magnitude.

3.3.7. Borkowski’s Method

Reference [7] indicated that Borkowski’s method is an indirect method that uses Newton’s iterative technique to solve for the parametric latitude, . The is expressed as

where the function and its derivative are expressed as

and . was obtained by iteration after calculating the constants , q e c a partir de

An initial approximation, was estimated using the relation

After solving for , was computed from

4. Results and Discussion

The derived parameters for transforming data from WGS 84 to War Office datum with their associated standard deviations using Bursa-Wolf transformation model are presented in Table 1 below. It was observed from the results of the translation parameters in Table 1 that, from the origin of the War Office to the origin of WGS 84, the X-axes that intersects the Greenwich Meridian and the Equator has a negative displacement. On the other hand, the Y-axes created to have a right angle to the X, Z-axes and the Z-axes passing through the Earth instantaneous pole has a positive displacement between the two reference systems (War Office and WGS 84 datum). The individual standard deviations for the obtained transformation parameters are also shown in Table 1. The calculated reference standard deviation and reference adjustment variance were also estimated to check the precision for the overall observations (Table 1).

Table 1. Summary of derived parameters results

The translation parameter, revealing the existence of a negative displacement from the geocenter is because both X-axes in the two reference ellipsoids are moving in opposite directions. Conversely, and translation parameters from the geocenter evident from Table 1 above shows that, the axes of both reference ellipsoids move in the same direction. In Table 1, the standard deviations indicate the spread of the data about the mean measured in the same units as the data. They also indicate the limits of the error bound within which the most probable value (MPV) of the mean lies. Since the individual standard deviations computed for each translation parameter are small, it implies that the data points are closer to the MPV value of the mean which indicates that the parameters response will be fairly uniform when applied to the observation data within the study area. In addition, the smaller standard deviation obtained signifies a steep bell-shaped on the normal distribution curve.

4.2. Reverse Techniques Performance Evaluation

The reverse transformation methods were evaluated based on the residuals generated from new projected grid coordinates and the existing projected coordinates within the Ghana geodetic reference network. The following statistical indicators were used as a performance criteria index (PCI) namely: Mean Square error (MSE), Root Mean Square error (RMSE), Nash-Sutcliffe Efficiency Index (N) and Modified Index of Agreement (D). Their mathematical expressions are given below:

Onde n is the total number of observations used in the Bursa-Wolf model, O e P are the existing projected coordinates and predicted projected coordinates from the reverse techniques used. is the mean of the existing projected coordinates. To assess the quality of the transformation results the MSE, RMSE, N and MID were computed as shown in Table 2 and Table 3.