Sterrekunde

Hoe kan ek van Cartesiese J2000-koördinate omskakel na Cartesiese Galaktiese koördinate?

Hoe kan ek van Cartesiese J2000-koördinate omskakel na Cartesiese Galaktiese koördinate?


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.

Ek gebruik 'n sterdatabasis (die HYG-databasis) met xyz-posisies en snelhede vir die sterre. Dit het + X in die rigting van die ligter equinox, + Z in die rigting van die noordelike hemelpool, + Y in die rigting van die regte hemelvaart 6 uur en is gebaseer op J2000 en is op die son gerig.

Ek wil dit omskakel in 'n Cartesiese Galaktiese koördinaatstelsel wat op die son gerig is, met + X na sy middelpunt en + Z skuins sodat dit uit die galaktiese vlak aan die noordekant skiet.

Dit moet net 'n eenvoudige rotasie wees, maar na baie soek kan ek nie die rotasie vind om te gebruik nie, en ook nie die manier om dit deur 'n derde stelsel te omskep nie. Weet iemand hoe om die regte rotasiematriks hier te kry? (of 'n ander manier van rotasie)


Om 'n ekwatoriale $ (x, y, z) $ in 'n galaktiese $ (x_G, y_G, z_G) $ te omskep, word die dokumentasie van die Gaia-vrystelling 1, afdeling 3.1.7, gebruik

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

waar

$$ 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} $$ is saamgestel uit drie koördinaatraamrotasies $$ mathbf {A} '_ G = mathbf {R} _Z (-l_ Omega) ~ mathbf {R} _X (90 ^ circ - delta_G) ~ mathbf {R} _Z ( alpha_G + 90 ^ circ) $$ met die noord-galaktiese pool by ekwatoriale koördinate $ ( alpha_G = 192.859 ^ circ, delta_G = + 27.128 ^ circ) $ en die galaktiese ewenaar wat die hemelse ewenaar oorsteek by galaktiese lengte $ l_ Omega = 32.932 ^ circ $.

Dit is gelykstaande aan die transformasie wat in die Hipparcos-katalogus, volume 1, afdeling 1.5.3 gedefinieer word.

Murray 1989 en Liu 2011 gee soortgelyke matrikse waarvan die elemente na ses desimale plekke verskil, wat slegs saak maak as u 'n presiese subboogsekonde benodig.


Hoe kan ek Longitude, Latitude, Elevation omskakel in Cartesiese koördinate?

Ek het weerdata afgelaai en dit het die waardes van lengte (in desimale), breedtegraad (in desimale) en hoogte (in m). Daar is geen inligting oor die koördinaatstelsel wat gebruik word nie. Hoe kan ek dit omskakel na kartesiese koördinate? My pogings is hieronder. Maar my probleem is om die regte formules te vind

'N Antwoord hier deur Daphna Shezaf gebruik verskillende formules. Dit gebruik egter nie hoogtes nie. Ek sal dit waardeer as iemand my verwarring kan opruim, moet die hoogte gebruik word om van lang / breed om te skakel of nie? Wat is die regte formules? Ek het probeer om die resultate van my kodes op hierdie webwerf te vergelyk deur spesifieke lang, breed, hoog te gebruik. My albei metodes hierbo het resultate wat ver van die behaalde resultaat van die webwerf af is


Waarvoor word die 3-D Cartesiese koördinaat in die regte lewe gebruik?

Ons leef in 'n 3D-wêreld, dus word 3D-kartesiese koördinate gebruik om probleme in ons wêreld te beskryf. Totdat ons egter holografiese uitstallings het, is die manier waarop ons gewoonlik inligting vertoon 2D, soos papier of monitors. Dus word 3D normaalweg op 2D geprojekteer, dit kan 'n perspektiefprojeksie of ortografiese projeksie wees.

Die mees algemene gebruik van 3D-koördinate is ingenieurswese, fisika en rekenaargrafika. Dit sal gedoen word met sagteware soos AutoCAD, Maya, SoftImage, 3DS Max en Blender. Soos u weet, kan rekenaar-geanimeerde films in 3D of 2D vertoon word, maar albei het steeds perspektief. Om perspektiewe projeksies te hê, is dit nodig om alles in 3D te modelleer.

Bewegingsopname word in 3D gedoen, sodat dit in rekenaarspeletjies of spesiale effekte in films sowel as in die geanimeerde films geplaas kan word.

In ingenieurswese, geboue of brûe of enige struktuur, benodig u 3D sodat werkers weet hoe wyd, lank en hoog om dinge te bou. 'N Ander gebruik wat u miskien al gehoor het, is dat 3D-drukkers natuurlik 3D-koördinate benodig om na die drukker te stuur om iets betekenisvol te bou.

Daar is 'n paar ander gebruike wat u kan ken, soos topografiese kaarte wat die hoogte van 'n 2D-posisie toon, of 'n lugverkeersvertoning sal die 2D-posisie van 'n vliegtuig toon, maar die hoogte daarvan langs die posisie toon.


Antwoorde en antwoorde

