Month.ini: Difference between revisions

From Cumulus Wiki
Jump to navigationJump to search
m (Made consistent with alltime.ini)
m (Minor clarifications, to better cover C1 and MX differences)
 
(36 intermediate revisions by the same user not shown)
Line 1: Line 1:
Used to hold the information that feeds the [[Webtags#Monthly]] for the 'thismonthT.htm' web template.
{{Template:Version badge Mx}}{{Version badge 1}}This page applies to both flavours.
These lows and highs and their timestamps can be seen by picking the ''Highs and Lows - This month'' screen from the '''View''' menu.  Like [[today.ini]] the file has section headings with lists of properties (attribute = value). For more information on this file see in the Cumulus help file, in the section “Data log file format”.
= Format of the file =


The stored values can be corrected using the ''This month's records'' screen on the '''Edit''' menu. Date, Time and Decimal formatting is as per your regional settings on the PC running Cumulus. If you cannot find the file [[FAQ#I_can.E2.80.99t_find_my_data_files.21|see this FAQ]].
{{TOCright}}
[[Category:Log Files]]
 
This is as described at [[:Category:Ini_Files]], where some differences between the legacy Cumulus and MX are noted.
 
The log file "month.ini" is where Cumulus software tracks the extremes for this month, the file is divided into a number of sections ''headed by a name in square brackets []''.
 
The sections (after the first '''[General]''') can be in any order, Cumulus will maintain whatever order the sections are currently in. 
 
Each section has a number of parameters listed below it. Each parameter is in the format "attribute=value". For readability you can insert blank lines into this file, Cumulus will not mind.
 
'''Do not''' introduce any ''punctuation'' into this file.  '''Do not''' change the ''format of any parameter'' line.
 
This log file holds the information that feeds the [[Webtags#Monthly]] for the 'thismonthT.htm' web template. So you won't find the monthly rainfall total in this file, that is not in that template.
 
=Which build are you using? =
 
== Cumulus versions 1.0 to 1.9.0  ==
 
There was no monthly functionality in Cumulus. This monthly log ini file did not exist.
 
== Cumulus 1.9.1 (build 958 - Mon 01 Nov 2010) ==
 
This log file was created (with a limited number of extremes being tracked) from the day this build was installed. The release announcement explained how when this build was first run it looked in [[Dayfile.txt]] to find the initial extremes to place in the file, and therefore missed any extremes earlier on the day the build was installed.
 
== Cumulus 1.9.2 ==
 
The Cumulus 1.9.2 beta releases were the first appearance of monthly (and yearly) extreme record tracking. The release announcement when 1.9.2 came out of beta (see https://cumulus.hosiene.co.uk/viewtopic.php?p=51829#p51829) starts by explaining how to use the new high/low editing screen for initialising the extra extreme records included in the new file '''month.ini''' that formed part of this release.
 
 
=== Bugs present prior to Cumulus 1.9.3 beta build 1048  ===
 
Month.ini contains the highest daily value for certain derivatives in the month, those daily values are supposed to be accumulated over a meteorological day, so the accumulation resets at rollover time. Due to a programming bug, some were reset at midnight irrespective of actual rollover time.  Prior to build 1048 this meant that for those using 9am/10am rollover, wind run (for example) accumulated between midnight and rollover was assigned to the following day. 
 
Without getting too technical, some of the time-stamps in this file are in a specific to Cumulus time-zone, that for 9am/10am rollover, differs from the time-zone of the host computer. In this internal processing time-zone, the date part is a [[Meteorological day|meteorological date]] and the time part is zero (00:00) at rollover, so that a time part shown as 03:00 actually represents noon on the computer clock with Cumulus 1 set to rollover at 09:00 on the computer clock. Against that background, some values where peaks at a particular time were tracked in this file. Cumulus was supposed to convert the internal time-stamps to computer clock equivalents for outputs in web tags (the date logged was adjusted to the correct calendar day, the time adjusted to correct time within that day).  Unfortunately, this meant for extremes timed between midnight and rollover on the first day of a new month, Cumulus was assigning them to the new month, instead of the old month, because the conversion from internal meteorological date (the previous calendar date) in the previous month to calendar (computer clock) date happened too early in the processing sequence!
 
The full description of bugs was not recorded as it was assumed everyone updated to any build claimed to be fixing bugs, and people did not care about past records (Cumulus 1 at this stage discarded records for past months).  It was subsequently discovered that the bugs were not fixed completely in build 1048!
 
=== Bugs remaining prior to Cumulus 1.9.3 beta build 1053 ===
 
Before to the release of build 1053,
#If your rollover time was NOT midnight
#If you restarted Cumulus 1 on the first day of a calendar month, before your rollover time on that day
#Cumulus created a new meteorological month early, and updated the month.ini as if it had started at midnight, losing everything in the month.ini for the previous month, and corrupting the month.ini for the meteorological month that correctly starts only after rollover.
 
==Cumulus 1.9.2 to 1.9.4 builds 1041 to 1088==
 
Month.ini is one of the files that is included in the back up made each time there is a roll-over at the end of a meteorological day. All the files stored by legacy Cumulus software in the builds listed in the heading reflect the position as the day ended. For example, the legacy Cumulus at these builds stores the '''Month.ini''' for the month just finishing when it does end of month roll-over.
 
 
== Cumulus version 1.9.4: From build 1089 to final Cumulus 1 build ==
 
Later builds of the legacy software do a back-up as at start of day. This means when the month changes, Cumulus stores the '''month.ini''' after it has been initialised for the new month. No copy is retained of the month.ini at the end of the month.
 
== Cumulus MX version 3.0.0 onwards ==
 
<div style="background: LemonChiffon;padding:5px; margin:2px;">
[[File:Crystal Clear info.png|40px]] This page was written for the (legacy) Cumulus 1 software.  It has been partially updated to cover MX, but that was for a MX release that is no longer latest!
 
Please can a contributor update content, so it is more friendly for those using latest release, while still helping those using older MX releases and the legacy Cumulus software.
</div>
 
 
MX uses the same '''month.ini''' file to record extreme records for current month. At start of each meteorological day, MX backs up the current file as in its [[Data folder|/data]], so when the month changes, this backs up the (empty) file for new month. The content is essentially same as other flavours except that when new extremes occur the date format used has year first as shown in example in table below. 3.6.x releases of MX add Canadian Humidity Index and Feels Like Temperatures to what is stored.
 
From build 3035 onwards, MX archives the month.ini and year.ini file at the end of the month/year as monthYYYYMM.ini and yearYYYY.ini.
 
 
== Differences between Cumulus 1 and MX versions of file ==
 
Any date/time entries are in different formats as this example from the wind section shows.
 
More importantly, note that Cumulus 1 will use a comma for representing the decimal point if that is how a decimal point is defined for the locale defined in your device, but Cumulus MX always expects periods/full stops in .ini files regardless of the locale in use. Thus if you want to swap from Cumulus 1 to Cumulus MX during a month, you will first copy your existing Cumulus 1 "data" folder to within your MX installation, but then you will also need to manually edit your '''month.ini''' file if you had a "," used as decimal separator to change those to ".".  (While Steve Loft was working on MX he did say he was trying to find a way to get MX to accept ",").
 
The wind speed and gust speed may be shown as integers if that is how your weather station outputs them, and you have not asked Cumulus to calculate them in different units.
{| class="wikitable"
|-
! [[File:Badge v1.png]] !! [[File:Badge vMx.png]]
|-
| [Wind] ||  [Wind]
|-
| Speed=33,5540428161621 || Speed=7
|-
| SpTime=12/03/2019 12:39:35 || SpTime=2019-03-16T15:11:32
|-
| Gust=42.8843040466309 || Gust=20
|-
| Time=12/03/2019 14:50:45 || Time=2019-03-16T12:45:00
|-
| Windrun=29,2999992370605 || Windrun=29.2999992370605
|-
| WindrunTime=11/03/2019 23:59:01 || WindrunTime=2019-03-10T19:54:00
|}
 
From version 3.6.0, an additional [FeelsLike] section is added to this log file.
 
= Retaining month.ini after month changes =
 
[[File:Badge vMx.png]]As mentioned [[#Cumulus MX version 3.0.0 onwards|at end of this section]] Cumulus MX retains the file at the end of each month.  The final ''month.ini'' for that month is renamed '''monthYYYYMM.ini''' (where YYYY denotes the year using 4 digits and MM denotes the month using two digits) e.g. ''month201703.ini'', thus ensuring that statistics for all past months remain accessible. 
 
[[File:Badge v1.png]]Although Cumulus 1 resets ''month.ini'' at the end of each month, without saving the file [[#Cumulus version 1.9.4: From build 1089 to final Cumulus 1 build|see here]], it is possible to view old months using [[Cumulus_Screenshots#View_data|screen]] provided in Cumulus 1; that generates a similar (but not identical extreme records) set of monthly derivatives by doing calculations from the relevant lines in dayfile.txt. If you want such information on a web page, then some JavaScript code (as explained in support forum posts) can parse a copy of [[Dayfile.txt]] uploaded to your web server, and do the equivalent calculations. If the daily summary is available in a database table, then those calculations are very easy to code in SQL. For those technically able, there is an easy work-around to save month.in on a monthly basis using the "extra files" feature. It works because you can include "<currentlogfile>" in a remote path. Please note that this is an inefficient process (because there is no facility within Cumulus 1 to perform an action only when month ends, and this technique therefore adds an action each time Cumulus does an update) process, but it is easy to implement:
ExtraLocal25=data\month.ini
ExtraRemote25=data\month<currentlogfile>.ini
ExtraProcess25=0
ExtraUTF25=1
ExtraBinary25=0
ExtraRealtime25=1
ExtraFTP25=0
 
This will save a file with a name like '''monthMar19log.txt.ini''' in your data folder. Note that there might be changes to month.ini after the last time the above work-around copies it, because the copy happens one update interval before the end of the month rollover and so will not pick up any extremes recorded in closing seconds of the month.
 
= Meaning of the different parameters =
 
You have probably worked out that the attribute ''Speed'' in the examples in the above table is the maximum wind speed, that ''Gust'' is the maximum gust speed in the month and that ''Windrun'' is the maximum daily wind run. Those are the three rows that appear in the wind section of the table in the '''thismonth.htm''' web page. But you might be puzzled that the web page only shows a date for the maximum daily wind run, yet the month.ini entry includes a time. All that means is there was no wind after that time on that day, in Cumulus 1 if you edit your template '''thismonthT.htm''' and specify ''<#MonthWindRunHD format=HH:nn>'' you will see the time appear instead of the date. Put simply, the date/time entry is when Cumulus last updated that figure. In this particular case its calculated wind run never exceeded that figure in this month, so the entry has not been updated.  Similarly, highest daily rainfall tracking includes a time,  representing the final updating of the total on the date reported.
 
In the [Temp] section, some of Steve's attribute names might be slightly less obvious. '''Low=''' is obviously the lowest temperature in the month and '''High=''' the highest. Comparing entries against the web page; Highest Minimum is obviously '''HighMin=''' and '''HighRange=''' the ''Highest Daily Range''. All the rest are easy to work out.  For the date/time entries High is frequently (not in 'HighRange' example) abbreviated to 'H', Low to 'L' and the characters 'Time' are appended.
 
= Dealing with Errors =
 
For full details see [[Correcting Extremes]] page.
 
The diagnostic logs for cumulus 1 in [[Diags folder]] record before and after values for updates to highs and lows for monthly and annual extreme records, and can help if this file is corrupted by a false extreme. MX diagnostics do report when "month.ini" is updated, but they don't (at time of typing this) record what was updated, so there is no before and after tracking.
 
The stored values can be corrected in Cumulus 1 using the ''This month's records'' screen on the '''Edit''' menu. In MX the equivalent editor is accessed via the user interface you see in a browser.
 
If you cannot find the file when using Microsoft Windows [[FAQ#I_can.E2.80.99t_find_my_data_files.21|see this FAQ]].
 
 
==Viewing and Editing in MX==
 
There is limited viewing functionality prior to version 3.2.2 build 3058. From then onwards there is a monthly records viewer (that also works as editor) in the admin interface for each month in all years, consequently in first year of operation this effectively allowed editing of any single month. An editor specifically for this file for the current month is not available in MX until version 3.2.5 build 3061.
 
==Cumulus 1 functionality==
 
=== Viewing month.ini in Cumulus 1 ===
 
[[File:Cumulus_1_View_menu.png]]
 
These lows and highs and their timestamps can be seen (in Cumulus 1) by picking the ''Highs and Lows - This month'' screen from the '''View''' menu, see screenshot above. Like [[alltime.ini]] the file has section headings with lists of properties (attribute = value). For more information on this file see in the Cumulus help file, in the section “Data log file format”.
 
===Editing in Cumulus 1===
 
This monthly ini log file can be edited in Cumulus 1 using '''Edit''' menu ''This month's records'' screen.
 
 
[[Category:Ini Files]]

Latest revision as of 11:43, 8 April 2022

Cumulus Version MX SpecificCumulus Version 1 SpecificThis page applies to both flavours.

Format of the file

This is as described at Category:Ini_Files, where some differences between the legacy Cumulus and MX are noted.

The log file "month.ini" is where Cumulus software tracks the extremes for this month, the file is divided into a number of sections headed by a name in square brackets [].

The sections (after the first [General]) can be in any order, Cumulus will maintain whatever order the sections are currently in.

Each section has a number of parameters listed below it. Each parameter is in the format "attribute=value". For readability you can insert blank lines into this file, Cumulus will not mind.

Do not introduce any punctuation into this file. Do not change the format of any parameter line.

This log file holds the information that feeds the Webtags#Monthly for the 'thismonthT.htm' web template. So you won't find the monthly rainfall total in this file, that is not in that template.

Which build are you using?

Cumulus versions 1.0 to 1.9.0

There was no monthly functionality in Cumulus. This monthly log ini file did not exist.

Cumulus 1.9.1 (build 958 - Mon 01 Nov 2010)

This log file was created (with a limited number of extremes being tracked) from the day this build was installed. The release announcement explained how when this build was first run it looked in Dayfile.txt to find the initial extremes to place in the file, and therefore missed any extremes earlier on the day the build was installed.

Cumulus 1.9.2

The Cumulus 1.9.2 beta releases were the first appearance of monthly (and yearly) extreme record tracking. The release announcement when 1.9.2 came out of beta (see https://cumulus.hosiene.co.uk/viewtopic.php?p=51829#p51829) starts by explaining how to use the new high/low editing screen for initialising the extra extreme records included in the new file month.ini that formed part of this release.


Bugs present prior to Cumulus 1.9.3 beta build 1048

Month.ini contains the highest daily value for certain derivatives in the month, those daily values are supposed to be accumulated over a meteorological day, so the accumulation resets at rollover time. Due to a programming bug, some were reset at midnight irrespective of actual rollover time. Prior to build 1048 this meant that for those using 9am/10am rollover, wind run (for example) accumulated between midnight and rollover was assigned to the following day.

Without getting too technical, some of the time-stamps in this file are in a specific to Cumulus time-zone, that for 9am/10am rollover, differs from the time-zone of the host computer. In this internal processing time-zone, the date part is a meteorological date and the time part is zero (00:00) at rollover, so that a time part shown as 03:00 actually represents noon on the computer clock with Cumulus 1 set to rollover at 09:00 on the computer clock. Against that background, some values where peaks at a particular time were tracked in this file. Cumulus was supposed to convert the internal time-stamps to computer clock equivalents for outputs in web tags (the date logged was adjusted to the correct calendar day, the time adjusted to correct time within that day). Unfortunately, this meant for extremes timed between midnight and rollover on the first day of a new month, Cumulus was assigning them to the new month, instead of the old month, because the conversion from internal meteorological date (the previous calendar date) in the previous month to calendar (computer clock) date happened too early in the processing sequence!

The full description of bugs was not recorded as it was assumed everyone updated to any build claimed to be fixing bugs, and people did not care about past records (Cumulus 1 at this stage discarded records for past months). It was subsequently discovered that the bugs were not fixed completely in build 1048!

Bugs remaining prior to Cumulus 1.9.3 beta build 1053

Before to the release of build 1053,

  1. If your rollover time was NOT midnight
  2. If you restarted Cumulus 1 on the first day of a calendar month, before your rollover time on that day
  3. Cumulus created a new meteorological month early, and updated the month.ini as if it had started at midnight, losing everything in the month.ini for the previous month, and corrupting the month.ini for the meteorological month that correctly starts only after rollover.

Cumulus 1.9.2 to 1.9.4 builds 1041 to 1088

Month.ini is one of the files that is included in the back up made each time there is a roll-over at the end of a meteorological day. All the files stored by legacy Cumulus software in the builds listed in the heading reflect the position as the day ended. For example, the legacy Cumulus at these builds stores the Month.ini for the month just finishing when it does end of month roll-over.


Cumulus version 1.9.4: From build 1089 to final Cumulus 1 build

Later builds of the legacy software do a back-up as at start of day. This means when the month changes, Cumulus stores the month.ini after it has been initialised for the new month. No copy is retained of the month.ini at the end of the month.

Cumulus MX version 3.0.0 onwards

Crystal Clear info.png This page was written for the (legacy) Cumulus 1 software. It has been partially updated to cover MX, but that was for a MX release that is no longer latest!

Please can a contributor update content, so it is more friendly for those using latest release, while still helping those using older MX releases and the legacy Cumulus software.


MX uses the same month.ini file to record extreme records for current month. At start of each meteorological day, MX backs up the current file as in its /data, so when the month changes, this backs up the (empty) file for new month. The content is essentially same as other flavours except that when new extremes occur the date format used has year first as shown in example in table below. 3.6.x releases of MX add Canadian Humidity Index and Feels Like Temperatures to what is stored.

From build 3035 onwards, MX archives the month.ini and year.ini file at the end of the month/year as monthYYYYMM.ini and yearYYYY.ini.


Differences between Cumulus 1 and MX versions of file

Any date/time entries are in different formats as this example from the wind section shows.

More importantly, note that Cumulus 1 will use a comma for representing the decimal point if that is how a decimal point is defined for the locale defined in your device, but Cumulus MX always expects periods/full stops in .ini files regardless of the locale in use. Thus if you want to swap from Cumulus 1 to Cumulus MX during a month, you will first copy your existing Cumulus 1 "data" folder to within your MX installation, but then you will also need to manually edit your month.ini file if you had a "," used as decimal separator to change those to ".". (While Steve Loft was working on MX he did say he was trying to find a way to get MX to accept ",").

The wind speed and gust speed may be shown as integers if that is how your weather station outputs them, and you have not asked Cumulus to calculate them in different units.

Badge v1.png Badge vMx.png
[Wind] [Wind]
Speed=33,5540428161621 Speed=7
SpTime=12/03/2019 12:39:35 SpTime=2019-03-16T15:11:32
Gust=42.8843040466309 Gust=20
Time=12/03/2019 14:50:45 Time=2019-03-16T12:45:00
Windrun=29,2999992370605 Windrun=29.2999992370605
WindrunTime=11/03/2019 23:59:01 WindrunTime=2019-03-10T19:54:00

From version 3.6.0, an additional [FeelsLike] section is added to this log file.

Retaining month.ini after month changes

Badge vMx.pngAs mentioned at end of this section Cumulus MX retains the file at the end of each month. The final month.ini for that month is renamed monthYYYYMM.ini (where YYYY denotes the year using 4 digits and MM denotes the month using two digits) e.g. month201703.ini, thus ensuring that statistics for all past months remain accessible.

Badge v1.pngAlthough Cumulus 1 resets month.ini at the end of each month, without saving the file see here, it is possible to view old months using screen provided in Cumulus 1; that generates a similar (but not identical extreme records) set of monthly derivatives by doing calculations from the relevant lines in dayfile.txt. If you want such information on a web page, then some JavaScript code (as explained in support forum posts) can parse a copy of Dayfile.txt uploaded to your web server, and do the equivalent calculations. If the daily summary is available in a database table, then those calculations are very easy to code in SQL. For those technically able, there is an easy work-around to save month.in on a monthly basis using the "extra files" feature. It works because you can include "<currentlogfile>" in a remote path. Please note that this is an inefficient process (because there is no facility within Cumulus 1 to perform an action only when month ends, and this technique therefore adds an action each time Cumulus does an update) process, but it is easy to implement:

ExtraLocal25=data\month.ini
ExtraRemote25=data\month<currentlogfile>.ini
ExtraProcess25=0
ExtraUTF25=1
ExtraBinary25=0
ExtraRealtime25=1
ExtraFTP25=0

This will save a file with a name like monthMar19log.txt.ini in your data folder. Note that there might be changes to month.ini after the last time the above work-around copies it, because the copy happens one update interval before the end of the month rollover and so will not pick up any extremes recorded in closing seconds of the month.

Meaning of the different parameters

You have probably worked out that the attribute Speed in the examples in the above table is the maximum wind speed, that Gust is the maximum gust speed in the month and that Windrun is the maximum daily wind run. Those are the three rows that appear in the wind section of the table in the thismonth.htm web page. But you might be puzzled that the web page only shows a date for the maximum daily wind run, yet the month.ini entry includes a time. All that means is there was no wind after that time on that day, in Cumulus 1 if you edit your template thismonthT.htm and specify <#MonthWindRunHD format=HH:nn> you will see the time appear instead of the date. Put simply, the date/time entry is when Cumulus last updated that figure. In this particular case its calculated wind run never exceeded that figure in this month, so the entry has not been updated. Similarly, highest daily rainfall tracking includes a time, representing the final updating of the total on the date reported.

In the [Temp] section, some of Steve's attribute names might be slightly less obvious. Low= is obviously the lowest temperature in the month and High= the highest. Comparing entries against the web page; Highest Minimum is obviously HighMin= and HighRange= the Highest Daily Range. All the rest are easy to work out. For the date/time entries High is frequently (not in 'HighRange' example) abbreviated to 'H', Low to 'L' and the characters 'Time' are appended.

Dealing with Errors

For full details see Correcting Extremes page.

The diagnostic logs for cumulus 1 in Diags folder record before and after values for updates to highs and lows for monthly and annual extreme records, and can help if this file is corrupted by a false extreme. MX diagnostics do report when "month.ini" is updated, but they don't (at time of typing this) record what was updated, so there is no before and after tracking.

The stored values can be corrected in Cumulus 1 using the This month's records screen on the Edit menu. In MX the equivalent editor is accessed via the user interface you see in a browser.

If you cannot find the file when using Microsoft Windows see this FAQ.


Viewing and Editing in MX

There is limited viewing functionality prior to version 3.2.2 build 3058. From then onwards there is a monthly records viewer (that also works as editor) in the admin interface for each month in all years, consequently in first year of operation this effectively allowed editing of any single month. An editor specifically for this file for the current month is not available in MX until version 3.2.5 build 3061.

Cumulus 1 functionality

Viewing month.ini in Cumulus 1

Cumulus 1 View menu.png

These lows and highs and their timestamps can be seen (in Cumulus 1) by picking the Highs and Lows - This month screen from the View menu, see screenshot above. Like alltime.ini the file has section headings with lists of properties (attribute = value). For more information on this file see in the Cumulus help file, in the section “Data log file format”.

Editing in Cumulus 1

This monthly ini log file can be edited in Cumulus 1 using Edit menu This month's records screen.