Average temperature: Difference between revisions

From Cumulus Wiki
Jump to navigationJump to search
m (→‎Cumulus outputs: Clarifying monthly figures)
(→‎Cumulus outputs: Expanding re NOAA report annual averages with reference to Cumulus MX builds up to 3067)
Line 3: Line 3:


== Cumulus outputs ==
== Cumulus outputs ==
At rollover, the ''AvgTemp'' field in [[yesterday.ini]] holds the final integrated mean calculated by the quotient of '''Total''' over '''Samples''' in the old today.ini and the same average is written to [[dayfile.txt]]. The integrated mean temperature for each day is also output to the monthly NOAA style report. Integrated average temperatures are available as [[webtags]] for today and yesterday.
At rollover, the ''AvgTemp'' field in [[yesterday.ini]] holds the final integrated mean calculated by the quotient of '''Total''' over '''Samples''' in the old today.ini and the same average is written to [[dayfile.txt]]. The integrated mean temperature for each day is also output to the monthly NOAA style report row for the last line (which is yesterday's date). Integrated average temperatures are thus available as [[webtags]] for today and yesterday. For past days they are found in the [[dayfile.txt]].


The average of these daily intregated means for the whole month is shown at the bottom of the monthly NOAA style report and the lowest, actual, and highest of these averages of integrated daily mean for each month are output to the annual NOAA style report. Providing Cumulus is in continuous operation, so the number of measurements in the calculation is the same for every day, the average of integrated daily means over a month is mathematically the same as an integrated mean for the whole month.
The average of these daily intregated means for the whole month is shown at the bottom of the monthly NOAA style report, and the lowest, actual, and highest of these integrated daily mean for each month are output to the annual NOAA style report. Providing Cumulus is in continuous operation, so the number of measurements in the calculation is the same for every day, the average of integrated daily means over a month is mathematically the same as an integrated mean for the whole month.

The annual averages shown at the bottom of the annual NOAA report do not use these integrated daily means, instead they simply add up the figures in that column. '''Thus, the way that Cumulus 1.9.4 (and Cumulus MX up to and including build 3067) works out all of the annual averages is arithmetrically wrong (the discrepancy varies through the year but is highest in March/April (because February has fewer days). The yearly average is calculated by adding all the months and then dividing by the number of months. Arithmetrically, the most accurate average is from adding all individual readings and dividing by number of readings (this what Cumulus does in the [[today.ini]] file that holds sum and number of readings. The NOAA reports however read from the [[dayfile.txt|daily log]] so a more accurate annual average can be calculated from adding all the daily averages and dividing by number of days (which is what newer CM builds do).'''


== Alternatives ==
== Alternatives ==

Revision as of 16:38, 8 March 2020

Calculation

The average temperature for the day, is calculated by Cumulus using samples of the temperature taken at 1-minute intervals (sometimes called the 'integration method'). (This assumes Cumulus is running continuously, if it has just been restarted, for some station types Cumulus will use the temperatures stored at the console logging interval for the period since Cumulus previously ran). Each minute the new measurement is added onto the accumulator Total and increments by one the counter Samples in the today.ini log file.

Cumulus outputs

At rollover, the AvgTemp field in yesterday.ini holds the final integrated mean calculated by the quotient of Total over Samples in the old today.ini and the same average is written to dayfile.txt. The integrated mean temperature for each day is also output to the monthly NOAA style report row for the last line (which is yesterday's date). Integrated average temperatures are thus available as webtags for today and yesterday. For past days they are found in the dayfile.txt.

The average of these daily intregated means for the whole month is shown at the bottom of the monthly NOAA style report, and the lowest, actual, and highest of these integrated daily mean for each month are output to the annual NOAA style report. Providing Cumulus is in continuous operation, so the number of measurements in the calculation is the same for every day, the average of integrated daily means over a month is mathematically the same as an integrated mean for the whole month.

The annual averages shown at the bottom of the annual NOAA report do not use these integrated daily means, instead they simply add up the figures in that column. Thus, the way that Cumulus 1.9.4 (and Cumulus MX up to and including build 3067) works out all of the annual averages is arithmetrically wrong (the discrepancy varies through the year but is highest in March/April (because February has fewer days). The yearly average is calculated by adding all the months and then dividing by the number of months. Arithmetrically, the most accurate average is from adding all individual readings and dividing by number of readings (this what Cumulus does in the today.ini file that holds sum and number of readings. The NOAA reports however read from the daily log so a more accurate annual average can be calculated from adding all the daily averages and dividing by number of days (which is what newer CM builds do).

Alternatives

This offers an alternative to the simple mean of the highest and lowest temperatures of the day, and can give a 'better' average in cases where the high or low temperature occurred for a relatively short period, so could skew the simple average. To compare the two, select This period from the view menu and by default it will show both the integrated mean and simple mean temperatures for yesterday when you click Update display.

Note that statistically, a median temperature could be used to avoid such skewing, this would require holding all the individual measurements for a day, ranking them in order of magnitude and quoting the central value in that list - Cumulus does not retain the every minute individual values and cannot calculate median. If you wanted to compare daily median and daily mean, you would need to analyse the monthly log file with an external package.