The measurement results are downloaded every 10 minutes from the FMI server.
The results are processed and uploaded to the server every 20 minutes.
See also weather data from the FMI Service,
which also has weekly, monthly and yearly measurements (In Finnish).
Temperatures
Humidity
Pressure
Wind
Windrose
Rainfall
Weather
Graphing weather statistics
with RRDTool
1.
Loading weather information for Varkaus Kosulanniemi [FMISID=101421].
10/2/2019 - The use of open data from the Finnish Meteorological Institute no longer requires registration.
wget -t 1 -O ~/fmidata/varkaus.xml ${URL}
URL="http://opendata.fmi.fi/wfs?
service=WFS^version=2.0.0^
request=getFeature^storedquery_id=fmi::observations::
weather::timevaluepair^fmisid=101421^timestep=10^"
Ampersand characters have been replaced with ^
2.
Parsed XML data to time:value pairs:
0 15-07-2017 13:50 Temperature 17.1 °C
1 15-07-2017 13:50 Wind 3.4 m/s
2 15-07-2017 13:50 Direction 311.0°
3 15-07-2017 13:50 Humidity 57.0 %
4 15-07-2017 13:50 Dew Point 8.6 °C
5 15-07-2017 13:50 Pressure 1013.7 hPa
6 15-07-2017 13:50 Felt like 16.9 °C
Save values to CSV file for RRDs tool input.
Save values to MySQL database, just in case.
3.
Collect data from CSV file:
TEMP=`cat ~/fmidata.csv | cut -d ',' -f1`
WIND=`cat ~/fmidata.csv | cut -d ',' -f2`
... and so on ..
Update RRD database:
rrdtool update ${RRDDIR}/temp.rrd N:${TEMP}
rrdtool update ${RRDDIR}/wind.rrd N:${WIND}
4.
Create RRD Ghraps (Daily):
rrdtool graph $OUTPATH/wind-day.png
--start -24h --end N --step 300
...
DEF:w=$RRDPATH/$WINDFILE:wind:AVERAGE
LINE2:w$WINDCOLOR:"$WINDWORD"
COMMENT:"5 $MINUTEWORD $avgWORD\\n"
GPRINT:w:MIN:"$MINWORD\: %5.1lf"
GPRINT:w:MAX:"$MAXWORD\: %5.1lf"
GPRINT:w:AVERAGE:"$AVGWORD\: %5.1lf"
GPRINT:w:LAST:"$LASTWORD\: %5.1lf\\n"
5.
Save FMI data to Windrose database.
There are eight "buckets" (0-7) with ranges
displayed on the legend (m/s):
0-1, 1-2, 2-3, 3-5, 5-6, 6-10, 10-13.5, 13-99
The first element (0) specify the percentage of 0-1 reading the sum of these reading,
this will be placed in the center of the windrose plot.
The second element (1) specifies the percentage of 1-2 readings,
the third element (2) the percentage of 2-3 readings and so on.
First create a new windrose graph:
$graph = new WindroseGraph(600,600);
Get data from database and create the windrose plot: $wp = new WindrosePlot($data);
6.
Copy FMI and Windrose graphs to server.
Recurse through a local FMI directory and upload the entire contents to a remote FTP server.
Copy the entire "FI101398-all/" directory located at ~/fmidata/
to a remote server's /public_html/fmidata/FI101398-all/ via FTP.
Data Collection System (24.2.2022)
Operating system: Linux
Kernel: 5.4.0-100-generic
Machine: x86_64 (Ubuntu 20.04.4 LTS Server)
Server version: Apache/2.4.41 (Ubuntu)
Data Collection: Python 3.8.10
Graph: RRDtool 1.7.2
The windrose graphic: jpgraph-3.1.x