Novice: Trenutno ni obvestil.
Dobrodošel, Gost. Prosim, prijavi se ali se registriraj.

 ZEVS ForumRačunalništvoOmrežja in razvijanje straniPreracun trenutnega stanja neba z weewx
Strani: [1]
Natisni
Avtor Tema: Preracun trenutnega stanja neba z weewx  (Prebrano 971 krat)
0 Člani in 1 Gost gledajo to temo.
Tminc
Cirostratus

Odsoten Odsoten

RD: 0000-00-00
Sporočila: 102


« dne: 11. Julij 2019, 08:00:24 »

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
« Zadnje urejanje: 13. Julij 2019, 19:00:14 od Tminc » Prijavljen
TgT
Altostratus

Odsoten Odsoten

RD: 1983-06-04
Sporočila: 1597


Lokacija: Dobrava, Slov.Konjice 342m.n.v.
LFC :)


WWW
« Odgovori #1 dne: 11. Julij 2019, 20:56:53 »

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?
Prijavljen

Tminc
Cirostratus

Odsoten Odsoten

RD: 0000-00-00
Sporočila: 102


« Odgovori #2 dne: 13. Julij 2019, 18:58:20 »

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
Prijavljen
Strani: [1]
Natisni
Pojdi na: