A word about Tropical Cyclone Alfred

As it has become known Brisbane and surrounding areas will experience an impact from Tropical Cyclone Alfred during this week. According to the currents forecasts and modelling at the present time as of 10 pm on Monday 3 March 2025 it is suggested to make landfall somewhere between the southern Sunshine Coast and Brisbane late on Thursday 6 March 2025 or early on Friday 7 March 2025 as either a category 1 or 2 system. There is still uncertainties in the track, intensity and speed of movement that dictate the precise effects from the system, which should improve as it gets closer. However damaging or destructive winds, heavy and locally intense rainfall with flooding and dangerous coastal conditions are expected well ahead, with and behind the system.

Please keep updated with official information from the Bureau of Meteorology and make preparations well ahead of the onset of the severe weather according to advice from the authorities.

Ferny Grove Weather will remain operational as long as possible during the event and this includes our real-time updates. Possible power interruptions may disrupt these updates and the data on the website may not update in a timely manner. Without power and/or telecommunication systems working our data will still be logged. When these services are restored the data will be fed back into our reporting system to be available again on the website once again.

There is a chance that our monitoring equipment will be damaged during the event which may cause an outage of some of our weather data. In that case the utmost effort will be made to get our weather station back up and running again as soon as possible but in this case it may take some time to conduct repairs.

Ferny Grove Weather will be here to provide real time data as much as it possible during this events. Please take the necessary precautions and stay safe everyone.

Website update v1.13.0

2 new pages are now available on the website allowing for multiple parameters to be plotted together on the same chart. These new pages are:

  • Recent Data Select-a-Graph graphically shows the data at 1 minute intervals for the past 7 days. On this page you can configure your own graph and add and remove the parameters to plot together as required
  • Select-a-period Multi Graphs graphically shows the data less frequently for between a start and end date. The plotted data frequency is affected by the time period selected where data over longer periods of time are charted at a lower data frequency. Also on this page you can configure your own graph and add and remove the parameters to plot on the chart.

Various other modifications that has been made and are summarised as:

  • A bug fixed with the graphing of charts showing yellow or blue banding for sun out or night which was not working correctly when data is missing
  • Visual improvements to axis labels on the home page real-time graph and added visibility of rain series on home page real-time graph where rainfall > 0.2
  • Change this sun/night banding to use sunrise/ sunset instead of theoretical solar radiation
  • Backend improvements to the file structure, updating highcharts and Jquery as well as clean up redundant file links
  • Updated Website Analytics to show data for the past year to the on-page table and corrected an issue preventing the rendering of the graphs

Additions to website

Several additions to the website in the latest update (v1.12.0) has been made with several new graphs now available. Various other changes have been made and the seasonal weather summary for the summer of 2020 to 2021 has been published in Reviews.

The new graphs available are as the following:

  • Website Analytics: 2 new graphs of cumulative number of visits and page views of all visitors (Cumulative Visits) and return visitors (Cumulative Return Visits)
  • Historic Graphs: New graphs for annual thermal energy (shown under Thermal). This is shown for Growing Degree Days and Temperature Sum that utilises daily temperatures compared to base temperatures to track plant growth and seasonal progress
  • Heatmap charts: This is a new page that shows our logged historical data for the past 10 years by hour and day across a given year for a selected metric
  • Wind Rose charts: This is another new page that charts the distribution of wind speed and wind direction for various periods. The time periods include recent data and any year, month or all data during the last 10 years

To provide further information about how the new graphs have been added, that php scripts are used to run queries against the database and insert that data into JSON format arrays in a format that the Highcharts graphs can use. The link to the js file containing the Javascript code for the highcharts can be viewed from page source code, such as analyticsSQL.js for the Website Analytics graphs. From the Javascript code the code of the php scripts used as the data input can be accessed by appending a ?view=sce to the url.

Adding the new website analytics graphs as mentioned above came about because it is of interest to plot the month to month trend in the visitor numbers. From this it can clearly seen that the trend have been generally linear even though there are variations in individual months. The direct links to the php scripts are as per the following: Cumulative Visits and Cumulative Return Visits

