Kirjoittaja Aihe: Lämpötila-arvon korjaus  (Luettu 4035 kertaa)

0 jäsentä ja 1 Vieras katselee tätä aihetta.

Poissa angle

  • Moderaattori
  • *****
  • Viestejä: 535
    • Hovilaweather
Lämpötila-arvon korjaus
« : Keskiviikko, 27.07.2011, 18:11 »
Muiden mittarien ja aistein havaitun perusteella lämpötila näyttää liikaa, varsinkin iltaisin ja auringonpaisteella. Lämpötila anturin siirtoa kyllä suunnitellaan, mutta hyvään paikkaan tarvittaisiin 15 metrin johdot anturien välille. Tätä pitää vielä funtsia. Nyt laitoin tuohon clientraw.txt malliin ohjelmallisen korjauksen kokeeksi, jota nyt seuraillaan :-\. Muuta mallit, kuten banneri on pelkästään mitatuilla arvoilla toistaiseksi.

Lämpötilan mittauksen ohjelmallinen korjaus kerroin kaava on x - (x * 0.1 - 1).

Talvella tämä kai sitten nostaa vähän lämpötilaa, mutta sinne on vielä aikaa. ::)

Saa ehdotella muitakin kaavoja.


Poissa angle

  • Moderaattori
  • *****
  • Viestejä: 535
    • Hovilaweather
Vs: Lämpötila-arvon korjaus
« Vastaus #1 : Maanantai, 21.05.2012, 19:32 »
Tämä piti taas ottaa käyttöön. Ei taida tuosta lisä varjostimesta paljoa olla hyötyä. Käyrä on tasaisempi, mutta kun mittauspaikka ei ole todellista lämpötilaa edustava niin eihän se itsekään mittausta voi korjata.

Edit.
kaava on nyt x - (x * 0.1 + 1)
« Viimeksi muokattu: Maanantai, 21.05.2012, 19:38 kirjoittanut angle »

Poissa veko

  • Aktiivinen jäsen
  • *
  • Viestejä: 39
    • RitvalaWX
Vs: Lämpötila-arvon korjaus
« Vastaus #2 : Maanantai, 21.05.2012, 19:59 »
Eikös tollasella kaavalla korjatulla lämpötilalla ole se huono puoli, että yöllä ja kun aurinko on pilvessä näyttää lämpötila liian pientä...(tuolla kaavalla alempi lämpötila muuttuu toki vähemmän, mutta muuttuu silti)?

Lainaus
mittauspaikka ei ole todellista lämpötilaa edustava niin eihän se itsekään mittausta voi korjata.

Jos tarkoitat, että mittauspaikka on auringossa, niin sehän ei ole mikään ongelma kunnollisella säteilysuojalla. Onhan noi Ilmatieteen laitoksenkin anturit aukealla paikalla, mutta ympäröity säteilysuojalla...

Poissa angle

  • Moderaattori
  • *****
  • Viestejä: 535
    • Hovilaweather
Vs: Lämpötila-arvon korjaus
« Vastaus #3 : Tiistai, 22.05.2012, 12:29 »
Eikös tollasella kaavalla korjatulla lämpötilalla ole se huono puoli, että yöllä ja kun aurinko on pilvessä näyttää lämpötila liian pientä...(tuolla kaavalla alempi lämpötila muuttuu toki vähemmän, mutta muuttuu silti)?
Olet oikeassa. Tässä vaan koitan hakea sellaista keskitietä virheen osalta.

Jos tarkoitat, että mittauspaikka on auringossa, niin sehän ei ole mikään ongelma kunnollisella säteilysuojalla. Onhan noi Ilmatieteen laitoksenkin anturit aukealla paikalla, mutta ympäröity säteilysuojalla...
Aivan totta tämäkin. Sellainen mutu tästä mittauspaikastani on että siihen vaikuttaa muitakin tekijöitä. Mittauspaikka on luoteen suunnalla noin neljän metrin korkeudellä katon harjakohdalla räystään alla. Epäilen että tuo seinästä nouseva lämpö vaikuttaa mittaukseen.

Eilen tuli hätäisesti muutettua kaavaa. Nyt vähän pohdittuani kaava näyttää tältä:
kaava on nyt x - (x * 0.4 - 8 ) ja lisätty ehto että kaava huomioidaan vasta yli 20 asteen lämpötilassa.

Edit kaava päivitetty ja lisätty korjauskäyrä.
« Viimeksi muokattu: Lauantai, 04.05.2013, 14:19 kirjoittanut angle »

Poissa angle

  • Moderaattori
  • *****
  • Viestejä: 535
    • Hovilaweather
Vs: Lämpötila-arvon korjaus
« Vastaus #4 : Tiistai, 14.05.2013, 16:10 »
No nyt kun tuon anturin siirron jälkeen näyttää mittaustulokset varsin todellisilta ja käyrätkin tasaisilta niin otin tämän korjauskertoimen pois alkaen Toukokuun alusta. Vanhoihin mittauksiin se siis jää vaikuttamaan.

Pistänpä vielä tähän muistiin tuon kalibrointimodulin
Koodia: [Valitse]
from datetime import datetime

class Calib(object):
    def __init__(self, params):
        # default calib started
        self.pressure_offset = eval(params.get('fixed', 'pressure offset'))
        # Temp sensor relocated to shadowed place 5th May 2013
        self.temp_stop_fault = datetime(2013, 5, 5, 11, 0, 0)

    def calib(self, raw):
        result = dict(raw)
        # sanitise data
        if result['wind_dir'] is not None and result['wind_dir'] >= 16:
            result['wind_dir'] = None
        # calculate relative pressure
        result['rel_pressure'] = raw['abs_pressure'] + self.pressure_offset
        # correct sun temp effect
        if raw['idx'] < self.temp_stop_fault and raw['temp_out'] is not None and raw['temp_out'] >= 20:
            result['temp_out'] = raw['temp_out'] - (raw['temp_out'] * 0.4 - 8)
        else:
            result['temp_out'] = raw['temp_out']
        # correct rain
        result['rain'] = raw['rain'] * 1.1
        return result