I have the xtypes for monthly historical running locally. The one for rain
needs a bit more work as there is a sum+average involved to find monthly
total average. Will generate a pull request on git hub this weekend with it
if that's fine with you.

On Tue, 16 Aug, 2022, 20:47 Praveen Chandrasekaran, <[email protected]>
wrote:

> This would be part of template itself?
>
> On Tue, 16 Aug, 2022, 19:54 Tom Keffer, <[email protected]> wrote:
>
>> Praveen,
>>
>> On thinking about your problem a little more, I now understand the issue
>> with needing 12 different templates. However, there may be a solution using
>> the #set global command, and then using #include.
>>
>> Briefly, it would look something like this:
>>
>> #for i in range(1,13
>> #  set global month=$i
>> #  include "Climatology.txt"
>> #end for
>>
>> Then the file "Climatology.txt" would be very similar to what you have,
>> except it would be parameterized by the variable $month.
>>
>>
>>
>> On Mon, Aug 15, 2022 at 10:00 AM Tom Keffer <[email protected]> wrote:
>>
>>> Last night, I did put a very brief mention of option_dict in the wiki
>>> article. https://github.com/weewx/weewx/wiki/WeeWX-V4-user-defined-types
>>>
>>> On Mon, Aug 15, 2022 at 8:16 AM Praveen Chandrasekaran <
>>> [email protected]> wrote:
>>>
>>>> After struggling a bit through SLE today I hav decided to go down the
>>>> route of xtypes. Is there documentation for option_dict that you mentioned
>>>> other day?
>>>>
>>>> On Mon, 15 Aug, 2022, 19:39 Tom Keffer, <[email protected]> wrote:
>>>>
>>>>> 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/CA%2BW%3DTmWXbC7yrypE7Jr4oso%3DzLkx2KUwsCHU9J59DkNO%3Dh02vA%40mail.gmail.com.

Reply via email to