Preracun trenutnega stanja neba z weewx

(1/1)

Tminc:
Precej novejšh vremenskih postaj ima v set senzorjev že vključen tudi solarni senzor oz vsaj senzor osvetljenosti (lux). Podatek o sončnem obsevanju se da dokaj enostavno uporabit za preračun trenutnega stanja neba. Ta funkcija je sicer že vključena v Weather Display v osnovi in deluje precej dobro. Jaz jo uporabljam z DVP2 (s solarnim senzorjem) ter z Davis Vantage Vue (brez pravega solarnega senzorja; tam uporabljam temperaturni senzor v bučki). Weather Display ima to res dobro podprto.

Za namestitev nove postaje na lokaciji Veternik sem uporabil RPi, kjer bi načeloma lahko uporabil tudi Weather Display (consolewd), a sem se raje odločil za weewx. To je bil moj prvi stik z weewx. Ker je na tem forumu precej uporabnikov weewxa, mi ne zamerit, če slučajno odkrivam toplo vodo.

Za preračun stanja neba potrebuješ naslednje:
- podatek o trenutnem sončnem obsevanju (W/m2)
- podatek o trenutno maksimalno možnemu sončnem obsevanju (W/m2) za izbrano lokacijo

Naredil sem takole.
1. Dodal nov entry v databazo (maxSolarRad), nov extension field, prekompajlal databazo
2. Instaliral pyephem plugin za python
3. Dodal generacijo novega fajla (npr razmere.html) s 4 fieldi: trenutnim in teoretično najvišjim sončnim obsevanjem, čas vzhoda, čas zahoda. Za oba fielda (radiation in maxSolarRad dejansko vpisujem vsoto zadnjih 5 minut; deluje kot mehki filter). Vsebina fajla je recimo taka: 1551.0,2441.527742,05:24:16,20:56:15  
4. Bash skripta na RPi mi ta fajl prebere in preračuna, katero ikono naj uporabi (thresholdi so navadno: 75% za sončno, 50% pretežno jasno, itd.)
5. Skripta skopira ustrezno ikono v "razmere.jpg" fajl vsaki 2 minuti

Primer, kako to deluje na postaji, je tule: http://freeweb.t-2.net/vetrnik

TgT:
Lepo.
CumulusMX (tudi v1) ima teoretičen Max Solar Radiation že v svojih dnevnih logih.
A je ta Bash skripta tvoje znanje ali si mogoče našel kje na spletu?

Tminc:
Skripta je tako enostavna, da me jo je sram pripeti tukaj. Nisem programer...
Fajn bi bilo dodati, da začne preračunavati stanje neba kakšne pol ure po vzhodu in konča malo pred zahodom (odvisno, koliko direktnega sonca dobiš na lokaciji), lahko bi malo poštimal procente, kdaj kaj pokaže, itd.
Dodatno bi lahko v fajl z razmerami (številke) vpisoval temperaturo, rosišče, dež, itd. in prikazoval druge ikone (dež, megla, itd.).

Idealno bi bilo vse skupaj vključiti v weewx, ampak tega še zdaleč ne znam.

Koda:

#!/bin/bash

FILE=/home/pi/weewx/razmere.html
DIR=/home/pi/weewx/

while [ 1 ] ; do
# Preberi fajl s trenutnim in maksimalnim soncnim obsevanjem
# in casom vzhoda in zahoda

CURR=`cat $FILE | awk -F ',' '{print $1}'`
CURR=${CURR%.*}

EXP=`cat $FILE | awk -F ',' '{print $2}'`
EXP=${EXP%.*}

VZHOD=`cat $FILE | awk -F ',' '{print $3}'`
VZHOD=`date -d $VZHOD +"%s"`

ZAHOD=`cat $FILE | awk -F ',' '{print $4}'`
ZAHOD=`date -d $ZAHOD +"%s"`

TRENUTNI=`date +"%s"`

# Popravek za faktor SOLAR senzorja
Ks=110

#echo "trenutno: ${CURR}, pricakovano: ${EXP}"
#echo "vzhod: ${VZHOD}, zahod: ${ZAHOD}, trenutno: ${TRENUTNI}"

if [ $TRENUTNI -gt $VZHOD ] && [ $ZAHOD -gt $TRENUTNI ]
then
if [ $(($CURR*$Ks)) -gt $(($EXP*75)) ]
  then
#   echo "Soncno"
   `cp ikone/soncno.jpg $DIR/razmere.jpg`
  else
  if [ $(($CURR*$Ks)) -gt $(($EXP*50)) ]
    then
#     echo "Pretezno jasno"
     `cp ikone/pretezno_jasno.jpg $DIR/razmere.jpg`
    else
    if [ $(($CURR*$Ks)) -gt $(($EXP*30)) ]
      then
#       echo "Pretezno oblacno"
       `cp ikone/pretezno_oblacno.jpg $DIR/razmere.jpg`
      else
       echo "Oblacno"
#       `cp ikone/oblacno.jpg $DIR/razmere.jpg`
    fi
  fi
fi
else
#echo "Noc"
`cp ikone/noc.jpg $DIR/razmere.jpg`
fi

sleep 120
done

Navigacija

[0] Seznam sporočil