ATK tähtitieteessä. Osa 4 - IDL input/output. 19. syyskuuta 2014

Samankaltaiset tiedostot
ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Ohjelmoinnin perusteet Y Python

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Ohjelmoinnin perusteet Y Python

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Ohjeita. Datan lukeminen

linux: Prosessit kill PID lopettaa prosessin PID, jos siihen on oikeudet Ctrl + c lopettaa aktiivisen prosessin L7: linux

ASCII-taidetta. Intro: Python

Ohjelmoinnin peruskurssi Y1

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

Ohjelmoinnin perusteet Y Python

ATK tähtitieteessä. Osa 5 - IDL datan sovitusta ja muita ominaisuuksia. 25. syyskuuta 2014

Ohjelmoinnin perusteet Y Python

linux: Prosessit kill PID lopettaa prosessin PID, jos siihen on oikeudet Ctrl + c lopettaa aktiivisen prosessin L7: linux

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python

Matemaattinen optimointi I, demo

TAIVAANMEKANIIKAN KOTITEHTÄVÄT (syksy 2014)

Ohjelmoinnin jatkokurssi, kurssikoe

Toinen harjoitustyö. ASCII-grafiikkaa

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Valitse ruudun yläosassa oleva painike Download Scilab.

Ohjelmoinnin perusteet Y Python

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Ohjelmoinnin perusteet Y Python

IDL - datan sovitus. ATK tähtitieteessä. IDL - esimerkiksi linfit. IDL - esimerkiksi linfit

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

linux: Ympäristömuuttujat

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

linux: Ympäristömuuttujat

Numeerinen analyysi Harjoitus 1 / Kevät 2017

ITKP102 Ohjelmointi 1 (6 op)

Johdatus ohjelmointiin

Ohjelmoinnin perusteet Y Python

Matlab- ja Maple- ohjelmointi

T Sovellusohjelmat Matlab osa 4: Skriptit, funktiot ja kontrollirakenteet

Kappale 18: Teksti-editori

Ohjeita LINDOn ja LINGOn käyttöön

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Makrojen mystinen maailma lyhyt oppimäärä

ASTERI KIRJANPITO KIELIVERSION OHJE

Ubuntu tunkkausta En US / Helsinki asennuksen jälkeen jotta loki5ac toimisi oikein Winen päällä.

Binäärioperaatiot Tiedostot ja I/O

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Cabas liitännän käyttö AutoFutur ohjelmassa

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola

Älä vielä sulje vanhoja

Luentaohjelma M-Bus mittareille Versio 1.77 ja uudemmat

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Sähköpostilla tulevien hinnastojen tallentaminen

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

Fortran 90/95. + sopii erityisesti numeriikkaan:

Lyhyt kertaus osoittimista

Midland BTNext -päivityssovellus

Muuttujien määrittely

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

LUSAS tiedosto-opas. Matti Lähteenmäki

SÄHKÖPOSTIN PERUSKURSSI

ATK tähtitieteessä. Osa 2 - IDL perusominaisuudet. 12. syyskuuta 2014

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Jypelin käyttöohjeet» Ruutukentän luominen

5. HelloWorld-ohjelma 5.1

Johdatus Ohjelmointiin

Tekstinkäsittely 1. Peruskäyttö. Tietotekniikan perusteet Metropolia Ammattikorkeakoulu Vesa Ollikainen

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Tekstieditorin käyttö ja kuvien käsittely

Ohjelmoinnin peruskurssi Y1

linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia

Harjoitustyö: virtuaalikone

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Ohjelmoinnin peruskurssi Y1

PDF-tiedostojen teon pikaohje

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Tieteellinen laskenta 2 Törmäykset

Moodle-oppimisympäristö

Java-kielen perusteita

Verkkojulkaiseminen Minna Väisänen. HTML5-tehtävä

SSH Secure Shell & SSH File Transfer

Transkriptio:

19. syyskuuta 2014

IDL - INPUT/OUTPUT-rutiinit IDL pystyy lukemaan ja kirjoittamaan monentyyppisiä tiedostoja, esim. FORTRAN ja C-kielten ohjelmien tulostusta. Käytössä on myös monipuoliset tulostuksen formatointikomennot. Pääperiaate: Ennen lukemista tiedosto on avattava vapaana olevaan laitenumeroon. Komento on erilainen riippuen halutaanko tiedostoon kirjoittaa, vai vain lukea se. Tiedosto pitää myös sulkea kun sen käsittely lopetetaan.

