FMI Open Data Weather Report

Composed by Jorma Hytönen with aid of Finnish Meteorological Institute and RRDTool
Varkaus Kosulanniemi Weather Information [FMISID=101421]

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
Apache HTTP Server InMotion Hosting