Berechnung der Sonnenscheindauer in weewx

wenn es um andere Software geht
Benutzeravatar
ManfredK
Beiträge: 486
Registriert: 16 Mai 2009 07:54
Wohnort: Ruppersthal in Niederösterreich
Hat sich bedankt: 9 mal
Kontaktdaten:

Berechnung der Sonnenscheindauer in weewx

Beitrag von ManfredK »

Hallo,
Ich habe gestern begonne die Sonnenscheindauer in meiner weewx-Konfiguration einzubauen.

Jetzt hab ich da mal ein paar Fragen.

Wo liegt eigentlich der Unterschied in der sunduration.py (https://www.pc-wetterstation.de/weewx/u ... ration.zip)
un der sunrainduration.py (https://www.pc-wetterstation.de/weewx/u ... ration.zip)?

Wennn ich es richtig sehe, wird ja in der sunduration.py nur ein neuer Wert (sunshine_time) in der Datenbank hinzugefügt, und bei der sunrainduration.py werden insgesamt 6 neue Werte in der DB geschrieben, wobei in beiden Varianten die sunshine_time vorkommt.
Mir kommt aber vor, dass dieser Wert in den beiden Varianten nicht vergleichbar ist.

Wenn mir jemand eine Erklärung geben könnte, was bei der sunrainduration.py und bei der sunduration.py da eigentlich für Werte in die DB geschrieben werden, wäre ich sehr dankbar.
Benutzeravatar
Werner
Site Admin
Beiträge: 5648
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 56 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von Werner »

Es handelt sich um diese Werte:
'sunshine_time' = Wert ab wann Sonnenscheindauer erfasst wird in W/m²
War früher der eigentliche Sonnenschein-Dauerwert in Minuten
wurde aber im Sommer 2023 auch auf Sekunden umgestellt (nur sunduration.py)

'sunshineDur' = Sonnenscheindauer-Wert im Archiv-Intervall in Sekunden
'rainDur' = Regendauerwert im Archiv-Intervall in Sekunden
'hailDur' = Regendauerwert (Ecowitt-Piezo) im Archiv-Intervall in Sekunden

'sunshineDur_2' Sonnenscheindauer-Wert im Archiv-Intervall in Sekunden bei zwei DAVIS-Stationen (z.B. Live oder Konsole
'rainDur_2 = Regendauer-Wert im Archiv-Intervall in Sekunden bei zwei DAVIS-Stationen (z.B. Live oder Konsole)
Diese Benutzer haben sich bei Werner für den Beitrag bedankt:
ManfredK
Benutzeravatar
ManfredK
Beiträge: 486
Registriert: 16 Mai 2009 07:54
Wohnort: Ruppersthal in Niederösterreich
Hat sich bedankt: 9 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von ManfredK »

Hallo Werner,

Vielen Dank für deine Erklärung.

Wenn ich nun die sunrainduration.py in Verbindung mit einer VP2 verwende. Was mache ich nun mit dem 'hailDur', 'sunshineDur_2' und 'rainDur_2'?
Ich nehme an, dass ich diese Wert trotzdem in der DB und in der 'wview_extended' anlegen muss.

Kann ich die Werte eigentlich auch für meine gesamte DB (Werte seit 2011) berechnen lassen?
Benutzeravatar
Werner
Site Admin
Beiträge: 5648
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 56 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von Werner »

Ich nehme an, dass ich diese Wert trotzdem in der DB und in der 'wview_extended' anlegen muss
Nein!
DB-Einträge sind nur erforderlich, wenn man auch History-Daten (z.B. Jahre) möchte,
Da es aber dafür in Deinem Fall gar keinen Wert gibt, sind sie auch nicht notwendig.
Kann ich die Werte eigentlich auch für meine gesamte DB (Werte seit 2011) berechnen lassen?
Nein.
Dazu müsste Weewx diese von Haus aus unterstützen oder ein eigenes Programm dafür schreiben.
Ich hab diese Überlegungen schon angestellt, aber dann verworfen, da die Daten nicht unbedingt wichtig sind.

Wichtig! Dein Solarkorrekturfaktor muss stimmen!!!!
sunshine_coeff -> default ist 0.8 - ich brauche/verwende z.B. 0.92
Diese Benutzer haben sich bei Werner für den Beitrag bedankt:
ManfredK
Benutzeravatar
ManfredK
Beiträge: 486
Registriert: 16 Mai 2009 07:54
Wohnort: Ruppersthal in Niederösterreich
Hat sich bedankt: 9 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von ManfredK »

Ich habe bei meiner maxSolarRad den atc auf 0.87 gestellt. Würde dieser Wert auch sinnvollerweise beim sunshine_coeff passen?

Schade, dass sich die sunshine_time, sundshineDur und rainDur nicht nachberechnen lassen. Die maxSolarRad lässt sich nachrechnen. Die hab ich nämlich erst mit dem geändertent atc seit 2011 korrigiert.
Benutzeravatar
Werner
Site Admin
Beiträge: 5648
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 56 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von Werner »

Würde dieser Wert auch sinnvollerweise beim sunshine_coeff passen
Könnte passen, ich habe hier allerdings einen etwas geringeren Wert -> 0.9
Schade, dass sich die sunshine_time, sundshineDur und rainDur nicht nachberechnen lassen.
Vielleicht verwirkliche ich es, wenn Weewx es erlaubt auch einzelne Wert zu importieren,
den Wswin kann ja eine spezielle Weewx-Import Datei erstellen und in die könnte ich dann diese
Werte mit schreiben.
... denn diese ganzen Berechnungen/Werte sind ureigenste Wswin-Werte schon seit langem ;)
Diese Benutzer haben sich bei Werner für den Beitrag bedankt:
ManfredK
Benutzeravatar
ManfredK
Beiträge: 486
Registriert: 16 Mai 2009 07:54
Wohnort: Ruppersthal in Niederösterreich
Hat sich bedankt: 9 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von ManfredK »

Hallo,

Ich habe nun einmal damit ich Daten in meiner Datenbak habe (vielleicht kommen ja irgendwann richtigere ;)), folgende Berechnung angestellt.

Damit Sonnenschein erfasst wird, habe ich 60 % der max. Solarstrahlung angenommen. Sobald nun die Solarstrahlung > als der 60 % Wert ist, habe ich in der DB 300 s für die sunshineDur eingetragen.

Jetzt habe ich im Belchertown-Skin eine Grafik erstellt, die die Sonnenscheinzeit seit 2011 darstellt
https://wetter-ruppersthal.at/graphs/?g ... nnenschein
nur sind die Werte in Sekunden, und dementsprechend extrem hoch (bis zu 6.000.000 s/a).

Hier ist der Code, der für die ersten 3 Diagramme verwendet wird:

Code: Alles auswählen

[sonnenschein]
    title = "Sonnescheindauer"
    show_button = false
    button_text = Sonnenschein
    type = spline
    time_length = year_specific
    aggregate_interval = month
    aggregate_type = sum
    #gapsize = 86400000

    [[sunjahr]]
        title = "Sonnenscheindauer seit 2011"
        time_length = all
        xAxis_groupby = year
        aggregate_interval = year
        [[[sunshineDur]]]
            name = Sonnenschein
            type = column
            zIndex = 0
            color = "#f7f2b4"

    [[sunmonat]]
        title = "Sonnenscheindauer Monate-ø  seit 2011"
        time_length = all
        xAxis_groupby = month
        xAxis_categories = 'Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'
        #aggregate_type = sum
        aggregate_type = avg
        average_type = sum
        [[[sunshineDur]]]
            name = Sonnenschein
            type = column
            zIndex = 0
            color = "#f7f2b4"

    [[sun2024]]
        title = "Sonnenscheindauer 2024"
        year_specific = 2024
        xAxis_groupby = month
        xAxis_categories = 'Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'
        [[[sunshineDur]]]
            name = Sonnenschein
            type = column
            zIndex = 0
            color = "#f7f2b4"
Gibt es in weewx eine einfache Methode, wie ich diese Werte in Stunden darstellen kann?
Benutzeravatar
Werner
Site Admin
Beiträge: 5648
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 56 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von Werner »

Versuche es mal das hinzuzufügen:

Code: Alles auswählen

data_type = sunshineDur / 3600
Im Season skin funktioniert das (hier Darstellung in Minuten beim Tag)

Code: Alles auswählen

        [[[daysunshine]]]
           color = "#ea078b"
           plot_type = bar
	    yscale = 0.0, 15, 2.5
           [[[[sunshine_time]]]]
              data_type = sunshineDur / 60
              y_label = "Minuten"
              label = Sonnenschein
Diese Benutzer haben sich bei Werner für den Beitrag bedankt:
ManfredK
Benutzeravatar
ManfredK
Beiträge: 486
Registriert: 16 Mai 2009 07:54
Wohnort: Ruppersthal in Niederösterreich
Hat sich bedankt: 9 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von ManfredK »

Hallo Werner,

Vielen Dank, aber beim Belchertown-Skin funktioniert es leider nicht.
Benutzeravatar
ManfredK
Beiträge: 486
Registriert: 16 Mai 2009 07:54
Wohnort: Ruppersthal in Niederösterreich
Hat sich bedankt: 9 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von ManfredK »

Hallo Werner,

Wäre es eigentlich möglich, dass die sunrainduration.py zusätzlich einen Stundenwert in der Datenbank schreibt?
Benutzeravatar
Werner
Site Admin
Beiträge: 5648
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 56 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von Werner »

Ja!
Ändern der weewx.conf

Code: Alles auswählen

[StdCalibrate]
  [[Corrections]]
   sunshineDur1h = sunshineDur / 3600 if sunshineDur is not None else None
Die Datenbank muss dann noch mit sunshineDur1h
erweitert werden

Code: Alles auswählen

sudo echo "y" | wee_database --config=/etc/weewx/weewx.conf --add-column=sunshineDur1h --type=REAL
und die Zurordnung zu welcher group (extensions.py) - oder eine neue Gruppe für delta 1 Stunde einführen (z.B. group_deltatime1h).

Code: Alles auswählen

weewx.units.obs_group_dict['sunshineDur1h'] = 'group_deltatime'
Aber ist das Sinnvoll?
Den der Season-Skin kommt damit klar,
Es ist eine Belchertown-Parameter-Sache und sollte dort gelöst werden
Diese Benutzer haben sich bei Werner für den Beitrag bedankt:
ManfredK
Benutzeravatar
ManfredK
Beiträge: 486
Registriert: 16 Mai 2009 07:54
Wohnort: Ruppersthal in Niederösterreich
Hat sich bedankt: 9 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von ManfredK »

Hallo Werner,

Vielen Dank für deinen Hinweis.
Ob es wirklich sinnvoll ist...da hast du wahrscheinlich recht. Ich verwende auch noch das neowx-material, und da hab ich auch meine Probleme die Werte richtig darzustellen.

Aber auch diese Weise kann ich einmal das 'Problem beheben'.

Vielen Dank!!
Zuletzt geändert von ManfredK am 05 Feb 2024 11:52, insgesamt 1-mal geändert.
Benutzeravatar
ManfredK
Beiträge: 486
Registriert: 16 Mai 2009 07:54
Wohnort: Ruppersthal in Niederösterreich
Hat sich bedankt: 9 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von ManfredK »

Hallo Werner,

Leider funktioniert es nicht wie erwartet.

weewx.conf

Code: Alles auswählen

[StdCalibrate]
    
    [[Corrections]]
        # For each type, an arbitrary calibration expression can be given.
        # It should be in the units defined in the StdConvert section.
        # Example:
        foo = foo + 0.2
        sunshineDur_h = sunshineDur/3600 if sunshineDur is not None else None, archive
        sunshineDur_m = sunshineDur/60 if sunshineDur is not None else None, archive
mit oder ohne

Code: Alles auswählen

, archive
erfolgt kein Eintrag in der weewx.sdb.

extensions.py:

Code: Alles auswählen

#
#    Copyright (c) 2009-2015 Tom Keffer <tkeffer@gmail.com>
#
#    See the file LICENSE.txt for your full rights.
#

"""User extensions module

This module is imported from the main executable, so anything put here will be
executed before anything else happens. This makes it a good place to put user
extensions.
"""

import locale
# This will use the locale specified by the environment variable 'LANG'
# Other options are possible. See:
# http://docs.python.org/2/library/locale.html#locale.setlocale
locale.setlocale(locale.LC_ALL, '')

import weewx.units
weewx.units.obs_group_dict['sunshine_time'] = 'group_radiation'

weewx.units.obs_group_dict['sunshineDur'] = 'group_deltatime'
weewx.units.obs_group_dict['sunshineDur_m'] = 'group_deltatime'
weewx.units.obs_group_dict['sunshineDur_h'] = 'group_deltatime'
und in der Datenbank sind die Einträge für sunshineDur_m und sunshineDur_h vorhanden.

Da ich damit nicht erfolgreich war, die Einträge in den beiden Spalten sunshinDur_m und sunshineDur_h sind NULL, habe ich in der weewx.conf folgenden Eintrag erweitert:

Code: Alles auswählen

[StdWXCalculate]
    
    [[Calculations]]
        # How to calculate derived quantities.  Possible values are:
        #  hardware        - use the value provided by hardware
        #  software        - use the value calculated by weewx
        #  prefer_hardware - use value provide by hardware if available,
        #                      otherwise use value calculated by weewx
        
        pressure = prefer_hardware
        altimeter = prefer_hardware
        appTemp = prefer_hardware
        barometer = prefer_hardware
        cloudbase = prefer_hardware
        dewpoint = prefer_hardware
        ET = prefer_hardware
        heatindex = prefer_hardware
        humidex = prefer_hardware
        inDewpoint = prefer_hardware
        maxSolarRad = prefer_hardware
        sunshine_time = prefer_hardware
        sunshineDur = prefer_hardware
        sunshineDur_m = prefer_hardware
        sunshineDur_h = prefer_hardware

Beim Season-Skin habe ich jetzt eine History-Darstellung hinzugefügt:

Code: Alles auswählen

    [[sunshineDur]]
            obs_type = sunshineDur
            aggregate_type = sum
            units = s

            minvalues = 0, 200000, 400000, 600000, 800000, 1000000   # Override default temperature colour scheme with rain specific scale
            maxvalues = 200000, 400000, 600000, 800000, 1000000, 2000000
            colours = "#E0F8E0", "#A9F5A9", "#58FA58", "#2EFE2E", "#01DF01", "#01DF01"
            fontColours = "#000000", "#000000", "#000000", "#000000", "#000000", "#000000"

            summary_column = true
            summary_heading = Summe
auch hier kann ich die Korrektur auf Stunden nicht durchführen.

Was kann ich noch tun?
Im Übrigen, ich verwende weewx v5.0.1. Soll ich versuchsweise die v4.10.2 installieren?
Benutzeravatar
Werner
Site Admin
Beiträge: 5648
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 56 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von Werner »

@Manfred,
Im Übrigen, ich verwende weewx v5.0.1. Soll ich versuchsweise die v4.10.2 installieren?
Ich denke nicht.
Lass mir etwas Zeit, ich muss es mir ansehen.
Habe seit Heute ein Problem mit meiner Homematic und Carrier Sense von 100%
Und noch keinen Grund dafür gefunden.

Wie ich gesehen habe, hast Du es im Belchertown Skin (Sonnenschein letztes Jahr) schon gelöst ?
Benutzeravatar
ManfredK
Beiträge: 486
Registriert: 16 Mai 2009 07:54
Wohnort: Ruppersthal in Niederösterreich
Hat sich bedankt: 9 mal
Kontaktdaten:

Re: Berechnung der Sonnenscheindauer in weewx

Beitrag von ManfredK »

Hallo Werner,

Vielen Dank, dass du es dir ansehen willst. Nur keinen Stress.

In einigen Diagrammen lässt sich das ganze auch so

Code: Alles auswählen

        [[[sunshineDur]]]
            yAxis = 1
            yAxis_min = 0
            yAxis_softMax = 14
            type = column
            aggregate_type = sum
            observation_type = sunshineDur / 3600
            color = red
            yAxis_label = "Sonnenscheindauer in h"
            name = Sonnenscheindauer
            zIndex = 2
wie gewünscht darstellen.
https://wetter-ruppersthal.at/graphs/?graph=monatago

Aber in der Monats/Jahres-Zusammenfassung funktioniert es leider nicht.

Code: Alles auswählen

[sonnenschein]
    title = "Sonnescheindauer"
    show_button = false
    button_text = Sonnenschein
    type = spline
    time_length = year_specific
    aggregate_interval = month
    aggregate_type = sum
    #gapsize = 86400000

    [[sunjahr]]
        title = "Sonnenscheindauer seit 2011"
        time_length = all
        xAxis_groupby = year
        aggregate_interval = year
        [[[sunshine]]]
            name = Sonnenschein
            observation_type = sunshineDur
            type = column
            zIndex = 0
            color = "#f7f2b4"

    [[sunmonat]]
        title = "Sonnenscheindauer Monate-&oslash;  seit 2011"
        time_length = all
        xAxis_groupby = month
        xAxis_categories = 'Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'
        #aggregate_type = sum
        aggregate_type = avg
        average_type = sum
        [[[sunshineDur]]]
            name = Sonnenschein
            type = column
            zIndex = 0
            color = "#f7f2b4"

    [[sun2024]]
        title = "Sonnenscheindauer 2024"
        year_specific = 2024
        xAxis_groupby = month
        xAxis_categories = 'Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'
        [[[sunshineDur]]]
            name = Sonnenschein
            type = column
            zIndex = 0
            color = "#f7f2b4"
https://wetter-ruppersthal.at/graphs/?g ... nnenschein
Antworten