Meteorological day

This page applies to both the original Cumulus software and MX.Category:Terminology
=Daily assignment=
The World Meteorological Office (WMO) allows individual nations some flexibility, and does not prescribe total international alignment. Thus the practice of UK Met Office, the Australian BOM, the Met organisations in New Zealand, Israel, Canada and the USA, each have differences that cannot be fully covered here (some get mentioned in forum posts, see #Read more).
Most weather organisations in the world still to some extent remain consistent with the traditional way of working. This means that they report by meteorological day. The table below shows this concept is not as simple as that sounds, generally that day is made up of several periods (see #Traditionally), and which date a period is assigned to depends on the weather measurement being recorded. For example the minimum temperature is most often experienced in early morning and the maximum temperature is most often experienced in mid-afternoon so these occur either side of the traditional 9 a.m. used to determine the date to which these daily extremes are assigned.
Steve Loft created Cumulus software, back in 2003, because he owned a weather station and he could not find any software that allowed him to process measurements in the way he wanted. The first public release, allowing other people to use his software, was on 27th January 2004. Most weather software can only report daily measurments on a calendar day basis (since midnight). Steve Loft did make a simplifying assumption that does not align with the practice of most Meteorological Offices, as the table also indicates, he decided to design Cumulus software so it would report all daily derivatives based on a day that started at 9 a.m., he later added reporting since midnight for rain. MX development by Mark Crossley has added reporting rainfall maximums in any 24 hour period and reporting maximum and minimum temperature since midnight.
The legacy Cumulus made the swap to 10 a.m. in Daylight Saving time optional, and also permits the use of a midnight rollover as another option.
The following table tries to illustrate the divergence if you choose a rollover time other than midnight:
Derivative 	Typical national practice 	Cumulus approach
Minimum Temperature 	The daily minimum temperature in the 12 hours (9 p.m. to 9 a.m.) prior to the traditional observation time is assigned to the date of that observation 	The daily minimum temperature in the 24 hours starting at the selected rollover time is assigned to the date of that rollover
Maximum temperature 	The daily maximum temperature in the 12 hours (9 a.m. to 9 p.m.) after the traditional observation time is assigned to the date that applies to both times 	Reported for day starting at rollover time
Average temperature 	The WMO says that daily temperature average is best calculated in a way that is comparable with historic climatic records, although it accepts there is some divergence between nations. The WMO preference is to report for mean temperature the average, of the minimum in previous 12 hours, and maximum in subsequent 12 hours, this ensures consistency with traditional climate statistics that might be dependent on a single observation of maximum and lowest per day. 
* Prior to automatic recording, some stations would have manual recordings taken a few times a day, and if these were at 0600, 12:00, and 18:00, the mean might be calculated by adding the 3 readings, then adding the last again (to compensate for no night-time observations), and dividing by 4!
* Nations are permitted by WMO to use integrated averages for their internal purposes. (By integrated all automatic measurements that are available, the reported average is a better representation for the entire day).	Every time Cumulus processes a temperature from your weather, after conversion to your units, and any calibration multiplier/offset has been applied, the resulting temperature is added to a total kept in today.ini, incremented the count in the same file. The integrated average reported at the end of the day is a simple calculation, the total is divided by the count.
Rainfall 	Some nations report the daily rainfall for the 24 hours prior to the standard observation time on a particular date (that time might be 9 a.m. or 3 p.m.). Others, throw their rainfall total back to previous date, i.e. recording the total for the 24 hours after 9 a.m on the particular date. 	Cumulus checks the current reading from a "count" supplied by weather station, it subtracts from this the count it stored at rollover time. From the count different, converted to required units, and calibrated, Cumulus assigns a rainfall total to the date when the day started. The later additional options of rain since midnight, and maximum rain in 24 hours, subtract current count from count at midnight and (tracking maximum) from count approximately 24 hours earlier respectively.
Sunshine Hours 	Always reported by calendar day (00:01 to 23:59, there is some inconsistency whether the exact second of midnight belongs to day just ended or day just starting) 	Regardless of which rollover time is selected, Cumulus always reports sunshine hours from one minute past midnight until exactly midnight for any day. Note, MX does this efficiently, by using yesterday.ini if necessary to store total at midnight; the legacy Cumulus 1 was dependent on internally (RAM) held counts, so (if that software was not running continuously) the count was reset when the legacy software was restarted.
Snowfall 	A snow day is reported by calendar day. The snow depth may be only reported at standard observation time of 9 a.m. (or as maximum that day) 	Processing changes by flavour:
* MX reports snow falling, snow lying, and snow depth, taken from the weather diary.db. If the hour part of the current clock time is less than SnowDepthHour, the diary entry for previous calendar date is sought, for SnowDepthHour onwards it seeks diary entry with current calendar date
* The legacy Cumulus reported just snow depth, but it used that to calculate the snow index for a month, year, or season. Again, it checks hour of clock time against SnowDepthHour to decide which date to seek in Weather Diary. However, that diary could have any number of entries for any one date, so Cumulus permitted retrieval of any of those, but for snow index only uses last one of any date.
Highest and lowest pressure	Reported for day starting at 9 a.m. 	Reported for day starting at selected rollover time
Wind measurements 	Highest wind speed is reported, based on measurements involving averaging over 10 minutes, for day starting at 9 a.m. Gusts are highest speed reported in a 10-minute sample. Gale Days are reported for any day when for at least 10 minutes starting at midnight the sustained wind speed exceeds 39 mph (62 km/h, 34 kts) or more, equivalent to Beaufort F8 or above.	Reported for day starting at selected rollover time
==Choice of rollover time==
It has been mentioned that Cumulus allows for 3 rollover time choices:
# 9 a.m. throughout year (if timezone does not include daylight saving period, all days will be 24 hours long; otherwise there will be issues when clocks change to/from DST)
# 9 a.m. in winter, 10 a.m. when/if Daylight Saving Time applies (all days will be 24 hours long, throughout year; still will be issues when clocks change to/from DST)
# Midnight throughout year (if timezone does not include daylight saving period, all days will be 24 hours long; otherwise there will be issues when clocks change to/from DST)
Once you have made the choice of one of these rollover time settings, you will stick to that. If you make a change, then it is best to start with a new set of files in the data folder because the only unaffected file is all-time.ini.
Steve Loft did not ever share the code for Cumulus 1, but he did make some observations concerning his code. It appears some (but apparently not all) of his legacy code used a special time zone with a 9 a.m. rollover recording as if it was midnight on the date in question, i.e. the internal Cumulus clock was subtracting 9 hours from the computer clock; e.g. when a clock showed 3 p.m. the time stored by Cumulus (and this could be seen in certain tags that by default only showed date) was 06:00 on the date in question (not 15:00).
Cumulus MX consistently uses the clock time reported by whatever device is running the software; if that time is wrong for any reason, every action by MX will be recorded against wrong time, and possibly wrong date.
=Traditionally=
The modern Cumulus user tends to forget that computerisation is a fairly recent (at end of 20th century) change for weather recording, which started in a few places in ancient times, but became widespread from 19th century in most nations.
Older people will remember how weather was traditionally recorded because there were a lot of local measuring stations, often located in places where they could be seen, like parks within settlements, roofs of public buildings, near public viewing points at airfields, or in fields on edges of smaller settlements. The fairly standard layout of instruments made them very easy to spot. Such weather instruments were not directly connected to a computer. Observers could be seen to manually read the instruments at least once a day, traditionally at 9 a.m. (one hour later in daylight saving time). At key stations, observers made measurements every hour, and even more frequently at places like airfields, especially in increment weather.
Most measurements were manually logged onto a sheet, or into a notebook, as they were made. Semi-automated instruments, like barographs and sun recorders, were often spotted at tourist hot spots, these did record readings on a chart using a continuous process over a 24 hour or 7 day period. Once a day, or once a week, the chart paper was changed, it would then be manually read, and converted to recorded figures. For temperature, James Six invented an instrument that could store the highest and lowest temperatures between manual readings, and a muslin wick was used to record wet bulb temperatures in order to derive humidity and dew point.
Subsequently, longer period derivatives could be calculated from the manual measurements; and these might be either posted/phoned to the main weather service, transmitted electronically (originally by telex), or entered into an electronic record (probably shared in arrears).
=Modern era=
Towards the end of the 20th century, not only did computers become small enough to be located on a widespread basis, but electronic sensors that could record various weather parameters started to become cheap, reliable, and widely available. Also the invention of the teleprinter, and later of internet, provided ways of electronically sharing in near enough real-time.
Thus the concept of recording/sharing weather data in real-time finally became available.
Subsequently labour costs mean that in most nations, few physical weather stations remain, generally maintained only for two purposes. The first purpose is to serve the needs of pilots, most airfields continue to have local recording sensors, fully automatic at some airports, supplemented by manual observations at airports prone to fog or other issues of concern, and still manually operated at smaller airfields that have not invested in computerised kit. The second purpose is to provide consistency with past measurements where still used to inform climatological models based on measurements over 1 to 3 decades, this has preserved a few physical representational sites in each nation.
For all other locations, there is a reliance on satellites to sense the weather. National meteorological services use mathematical models to interpolate those widely spaced sensings to produce estimates of readings, and to make forecasts, for a more local grid based network of locations.
=Read more=
thunder, rainfall, mean sea level pressure, snow days, fog day, minimum and maximum temperature
minimum temperature, and rainfall, a day out
WMO guidance for climate normals see table 1 on page 3 where it says " Different methods are in operational use for the calculation of daily mean temperature."