Explaining the Growing Degree Days (GDD) in more detail this provides an easy to use simple indication of crop or plant development over a period of time as result of the accumulation of heat. Plant growth is often dependent on the amount of heat experienced over time. So to quantify the amount of thermal energy available over time, GDD is a cumulative total of daily temperatures that can give an indication of how the season/s is progressing for plant growth and provide a future indication to when a required amount of GDD would be reached.

Note that other factors are not included such time integrated warmth over each day, transpiration, soil moisture and rainfall. The daily GDD contribution is calculated as the difference of the daily average temperature (average of minimum and maximum temperatures) for each day from base temperatures. The daily GDD is set to zero if the average temperature is below the base temperature (not possible in our climate). Daily maximum temperatures over 30 C are capped at 30 C as many plants don’t grow as quickly in hotter weather.

The temperature sum is similar and provides an indication of the accumulative effect of the thermal energy available over a period of time based on the temperature. However that while the Growing Degree Days (GDD) provides an indication for plant growth, Temperature Sum provides a more general gauge on the progress of the total amount of coolth or warmth of the season/s. Similar to the GDD base temperatures are also employed.

The temperature for each day for the temperature sum is calculated as the difference of the daily average temperature (average of minimum and maximum temperatures) for each day from base temperatures. The daily temperatures used for sum that are below the base temperature do reduce the cumulative temperature sum, in contrast to this not affecting the cumulative temperature in GDDs.

The php scripts employed for the GDD and temperature sum are parameterised meaning that values are appended to the end of the url to control the output received in the query. This allows for the base temperatures and starting month to be defined as well as the capping of temperatures at 30 C in GDD or the metric used in the temperature sum. The header in the php script explains in more detail about the parameters the script accepts. The temperature sum is show for daily average, minimum and maximum temperatures (metric used is set in the url parameter) because there are differences between these that show the coolness and warmness of the season in different ways depending on the base temperatures chosen. The direct link to the php scripts is the following: Growing Degree Days and Temperature Sum.

And if of interest this is the main SQL query for the annual Growing Degree Days for each year as contained in the php script which uses both SQL and php variables.

And this is the main SQL query for annual temperature sum for each year as contained in the php script which has both SQL and php variables.

Let us know if you find this content interesting or if you have any questions or comments. I hope that you find the new data helpful or of interest.

UV radiation data

The website have been updated (v1.11.0) with new data that is now available on multiple pages to incorporate Ultraviolet (UV) radiation data following the start of recording this data from 21 March 2021. This addition is part of changes to measure solar radiation and air quality and to switch to a Weatherlink Live receiving unit between 19 and 26 December 2020.

The following pages have been updated with additional data:

  • The home page: the UV Index have been added to the real time updates including the UV Index exposure categories in the international colours with sun protection suggestions when hovering over the UV Index category
  •  Gauges: A gauge for UV Index was added
  •  Recent Graphs, Past Months Graphs and Historical Graphs: updated with new graphs containing UV Index (with banding for the exposure categories) and UV Dose data, as well as adding the UV Index to the existing Solar radiation graphs
  •  Today and Yesterday: Extremes and total for UV Index and UV Dose added
  •  This Month and Year: Extremes for UV Index added
  •  Annual Data Summary: Data for UV Index added
  • All-Time Records: Extremes for UV Index added
  •  Top 10 Records: UV Index records added
  •  Recent Extremes Since: UV Index extremes added for today and yesterday
  • About: updated with new information regarding the addition of the UV sensor that have been installed
  •  System Status: Reworked to align with the system changes and to provide additional system information now available with this change
  •  Glossary: Updated with additional terms for UV Index and UV Dose, including details of the formula used to calculate the UV Dose.

 Other changes made with this update include:

  • The database script that updates the Website Analytics page with current rainfall data by website visitors is now automated at the start of each month. This is a very expensive series of calculations that is only updated monthly.
  • On the Website Analytics page an issue fixed with the showing values greater than 90% on the Daily Rain by Visits graph
  • Fix an issue with the “New records in last 10 days” on the home page that didn’t show the month for a new monthly rain rate record
  • Added a note of discouragement to the link page about not requesting links to be added for commerical or spam purposes.

