Uutiset:

Ei uusia uutisia.

Main Menu

Tietokannan uudelleenrakentelu

Aloittaja weatherc, maanantai, 12.09.2011, 23:01

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

weatherc

Aloitin jo pitkään mietintämyssyssä ollutta projektia eli wx-tietokannan uudelleenrakennuksen ;)
Suurin syy tähän on muutamat arvot jotka haluan että käyttävät samaa laskentatapaa mitä FMI:kin mistä en ollut varma miten WD tekee ne, eli päivän keskilämpötila, Lämpösumma (GDD), sekä Lämmitys- ja viilennystarve (HDD ja CDD).
Ja, yllätys, yllätys, kaikki muuttuivat.

Suluissa mistä infot niihin nappasin, tavoite oli että FMI:ltä mutta kaikkiin ei löytynyt vastausta.
- Päivän keskilämpötila käyttää 8 arvoa jotka otettu 3 tunnin välein ja jaettuna 8:lla. (FMI).
- GDD, päivän keskilämpö - 5 astetta, jos keskiarvo ollut yli tuon +5 asteen. (FMI)
- HDD, raja-arvona 17 astetta käyttäen vuorokauden keskilämpötilaa kun WD:ssä oletuksena 18.3 astetta eikä hajua mitä lukemaa se käyttää (FMI & Wikipedia)
- CDD raja-arvona 18 astetta, ei hajuakaan mitä WD:ssä on oletus. (Wikipedia)

Väsäsin kätevän pikkurikkisen php-häkkyrän joka selasi WD:n xxxxlg.txt-filut läpi ja puski ulos tuotoksen .sql-filuna jossa INSERT-komennot, 1 filu per vuosi. Jotta siitä ei tullut aivan mahdottoman suurta otin lukemat 10 min välein, siltikin rivejä kertyi yhteensä 280K. :P
Sen lisäksi se puski ulos yhden .sql-filun jossa yksi rivi peri päivä jossa maksimit/minimit ja keskiarvot käyttäen yllä olevia laskentatapoja.
Normi 92011lg.txt:in lisäksi skripti parsi myös 92011vantagelog.txt ja 92011lgsun.txt-filut läpi.
Nuo 7 filua (66 MB) uppasin dedille ja ajoin sisään dumpit mysliin ssh:lla, violá.
Kyseistä php-häkkyrää en suosittele ajettavaksi live-serverillä, sen verran hidasta ja raskasta oli tuo parsiminen  :P ::)

Muutokset oli joskin seuraavat jos etusivua katselee, joka nyt toimii uudella kannalla. (Tilasto/vertailu-sivut toimii vielä vanhalla kannalla):
- kuukauden/vuoden keskilämpötila pitäisi nyt toimia myös kuukauden ensimmäisenä päivänä eikä näyttää mitä sattuu kuten WD:n customtagi tekee.
- GDD & HDD laskivat
- CDD nousi hitusen

Snowi

Tuo FMI tapa mitata päivän keskilämpötila ei ole se tarkin mahdollinen, mutta he tekevät tuon todennäköisesti siksi, että aikoinaan on mittauksia tehty huomattavasti harvemmin ja silloin ollaan todennäköisesti käytetty tuota 3 tunnin välein otettua arvoa. Nykyään käytetään samaa, jotta pystytään tekemään vertailuja vanhoihin tilastoihin.
En tiedä tarkalleen miten WD keskilämpötilan laskee, mutta luulisi laskevan yksinkertaisesti siten, että jos tietoja tallennetaan minuutin välein logiin, niin tällöin lasketaan nämä kaikki minuutit ja jaetaan niiden määrällä. Näin saadaan todella tarkka vuorokauden keskilämpötila, kun mittauksia tehdään noin tiheesti  :)

Itselläkin oli alkuun pitkään lämmitystarvelukuna tuo 18.3 mikä on vakiona WD:ssa. Nykyään kaikki tilastot on mitattu tuolla virallisella 17. Ainakin kaikki vähänkään virallisemmat mittaukset oli tehty juurikin tuolla 17 luvulla, joten sitä päädyin käyttämään itsekin.
Viilennystarveluvusta en tiedä, sillä sitä ei tietääkseni pääse WD:sta muuttamaan ollenkaan, ainakaan itse en ole löytänyt sellaista kohtaa, josta sitä voisi muuttaa.

weatherc

Tein pientä reaserchia tuon keskilämpötilan suhteen ja itse asiassa FMI:n on yksi niistä tarkimmista virallisista mitä tutkailin.
Yksi yleisesti käytetty on niinkin utooppinen kun max + min / 2.
yr.no/met.no tais käyttää 4 lukemaa 6 tunnin välein / 4
näin myös sellaista kun max + min + x lukemaa y tunnin väelin / z määrällä
jne.


Snowi

