AAO-prosjektet mitt: Hva jeg har gjort så langt

Jeg har allerede introduserte prosjektet jeg skal jobbe med hos Australian Astronomical Observatory (AAO) i et tidligere innlegg. Men denne gangen tenkte jeg å skrive litt mer om hvordan dette skal gjøres i praksis ved å dele det jeg har gjort så langt.

Prosjektet handler om lysforurensning, representert ovenfor ved et svært opplyst operahus i Sydney. Det vil naturligvis være mer lysforurensningen nærmere bakken (hvor byen befinner seg) enn dersom man ser på et punkt på himmelen rett over seg. Mengden lysforurensning endrer seg altså gradvis med vinkelen fra bakken. Ser man på et område på himmelen (representert ved en firkant i bildet nedenfor), vil det være en viss variasjon i lysforurensningen over dette området, som vil gjøre det vanskelig å få øye på himmelske objekter som er diffuse og lyssvake.

Målet er å skrive et program som vil gi informasjon om hvordan lysforurensningen varierer over et lite området av himmelen på et bestemt sted til en bestemt tid. Men hvordan skriver man et program som gjør noe slikt?

Hvordan programmet skal fungere

Det første som skjer, er at personen som skal bruke programmet (dvs. personen som har gjort eller skal gjøre observasjoner av et astronomisk objekt), mater programmet med en del tall. Deretter skal programmet gjøre en masse beregninger med disse tallene, før det til slutt spytter ut en del nye tall som beskriver hvordan lysforurensningen varierer over et gitt område. Dette er ikke bare bare, for å si det mildt!

Det personen som bruker programmet skal skrive inn, er:

  • Dato og tid for observasjonen.
  • Posisjonen til observatøren. Dette gis i lengdegrad, breddegrad og høyde over havet.
  • Posisjonen til objektet skal observeres. Dette gis i de astronomiske koordinatene rektascensjon (eng. right ascension) og deklinasjon (eng. declination).
  • Bølgelengden objektet skal observeres i (man putter filtre på teleskopene når man tar bilder slik at bare visse bølgelengder slipper inn om gangen).

Videre er det veldig mye som skal skje før programmet omsider kommer frem til det endelige resultatet. I dag skal jeg ta for meg første steg:

1. steg: koordinattransformasjon

Man gjør en koordinattransformasjon når man endrer et sett koordinater fra ett koordinatsystem til et annet. Dette er noe av det første som trenger å gjøres i programmet.

Som nevnt ovenfor blir posisjonen til det astronomiske objektet beskrevet av koordinatene rektascensjon («RA») og deklinasjon («DEC»), som er de mest vanlige koordinatene for å oppgi et objekts posisjon på himmelen. Disse kalles ekvatorialkoordinater. Deklinasjon måles i grader fra -90° til +90°, hvor den er 0° ved ekvator, positiv nordover og negativ sørover. Dette er analogt med breddegrader. Rektascensjon er litt mer spesiell: Den måles i timer fra 0 til 24 med utgangspunkt i vårjevndøgnspunktet («VE» fra «vernal equinox»). Jeg skal ikke gå mer inn på dette her, men hvis du er interessert kan du les mer om rektascensjon på de engelske Wikipedia-sidene.

Figur: Wikipedia

Koordinatene DEC og RA er så godt som konstante i løpet av et menneskes levetid, men endrer seg litt pga. presesjon. Disse koordinatene er dessuten uavhengig av observatørens posisjon. De er altså globale. Men vi er interessert i å vite hvor objektet befinner seg på himmelen sett fra en bestemt posisjon. Da kan vi endre til et lokalt koordinatsystem!

Koordinatsystemet vi ønsker å bytte til bruker koordinatene høyde (eng. altitude) og asimut (eng. azimuth). Disse kalles horisontalkoordinater. Høyden til et objekt måles i vinkelen objektet har over horisonten, altså mellom 0° og 90°. Asimut er vinkelen langs horisonten fra nord og måles i 0–360° i østlig retning.