IDL - Tiedoston avaaminen ja sulkeminen Tiedoston avaaminen vain lukemista varten laitenumerolle 1: openr,1, tiedostonimi Tiedoston avaaminen kirjoittamista varten laitenumerolle 2, mahdollinen aiempi sisältä tuhoutuu: openw,2, tiedostonimi Tiedoston avaaminen kirjoittamista ja lukemista varten: openu,3, tiedostonimi HUOM! Samalla laitenumerolla voi olla vain yksi tiedosto avoinna kerralla. Tämän vuoksi on tärkeää sulkea tiedostot niiden käsittelyn jälkeen. Tiedoston sulkeminen laitenumerosta 1: close,1

IDL - Lukeminen ja kirjoittaminen (formatoitu) Normaalin formatoidun tekstitiedoston käsittelyssä käytetään komentoja, jotka vastaavat IDL-teksti-ikkunasta lukua ja kirjoitusta (read, print): readf,1,muuttuja1,muuttuja2,... lukee laitenumerolta 1. printf,1,muuttuja1,muuttuja2,... kirjoittaa laitenumerolle 1. Huomaa siis, että laitenumero joudutaan aina antamaan tiedostoja käsiteltäessä.

IDL - Lukeminen ja kirjoittaminen (formatoitu) Esimerkiksi jos meillä on yksinkertainen kaksirivinen tiedosto nimeltä testi: 10 20 30 40 50 60 se voidaan lukea seuraavasti: IDL> openr,1, testi IDL> readf,1,a,b,c IDL> readf,1,d,e,f IDL> close,1 Tässä esimerkissä tiedoston jokainen alkio siis tallennetaan eri muuttujaan (a=10, b=20, c=30, d=40, e=50, f=60). Vastaavasti tiedoston kirjoittaminen: IDL> openw,1, testi IDL> printf,1,10,20,30 IDL> printf,1,40,50,60 IDL> close,1

IDL - Lukeminen (formatoitu) Yleensä luettavat tiedostot eivät kuitenkaan ole lyhyitä. Tällöin voidaan ensin tarkistaa tiedoston rivien lukumäärä, ja käyttää FOR- tai WHILE-rakennetta, tai suoraan taulukkoon lukua tiedoston käsittelyssä. Oletetaan jälleen tiedosto nimeltä testi, joka sisältää x,y,z-arvoja muodossa: x1 y1 z1 x2 y2 z2... xn yn zn Luetaan tämä tiedosto nyt kaikilla tavoilla.

IDL - Lukeminen (formatoitu) FOR-rakenteella: ;rivien lukumäärä muuttujaan n proseduurin file lines avulla n=file lines( testi ) ;luodaan taulukot muuttujille x=fltarr(n) & y=x & z=x ;avataan tiedosto lukua varten openr,1, testi for i=0,n-1 do begin ;rivin luku temp-muuttujiin readf,1,temp1,temp2,temp3 ;ja tallennetaan arvot taulukoihin x(i)=temp1 y(i)=temp2 z(i)=temp3 endfor ;suljetaan tiedosto close,1

IDL - Lukeminen (formatoitu) WHILE-rakenteella: ;rivien lukumäärä muuttujaan n proseduurin file lines avulla n=file lines( testi ) x=fltarr(n) & y=x & z=x ;avataan tiedosto lukua varten openr,1, testi i=i+1 ;not eof(laitenumero) kertoo että jatketaan tiedoston loppuun while not eof(1) do begin ;rivin luku temp-muuttujiin readf,1,temp1,temp2,temp3 ;ja tallennetaan arvot taulukoihin x(i)=temp1 y(i)=temp2 z(i)=temp3 i=i+1 endwhile ;suljetaan tiedosto close,1

IDL - Lukeminen (formatoitu) Suoraan taulukkoon: ;rivien lukumäärä muuttujaan n proseduurin file lines avulla n=file lines( testi ) x=fltarr(n) & y=x & z=x ;avataan tiedosto lukua varten openr,1, testi ;luodaan 3*n taulukko temp=fltarr(3,n) ;rivin luku temp-taulukkoon readf,1,temp ;ja tallennetaan arvot taulukoihin x(i)=temp(0,*) y(i)=temp(1,*) z(i)=temp(2,*) ;suljetaan tiedosto close,1