Mietin vain sitä, että eikö se periaatteessa ole aina tarkempi mitä useammin noita mittauksia tehdään? Tällöin vuorokauden keskilämpötilaan pääsee vaikuttamaan nopeat hyppäykset ja laskut päivän aikana, mutta jos mittauksia tehdää vaikka vain neljän tunnin välein, niin tällöin tuollaiset jäävät kokonaan huomiotta. Mutta toisaalta hyvä puoli tuossa että tekee oman kannan vastaamaan noita virallisia on se, että voi paremmin vertailla omia tuloksia virallisten kanssa  :)

weatherc

LainaaMietin vain sitä, että eikö se periaatteessa ole aina tarkempi mitä useammin noita mittauksia tehdään?
Noin munkin mielestä sen pitäisi olla, kaikki datarivit kasaan ja lopuksi jaetaan lukumäärällä.

LainaaMutta toisaalta hyvä puoli tuossa että tekee oman kannan vastaamaan noita virallisia on se, että voi paremmin vertailla omia tuloksia virallisten kanssa
Tuo oli juuri lähinnä munkin aatos tuossa että pystyisi paremmin vertailemaan virallisten kanssa kun laskentatapa on sama.

Tosin tein kokeen jossa käytin sekä tuota 8krt/päivä että kaikki rivit eikä se ero loppupeleissä kovin suurta ollut, joskin kyllä eroa on, mitä suurempi aikaväli sen pienempi ero, ylempi 8 lukemaa, alempi kaikki lukemat:

Eilen
13.47
13.94

Syyskuu
12.53
12.60

2011
6.89
6.88

Snowi

No eipä tuo kyllä kovin merkittävältä erolta näytä, varsinkaan kuukauden ja vuoden osalta. Päivän osalta on vähän eroa, mutta ei tuo kyllä mikään hirmuinen ero siltikään ole.

weatherc

Ei niin.
Pääasia mielestäni on kuitenkin se että koko sivu käyttää kauttaaltaan samaa laskentakaavaa, ei välttämättä se onko eroa 0.05 astetta siihen viralliseen. Mokoma erohan kuittaantuu moneen kertaan jo pelkälla anturin asennuspaikalla suuntas jos toiseen ;)

Se mitä huomasin tuossa kantaa rakennellessa on että on WD kyllä epeli..
Nuo xxxxlg.txt:it ovat kaikkea muuta kun "valiidit", on päällekkäisiä aikoja sekä sellainen kummallinen että monessa päivässä on klo 0:00-rivissä vielä edellisen päivän sademäärä.
Mysli huusi myös 4 kertaan tuota 5 vuoden dataa dumapttaessa aikaleimasta joka ei ollut valiidi (rakensin sen strtotime():lla).
Olisi todella kätevä jos joku kehittäis palikan jolla sais ne tsekattua ja korjattua.

Päällekkäiset ajat estää mm. Unique:n käyttöä myslin indexissä kunnes oon saanut siivottua ulos ne kun en kekannut mitään kätevää systeemiä saada ne parsittua ulos kun tein nuo sql-filut ilman että wamppi olisi mennyt ihan juntturaan.  ;D

Kysmys lähialueen asemille:
Kuinka paljon satoi 1. ja 2. joulukuuta 2006? ;)
Mulla nuo 2 antaa yhteensä yli 180 mm  :o

teutari

Lainaus käyttäjältä: weatherc - tiistai, 13.09.2011, 19:07
Kuinka paljon satoi 1. ja 2. joulukuuta 2006? ;)
Mulla nuo 2 antaa yhteensä yli 180 mm  :o

Eipä tainnut silloin olla lämmitintä sadekipossa kun tuo vuotuinenkin sademäärä on noin pieni mutta aika lämmintä silloin näyttää olleen. :)

khyron

Lainaus käyttäjältä: weatherc - tiistai, 13.09.2011, 19:07

Päällekkäiset ajat estää mm. Unique:n käyttöä myslin indexissä kunnes oon saanut siivottua ulos ne kun en kekannut mitään kätevää systeemiä saada ne parsittua ulos kun tein nuo sql-filut ilman että wamppi olisi mennyt ihan juntturaan.  ;D


Käytä joko INSERT IGNORE tai REPLACE.

http://dev.mysql.com/doc/refman/5.5/en/insert.html
http://dev.mysql.com/doc/refman/5.5/en/replace.html

weatherc

Lainaus käyttäjältä: khyron - tiistai, 13.09.2011, 20:56
Käytä joko INSERT IGNORE tai REPLACE.

Niin joo, totta. Tosin, se ei paljoa lohduta kun WD:n logfilu voi näyttää tältä (se on suora kaappaus meikäläisen logista), siinä siis 20 riviä yhdelle 10 minuutin pätkälle...
1  9 2011  0  0 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  1 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  2 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  3 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  4 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  5 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  1 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  2 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  3 8.9  96 08.3 1003.6   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  0 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  6 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  7 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  8 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  9 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0 10 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  6 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  7 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  8 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9
1  9 2011  0  5 8.9  96 08.3 1003.7   0   0 270 0.0 0.0 0.0 368.8 8.9