Uutiset:

22.03.2025
FinWX:n ja Ilmatieteen laitoksen välinen säädatan vastaanottopilotti on päättynyt

Säädataa siirtävä datasilta ajettiin alas 22.03.2025 kello 02:00. (22.03.2025, 00:00 UTC).

Ilmatieteen laitoksen terveiset asian tiimoilta voitte lukea täältä.

Main Menu

JpGraph -käyrien teko

Aloittaja meteorologi, maanantai, 05.05.2008, 19:58

« edellinen - seuraava »

0 Jäsenet ja 2 Vieraat katselee tätä aihetta.

khyron

Lainaus käyttäjältä: ppikkupe - maanantai, 20.02.2012, 13:40
Pitipä rekisteröityä tällekin foorumille, tervestä vain kaikille tasapuolisesti, ilmoittaakseni, että minulla meni hermo jpgraphin kanssa touhuamiseen. Kirjoittelin sitten omat skriptit. Ulkoisesti näyttää tällä hetkellä tältä:

http://www.pikkupeura.com/saa/?1

Jos kiinnostusta riittää, niin voin laittaa koodit jakoon. Mutta ensin niitä täytyy vähän siistiä, että kehtaa vieraille näyttää. PHP:llä koodattu, vaatii gd-kirjaston, data MySQL-kannasta, kommentteja koodissa nolla. Käppyröiden koot ja värit pystyy melko helposti vaihtamaan.

Eli mikä tuolla pyörii, niin Clasulta haettu ja joulun jälkeen asenneltu Fine Offset -sääasema on kytketty arkikäytöstä poistettuun miniläppäriin. Palvelinpäässä pyörii cronilla ajastettu skripti, joka tallentaa kerran minuutissa realtime.txt:n tietokantaan. Käppyrät luodaan 10 minuutin tarkkuudella syystä että realtime.txt:ssä on viimeisen 10 minuutin korkein tuulenpuuska.

Mitä pitäisi vielä tehdä, niin ehkä kerran vuorokaudessa pitäisi ajaa joku skripti, joka ensinnäkin tarkistaa, onko tietokannasta jäänyt jostain syystä muutamia mittausajankohtia tallentamatta ja täyttää ne jollain logiikalla. Samalla voisi poistaa esim. kuukautta vanhemmat mittausarvot ja tehdä niillekin jotain. Nyt datan tarkistus tehdään samalla kun käyrät piirretään, mutta fiksumpaa olisi, jos voisi luottaa, että tietokannassa ei ole "tyhjiä mittauspisteitä".


Vaikuttaa asialliselta, mieluusti koodit jakoon.

Mutta miksi aukot datassa olisivat näyttävälle päälle ongelma? Erityisesti datan täyttäminen jotenkin arpomalla kuulostaa arveluttavalta.

ppikkupe

Lainaus käyttäjältä: khyron - maanantai, 20.02.2012, 15:23Vaikuttaa asialliselta, mieluusti koodit jakoon.

Mutta miksi aukot datassa olisivat näyttävälle päälle ongelma? Erityisesti datan täyttäminen jotenkin arpomalla kuulostaa arveluttavalt

Jees, kunhan tulee sopivaa taukoa, niin laitan koodit ladattavaksi. Tuosta ei ole tarkoitus tehdä pidempiaikaista projektia, mutta hiukan niitä täytyy kuitenkin siistiä.

Niin, toisaalta, ei kait aukot ongelmakaan ole. Lähinnä minua alkoi tekovaiheessa häiritsemään ajatus siitä, että piirrettävä käyrä ei olisi katkojen kohdalla yhtenäinen... Sen suurempaa syytä siinä ei ole taustalla. Tällä hetkellä jos arvo puuttuu, niin käytetään edellistä mittausarvoa.

weatherc