The UV Dose was added as to quantify the amount of UV radiation received at this location for each hour and over the course of day. This is because it is known that it is both the magnitude and length of time that determines how much radiation exposure is being received for sun protection purposes. This is calculated for each hour and shown on several pages. Whilst the Glossary page provides more information about this measure and how it calculated, for those interested below is the SQL statement to calculate the UV Dose from the real-time data for the Recent Graphs page.

And similarly the SQL statement for UV Dose on the Past Months Graphs page:

Feel free to let us know of your thoughts or suggestions regarding these additions.

Thank you: Website after two years

Today marks two years since the launch of the Ferny Grove Weather website. It is great appreciation to everyone who have visited this website during this time. I would especially like to thank those who have showed a continued interest in the website who have visited many times.

During this time, a total of 3879 visits have been made by 1311 visitors of which 59 % have previously visited the website. Those who have visited this website most frequently (in top 1% of all return visits made) have brought 58.2 % of all visits which were made by 20 unique visitors. A total of 5401 page views have been made.

It is not surprising but is very satisfying that visit activity on the website increased during times when the weather is more active and especially during wetter weather which are obvious in the information contained on the Website Analytics page.

There is very strong interest in the real time data on this website which received a large proportion of all activity on the website (52.2 % for the home page and 37 % for the gauges out of all of the page views).

This website came about based on the desire to upgrade the weather station used for improved accuracy and to shift towards measuring the weather in real-time. This website was built as a personal project to view the data that was easy to access, be updated in an automated nature as nearly to real-time as possible and no matter what screen size I am using. It was however not expected to see this interest from everyone but is certainly valued that for those who have wanted to keep tabs on the weather have used this website to do this.

Moving forwards there is much more planned to improve and add to the website and this includes a plan to publish data that to date is not viewable on the website. As this is a personal project and the complexities involved, it does takes time to complete these additions with the accuracy and use friendliness of the website being important components to this get right.

But if there are any specific things on the website you would like to see for consideration or if you have feedback, you are always welcome to reply here or to Contact Us with your thoughts.

New air quality statistics

The air quality data we recently began to measure has been expanded to include statistics for this month, this year and all-time.  This data is now available on the this month and year and all-time record pages.

In the short period that we have been measuring air quality the air is exceptionally clean. For the vast majority of the time the particulates and air quality index values have been extremely low (good) and have been elevated to a slight degree only for fairly short periods of time.

To include these new statistics changes were required to be made to our database. Since the recording of air quality began from 26 December 2020, a routine is ran at the start of each day to fetch the data from the previous day to insert a new row into a database table for that day. However generally only the averages and maximums were shown, without the earliest time of the occurrence. With these improvements now the averages, minimum and maximums are measured for each day along with the time of minimums and maximums.

However, it should noted that these additions began from 7 February 2021, because we only retain the real-time data for 7 days (for data storage reasons). Therefore the time of occurrence will not be shown for statistics before this date. Also we collecting a vast range of daily parameters, most of which haven’t been published to a great deal on the web site, but is being collected for completeness and for future analysis.

To provide a bit more information about how this works a MySQL database procedure (as shown below) is scheduled to run at the start of each day to insert the previous day data into a table of daily air quality averages and extremes. This uses the ROW_NUMBER window function to calculate the earliest time for each individual minimum and maximum for each day. A query for each of one of these calculations are then joined to a query that essentially merges these calculations into one table. Because these calculations are rather expensive a variable retrieves the latest date of data already inserted into the data to limit the quantity of data that is calculated to only the data not already captured in the daily table.

