Searching for those terms also ended in dead ends for a few different
reasons, without easy to understand summaries, most were links to women's
underwear, so I resorted to asking ChatGPT which told me both methods are
old (1970s-1980s) and it suggested using REST2 (Gueymard, 2008) as a more
accurate method which has been implemented in pvlib.



On Wed, 3 Dec 2025 at 03:35, John Kline <[email protected]> wrote:

> Search for:
>
> Ryan-Stolzenbach vs. Bras for estimating clear sky solar radiation
>
> On Dec 1, 2025, at 9:21 PM, John Smith <[email protected]> wrote:
>
> 
> Any idea what the difference between the 2 formulas in weeWX would be?
>
> wxformulas.py links to a page with an excel spreadsheet which seems to use
> macros instead of just formulas, but LibreOffice blocked them on security
> grounds. The spreadsheet seems to have 4 models
>
> Searching for solar radiation maximum "bras" didn't exactly turn up
> anything relevant...
>
> On Tue, 2 Dec 2025 at 15:38, 'John Kline' via weewx-development <
> [email protected]> wrote:
>
>> maxSolarRad defaults to hardware preferred.  Assuming it is not supplied
>> by the driver, it is calculated in wxxtypes.py
>>
>> The function is below.  Note that the default for maxSolarRad_algo is
>> ‘rs’.
>>
>>     def calc_maxSolarRad(self, key, data, db_manager):
>>         altitude_m = weewx.units.convert(self.altitude_vt, 'meter')[0]
>>         if self.maxSolarRad_algo == 'bras':
>>             val = weewx.wxformulas.solar_rad_Bras(self.latitude_f,
>> self.longitude_f, altitude_m,
>>                                                   data['dateTime'],
>> self.nfac)
>>         elif self.maxSolarRad_algo == 'rs':
>>             val = weewx.wxformulas.solar_rad_RS(self.latitude_f,
>> self.longitude_f, altitude_m,
>>                                                 data['dateTime'],
>> self.atc)
>>         else:
>>             raise weewx.ViolatedPrecondition("Unknown solar algorithm
>> '%s'"
>>                                              % self.maxSolarRad_algo)
>>         return ValueTuple(val, 'watt_per_meter_squared',
>> 'group_radiation')
>>
>> wxformulas.py: solar_rad_RS:
>>    from weewx.almanac import Almanac
>>     if atc < 0.7 or atc > 0.91:
>>         atc = 0.8
>>     if ts is None:
>>         ts = time.time()
>>     sr = 0.0
>>     try:
>>         alm = Almanac(ts, lat, lon, altitude_m)
>>         el = alm.sun.alt  # solar elevation degrees from horizon
>>         R = alm.sun.earth_distance
>>         z = altitude_m
>>         nrel = 1367.0  # NREL solar constant, W/m^2
>>         sinal = math.sin(math.radians(el))
>>         if sinal >= 0:  # sun must be above horizon
>>             rm = math.pow((288.0 - 0.0065 * z) / 288.0, 5.256) \
>>                  / (sinal + 0.15 * math.pow(el + 3.885, -1.253))
>>             toa = nrel * sinal / (R * R)
>>             sr = toa * math.pow(atc, rm)
>>     except (AttributeError, ValueError, OverflowError):
>>         sr = None
>>     return sr
>>
>> On Dec 1, 2025, at 8:19 PM, John Smith <[email protected]> wrote:
>>
>> 
>> On Tue, 2 Dec 2025 at 14:14, 'Peter Fletcher' via weewx-development <
>> [email protected]> wrote:
>>
>>> No. The logic of the crt code implies that it is a* theoretical* max
>>> value, and the actual values reported in realtime.txt are consistent with
>>> this.
>>>
>>
>> What's it based on, latitude?
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "weewx-development" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/weewx-development/CAGTinV4dWNWAJixkt1CUoumcoDXwFEQow-s-nR7Hq5bdBUxPgA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/weewx-development/CAGTinV4dWNWAJixkt1CUoumcoDXwFEQow-s-nR7Hq5bdBUxPgA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "weewx-development" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/weewx-development/73AA04EB-0937-407C-A00E-F577D49A79EA%40johnkline.com
>> <https://groups.google.com/d/msgid/weewx-development/73AA04EB-0937-407C-A00E-F577D49A79EA%40johnkline.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/weewx-development/CAGTinV5ziWzYpPbJQXEd%3D_cE%3DUzPLOPLACNTAiMP7Nmyj-b5QA%40mail.gmail.com.

Reply via email to