Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 8: Harjoitustyö, datan visualisointi, datankäsittelyohjelmistot 8. maaliskuuta 2009
Harjoitustyö Datan Visualisointi Visualisoinnista Johdanto Hyvän kuvan resepti Julkaisumediat Johdanto Medioiden erikoispiirteet Kuvien tekeminen Johdanto MatplotLib Kuvan piirtäminen Muuta Datankäsittelyohjelmistot IRAF Midas IDL XSPEC Muut
Harjoitystyöstä Harjoitustyöstä Kannattaa aloittaa heti kun työ tulee verkkoon (lue, tänään). Jos jotain epäselvää, kysyä saa (voi säästää paljon työmäärässä). Palautus: KAIKKI työssä käytetyt tiedostot tar-pakettina, koodi myös L A T E Xdokumentissa liitteenä. Harjoitustyö käsittää kaiken kurssilla opitun Käsiteltävän datan haku netistä. Kohdetta käsittelevien julkaisujen haku netistä. Julkaisujen lukeminen, aiheeseen tutustuminen. Datan käsittely Pythonilla kirjoitettavin rutiinein. Työselostus L A T E Xilla, viitteet julkaisuihin.
Visualisoinnista Datan visualisointi Datan visualisoinnilla tarkoitetaan Datan esittämistä visuaalisessa muodossa: Kuvana Animaationa Interaktiivisena härpäkkeenä Datan visualisoinnin tavoitteita Visualisointi auttaa tulkitsemaan dataa Silmä huomaa joskus asioita mitä parhaimmatkaan ohjelmoidut rutiinit eivät Tapa esittää data kompaktissa muodossa muille. Hyvä kuva vastaa tuhatta sanaa. Huono kuva vastaa tuhatta sanaa, jotka voi ohittaa yhdellä vilkaisulla.
Visualisoinnista Hyvä kuva Mitkä asiat tekevät kuvasta hyvän? Hyvä kuva on selkeä. Hyvällä kuvalla on sanoma. Hyvässä kuvassa ei ole liikaa asiaa. Hyvä kuva on suuniteltu yeisön ja julkaisutavan mukaan. Hyvä kuva koskettaa katsojaa, on visuaalinen, älyllinen ja henkinen kokemus jonka jälkeen katsoja on kasvanut ihmisenä. Hyvä kuva ei ole sykkyrällä, vaan uskaltaa uskaltaa.
Visualisoinnista Akselit Nimeä akselit Lukijan on paha yrittää arvailla. Yksiköt Merkitse käytetyt yksiköt. Valitse yksiköt dataan sopiviksi (mm, m, km, AU, pc). Akselien skaalaus Logaritminen tai lineaarinen. Käytä koko kuvapinta-ala hvyäksesi.
Visualisoinnista Datapisteet Virherajat aina näkyviin Jos hyvin pienet (pienempi kuin symboli), mainitse kuvatekstissä. Jos paljon dataa, ja virheet kaikelle datalle samat, voi piirtää vain yhdelle. Virhepalkki / symbolin koko. Piste / viiva / histogrammi Data ja malli => usein pisteitä + viiva/histogrammi kokeile
Visualisoinnista Muuta Joka kuvassa on oltava: Otsikko. Kuvateksti Kertoo mitä kuva esittää, mitä akselit merkitsevät, jne. Lisäksi hyödyllisiä ovat: Nimilaput viivoihin. Erityisten kohtien korostus Ympyröimällä. Nuolella. Mosaiikkikuvassa kirjain ylänurkkaan.
Julkaisumediat Julkaisumediat Erilaisia kuvia eri mediaan Paperille, verkkoon vai esitykseen? Valitse oikea formaatti Vektori (svg, eps, pdf, dvi) vai bittikartta (png, tif, jpg, gif)? Bittikartta Resoluutio rajaa suurinta mahdollista tarkkuutta, suurikokoisia. Jpeg ainoastaan www-käyttöön! Vektori Teoriassa ääretön tarkkuus, verrattain pieni tiedostokoko. Voi sisältää myös bittikarttoja. Usein paras vaihtoehto tieteellisen datan esittämiseen.
Julkaisumediat Paperi Paperitulosteista Tulostettaessa korkea resoluutio Yleensä mustavalko- tai harmaasävytulostus. Julkaisijat veloittavat värikuvista. Formaatti Jos mahdollista, käytä vektorimuotoisia kuvia. Muuten häviöttömästi pakattuja bittikarttoja (tif, png). Tarkista Viivojen paksuus ja tyyli, fonttien ja symbolien koko. Jos useita kuvia, yhteinen ulkonäkö. Viimeinen tarkistus aina paperilla, tulostettuna mahdollisimman lähelle lopullista kokoa.
Julkaisumediat Verkko Formaatti Tekstin sekaan upotettuna bittikarttoja (png,gif,jpg). Myös vektorimuodossa, tosin kaikki selaimet eivät välttämättä ymmärrä. Muista tarkistaa kuvatiedoston koko. Tarkista pakkauksen laatu. Sopivuus näytölle Kuvan pitää mahtua näytölle, ja olla selkeä. Tekstin joukkoon upotetusta kuvasta voi olla erikseen tarkempi versio.
Julkaisumediat Esitys Kuvien selkeys ja ymmärrettävyys olennaista: kuulijalla rajattu aika tarkastella kuvaa. Kuulija ei pääse takaisin tutkimaan kuvaa. Valaistus sekä projektorin resoluutio vaihtelevat. Tarkista siis aina kuvien selkeys valkokankaalla. Värien käyttö on suositeltavaa Vaatii kuitenkin lisäksi suunnittelua. Värikalibroinnit eivät aina kohdallaan, älä luota liikaa väreihin. Yksinkertaisempia kuvia Usein tiukkaan rajattu aika epäoleellisuudet pois. Vähemmän asiaa per kuva, Korosta tärkeintä.
Kuvien tekeminen Johdanto Tällä kurssilla Laskenta ja data-analyysi Pythonilla Piirtäminen Matplotlibillä Muita vaihtoehtoja Laskentaan Octave, Matlab, IDL,... Datan visualisaatioon Gnuplot, Matlab, IDL,... Piirtämiseen Xfig, IPE, L A T E Xpaketit, Dia,... Näistä lisää myöhemmin
Kuvien tekeminen Matplotlib Matplotlib Käyttää Pythonin numeriikkakirjastoa NumPy. Tällä kurssilla raapaistaan vain pintaa. 2D, 3D, contour, surface, scatter plots. Tukee sekä vektori- että bittikarttamuotoja Vektori: eps, ps, pdf, svg Bittikartta: png, jpeg Aapuuva Käyttöopas löytyy kotisivuilta. Dokumentaatio jokaiselle komennolle, myös kotisivuilta. Lisäksi esimerkkejä erilaisiin tilanteisiin.
Kuvien tekeminen Kuvan piirtäminen Kuvan piirtämisen vaiheet Importataan matplotlib komennolla import pylab Määritetään data. Plotataan data halutulla tavalla: plot, semilogx, semilogy, loglog imshow hist contour Jne... Määritellään akselit, rajat, otsikot ja muut. Näytetään ja/tai tallennetaan kuva funktioilla show ja savefig.
Kuvien tekeminen Ensimmäinen kuva Esimerkki import numpy as np import pylab as pl import math as m import os 1.0 0.5 x y = m.pi*np.arange(100)/49.0 = np.sin(x) 0.0 pl.plot(x,y) -0.5 pl.savefig( esim01.eps ) os.system( epstopdf esim01.eps ) pl.show() -1.0 0 1 2 3 4 5 6 7
Kuvien tekeminen Ensimmäinen kuva, paranneltuna Esimerkki import numpy as np import pylab as pl import math as m, os k1 = pl.figure(figsize=(4,4)) x = m.pi*np.arange(100)/49.0 y = np.sin(x) pl.plot(x,y) pl.xlim([0.0, 2.0 * m.pi]) pl.ylim([-1.1, 1.1]) pl.title( Esimerkki 2 ) pl.xlabel( x ) pl.ylabel( sin(x) ) sin(x) 1.0 0.5 0.0-0.5 Esimerkki 2 pl.savefig( esim02.eps ) os.system( epstopdf esim02.eps ) pl.show() -1.0 0 1 2 3 4 5 6 x
Kuvien tekeminen Pisteet ja virheet Esimerkki import numpy as np import pylab as pl import math as m, os 1.0 Esimerkki 3 k1 = pl.figure(figsize=(4,4)) x = m.pi*np.arange(25)/12.0 y = np.sin(x) pl.errorbar(x,y,y*2e-1,fmt= o ) pl.xlim([0.0, 2.0 * m.pi]) pl.ylim([-1.25, 1.25]) pl.title( Esimerkki 3 ) pl.xlabel( x ) pl.ylabel( sin(x) ) pl.savefig( esim03.eps ) os.system( epstopdf esim03.eps ) pl.show() sin(x) 0.5 0.0-0.5-1.0 0 1 2 3 4 5 6 x
Kuvien tekeminen Otsikot Kuvan otsikko Kuvan otsikko kertoo tiiviisti mitä kuva esittää. title(...) pl.title( Otsikkoteksti ) Tekstin tyyliä voi muokata monin tavoin. pl.title( Otsikkoteksti, fontsize= large ) Akselien otsikot Akselien otsikot ilmoittavat mitä akselit merkitsevät. xlabel(...), ylabel(...) pl.xlabel( x-akseli ) Lisäksi on hyvä ilmoittaa käytetyt yksiköt. pl.xlabel( x-akseli (yksikkö) ) pl.xlabel(r $\theta (^\circ)$ )
Kuvien tekeminen Akselien skaalaus ja rajaus Skaalaus Lineaarinen skaalaus: plot(...) Logaritminen skaalaus: semilogx(...), semilogy(...) ja loglog(...) Rajat Molemmille akseleille: axis(...) pl.axis([0.0, 10.0, 0.0, 1.0]) Yhdelle akseleille: xlim(...) ja ylim(...) pl.xlim([0.0, 10.0])
Kuvien tekeminen Akselien merkit Merkit Yhdelle akseleille: xticks(...) ja yticks(...) Pelkät paikat: pl.xticks([0.0, 5.0, 10.0]) Paikat ja nimet paikoille: pl.xticks([0.0, math.pi], [ 0, r $\pi$ ])
Kuvien tekeminen Useita kuvia Useita kuvia yhdessä kuvassa Kuvaan voi sisällyttää useita alikuvia joko automaattisesti subplot(...) Tai hieman työläämmin, mutta paremmalla kontrollilla axes(...) Intensity (arbitrary units) 1/4π ι=0 ι=25 ι=45 ι=75 0 0 30 60 90 Zenith angle (degrees) ι=25 ι=45 ι=75 0 90 180 270 360 Azimuth angle (degrees)
Kuvien tekeminen Muuta Matemaattisten merkintöjen käyttö Kaavoja ja erikoismerkkejä voi käyttää teksteissä. Merkintä L A T E X-tyyliin. r $\theta_e$ θ e r $\sum_{i=0}^n a_n \sin(nx)$ P n i=0 an sin(nx) Joitain rajoituksia, ei täysin L A T E Xyhteensopiva. Käyrien nimet Piirrettäville käyrille voi antaa selitystekstit plot(..., label= nimi ) Nimet saa kuvaan automaattisesti legend(...)
IRAF IRAF/Pyraf IRAF Pohja 70-luvulla, nykyisin pyörittää NOAO Komentokielenä cl/ecl nykyisin myös Python Plottien tuottaminen X11 ikkunajärjestelmässä yleensä xgterm - terminaaliohjelmalla Myös SAOImage DS9 StScI ja monet muut tehneet omia pakettejaan Nykyisin myös Python versio Pyraf
Midas Midas / PyMidas Midas Perustuu MCL komentokieleen Peräisin 80 -luvulta ESO projekti Nykyisin myös Python versio PyMidas
IDL IDL / Astronomy library IDL Kaupallinen. Kallis. Helppo kieli, mutta kokonaisuus vähän sekava. Löytyy myös (ainakin) yksi graafinen käyttöjärjestelmä. Observatoriolla lisenssi, voi siis käyttää Observatorion koneilla.
XSPEC XSPEC XSPEC Alustasriippumaton Röntgen-datan käsittelytyökalu. Vuodelta 1983. Osa XANADU -pakettia Käyttää TCL -skriptauskieltä.
Muut Paljon muitakin Planeettakunnan kohteille ISIS. Laitekohtaisia CIAO (Chandra) SAS (XMM-Newton) Yleisiä Matlab, Octave R fv