Figur: Wikipedia

I dette systemet endrer det astronomiske objektet posisjon hele tiden ettersom tiden går pga. Jordens rotasjon som får himmelske objekter til å «bevege seg» over himmelen. Koordinater gitt i dette systemet er altså bare gyldig for et helt bestemt tidspunkt og posisjon. Akkurat som vi ville! Planen er at lysforurensningen også skal være beskrevet i dette koordinatsystemet.

Når jeg skriver programmet mitt, bruker jeg programmeringsspråket Python. Der kan man gjøre ganske mange forskjellige utregninger, men skal man begynne å gjøre litt mer fancy ting, må man importere ulike «pakker» i programmet slik at man kan ha mulighet til å gjøre flere ting. Når det gjelder astronomisk koordinattransformasjon, er det pakken Astropy som gjelder, som har en egen pakke kalt Astronomical Coordinate Systems (se lenke for kodeeksempler). Jeg kunne skrevet en kode som gjorde dette selv, men det hadde blitt fryktelig mye knoting og resultatet hadde muligens blitt feil, så det er best å bruke eksisterende pakker dersom det lar seg gjøre. Pluss at koden min da blir seende ryddig og fin ut 😀

Jeg hadde ikke vært borti Astropy før og det er som en ny verden! Det går for eksempel an å gjøre utregninger med fysiske enheter – noe jeg aldri hadde gjort før. Jeg visste ikke en gang at det var noe man kunne gjøre (!). Pakken har dessuten en haug med fysiske konstanter liggende og det er kjempelett å endre koordinatsystem. Og det er masse mer der også, men dette er de tingene jeg har fått bruk for så langt 🙂

Resultat: Nå har jeg en programsnutt som gir objektets posisjon i horisontalkoordinater utregnet fra tallene observatøren ga i begynnelsen av programmet, og jeg er klar for neste steg, som jeg skal skrive om en annen gang!

* * *

Jeg har jobbet med dette prosjektet i snart to uker nå. Det har riktignok vært en del dødtid innimellom fordi jeg har måttet vente på programvare eller at veilederne skulle bli tilgjengelige, men jeg syns det har gått nokså fort fremover så langt! Fra det jeg har beskrevet her, høres det kanskje ikke så imponerende ut. Men jeg har kommet en del lenger enn dette altså 😉 Også har jeg brukt mye tid på å lese vitenskapelige artikler om lysforurensning for å finne ut hva slags modeller (dvs. matematiske formler) som blir brukt for å beskrive lysforurensningen, samt hvilke problemer og fysiske fenomener man må ta hensyn til. Deretter har jeg skrevet en ganske detaljrik liste som sier steg-for-steg hva programmet må gjennom for å komme frem til sluttresultatet, som tok mye tid. Jeg kommer stadig på nye ting som må inkluderes i koden!

Jeg merker at selv om jeg ikke jobber direkte med galakser, koser jeg meg masse på jobben med å bruke de kunnskapene jeg har tilegnet meg så langt i utdannelsen, samt prøve meg på helt nye ting. Jeg blir for eksempel en del bedre i Python nå! Også handler jo det jeg driver med om astronomi!

Relaterte innlegg

Kommentarer

  1. Jon Vegard Sparre sier:

    Jeg forsøkte å bruke Astropy-pakka da vi hadde AST2210 i høst i stedet for å bruke IDL, men jeg fant aldri helt ut av hvordan man lastet inn .FITS-filene.

    1. Det hadde vært mye nyttigere å lære oss å bruke Astropy til å gjøre det enn å bli fortalt nøyaktig hva vi skulle skrive i IDL for at det skulle fungere … Jeg har ikke prøvd å bruke Astropy til .fits-filer ennå og kommer nok ikke til å gjøre det i forbindelse med dette prosjektet.

Legg inn en kommentar

Dette nettstedet bruker Akismet for å redusere spam. Lær om hvordan dine kommentar-data prosesseres.