IDL - Lukeminen (formatoitu) On myös tapauksia joissa tiedosto sisältää sekaisin lukuarvoja ja tekstiä. Esimerkiksi: Tämän tiedoston ensimmäinen rivi on selitystä sisällöstä. x1 y1 z1 huono x2 y2 z2 hyvä... xn yn zn huono Tällöin tiedoston avaamisen jälkeen selitysrivi alusta voidaan lukea readf-komennolla, ennen kuin loppu tiedostosta luetaan.

IDL - Lukeminen (formatoitu) Esimerkiksi edellisen esimerkkitiedoston voisi lukea seuraavalla koodinpätkällä: ;rivien lukumäärä ilman alun selitysriviä n=file lines( testi ) - 1. x=fltarr(n) & y=x & z=x & laatu=strarr(n) openr,1, testi roskaa= ;tyhjä merkkimuuttuja readf,1,roskaa ;luetaan selitysrivi for i=0,n-1 do begin readf,1,temp1,temp2,temp3,temp4 x(i)=temp1 y(i)=temp2 z(i)=temp3 laatu(i)=temp4 endfor close,1

IDL - Kirjoittaminen (formatoitu) Huomaa, että ylläolevia esimerkkejä voi käyttää soveltaen myös tiedostojen kirjoittamiseen. Esimerkiksi: x=findgen(10) & y=x/2. & z=x*2. n=n elements(x) ;avataan tiedosto kirjoitusta varten openw,1, testi for i=0,n-1 do begin ;rivin kirjoitus tiedostoon printf,1,x(i),y(i),z(i) endfor ;suljetaan tiedosto close,1

IDL - Lukeminen ja kirjoittaminen (formatoimaton) Formatoimaton tiedosto on koneen sisäisellä esitystavalla tallennettu tiedosto, jota ei pysty normaaleilla tavoilla käsittelemään. Formatoimattomia tiedostoja käytetään esimerkiksi kuvien tallentamiseen niiden kompaktiuden vuoksi. Niitä voidaan luoda myös esimerkiksi FORTRAN-kielellä. Tiedoston avaaminen ja sulkeminen tapahtuu samoilla komennoilla kuten aiemmin. Tiedostosta lukeminen ja siihen kirjoittaminen tapahtuvat komennoilla: readu,1,muuttuja1,muuttuja2,... laitenumerosta 1 lukeminen. writeu,1,muuttuja1,muuttuja2,... laitenumeroon 1 kirjoittaminen.

IDL - Muotoilulauseet Käytettäessä aiempia print- tai printf-komentoja tulostukseen ilman muotoilulauseita, IDL tulostaa luvut koko tarkkuudellaan mikä on usein tarpeetonta. Tulostuksen muokkaamiseen voidaan käyttää format= muotoilulause avainsanaa. Esimerkiksi: x=2. print,x ;tulostuu muodossa 2.00000 print,x,format= (F6.2) ;tulostuu muodossa 2.00 Erilaisia format-määrittelyjä: Fn.k liukuluvuille, n=luvulle varattava tila, k=desimaalien määrä. En.k Eksponenttiesitys. In kokonaisluvuille, n=luvulle varattava tila. An merkkitieto, n=tulostettavien merkkien määrä. nx tyhjää tilaa, n=tyhjien merkkien määrä.

IDL - SAVE ja RESTORE-komennot IDL:ssä erittäin käyttökelpoinen muuttujien tallennustapa on sen sisäisellä formaatilla tallennetut save-tiedostot. Niihin voi tallentaa mielivaltaisessa järjestyksessä kaikkia IDL:n data-muotoja (lukuja, tekstiä,... ). Tiedostoa palautettaessa ei tarvitse myöskään tietää sen sisältöä tai muuttujien kokoa, vaan ne kaikki palautetaan alkuperäisessä muodossa ja nimettyinä. Tallennus: save,var1,var2,...,filename= tiedostonimi.save Antamalla avainsanan /variables tallentuu kaikki työtilassa sillä hetkellä olevat muuttujat. Eli: save,filename= tiedostonimi.save,/variables

IDL - SAVE ja RESTORE-komennot Vastaavasti palautus: restore, tiedostonimi.save Antamalla avainsanan /verbose näet komentoriviltä palautettavien muuttujien nimet. Eli: restore, tiedostonimi.save,/verbose HUOM! Muuttujat palautetaan aktiivisena olevaan työtilaan. Tällöin jo olemassa olevia muuttujia voidaan korvata tiedostossa olevilla, jos muuttujat ovat saman nimisiä. Myös aliohjelmat ja funktiot voivat käyttää restore ja save lauseita.