These queries are both performed on the real-time table (every 10 seconds) and an 5 minute interval logged data table, with the results inserted into temporary tables. These two temporary tables are then used to determine the greatest value of each of these data sources to insert the data for each column of data. This is so that the data is suitably captured due any possible network outages that may affect the currency of data. The SQL COALESCE function is used to return the first non- null value from these data sources, with preference provided to the Real-time table.

A PHP script contains SQL queries that retrieve the necessary information from this table and are assigns to variables when the web page is visited. This allows for these statistics to be shown on the web page and is the same principle as several other statistics on these and other pages. The SQL queries are fairly simple because the daily air quality data already shows all the required summarised information for each day.

Solar and air quality data

New data is now available on multiple pages to incorporate solar radiation, sunshine and air quality following the start of recording these parameters from 26 December 2020. These sensor were installed along with the change to using a Weatherlink Live receiving unit between 19 and 22 December 2020, which were then tested for compatibility with our processes and existing data.

The following pages have been updated with additional data:

  • The home page: the solar and air quality data have been added to the real time updates on the home page, sunshine/ night-time bands have been added to the real-time graph, the station forecast have been removed and a Bureau of Meteorology forecast added
  •  Gauges: A gauge for solar radiation was added
  •  Today and Yesterday: Averages, Totals and Extremes for Solar, Insolation, Sunshine and Air Quality added
  •  System Status: Reworked to align with the system changes and to provide additional system information now available with this change
  •  Glossary: Updated with additional terms of Air Quality, Insolation, Solar Radiation and Sunshine.

 A routine now runs at the start of each day to collate the air quality data into an additional daily database table used in the Historical graphs. The Realtime database table was altered to include air quality data. A monthly air quality database is also populated with data each 5 minutes.

A combination of our regular data updating on the website and these Realtime and Monthly database tables are used to update the tables and graphs on the website. The Realtime and Monthly database tables are also used as in the input to update the daily air quality database table.

Coming soon will be the addition of UV data. Also air quality data for the this month, this year and all-time records is also planned. Additional data will need to added to the daily database table in order to show that data along with the date and time of the occurrences.

Under progress is the calculation of daily potential evapotranspiration and possibly evaporation now that we are measuring solar radiation. Due to limitations with the system I am using it appears these will have to be calculated, rather than supplied by the weather station directly. These are rather complex multi-step calculations, so considerations are being made with the practicalities of that and what data will be shown from that on the website.

September 2020 weather review

The review of the weather at Ferny Grove during September 2020 is now available.

During September 2020 overnight temperatures were above average and were the highest in 10 years. Similarly to August 2020, the month saw very few cool nights and many warm nights throughout the month. The 18th to 25th saw overnight temperatures peak at 9 ºC above average. Daytime temperatures were close to average and saw a mixture of above and below average temperatures.

Rainfall in September was below average but was close to the long term median, with a total of 14.2 mm (42.7% of the long term average). The long term rainfall for September is generally quite low, hence the close to median rainfall. While the rainfall total was quite low and continuation of the trend of low monthly rainfall totals, the year to date rainfall however remains above average at 9.8 % above the long term average and the highest since 2015. Low daily rainfall totals with light showers during some days during the month. A thunderstorm passed to the south on the 25th, as well as another thunderstorm to the north and brought a brief light shower.

Long period rainfall totals remained well below average during most periods while deteriorating further. 6 monthly rainfall fell significantly to 161.7 mm below average being more than 6 months since significant rainfall at the start of the year. 9 monthly rainfall was 79.4 mm above average while 12 to 48-month rainfall was between 72.4 mm below average for 12 month rainfall and 245.3 mm below average for 24 month rainfall.

The summary containing the key information can be found here.

The full report of more detailed analysis is available here.

Website analytics

A new page is now available that has been in development lately of a different nature to the existing content on the website. We use the privacy friendly open source website analytics platform Matomo that is hosted on-premises where we fully own the data that allows us to understand the usage and interest in this service we provide.