Muistaakseni jPGraph vetää vain viivan data 1 ja 2 välille, eli jos "aukko" niin se vetää vain viivan edellisen ja seuraavan datan välille kunhan ei sitä "tyhjää" dataa ole mukana arrayssä jota sille syötetään. Eli kannattaa tarkistaa että syötetyt datat ovat numeerisia.

khyron

Lainaus käyttäjältä: ppikkupe - maanantai, 20.02.2012, 17:26
Lainaus käyttäjältä: khyron - maanantai, 20.02.2012, 15:23Vaikuttaa asialliselta, mieluusti koodit jakoon.

Mutta miksi aukot datassa olisivat näyttävälle päälle ongelma? Erityisesti datan täyttäminen jotenkin arpomalla kuulostaa arveluttavalt

Jees, kunhan tulee sopivaa taukoa, niin laitan koodit ladattavaksi. Tuosta ei ole tarkoitus tehdä pidempiaikaista projektia, mutta hiukan niitä täytyy kuitenkin siistiä.

Niin, toisaalta, ei kait aukot ongelmakaan ole. Lähinnä minua alkoi tekovaiheessa häiritsemään ajatus siitä, että piirrettävä käyrä ei olisi katkojen kohdalla yhtenäinen... Sen suurempaa syytä siinä ei ole taustalla. Tällä hetkellä jos arvo puuttuu, niin käytetään edellistä mittausarvoa.


Mun mielestä on parempi että puuttuvaa arvoa ei yritetä arpoa vaan selkeesti näytetään että se puuttuu. Mutta jos lähdetään hifistelemään niin paras olis ehkä säädettävä aika millä vois ilmottaa kuinka lyhkänen katkos hoidettas vaan viivalla ja sen yli menevä katkos näytettäs. Esim. kun mulla arvot menee minuutin välein kantaan niin yhden arvon puuttuminen ei oikeastaan ole ongelma.

ppikkupe

Lainaus käyttäjältä: khyron - maanantai, 20.02.2012, 19:27Mun mielestä on parempi että puuttuvaa arvoa ei yritetä arpoa vaan selkeesti näytetään että se puuttuu. Mutta jos lähdetään hifistelemään niin paras olis ehkä säädettävä aika millä vois ilmottaa kuinka lyhkänen katkos hoidettas vaan viivalla ja sen yli menevä katkos näytettäs. Esim. kun mulla arvot menee minuutin välein kantaan niin yhden arvon puuttuminen ei oikeastaan ole ongelma.

Jees, minullakin menee arvot kantaan minuutin välein, mutta parsittaessa ne haetaan vain tasakymmenminuutteina. Siitä ei näkynyt suurtakaan hyötyä, jos käyrät piirsi minuutin tarkkuudella. Rasittipa vain palvelinta. Mutta onpahan kuitenkin dataa, jos sille keksii jotain käyttöä.

Teoriassa järjestelmä on aika luotettava. FTP-yhteys toimii hyvin. Croni nakuttaa skriptin pätkää kellon tarkkuudella. Mittausarvon aika otetaan siitä hetkestä kun data tallennetaan tietokantaan, ei realtime.txt:n arvosta. Eli periaatteessa "aukkoja" ei pitäisi tulla ellei sitten palvelin ole alhaalla.

Käytännössä hankaluutta tuli siitä, että minulla ei ole tuolle palvelimelle crontabin ajo-oikeutta (ehkä sen saisi jos kysyisi), joten ajastus täytyi hoitaa toisen palveluntarjoajan palvelimelta käsin http-kutsuna. Se taas ei näytä aina toimivan pätkimättä, mutta hyvällä prosentilla kuitenkin.

Jos jotain isompaa jatkokehitystä teen, niin ajastetuissa tehtävissä voisi tosiaan parsia dataa vähän pidemmälle ja huolehtia mahdollisista häiriötilanteistakin. Varsinaisilla sivuilla olevien skriptien ei tarvitsisi sitten huolehtia mistään muusta kuin piirtää käppyrä valmiiksi käsitellystä datasta.

Nummika

