:(. it is not working. In that case, in my get_aggregate function,
option_dict.get('val') is None
> Le 9 oct. 2022 à 17:00, Tom Keffer <[email protected]> a écrit :
>
> Try:
>
> [[other_images]]
> x_label_format = %Y
> bottom_label_format = %x %X
> time_length = 220752000 # 7 years
> aggregate_interval = day
> show_daynight = false
> [[[trol10]]]
> [[[[rol10]]]]
> label = "Température : moyenne glissante sur 10 ans"
> aggregate_type = rolling_avg_years
> val = 10
> data_type = outTemp
>
> Although, to tell you the truth, I've never tried this!
>
> -tk
>
> On Sun, Oct 9, 2022 at 6:48 AM Jacques Terrettaz <[email protected]
> <mailto:[email protected]>> wrote:
> Thanks Tom,
>
> I have modified my extension, and when the aggregate type is used within a
> tag such as $day.outTemp.rolling_avg_years(10) it works.
>
> But it is not working with the ImageGenerator.
> In my extension, I am checking that the aggregate type is "rolling_avg_year",
> and if not it will raise a weewx.UnknownAggregationexception
>
> When using the aggregate type without parameter, with this ImageGenerator
> definition :
>
> [[other_images]]
> x_label_format = %Y
> bottom_label_format = %x %X
> time_length = 220752000 # 7 years
> aggregate_interval = day
> show_daynight = false
> [[[trol10]]]
> [[[[rol10]]]]
> label = "Température : moyenne glissante sur 10 ans"
> aggregate_type = rolling_avg_years10
> data_type = outTemp
>
> The image is generated :
> <trol10_OK.png>
>
> But when using the modified extension accepting a parameter :
>
> [[other_images]]
> x_label_format = %Y
> bottom_label_format = %x %X
> time_length = 220752000 # 7 years
> aggregate_interval = day
> show_daynight = false
> [[[trol10]]]
> [[[[rol10]]]]
> label = "Température : moyenne glissante sur 10 ans"
> aggregate_type = rolling_avg_years(10)
> data_type = outTemp
>
>
> I have the following error :
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: Caught
> unrecoverable exception in generator 'weewx.imagegenerator.ImageGenerator'
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> 'outTemp' or 'rolling_avg_years(10)'
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> Traceback (most recent call last):
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> File "/usr/share/weewx/weewx/reportengine.py", line 197, in run
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> obj.start()
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> File "/usr/share/weewx/weewx/reportengine.py", line 385, in start
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> self.run()
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> File "/usr/share/weewx/weewx/imagegenerator.py", line 42, in run
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> self.gen_images(self.gen_ts)
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> File "/usr/share/weewx/weewx/imagegenerator.py", line 109, in gen_images
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> self.image_dict[timespan][plotname])
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> File "/usr/share/weewx/weewx/imagegenerator.py", line 249, in gen_plot
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> **option_dict)
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> File "/usr/share/weewx/weewx/xtypes.py", line 116, in get_series
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> raise weewx.UnknownType(msg)
>
> 2022-10-09 15:30:24 weewx[22095] ERROR weewx.reportengine: ****
> weewx.UnknownType: 'outTemp' or 'rolling_avg_years(10)'
>
>
> When called by the ImageGenerator, it appears that the aggregate type
> parameter of the get_aggregate function is the full value
> "rolling_avg_years(10)" and not the value " "rolling_avg_years". So in that
> case it is considered as an unknown aggregation because it is not
> "rolling_avg_years" and rejected by my extension.
>
> Is there a special syntax to be used when defining an aggregate type with a
> parameter for the ImageGenerator ?
>
>
>
>
>> Le 9 oct. 2022 à 15:07, Tom Keffer <[email protected]
>> <mailto:[email protected]>> a écrit :
>>
>> You're on the right track. If you pass in a parameter to an aggregation, it
>> appears in "option_dict" in the corresponding get_aggregate() call. If you
>> don't name that parameter, it shows up as key "val". So, in your example,
>>
>> $day.outTemp.rolling_avg_years(10)
>>
>> would result in a call to get_aggregate() that looks like:
>>
>> get_aggregate('outTemp', timespan, 'rolling_avg_years', db_manager, val=10)
>>
>> The value 'val' will contain the appropriate number of years to do the
>> rolling average.
>>
>> Hope that helps.
>>
>> -tk
>>
>> On Sun, Oct 9, 2022 at 5:54 AM [email protected]
>> <mailto:[email protected]> <[email protected]
>> <mailto:[email protected]>> wrote:
>> Hello,
>>
>> I am writing a Xtype extension providing a new aggregate type that
>> calculates a rolling average of a parameter over years.
>>
>> I started by defining several different aggregate type for different number
>> of years, such as :
>>
>> rolling_avg_years1
>>
>> rolling_avg_years5
>>
>> rolling_avg_years10
>>
>> rolling_avg_years15
>>
>> For exemple : $day.outTemp.rolling_avg_years10 returns the average
>> temperature of the last 3650 days (i.e. 10 years).
>>
>> And it works.
>>
>> But, to allow more flexibility, I would prefer, if possible, to have the
>> number of years as parameter, such as
>>
>> rolling_avg_years(10)
>>
>> but I don't know how I could retrieve the parameter in the get_aggregate
>> function of my extension.
>>
>> Any help is appreciated,
>> Thanks
>>
>> --
>> 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]
>> <mailto:[email protected]>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/weewx-development/c17fbd97-4547-4a36-bfc0-35b10aa3b68bn%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/weewx-development/c17fbd97-4547-4a36-bfc0-35b10aa3b68bn%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>
>> --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "weewx-development" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/weewx-development/RyO1T4UFFBk/unsubscribe
>> <https://groups.google.com/d/topic/weewx-development/RyO1T4UFFBk/unsubscribe>.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected]
>> <mailto:[email protected]>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/weewx-development/CAPq0zECGbOo6rT7mNdRFvRQAq6TNmWKZO6NZ7evDA6mvUz925g%40mail.gmail.com
>>
>> <https://groups.google.com/d/msgid/weewx-development/CAPq0zECGbOo6rT7mNdRFvRQAq6TNmWKZO6NZ7evDA6mvUz925g%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 on the web visit
https://groups.google.com/d/msgid/weewx-development/BA38FD27-7464-4810-8F7F-C327BF562274%40gmail.com.