This website analytics data have been used to determine whether there is a correlation between the visits are made to the website compared to amount of the rainfall at the time and to test whether visitor activity is stronger during wetter weather. From this it have been discovered that at this time that while a lot of visits are made when there is no rainfall, when expressed in percentage terms that there is a general trend in more interest in the website during wetter weather, whilst visits across the range of rainfall totals are very consistent.

This information of visits by rainfall have been published on the new page as four charts using this information calculated from our databases. In addition to this, more standard summarised data over time of the number of visits, the type of devices used and the visits made by returning and frequently returning visitors. On that page are explanations of the definitions relating to this data and also there are key metric for various periods to provide a quick summary.

Thank you to all those who have shown an interest in this website and the many who have come back to this website many times. I have been quite surprised at the strong visitor activity that has occurred and there is clearly an interest on local real-time weather data. This website is in continued development with completed new works announced on this blog in addition to updates to the website that are mentioned on our Website Info page.

The below information is provided to share how this page is put together at this time for anyone who want to have more understanding of this. Both the analytics data and weather data are stored in MySQL databases, which are both used to create four database tables containing the data for the four graphs for the visits by rainfall. These calculations use table joins and appropriate aggregations to produce the data to allow for a fair comparison. But because these are quite complex calculations the database queries are not executed when a graph is viewed as retrieving the current data will add significant time to load the graph.

So given that this data doesn’t change too quickly, a SQL procedure is executed once a month to update the data for when someone visits the page. The SQL code used in that procedure is similar to the below example. The methodology used is that a table is created to calculate the amount of rainfall in the previous 24 hours for each hour during the past year, of which this data is not readily available in the database. This is derived by first calculating the rain for each hour, then the cumulative rainfall during the last year for each hour and then calculate the amount of rainfall for each hour compared to the same time in the previous day.

Once we have that data then table joins are used to merge the analytics data to this rainfall data for each of the four tables. Finally at the end the rainfall data is deleted, as the data is no longer needed.

The other graphs that don’t compare the rainfall by visits use php scripts to run a query to retrieve the necessary information from the database and insert that data into arrays in a format that the Highcharts graphs can use. This is quite similar to the other graphs on the website. The Javascript code for the highcharts is heavily based on the graphs elsewhere on this website, which is accessible through viewing the page source code. From the Javascript code the code of the php scripts used as the data input can be accessed by appending a ?view=sce to the url.

The summary statistics at the top of the page uses data from a php script that contains a series of variables whose values are assigned from the result of SQL queries. That php script is used as an php include in the web page like this: include './utils/SQL-queries/analyticsData.php'; and the variables in that script are used within the table such as: <?php echo $visits7day ?>

Similarly a php script is used to return a variable for populating the update time for the visits by rainfall data. This is quite simple in that it returns the distinct updated_time field of the one of the database tables containing this data and the query is formatted in php to show the date in the required date format.

These are the SQL statements to calculate the summary statistics in the table:

And these are the SQL statements to return the data for the graphs excluding the visits by rainfall which while a php script also retrieves that data, those queries are very basic because the data is already pre-generated.

New graphs

In the past month two new pages are available that show recent and historical data as charts for various parameters. This data is drawn from the weather station database each time one of these graphs are viewed. These new pages are:

  • Historic Graphs that shows the historical data for the various parameters summarised as daily, monthly and annually. This uses data from the entire station record of the past 9 to 11 years (depending on the parameter). Among these graphs is the plotting of the long term average for each month of the year, along with the highest and lowest measurement made.
  • Hourly Data Graphs shows the average value for each hour for the past 30 days compared to the long term average for the respective hour and month. Also plotted is a dashed line of the hourly average value. This allows to view the trends summarised as hour over time and see how the much the plotted data is above or below average (or close to average). This calculation is a little intensive, so the graph my take a little longer to load than the other graphs because all the sub-hourly data records over the entire station record need to retrieved from the database to determine the long term average which is then compared to the calculated average value for each hour.