Nyt hiukan sekoitan teidän juttua, mutta aikanaan kun väsäsin yksinkertaista graafia one-wire verkon mittaukseen kokeilin tuota jpgraphia ja en siitä ymmärtänyt mitään  :D
Sitten tutustuin gnuplot ohjelmaan http://www.gnuplot.info/ jos tekeen ihan jotain yksinkertaista gafiikkaa niin tuo oli paljon yksinkertaisempi ainakin linux pohjaisena, toimii myös windowsissa.

khyron

Lainaus käyttäjältä: Nummika - tiistai, 21.02.2012, 08:35
Nyt hiukan sekoitan teidän juttua, mutta aikanaan kun väsäsin yksinkertaista graafia one-wire verkon mittaukseen kokeilin tuota jpgraphia ja en siitä ymmärtänyt mitään  :D
Sitten tutustuin gnuplot ohjelmaan http://www.gnuplot.info/ jos tekeen ihan jotain yksinkertaista gafiikkaa niin tuo oli paljon yksinkertaisempi ainakin linux pohjaisena, toimii myös windowsissa.

Gnuplot on hyvä jos tekee graafit ajastetusti staattiseksi, jos taas dynaamisesti haluaa generoida graafit se on vähän huono kun pitää aina käynnistää uusi prosessi.

Sikäli olen kyllä pohtinut että graafit voisi hyvin generoida kymmenen minuutin välein, kunneivät ne oikeasti niin nopeasti muutu että tiheämpi päivitysväli olisi tarpeellinen. Tuolla saisi myös kuormaa pois palvelimelta.

Nummika

No linux on siitä helppo että siihen voi tehdä kaikenlaisia ajastuksia crontabbiin, kai saman saa jotenkin windowssiinkin.
Itsellä käy hakemassa minuutin välein mittaustiedot ja tekee niistä graafin muistaakseni 1440 viimeisimmästä mittauspisteestä, jolloin graafi näkyy viimeisen vuorokauden ajalta.Toki saa niinkin että mittaa minuutin välein ja tekee graafin jonka lähettää esim 10 min välein nettisivulle
http://nummika.pp.fi/Premier13/ultimate.html Hyvin yksinkertainen graafi, html koodissa ei vain ole mitään että sivu päivittyisi itse.
Ei paljoa rasita konetta eikä palvelinta, vanha läppäri sitä siellä pyörittelee.

weatherc

JpGrapheista luovuin aikoinas koska "näyttivät kivikautiselta" ja siirryin javascript-pohjaisiin kuten Flot tai Highcharts johon saa tooltippeja sun muuta hubaa mukaan ;D
Nämä lukevat datat datatiedostosta tai js-arraystä ihan miten haluaa.

Mutta, JpGraphitkin voi tallentaa kuviksi jos haluaa, näin voi sivulla näyttää sitä kuvaa ja cronilla tai VBS-scriptillä + SystemShedulerillä tai jollain generoida ne ajastetusti tasaisen väliajoin. Tämä on parmepi keino varsinkin jos sivulla on vierailijoita edes pikkasen enemmän kun yks kerrallas kattelemassa niitä koska PHP:n GD voi olla suht raskas.

ppikkupe

Lainaus käyttäjältä: weatherc - tiistai, 21.02.2012, 11:23JpGrapheista luovuin aikoinas koska "näyttivät kivikautiselta" ja siirryin javascript-pohjaisiin kuten Flot tai Highcharts johon saa tooltippeja sun muuta hubaa mukaan ;D

Tattis muuten vinkistä Highchartsin suhteen. Jos olisin tuosta aiemmin tiennyt, niin aika hilijasta, että olisin itse alkanut koodaileen...  ;D Alkuinnostuksen jälkeen ei se nyt niin mukavaa tuohua sentään ole.

Mutta on siinä omat etunsakin, että käyrät on (pieninä) kuvatiedostoina. Ainakin jos miettii, että tekisi erillisen mobiiliversion.