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 :


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]> 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/C9BC2A91-B94D-4EF9-A8CF-3FC81DC37095%40gmail.com.

Reply via email to