Nothing wrong with a search-list extension. The chief advantage of an xtypes extension is that a new aggregation type becomes a first-class citizen of the tag system. Indeed, all the existing aggregations are implemented using xtypes.
$month.outTemp.historical_month_high vs something like $historical_high(outTemp, 'month') On Sun, Aug 14, 2022 at 7:47 PM Praveen Chandrasekaran < [email protected]> wrote: > Also the xtypes for monthly stats needs some more tweaks to ensure partial > months aren't used for average computation and such. > > Gary's SLE in saratoga extensions already takes care of them :) > > Adding all that to xtypes seems beyond my noob skill level. > > Gary, > > How many seconds does the SLE for monthly stats take every record? Is it a > big drag? If so any way to run it more infrequently? > Also do you plan to replace it with xtypes at some point? > > On Mon, 15 Aug, 2022, 07:02 Praveen Chandrasekaran, < > [email protected]> wrote: > >> I assume if go the Saratoga way of SLE for monthly stats all monthly >> stats get computed every archive interval irrespective of whether reports >> are generated every archive interval. That isn't good if so. >> >> Again xtypes seems better as the db fetches are done only on demand there >> as i understand >> >> On Sun, 14 Aug, 2022, 23:11 Praveen Chandrasekaran, < >> [email protected]> wrote: >> >>> Though i agree that xtypes will achieve this much easier instead of >>> having to add new search lists etc. >>> >>> On Sun, 14 Aug, 2022, 20:09 Praveen Chandrasekaran, < >>> [email protected]> wrote: >>> >>>> Thanks. On further digging i also see that sarogata skin has function >>>> for monthly stats across years. Looks like something i can steak my code >>>> from! >>>> >>>> On Sun, 14 Aug, 2022, 19:58 Tom Keffer, <[email protected]> wrote: >>>> >>>>> It's true that there is no "monthly summary" table, but that shouldn't >>>>> stop you from doing an xtypes extension. I think all that would be >>>>> necessary is to modify the SQL queries slightly in weewx-xaggs >>>>> <https://github.com/tkeffer/weewx-xaggs>. For example, to return the >>>>> all time historical high for a month the query (line 45 >>>>> <https://github.com/tkeffer/weewx-xaggs/blob/master/bin/user/xaggs.py#L45> >>>>> ) >>>>> >>>>> "SELECT MAX(`max`) FROM {table}_day_{obs_type} " >>>>> "WHERE STRFTIME('%m-%d', >>>>> dateTime,'unixepoch','localtime') = '{month:02d}-{day:02d}';", >>>>> >>>>> >>>>> becomes >>>>> >>>>> "SELECT MAX(`max`) FROM {table}_day_{obs_type} " >>>>> "WHERE STRFTIME('%m', dateTime,'unixepoch','localtime') >>>>> = '{month:02d}';", >>>>> >>>>> >>>>> and so on. Call it something like "historical_month_max". That leaves >>>>> the problem of where does "month" come from. In weewx-xaggs, it comes from >>>>> the month of the date whose page is being generated. However, you want it >>>>> for a specific month, not necessarily "today." You can use the optional >>>>> parameter "option_dict" to set it (requires WeeWX V4.8 or greater). Then >>>>> your template looks like >>>>> >>>>> #for month in range(1,13) >>>>> # <p>The historical high for month $month is >>>>> $alltime.outTemp.historical_month_max($month)</p> >>>>> #end for >>>>> >>>>> Unfortunately, "option_dict" is not documented in the xtypes wiki >>>>> <https://github.com/weewx/weewx/wiki/WeeWX-V4-user-defined-types>. >>>>> I'll try to get around to that today. Or, perhaps Gary can do it. >>>>> >>>>> I realize this is a rather "stream-of-consciousness" post. Hope I'm >>>>> making myself clear. >>>>> >>>>> -tk >>>>> >>>>> On Sun, Aug 14, 2022 at 3:30 AM Praveen Chandrasekaran < >>>>> [email protected]> wrote: >>>>> >>>>>> Finally managed to get a page like what I wanted up for one month: >>>>>> >>>>>> http://bedi.co.in/~pcws/tabular.html?report=Climatalogy.txt >>>>>> >>>>>> Attached template file used for same. >>>>>> >>>>>> Some inputs on below would be helpful: >>>>>> >>>>>> 1) The way it is done now, I need to have 12 templates - one for each >>>>>> file. With changes in just 2 lines. Looking for a way to do it smarter. I >>>>>> see that SummaryByMonth etc creates timespans and loops. But in this >>>>>> scenario, the timespans I am interested in are not continuous (Jan of >>>>>> each >>>>>> year, Feb of each year and so on). So I dont think I can create timespans >>>>>> for these >>>>>> 2) xaggs may not work I think since it seems to query daily summary >>>>>> from db. There is no monthly summary in db however as I understand >>>>>> 3) How do I make different month templates run at different times. No >>>>>> point in running for month off Jan daily in August for example. >>>>>> >>>>>> PS : I am a noob on cheetah etc. Just reading through stuff now to >>>>>> get hang of things. >>>>>> On Saturday, 13 August 2022 at 19:30:46 UTC+5:30 Tom Keffer wrote: >>>>>> >>>>>>> So you did! Here's my response: >>>>>>> >>>>>>> There's no explicit tag to do that. You could loop over all months, >>>>>>> then test the date to see if it is in a particular month. Something like >>>>>>> (NOT TESTED): >>>>>>> >>>>>>> #for month in $alltime.months >>>>>>> # if month.start.format("%b") == 'Jun' >>>>>>> # <p>Max for year $month.start.format("%Y") is >>>>>>> $month.outTemp.max</p> >>>>>>> # end if >>>>>>> #end for >>>>>>> >>>>>>> Alternatively, you could write an xtypes extension and create a new >>>>>>> aggregation type. Similar to the "historical_min" and "historical_max" >>>>>>> aggregations in the weewx-xaggs >>>>>>> <https://github.com/tkeffer/weewx-xaggs> extension, except it would >>>>>>> be the historical min and max for the month, instead of the day. >>>>>>> >>>>>>> -- >>>>>> 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/e6b5d587-912f-41ae-b3af-0e6dbd0f5d7bn%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/weewx-development/e6b5d587-912f-41ae-b3af-0e6dbd0f5d7bn%40googlegroups.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/CAPq0zECM-ZRn5z0kJZS5b5a8rPErXj3B0wvktEnHiodZWtfmSQ%40mail.gmail.com.