Ek werk aan hierdie vrae, meer spesifiek op die tweede manier vir 3-4 dae na die skool :(

Ek werk aan hierdie vrae, meer spesifiek op die tweede manier vir 3-4 dae na die skool :(

Let daarop dat 'n ander manier om daarna te kyk:

## Delta vec benader Delta r hoed + r Delta theta hat < theta> ##

Let daarop dat 'n ander manier om daarna te kyk:

## Delta vec benader Delta r hoed + r Delta theta hat < theta> ##

Dankie vir jou antwoord! U het my gelukkig gemaak, ek het elke 5 minute hier gekyk om iets nuuts te sien: P

Ek is jammer, ek verstaan ​​nie hoe u die afleiding van ## Delta vec gemaak het nie##.

Ek hou ook van die eerste metode. Ek dink ek is 'n bietjie perfeksionistiese persoon, ek kan nie alles maklik oorslaan nie, iets laat my op hulle fokus eerder as om aan te hou. Ek vra myself af wat ek kan verloor deur hierdie metode oor te slaan en ek het natuurlik nie 'n presiese antwoord nie. Ek dink dat ek in die toekoms teen hierdie metode of hierdie dinge te staan ​​kan kom. Wat dink jy hiervan?

Ek kan nie die pdf-lêer in # 6 oopmaak nie.

Nietemin is ek steeds verbaas oor waar u probleem regtig is. Laat ons dus weer die konsepte doen. U begin met Cartesiese koördinate van die Euklidiese vlak, dit wil sê daar is twee loodregte eenheidsvektore ## vec_j ##. Die posisievektor word gegee as 'n funksie van tyd deur
$ vec(t) = x_j (t) vec_j. $
Hier en in die volgende word die (Cartesiaanse) Einstein-opsommingskonvensie gebruik, dit wil sê dat u gelyke indekse van 1 tot 2 moet saamvat.

Nou stel ons poolkoördinate in. Hulle hou verband met die Cartesiese
$ vec= r ( cos theta vec_1 + sin theta vec_2).$
Nou wil u op enige stadium 'n basis gebruik wat aangepas is vir die algemene koördinate ## q_1 = r ## en ## q_2 = theta ##.

Daartoe dink u aan die vlak wat deur koördinaatlyne bedek moet word, dws deur ## r ## - lyne waar ## theta ## konstant is en ## r ## oor sy gebied loop, dws ## r in mathbb_ <& gt0> ## en ## theta ## - lyne waar ## r ## vasgehou word en ## theta ## oor sy reeks loop, dws ## theta in [0,2 PI)##.

In 'n eerste stap stel u die holonome basis voor, wat eenvoudig deur die raaklynvektore gegee word aan die ## r ## reëls en die ## theta ## reëls, gegee deur die ooreenstemmende gedeeltelike afgeleides wrt. die algemene koördineerders,
$ vec_r = gedeeltelik_r vec= ( cos theta vec_1 + sin theta vec_2), quad vec_ < theta> = gedeeltelik_ < theta> vec= r (- sin theta vec_1 + cos theta vec_2).$
Nou besef u dat hierdie vektore altyd loodreg op mekaar staan, dit wil sê ## vec_r cdot vec_ < theta> = 0 ##.

In so 'n geval is dit nou handig om hierdie vektor te normaliseer en 'n Cartesiese basis te hê op enige punt in die vlak wat bestaan ​​uit die loodregte genormaliseerde vektore. Daartoe bereken u
$ g_r = | vec_r | = 1, quad g _ < theta> = | vec_ < theta> | = r $
en stel dan voor
$ 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).$
As u nou 'n arbitrêre vektorveld het, kan u dit in sy komponente ontbind met betrekking tot hierdie basis, maar hierdie basis hang af van waar u in die ruimte is. By afgeleide instrumente moet u dus afhang van die afhanklikheid van die posisie-basis. Daarvoor benodig u die gedeeltelike afgeleides van die basisvektore wrt. die algemene koördinate. Dit kan u maklik bereken met behulp van die Cartesiese komponente hierbo. Jy kry
$ gedeeltelik_r vec_r = 0, quad partial_ < theta> vec_= vec_ < theta>, quad partial_r vec_ < theta> = 0, quad partial_ < theta> vec_ < theta> = - vec_r. $

Nou, as voorbeeld van die snelheid van die puntmassa. In die poolkoördinate wat u het
$ vec= r vec_r. $
Om nou die snelheid te kry, moet u die tydsafgeleide van hierdie vektor neem, insluitend die basisvektore. Hiervoor gebruik u die kettingreël vir funksies, afhangende van die onafhanklike veranderlikes ## r ## en ## theta ##:
$ dot < vec> = punt vec_r + r dot < vec> _r = punt vec_r + r ( punt gedeeltelik_r vec_r + dot < theta> gedeeltelik_ < theta> vec_r) = punt vec_r + r dot < theta> vec_ < theta>. $
Dit is al wat jy nodig het!


Cartesiese koördinate in die melkweg (M45)

Ek probeer 'n paar 3D-plotte van sterretrosse maak en wil sien of iemand my verstand kan bepaal om my koördinate (x, y, z) van Galaktiese koördinate te bereken; die son is (x = 0, y = 0, z = 0). Ek gebruik 'n paar van die helderste sterre in M45 as my toetsvoorwerpe. Kom ons gebruik die ster Alcyone as voorbeeld. Hieronder is die Galactic Coordinates (volgens die SIMBAD-databasis):

  • Afstand: 403 (+/- 50) ly
  • Lengtegraad (°, min, sek): (166, 40, 6,2)
  • Breedtegraad (°, min, sek): (-23, 27, 19.1)

Omskep in sferiese koördinaatstelsel, waar (°, min, sek) duidelik omgeskakel word na grade:

Ek het gedink dat ek dit sou kon omskakel in Cartesiaans, in eenhede van ligjare (ly):

Hiermee word Alcyone se koördinate ly: (-359.7376898696, 85.2479782529, -160.4075331494)

Nou vir 'n toets. Ek het dit gedoen vir die helderste 11 sterre in M45 en dit in Octave (wat soos Matlab net gratis is) geteken. Hier is 'n video wat illustreer hoe dit lyk, saam met 'n paar skermkappies hieronder:


1 Antwoord 1

Ek kon die hip_main.dat-katalogus so in 'n tabel laai:

(U moet ook die URL vir die lêernaam kan plaas, maar om een ​​of ander rede werk dit nie vir my nie, maar dit werk wel as ek eers die lêer handmatig na my plaaslike gids afgelaai het - die probleem blyk te wees dat die oorspronklike lêer op die bediener is gzipped en die CDS-leser word verward deur die .gz in die lêernaam. Dit is 'n lekker en maklike ding om in Astropy op te los.)

Dit het koördinate in hms / dms sowel as grade. Grade is vinniger om te ontleed, en toe maak ek 'n SkyCoord daarvan. Dit bespeur outomaties dat die formate in grade is:

Dit ontdek ook korrek ICRS J1991.25 vanaf die ReadMe.

U kan 'n Aardgebonde waarnemerposisie kry, byvoorbeeld:

(Ek gebruik net 'n bekende plek hier, maar u kan koördinate oral op aarde plaas).

As u dan wil, kan u 'n plaaslike alt / az-raam skep soos:

U kan dit ook omskakel in cartesiese koördinate met local_coords.cartesian.

Helaas as dit kom by die projeksie op 'n mate van die hemel vir die doeleindes van beeldsimulasie, gaan dit my nie verder nie. Ek sou dit waarskynlik kon agterkom, maar waarskynlik sal iemand anders makliker weet hoe om dit te doen. Maar nou het u ten minste 'n deel van die vergelyking (as ek u vraag reg verstaan).


Hoe kan ek van Cartesiese J2000-koördinate omskakel na Cartesiese Galaktiese koördinate? - Sterrekunde

Wanneer 'n SlaMap eers geskep word, voer dit eenvoudig 'n eenheid (null) uit op 'n paar koördinate. Met behulp van die astSlaAdd-funksie kan 'n reeks koördinaatomskakelingsstappe bygevoeg word, gekies uit die wat deur die SLALIB Positional Astronomy Library (Starlink User Note SUN / 67) verskaf word. Hierdeur kan multi-stap omskakelings tussen 'n verskeidenheid hemelse koördinaatstelsels saamgestel word uit die boustene wat deur SLALIB voorsien word.

Vir die besonderhede van die beskikbare koördinaatomskakelings, sien die beskrywing van die astSlaAdd-funksie.

Lisensie

Hierdie program word versprei in die hoop dat dit nuttig sal wees, maar SONDER ENIGE WAARBORG sonder die geïmpliseerde waarborg van VERKOOPBAARHEID of FIKSHEID VIR 'N BESONDERDE DOEL. Sien die GNU General Public License vir meer besonderhede.

Indien nie, skryf u aan die Free Software Foundation, Inc., Franklin Street 51, Fifth Floor, Boston, MA 02110-1301, VSA, 'n afskrif van die GNU General Public License saam met hierdie program.

Geneste klasopsomming

Geneste klasse / koppelvlakke geërf van klas uk.ac.starlink.ast.Mapping

Veldopsomming

Velde geërf uit die klas uk.ac.starlink.ast.Mapping

Velde geërf uit klas uk.ac.starlink.ast.AstObject

Samestelling van konstrukteurs

Metode Opsomming

Metodes geërf uit die klas uk.ac.starlink.ast.Mapping

Metodes geërf uit die klas uk.ac.starlink.ast.AstObject

Metodes geërf uit die klas java.lang.Object

Konstrukteurdetail

SlaMap

SlaMap

Metode Besonderhede

Wanneer 'n SlaMap vir die eerste keer geskep word (met behulp van astSlaMap), voer dit eenvoudig 'n eenheid (null) kartering uit. Deur astSlaAdd te gebruik (herhaaldelik indien nodig), kan dan een of meer koördinaat-omskakelingstappe bygevoeg word, wat die SlaMap in volgorde sal uitvoer. Hierdeur kan multi-stap omskakelings tussen 'n verskeidenheid hemelse koördinaatstelsels saamgestel word uit die boustene wat deur SLALIB voorsien word.

Normaalweg, as 'n SlaMap-kenmerk 'n Invert-kenmerk nul is (die verstekwaarde), word die voorwaartse transformasie daarvan uitgevoer deur elkeen van die individuele koördinaatomskakelings wat deur astSlaAdd gespesifiseer is, uit te voer in die gegewe volgorde (dit wil sê met die laaste bygevoegde omskakeling wat laas toegepas is).

Hierdie orde word omgekeer as die SlaMap-kenmerk Invert nie-nul is (of indien die omgekeerde transformasie op enige ander manier gevra word) en elke individuele koördinaatomskakeling ook deur sy eie inverse vervang word. Hierdie proses keer die algehele effek van die SlaMap om. In hierdie geval sou die eerste omskakeling wat gebruik word, die omgekeerde wees van die een wat onlangs toegevoeg is.

Aantekeninge

SLALIB-omskakelings


- "ADDET" (EQ): voeg E-terme van aberrasie by.
- "SUBET" (EQ): trek E-terme van afwyking af.
- "PREBN" (BEP0, BEP1): Pas Bessel-Newcomb pre-IAU 1976 (FK4) presessie model toe.
- "PREC" (EP0, EP1): pas die IAU 1975 (FK5) presessiemodel toe.
- "FK45Z" (BEPOCH): Skakel FK4 om na FK5 (geen behoorlike beweging of parallaks nie).
- "FK54Z" (BEPOCH): Skakel FK5 om na FK4 (geen behoorlike beweging of parallaks nie).
- "AMP" (DATUM, EQ): Omskakel geosentriese skynbaar na gemiddelde plek.
- "KAART" (EQ, DATE): Omskep gemiddelde plek na geosentriese sigbaar.
- "ECLEQ" (DATUM): Skakel ekliptiese koördinate om na die ekwatoriaal FK5 J2000.0.
- "EQECL" (DATUM): Skakel ekwatoriale FK5 J2000.0 om na ekliptiese koördinate.
- "GALEQ": Skakel galaktiese koördinate na FK5 J2000.0 ekwatoriaal.
- "EQGAL": Skakel FK5 J2000.0 ekwatoriale na galaktiese koördinate om.
- "HFK5Z" (JEPOCH): Skakel ICRS-koördinate om na ekwatoriaal FK5 J2000.0.
- "FK5HZ" (JEPOCH): Skakel FK5 J2000.0 ekwatoriale koördinate om na ICRS.
- "GALSUP": Omskep galaktiese na supergalaktiese koördinate.
- "SUPGAL": Skakel supergalaktiese koördinate om na galakties.
- "J2000H": Skakel dinamiese J2000.0 na ICRS om.
- "HJ2000": Skakel ICRS om na dinamiese J2000.0.
- "R2H" (LAASTE): Skakel RA om na uurhoek.
- "H2R" (LAASTE): Skakel uurshoek na RA om.

Om byvoorbeeld die "ADDET" -omskakeling te gebruik, wat 'n enkele argument EQ benodig, moet u die dokumentasie raadpleeg vir die SLALIB-roetine SLA_ADDET. Dit beskryf die omskakeling breedvoerig en toon aan dat EQ die Besseliaanse tydperk van die gemiddelde ewenaar en ewening is. Hierdie waarde moet dan in args [0] aan astSlaAdd verskaf word.

Daarbenewens kan die volgende stringe verskaf word vir meer komplekse omskakelings wat nie ooreenstem met een enkele SLALIB-roetine nie (DIURAB is die grootte van die dagafwijkingsvektor in eenhede van "dag / (2.PI)", DATE is die Gewysigde Julian Datum van waarneming, en (OBSX, OBSY, OBZ) is die Heliocentric-Aries-Ecliptic kartesiese koördinate, in meter, van die waarnemer):


- "HPCEQ" (DATUM, OBSX, OBSY, OBSZ): Skakel Helioprojektief-Cartesiese koördinate na J2000.0 ekwatoriaal.
- "EQHPC" (DATE, OBSX, OBSY, OBSZ): Skakel J2000.0-ekwatoriale koördinate om na Helioprojective-Cartesian.
- "HPREQ" (DATUM, OBSX, OBSY, OBSZ): Skakel helioprojektiewe-radiale koördinate om J2000.0 ekwatoriaal.
- "EQHPR" (DATUM, OBSX, OBSY, OBSZ): Skakel J2000.0-ekwatoriale koördinate om na Helioprojektief-Radiaal.
- "HEEQ" (DATUM): Skakel helio-ekliptiese koördinate om na J2000.0 ekwatoriaal.
- "EQHE" (DATUM): Skakel J2000.0-ekwatoriale koördinate om na helio-ekliptika.
- "H2E" (LAT, DIRUAB): Skakel horisonkoördinate om na ekwatoriaal.
- "E2H" (LAT, DIURAB): Skakel ekwatoriale koördinate om na horison.

Let daarop dat die "H2E" en "E2H" omskakelings tussen toposentriese horisonkoördinate (azimut, hoogte) en skynbare plaaslike ekwatoriale koördinate (uurhoek, deklinasie) omskakel. Dus word die gevolge van dagafwyking in ag geneem by die omskakelings, maar die effekte van atmosferiese breking is dit nie.


Sterrekundige hulpmiddels¶

Astronomiese funksies en klasse gebaseer op libnova-biblioteek.

lsl.astro.B1950_UTC_JD¶ UTC Juliaanse dag van die J2000.0 koördinaatperiode. lsl.astro.B1950_to_J2000(pos)

Skakel B1950-tydvak om na J2000-tydvak vir ekwatoriale koördinate.

Param: pos - voorwerp van tipe equ_posn wat B1950-koördinate gee

Opbrengste: voorwerp van tipe equ_posn wat J2000-koördinate gee.

lsl.astro.DJD_OFFSET¶ Verreken in dae tussen UNIX-tyd (tydperk 1970/01/01) en standaard Juliaanse dag. lsl.astro.J2000_UTC_JD¶ Verskil in sekondes tussen TT en TAI tye. lsl.astro.J2000_to_B1950(pos)

Skakel J2000-tydvak na B1950-tydperk vir ekwatoriale koördinate om.

Param: pos - voorwerp van die tipe equ_posn wat J2000-koördinate gee

Opbrengste: voorwerp van tipe equ_posn wat B1950-koördinate gee.

lsl.astro.MJD_OFFSET¶ Verreken in dae tussen standaard Juliaanse dag en Dublin Juliaanse dag. lsl.astro.SECS_IN_DAY¶ UTC Juliaanse dag van die B1950.0 koördinaatperiode. lsl.astro.TAI_TT_OFFSET¶ & # 8221 Ligsnelheid in meter / sekonde. lsl.astro.UNIX_OFFSET¶ Die aantal sekondes op een dag lsl.astro.add_hms(bron, bestemming)

Wikkel vir libnova ln_add_hms () -funksie. Voeg tyd / hoekure, minute, sekondes by.

Param: bron - Voorwerp van tipe hms wat hoek voorstel 1. Param: dest - Voorwerp van tipe hms wat hoek 2 voorstel.

Wys voorwerp van die tipe hms wat die som van die hoeke voorstel.

Wikkelaar vir libnova ln_add_secs_hms () -funksie. Voeg sekondes by tyd / hoekure, minute, sekondes.

Param: hms - Voorwerp van die tipe hms wat hoek voorstel. Param: sekondes - Sekondes offset (float) om by die hoek te voeg.

Wys voorwerp van die tipe hms wat hoek + offset voorstel.

Omslag vir libnova ln_date struktuur. Stel UT-tyd in kalendereenhede voor.

Publieke lede: jare - Datumjare (heelgetal). maande - Datum maande (heelgetal). dae - Datum dae (heelgetal). uur - Datumure (heelgetal). minute - Datum minute (heelgetal). sekondes - Datum sekondes (dryf). laai(datumStr, tydStr)

Laai datumvoorwerp uit geformateerde snare.

Param: dateStr - 'n string van formaat JJJJ-MM-DD wat datum gee. Param: timeStr - 'n Reeks van formaat HH: MM: SS.S wat tyd gee.

aan_jd()¶ Skakel kalendertyd om na Juliaanse dag. Wys UTC-tyd in Juliaanse dae (vlot). na_sone(gmtoff = Geen)

Skakel UTC-kalendertyd om na plaaslike kalendertyd.

Param: gmtoff - plaaslike sekondes verreken vanaf UTC (heelgetal -43200 tot 43200). as dit op Geen gestel is, word die verrekeningswaarde van die tydmodule vir die huidige ligging gebruik

Wys voorwerp van die tipe gesoneerde datum wat plaaslike tyd voorstel.

Wikkel vir die funksie libnova ln_date_to_zonedate (). Skakel UTC-kalendertyd om na plaaslike kalendertyd.

Param: datum - 'n Datumvoorwerp wat UTC-tyd verteenwoordig. Param: gmtoff - Sekondes verreken vanaf UTC (heelgetal -43200 tot 43200).

Wys voorwerp van die tipe gesoneerde datum wat plaaslike tyd voorstel.

Wikkelaar vir libnova ln_deg_to_dms () -funksie. Omskep hoeke dryf grade na grade, minute, sekondes.

Param: grade - Hoek in grade (dryf).

Wys voorwerp van tipe dms wat hoek voorstel.

Wikkelaar vir libnova ln_deg_to_hms () -funksie. Skakel hoeke se vlottergrade om na ure, minute, sekondes.

Param: grade - Hoek in grade (dryf).

Wys voorwerp van die tipe hms wat die hoek voorstel.

Wikkel vir libnova ln_deg_to_rad () -funksie. Skakel degressie om na radiale.

Param: grade - Hoek in grade (dryf).

Wys hoek in radiale (vlotter).

Skakel lengtegrade in tydsekondes om.

Param: grade - lengtegraad (vlot grade)

Opbrengste: sekondes (vlot) verreken in tyd vir lengtegraad.

Kry rigting-kosinusse vanaf azimut- en senithoeke. Hierdie funksie bereken die kosinuswaardes gebaseer op die LWA-koördinaatstelsel:

Param: posn - voorwerp van die tipe hrz_posn wat plaaslike posisie gee

Wys 'n tupel (l, m, n) van vlotterwaardes vir die rigting kosinus.

Omhulsel vir libnova ln_dms struktuur. Stel hoeke voor in grade, minute, sekondes.

Publieke lede: neg - Waar indien gemeet wes van GM, suid van EQ Onwaar as gemeet oos van GM, noord van EQ.

grade - Hoekgrade (heelgetal). minute - Hoekminute (heelgetal). sekondes - Hoeksekondes (dryf).

na_deg()¶ Herlei hoeke grade, minute, sekondes na vlot grade. Wys hoek in grade (dryf). aan_hms()¶ Herlei hoeke grade, minute sekondes na ure, minute, sekondes. Opbrengste: voorwerp van die tipe hms wat die hoek voorstel. lsl.astro.dms_to_deg(dms)

Wikkelaar vir libnova ln_dms_to_deg () -funksie. Omskep hoeke grade, minute, sekondes na vlot grade.

Param: dms - Voorwerp van die tipe dms wat die hoek voorstel.

Wys hoek in grade (dryf).

Wikkelaar vir libnova ln_dms_to_rad () -funksie. Herlei hoeke grade, minute, sekondes na radiale.

Param: dms - Voorwerp van die tipe dms wat die hoek voorstel.

Wys hoek in radiale (vlotter).

Stel posisie voor as ekliptiese lengte- en breedtegraad.

Publieke lede: lng - Posisie-lengte-koördinaat (vlottergrade). lat - Posisioneer breedtegraadkoördinaat (vlot grade). Lede kan ook verkry word deur die subskripsie: ecl_posn [0] = lng ecl_posn [1] = lat aan_ek(jD)

Kry ekwatoriale koördinate vanaf ekliptiese koördinate vir 'n gegewe tyd.

Param: jD - UTC Juliaanse dag (vlot).

Wys voorwerp van tipe equ_posn wat ekwatoriale posisie voorstel.

Wikkel vir libnova ln_equ_posn struktuur. Verteenwoordig ekwatorale / hemelposisiekoördinate.

Publieke lede: ra - Posisioneer die regte hemelhoek (vlot grade). dec - Plaas deklinasiehoek (vlot grade). Lede kan ook verkry word deur middel van die intekenaar: equ_posn [0] = ra equ_posn [1] = des hoek-skeiding(posn)

Kry hoekskeiding van ekwatoriale posisie.

Param: posn - Voorwerp van tipe equ_posn wat liggaam 2 posisie voorstel.

Wys hoekskeiding in grade (dryf).

formaat()¶ Gee 'n tupel (ra, dec) terug waar ra 'n hms-voorwerp is en dec 'n dms-voorwerp is wat ra- en dec-posisie-koördinate voorstel. voorganger(jD)

Kry posisie van hemelse voorwerpe wat rekening hou met presessie. Die ekwatoriale koördinate moet vir die J2000-tydperk wees.

Param: jD - UTC Juliaanse dag (vlotter) om posisie te meet.

Opbrengste: Aangepaste ekwatoriale posisie van voorwerp as tipe equ_posn.

Kry ekliptiese koördinate vanaf ekwatoriale koördinate.

Param: jD - UTC Juliaanse dag (vlot).

Wys voorwerp van die tipe lnlat_posn wat die eklipitcale posisie voorstel.

Kry J2000 galaktiese koördinate van skynbare ekwatoriale koördinate.

Param: jD - UTC Juliaanse dag om posisie te kry.

Retourneer voorwerp van die tipe gal_posn wat die voorwerp en die galaktiese posisie voorstel.

Kry plaaslike horisontale koördinate vanaf ekwatoriale / hemelse koördinate.

Param: waarnemer - Voorwerp van die tipe lnlat_posn wat die waarnemer se posisie verteenwoordig. Param: jD - UTC Juliaanse dag (vlot).

Wys voorwerp van die tipe hrz_posn wat plaaslike posisie verteenwoordig.

Omhulsel vir libnova ln_gal_posn struktuur. Stel galaktiese posisie koördinate voor.

Publieke lede: l - Posisionele lengtehoek (vlot grade). b - Posisionele breedtehoek (vlot grade). Lede kan ook verkry word deur die intekenaar: gal_posn [0] = l gal_posn [1] = b formaat()¶ Lewer 'n tupel (lng, lat) terug waar lng 'n dms-voorwerp is en lat 'n dms-voorwerp is wat die galaktiese lengte- en breedteposisie-koördinate voorstel. aan_ek(jD)

Kry skynbare ekwatoriale koördinate vanaf J2000 galaktiese koördinate.

Param: jD - UTC Juliaanse dag om posisie te kry.

Retourneer voorwerp van tipe equ_posn wat voorwerp voorstel & se skynbare ekwatoriale posisie.

Klas om geografiese posisie voor te stel in terme van lengte, breedte en hoogte. Dit is 'n stel geodetiese koördinate gebaseer op die WGS84-model.

Publieke lede: lng - lengtegraad (vlot) breed - breedtegraad (vlot) elv - hoogte (vlot) Lede kan ook verkry word deur middel van 'n subteken: geo_posn [0] = lng geo_posn [1] = lat geo_posn [2] = elv lsl.astro.get_angular_separation(posn1, posn2)

Wikkelaar vir libnova ln_get_angular_separation () -funksie. Kry hoekskeiding van ekwatoriale posisies.

Param: posn1 - Voorwerp van tipe equ_posn wat liggaam 1 posisie voorstel. Param: posn2 - Voorwerp van tipe equ_posn wat liggaam 2 posisie voorstel.

Wys hoekskeiding in grade (dryf).

Wikkelaar vir libnova ln_get_apparent_posn () -funksie. Kry 'n duidelike posisie van hemelse voorwerpe wat rekening hou met presessie, nutasie, afwyking en opsioneel die regte beweging.

Param: gemiddelde_posisie - J2000 ekwatoriale gemiddelde posisie van voorwerp as tipe equ_posn.

Param: jD - UTC Juliaanse dag (vlotter) om posisie te meet. Param: proper_motion - voorwerp van die soort equ_posn gee voorwerp & # 8217s behoorlike beweging

Opbrengste: Skynbare ekwatoriale posisie van voorwerp as tipe equ_posn.

Wikkelaar vir die funksie libnova ln_get_apparent_sidereal_time (). Kry 'n duidelike tyd van Juliaanse dag.

Param: jD - UTC Juliaanse dag (vlot).

Wys GM-oënskynlike tyd (swaai-ure) op.

Wikkel vir funksie libnova ln_get_date (). Skakel Juliaanse dag om na kalendertyd.

Param: jD - UTC-tyd in Juliaanse dae (vlot).

Wys voorwerp van tipe datum wat UTC-tyd verteenwoordig.

Wikkelaar vir libnova ln_get_date_from_sys () -funksie. Kry kalendertyd vanaf die stelselklok.

Wys voorwerp van tipe datum wat UTC-tyd verteenwoordig.

Wikkelaar vir libnova ln_get_day_of_week () -funksie. Kry dag van week vanaf kalendertyd.

Param: datum - Voorwerp van die tipe datum wat die UTC-tyd verteenwoordig.

Wys dag van die week (0 = Sondag, 6 = Saterdag).

Wikkelaar vir libnova ln_ecl_from_equ () -funksie. Kry ekliptiese koördinate vanaf ekwatoriale koördinate vir 'n gegewe tyd.

Param: object_ - Voorwerp van die tipe equ_posn wat ekwatoriale posisie voorstel. Param: jD - UTC Juliaanse dag (vlot).

Wys voorwerp van tipe ecl_posn wat ekliptiese posisie voorstel.

Wikkel vir die funksie libnova ln_get_ecl_from_rect (). Kry ekliptiese koördinate vanaf reghoekige koördinate.

Param: rect - Voorwerp van tipe rect_posn wat posisie voorstel.

Wys voorwerp van tipe lnlat_posn wat ekliptiese posisie voorstel.

Wikkelaar vir libnova ln_get_equ2000_from_gal () -funksie. Kry J2000 ekwatoriale koördinate vanaf galaktiese koördinate.

Param: object_ - Voorwerp van die tipe gal_posn wat die galaktiese posisie voorstel.

Wys voorwerp van tipe equ_posn wat J2000 se ekwatoriale posisie voorstel.

Wikkelaar vir libnova ln_get_equ_aber () -funksie. Kry posisie van hemelse voorwerpe wat rekening hou met afwyking.

Param: gemiddelde_posisie - J2000 ekwatoriale gemiddelde posisie van voorwerp as tipe equ_posn.

Param: jD - UTC Juliaanse dag (float) om afwyking te meet.

Opbrengste: Aangepaste ekwatoriale posisie van voorwerp as tipe equ_posn.

Wikkelaar vir libnova ln_get_equ_from_ecl () -funksie. Kry ekwatoriale koördinate vanaf ekliptiese koördinate vir 'n gegewe tyd.

Param: object_ - Voorwerp van die tipe lnlat_posn wat die ekliptiese posisie voorstel. Param: jD - UTC Juliaanse dag (vlot).

Wys voorwerp van tipe equ_posn wat ekwatoriale posisie voorstel.

Wikkel vir libnova ln_get_equ_from_gal () -funksie. Kry B1950-ekwatoriale koördinate vanaf galaktiese koördinate.

Param: object_ - Voorwerp van die tipe gal_posn wat die galaktiese posisie voorstel.

Wys voorwerp van tipe equ_posn wat B1950 se ekwatoriale posisie voorstel.

Wikkel vir libnova ln_get_equ_from_hrz () -funksie. Kry ekwatoriale / hemelse koördinate vanaf plaaslike horisontale koördinate.

Param: object_ - Voorwerp van die tipe hrz_posn wat horisontale posisie voorstel. Param: waarnemer - Voorwerp van die tipe lnlat_posn wat die waarnemer se posisie verteenwoordig. Param: jD - UTC Juliaanse dag (vlot).

Wys voorwerp van tipe equ_posn wat ekwatoriale posisie voorstel.

Transformeer reghoekige koördinate na ekwatoriale koördinate.

Param: posn - Voorwerp van tipe rect_posn wat posisie gee.

Opbrengste: Voorwerp van tipe equ_posn wat ekwatoriale koördinate gee.

Wikkel vir libnova ln_get_equ_pm () -funksie. Pas die ekwatoriale posisie van 'n stervoorwerp aan vir korrekte beweging.

Param: gemiddelde_posisie - J2000 ekwatoriale gemiddelde posisie van voorwerp as tipe equ_posn. Param: proper_motion - Voorwerp van tipe equ_posn gee voorwerp & # 8217s behoorlike beweging

Param: jD - UTC Juliaanse dag (vlotter) om posisie te meet.

Opbrengste: Aangepaste ekwatoriale posisie van voorwerp as tipe equ_posn.

Wikkelaar vir libnova ln_get_equ_prec () -funksie. Kry posisie van hemelse voorwerpe wat rekening hou met presessie. Werk slegs vir die omskakeling na en vanaf J2000-tydperk.

Param: gemiddelde_posisie - J2000 ekwatoriale gemiddelde posisie van voorwerp as tipe equ_posn. Param: jD - UTC Juliaanse dag (vlotter) om posisie te meet.

Opbrengste: Aangepaste ekwatoriale posisie van voorwerp as tipe equ_posn.

Wikkelaar vir libnova ln_get_equ_prec2 () -funksie. Kry posisie van hemelse voorwerpe wat rekening hou met presessie. As libnova 'n weergawe laer as 0.12.0 het, is die funksie ln_get_equ_prec_2 () nie beskikbaar nie en word die NOVAS C-biblioteekaanneming van presession () in plaas daarvan genoem.

Param: gemiddelde posisie - ekwatoriale eerste posisie van voorwerp as tipe equ_posn. Param: fromJD - UTC Juliaanse dag (vlot) van die eerste keer. Param: toJD - UTC Juliaanse dag (vlot) van die tweede keer.

Opbrengste: Ekwatoriale posisie van voorwerp as tipe equ_posn omgeskakel van tyd 1 tot tyd 2. lsl.astro.get_gal_from_equ(voorwerp_)

Wikkelaar vir libnova ln_gal_from_equ () -funksie. Kry galaktiese koördinate vanaf B1950 se ekwatoriale koördinate.

Param: object_ - Voorwerp van die tipe equ_posn wat B1950-ekwatoriale posisie voorstel.

Wys voorwerp van die tipe gal_posn wat die galaktiese posisie voorstel.

Wikkelaar vir libnova ln_gal_from_equ2000 () -funksie. Kry galaktiese koördinate vanaf J2000 se ekwatoriale koördinate.

Param: object_ - Voorwerp van die tipe equ_posn wat J2000 se ekwatoriale posisie voorstel.

Wys voorwerp van die tipe gal_posn wat die galaktiese posisie voorstel.

Transformeer ECEF reghoekige koördinate na geografiese koördinate. Aangepas uit & # 8220Satellietbane & # 8221, Montenbruck en Gill 2005, 5.85 - 5.88. Kyk ook na gpstk ECEF :: asGeodetic () metode.

Param: posn - voorwerp van tipe rect_posn wat posisie gee.

Opbrengste: voorwerp van die tipe geo_posn wat geografiese koördinate gee.

lsl.astro.get_gmtoff()¶ Kry plaaslike UTC-verrekening gebaseer op Python-tydmodule en stelselinligting. lsl.astro.kry_hrz_van_ekw(voorwerp_, waarnemer, jD)

Wikkelaar vir libnova ln_get_hrz_from_equ () -funksie. Kry plaaslike horisontale koördinate vanaf ekwatoriale / hemelse koördinate.

Param: object_ - Voorwerp van die tipe equ_posn wat hemelse posisie voorstel. Param: waarnemer - Voorwerp van die tipe lnlat_posn wat die waarnemer se posisie verteenwoordig. Param: jD - UTC Juliaanse dag (vlot).

Wys voorwerp van die tipe hrz_posn wat plaaslike posisie verteenwoordig.

Wikkel vir libnova ln_get_julian_day () -funksie. Skakel kalendertyd om na Juliaanse dag.

Param: datum - Voorwerp van die tipe datum wat die UTC-tyd verteenwoordig.

Wys UTC-tyd in Juliaanse dae (vlot).

Wikkelaar vir libnova ln_get_julian_from_sys () -funksie.

Wys UTC Juliaanse dag (float) vanaf stelselklok.

Wikkelaar vir die funksie libnova ln_get_julian_from_timet (). Kry Julian dag vanaf Unix tyd.

Param: time_ - Unix-rooster in sekondes (heelgetal)

Wys UTC Juliaanse dag (vlot).

Wikkelaar vir libnova ln_get_julian_local_date () -funksie. Skakel plaaslike kalendertyd om na Juliaanse dag.

Param: zonedate - Voorwerp van die tipe zonedate wat plaaslike tyd voorstel.

Wys UTC-tyd in Juliaanse dae (vlot).

Wikkelaar vir libnova ln_get_jupiter_equ_coords () -funksie. Kry Jupiter en sy oënskynlike ekwatoriale koördinate vanaf die Juliaanse dag. Rekeninge vir afwyking en presessie, maar nie voeding nie.

Param: jD - UTC Juliaanse dag (vlot).

Wys voorwerp van tipe equ_posn wat ekwatoriale posisie voorstel.

Kry Jupiter se opkoms, vervoer, stel tye vas van Juliaanse dag.

Param: jD - UTC Juliaanse dag (vlot). Param: waarnemer - Voorwerp van die tipe lnlat_posn wat die waarnemer se posisie verteenwoordig.

Wys voorwerp van tipe rst_time wat UTC-efemeris keer voorstel, of Geen as die voorwerp sirkumpolêr is. 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 format()¶ 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). format()¶ 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). format()¶ 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.


Inhoud

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 of 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? - Sterrekunde

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

Abstrak

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

Kopiereg © 2016 Science and Education Publishing. All Rights Reserved.

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, no. 1 (2016): 1-7.

At a glance: Figures

1. Introduction

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 a en 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 a 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] . Een keer q was calculated, simple relationships between cartesian coordinates of P and its normal projection V onto the ellipsoid at P were used to evaluate the cartesian coordinates of V. 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

waar 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

en. was obtained by iteration after calculating the constants , q en c van

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:

Where n is the total number of observations used in the Bursa-Wolf model, O en 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.