Accessing data using the Download Service

Download Service is way to get the Open Data from the Finnish Meteorological Institute to be used by your applications. The guidelines for the INSPIRE directive give a couple of technological options for implementing a Download Service.

The Finnish Meteorological Institute has chosen to provide the data using the OGC Web Feature Service (WFS) interface. WFS is a generic interface standard for providing access to geospatial objects, or objects with some kind of location or covered geospatial area. These objects can contain any information, and the internal structure of the objects is not limited by the specification. A WFS service is like a generic object database with a standardized query language. These geospatial objects are called "features".

WFS returns XML files

Typically WFS services return the requested data encoded as XML language called Geography Markup Language (GML), which is another OGC and ISO standard. The service has to able to return the structure description of each of the provided feature types in XML Schema language (the DescribeFeatureType operation). This operation can be used to get the expected structure information for the WFS service data responses before making the actual GetFeature request for retrieving the data.

Essential operations of WFS

The latest version of the WFS standard is 2.0, which is also the version required by the INSPIRE directive technical guidance. Consequently the WFS service of the Finnish Meteorological Institute also only implements this version of the WFS specification.

The WFS 2.0 standard defines the following operations for the Simple WFS profile:

  • GetCapabilities returns service metadata,

  • DescribeFeatureType returns XML Schema description for the requestes feature types,

  • ListStoredQueries lists stored queries available at a server

  • DescribeStoredQueries returns detailed metadata about each stored queries,

  • GetFeature returns a list of features based on the given query.

The standard defines for the Basic WFS profile that it shall implement operations defined for Simple WFS and shall additionally implement the GetFeature operation with the Query action and the following operation:

  • GetPropertyValue returns only the values of selected properties of the requested features,

The standard also defines LockFeature, GetFeatureWithLock, Transaction, CreateStoredQuery and DropStoredQuery operations. See the standard for getting more information about the operations.

The Simple WFS profile is the minimum that a server shall implement. If the server does not support the Basic WFS then the Simple WFS is only supported. The response of GetCapabilities request describes which operations the server supports and what constraints it has.

Stored queries are identifiers for data sets

The current version on the Open Data WFS service of the Finnish Meteorological Institute uses the stored queries extensively to enable users to select the features, areas and times they require as easily as possible. See the Open data WFS Service for more detailed information about the available stored queries and their request parameters.

Data is returned using standard data models

For more info on the data models (feature types) used by the Open Data WFS service see page About the Observations & Measurements data model, and if the XML based WFS interface seems a bit too much, and you just want to get your hands on to the weather timeseries data of the Finnish Meteorological Institute, go directly to WFS timeseries page including usage examples for client library (MetOLib).

WFS provides collections of features

The WFS operation actually returning the data is called GetFeature. It always returns a collection of features, typically encoded as an XML document.

Some features are relatively simple:

<ms:greenland_elevation_contour> <gml:boundedBy> <gml:Envelope srsName="EPSG:32661"> <gml:lowerCorner>-327189.501776 -456661.863393</gml:lowerCorner> <gml:upperCorner>-327164.993574 -456636.649888</gml:upperCorner> </gml:Envelope> </gml:boundedBy> <ms:msGeometry> <gml:LineString srsName="EPSG:32661"> <gml:posList srsDimension="2">-327164.993574 -456638.840870 -327189.501776 -456636.649888 -327183.636846 -456661.863393 -327168.660334 -456653.526955 -327164.993574 -456638.840870 </gml:posList> </gml:LineString> </ms:msGeometry> <ms:Label>1000 m</ms:Label> <ms:Elevation>1000.000000</ms:Elevation> </ms:greenland_elevation_contour>

Some may be more complicated containing inner objects and deep structure:

<omso:GridSeriesObservation gml:id="WFS-mAtIOdPSM2.eituftxovoFHLrR2JTowu4WbbpdOs2_llx4efR060YeW3fu05XTrn15ZsOPK6dcN.nd0dOtvXZ008N.nd0x7.2Xlhz5YWliy59O6pp25bU38KtS.21wmNj5c61ItCnHdOmjNk2Z2XdkqaduW1N_CrVvt2UJwZtO7JOy4eWXn0rYdmnJIZmfLv05OdZjZq4ZMmro15fPffyyX9_bLy78tPTDi2ZYmlsy9suyp54ZamZs348OzLWpm0340ld16ZnDW24fETTz6Yd2PLStXQgNbbp589O7PUy.OlY07DOZW3fky7K.NGHlt37tOW_zx4d2TTuw9tOG_z68s2HHlZXDDyw7a0KHLLz59eWWtSPl38JGXTn0dK1qmXbwy8sPTryy1oRMvehv07ulaEjrt05NPTzW1X07skTTyy4.mnfurWr6d2Snwy5ck2nWdX07slWbTrOr6d2StNp1zUOWXHp4aemHpp37oO3f13dK3qm_ph2Q9m_rkh7.2XlW1M394ezf1yQ9_bLyrgm5cmnrth7N_XJD39svKtyRpz6Iezf1yQ9_bLyrepYcmnD00790fZvxYdle1LDk04emnfuj7N.LDsg48fXb12YemnfurDCpYcmnD007907L0p9eWbDjyzK8HHj67euzD00791YYVLDk04emnfunZelPryzYceWnXg48fXb12YemnfurupYcmnD00791OvBx4.u3rsw9NO_dWpW089OLTs09PNaFfTuyR.vPo3OfTfyy5OPXLy839OSvcLNt0unWbfyy48PPo6daMPLbv3acrp1z68s2HHldOuG_Tu6OnW3rs6aeG_Tu6Y9_bLyw58rQ6aduWn0y8J.Qmh007ctrfuy1jVakMA">

<om:phenomenonTime> <gml:TimePeriod gml:id="time-interval-1-1"> <gml:beginPosition>2022-11-09T13:00:00Z</gml:beginPosition> <gml:endPosition>2022-11-11T14:00:00Z</gml:endPosition> </gml:TimePeriod> </om:phenomenonTime>

<om:resultTime> <gml:TimeInstant gml:id="time-1-1"> <gml:timePosition>2022-11-09T12:06:48Z</gml:timePosition> </gml:TimeInstant> </om:resultTime>

<om:procedure xlink:href="http://xml.fmi.fi/inspire/process/harmonie_scandinavia_surface"/>

<om:parameter> <om:NamedValue> <om:name xlink:href="http://xml.fmi.fi/inspire/process/harmonie_scandinavia_surface"/> <om:value> <gml:TimeInstant gml:id="analysis-time-1-1"> <gml:timePosition>2022-11-09T09:00:00Z</gml:timePosition> </gml:TimeInstant> </om:value> </om:NamedValue> </om:parameter>

<om:observedProperty xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=Pressure,GeopHeight,Temperature,DewPoint,Humidity,WindDirection,WindSpeedMS,WindUMS,WindVMS,PrecipitationAmount,TotalCloudCover,LowCloudCover,MediumCloudCover,HighCloudCover,RadiationGlobal,RadiationGlobalAccumulation,RadiationNetSurfaceLWAccumulation,RadiationNetSurfaceSWAccumulation,RadiationSWAccumulation,Visibility,WindGust&language=eng"/>

<om:featureOfInterest> <sams:SF_SpatialSamplingFeature gml:id="enn-s-1-1-"> <sam:sampledFeature> <target:LocationCollection gml:id="sampled-target-1-1"> <target:member> <target:Location gml:id="forloc-geoid-658225-pos"> <gml:identifier codeSpace="http://xml.fmi.fi/namespace/stationcode/geoid">658225</gml:identifier> <gml:name codeSpace="http://xml.fmi.fi/namespace/locationcode/name">Helsinki</gml:name> <gml:name codeSpace="http://xml.fmi.fi/namespace/locationcode/geoid">658225</gml:name> <target:representativePoint xlink:href="#point-658225"/> <target:country codeSpace="http://xml.fmi.fi/namespace/location/country">Finland</target:country> <target:timezone>Europe/Helsinki</target:timezone> <target:region codeSpace="http://xml.fmi.fi/namespace/location/region">Finland</target:region> </target:Location> </target:member> </target:LocationCollection> </sam:sampledFeature> <sams:shape> <gml:MultiPoint gml:id="sf-1-1-"> <gml:pointMembers> <gml:Point gml:id="point-658225" srsName="http://www.opengis.net/def/crs/EPSG/0/4326" srsDimension="2"> <gml:name>Helsinki</gml:name> <gml:pos>60.16952 24.93545 </gml:pos> </gml:Point> </gml:pointMembers> </gml:MultiPoint> </sams:shape> </sams:SF_SpatialSamplingFeature> </om:featureOfInterest>

<om:result> <gmlcov:MultiPointCoverage gml:id="mpcv-1-1"> <gml:domainSet> <gmlcov:SimpleMultiPoint gml:id="mp-1-1" srsName="http://xml.fmi.fi/gml/crs/compoundCRS.php?crs=4326&time=unixtime" srsDimension="3"> <gmlcov:positions> 60.16952 24.93545 1667998800 60.16952 24.93545 1668002400 60.16952 24.93545 1668006000 60.16952 24.93545 1668009600 60.16952 24.93545 1668013200 60.16952 24.93545 1668016800 60.16952 24.93545 1668020400 60.16952 24.93545 1668024000 60.16952 24.93545 1668027600 60.16952 24.93545 1668031200 60.16952 24.93545 1668034800 60.16952 24.93545 1668038400 60.16952 24.93545 1668042000 60.16952 24.93545 1668045600 60.16952 24.93545 1668049200 60.16952 24.93545 1668052800 60.16952 24.93545 1668056400 60.16952 24.93545 1668060000 60.16952 24.93545 1668063600 60.16952 24.93545 1668067200 60.16952 24.93545 1668070800 60.16952 24.93545 1668074400 60.16952 24.93545 1668078000 60.16952 24.93545 1668081600 60.16952 24.93545 1668085200 60.16952 24.93545 1668088800 60.16952 24.93545 1668092400 60.16952 24.93545 1668096000 60.16952 24.93545 1668099600 60.16952 24.93545 1668103200 60.16952 24.93545 1668106800 60.16952 24.93545 1668110400 60.16952 24.93545 1668114000 60.16952 24.93545 1668117600 60.16952 24.93545 1668121200 60.16952 24.93545 1668124800 60.16952 24.93545 1668128400 60.16952 24.93545 1668132000 60.16952 24.93545 1668135600 60.16952 24.93545 1668139200 60.16952 24.93545 1668142800 60.16952 24.93545 1668146400 60.16952 24.93545 1668150000 60.16952 24.93545 1668153600 60.16952 24.93545 1668157200 60.16952 24.93545 1668160800 60.16952 24.93545 1668164400 60.16952 24.93545 1668168000 60.16952 24.93545 1668171600 60.16952 24.93545 1668175200 </gmlcov:positions> </gmlcov:SimpleMultiPoint> </gml:domainSet> <gml:rangeSet> <gml:DataBlock> <gml:rangeParameters/> <gml:doubleOrNilReasonTupleList> 1003.8 7.7 9.9 8.9 95.1 225.0 7.27 5.02 5.25 0.06 100.0 100.0 0.0 10.1 10.2 165488.8 10348.1 151732.3 0.0 6206.7 11.4 1004.4 7.7 10.0 8.8 94.1 231.0 6.6 5.08 4.21 0.07 100.0 100.0 0.0 98.2 2.8 175504.6 9623.8 160972.6 0.0 8645.4 10.9 1004.8 7.7 10.1 8.8 93.8 232.0 6.3 4.88 3.98 0.08 100.0 100.0 0.0 43.9 0.0 175528.1 8374.7 160981.8 0.0 9199.6 9.9 1005.1 7.7 10.0 8.8 94.3 229.0 5.2 3.88 3.5 0.08 100.0 100.0 0.5 77.3 0.0 175555.0 4006.2 160953.2 0.0 7881.4 9.4 1005.1 7.7 9.9 8.8 95.1 219.0 4.91 3.08 3.81 0.08 100.0 100.0 60.0 88.4 0.0 175518.9 4936.1 160972.6 0.0 6216.2 7.8 1004.7 7.7 9.8 8.6 94.4 211.0 5.76 2.93 4.95 0.08 100.0 100.0 74.9 69.1 0.0 175518.9 2325.9 160972.6 0.0 10316.6 8.6 1004.5 7.7 9.7 8.8 95.5 212.0 6.66 3.42 5.72 0.17 100.0 100.0 100.0 25.5 0.0 175518.9 2233.4 160972.6 0.0 3897.6 10.0 1004.4 7.7 9.7 9.0 96.4 218.0 7.29 4.27 5.92 0.87 100.0 100.0 100.0 99.4 0.0 175518.9 6533.3 160972.6 0.0 3019.5 10.9 1004.4 7.7 9.8 9.1 96.7 218.0 8.26 4.88 6.64 1.16 100.0 100.0 51.2 0.0 0.0 175518.9 13042.3 160972.6 0.0 3337.6 12.5 1004.6 7.7 10.0 9.4 96.9 234.0 8.07 6.45 4.86 2.0 100.0 100.0 90.4 2.3 0.0 175518.9 21045.2 160972.6 0.0 3249.1 12.5 1004.8 7.7 10.0 9.2 96.2 237.0 6.07 5.12 3.34 2.14 100.0 100.0 7.3 0.6 0.0 175518.9 24792.4 160972.6 0.0 4285.3 12.1 1004.9 7.7 9.8 9.3 97.4 225.0 6.3 4.45 4.47 2.14 100.0 100.0 10.4 0.0 0.0 175518.9 -25318.4 160972.6 0.0 2901.9 9.4 1005.1 7.7 10.0 9.0 95.4 240.0 4.53 3.91 2.33 2.14 100.0 100.0 19.2 0.0 0.0 175518.9 -28986.8 160972.6 0.0 6949.3 9.6 1005.1 7.7 9.9 9.2 96.9 229.0 3.98 2.95 2.67 2.14 100.0 100.0 3.1 0.0 0.0 175518.9 -41116.9 160972.6 0.0 3329.9 6.8 1005.4 7.7 9.9 9.4 97.6 228.0 5.74 4.24 3.82 2.15 100.0 100.0 71.2 0.0 0.0 175518.9 -35625.1 160972.6 0.0 2758.7 8.6 1005.5 7.7 9.9 9.3 97.2 226.0 5.83 4.09 4.15 2.15 100.0 100.0 9.7 0.0 0.0 175518.9 -35105.6 160972.6 0.0 3004.7 9.2 1005.8 7.7 10.0 9.3 96.7 227.0 5.39 3.88 3.74 2.16 100.0 100.0 99.5 1.1 0.0 175518.9 -30464.4 160972.6 0.0 3390.2 8.8 1006.2 7.7 9.9 9.3 97.0 224.0 5.88 4.09 4.24 2.17 100.0 100.0 99.3 46.3 0.0 175518.9 -23411.4 160972.6 0.0 3146.8 9.1 1006.9 7.7 10.2 9.0 94.5 238.0 6.31 5.3 3.44 2.18 100.0 100.0 0.0 74.8 3.3 187190.5 -21311.4 171670.9 0.0 7678.6 9.6 1007.8 7.7 10.2 7.9 89.6 246.0 5.73 5.22 2.39 2.18 100.0 99.7 0.0 84.8 35.1 313704.8 -62943.5 287241.5 0.0 15522.7 9.8 1008.2 7.7 10.2 8.1 89.9 238.0 5.08 4.27 2.7 2.18 99.4 90.5 0.0 92.3 82.8 611701.8 -168659.1 559506.6 0.0 15004.6 8.7 1008.6 7.7 10.1 8.4 92.2 241.0 6.46 5.66 3.16 2.18 100.0 100.0 0.0 86.7 82.4 908247.9 -228659.3 830415.2 0.0 12643.2 9.8 1009.0 7.7 10.1 8.0 90.2 241.0 6.26 5.47 2.99 2.18 100.0 100.0 0.0 86.3 56.3 1110863.5 -250051.8 1015673.2 0.0 14780.6 9.9 1009.1 7.7 10.1 7.9 90.1 235.0 5.03 4.21 2.81 2.18 100.0 100.0 21.2 98.9 46.4 1277698.0 -280210.7 1168138.4 0.0 14850.3 9.4 1009.7 7.7 10.1 8.2 91.4 237.0 5.16 4.32 2.85 2.18 100.0 100.0 0.1 0.2 23.0 1360617.5 -303228.9 1244015.6 0.0 13532.9 7.8 1010.4 7.7 10.0 7.9 90.4 232.0 4.75 3.75 2.9 2.18 99.0 99.0 2.0 0.0 6.4 1383862.9 -349214.2 1265265.6 0.0 14575.2 7.8 1011.2 7.7 9.9 8.2 92.1 236.0 5.24 4.34 2.96 2.18 99.9 99.9 0.0 0.0 0.0 1383818.6 -389784.9 1265273.9 0.0 12746.4 7.9 1011.4 7.7 9.8 8.2 92.6 232.0 5.39 4.18 3.39 2.18 99.6 99.6 0.0 0.0 0.0 1383915.4 -447523.4 1265265.6 0.0 12512.3 8.2 1011.4 7.7 9.4 8.1 93.8 227.0 5.39 3.91 3.7 2.18 78.4 78.4 0.0 0.0 0.0 1383833.0 -529414.5 1265229.6 0.0 15231.6 8.2 1011.9 7.7 8.9 7.7 94.3 233.0 5.35 4.33 3.13 2.18 64.5 64.5 0.0 0.0 0.0 1383833.0 -735798.3 1265229.6 0.0 9541.4 8.4 1012.4 7.7 9.0 7.4 92.3 252.0 5.74 5.48 1.7 2.18 100.0 100.0 0.0 46.3 0.0 1383833.0 -856589.3 1265229.6 0.0 12674.6 8.7 1012.5 7.7 9.2 6.4 87.1 249.0 5.21 4.89 1.9 2.18 100.0 100.0 0.0 9.3 0.0 1383833.0 -878775.8 1265229.6 0.0 18237.2 8.8 1012.7 7.7 9.1 5.6 84.0 249.0 5.14 4.8 1.87 2.18 100.0 99.8 0.0 90.2 0.0 1383833.0 -914110.9 1265229.6 0.0 21231.5 8.1 1012.7 7.7 9.1 6.1 86.2 232.0 4.51 3.62 2.72 2.18 99.9 99.5 0.0 73.2 0.0 1383833.0 -980009.9 1265229.6 0.0 18801.9 7.8 1012.7 7.7 9.2 7.3 90.8 234.0 6.21 5.01 3.6 2.18 100.0 100.0 0.1 82.0 0.0 1383833.0 -1039608.9 1265229.6 0.0 14298.6 9.3 1012.6 7.7 9.3 7.2 89.9 235.0 6.66 5.44 3.85 2.18 97.8 87.1 2.1 82.6 0.0 1383833.0 -1116954.9 1265229.6 0.0 15274.9 10.4 1012.3 7.7 9.5 7.3 89.9 231.0 6.86 5.25 4.41 2.18 99.8 86.1 71.7 92.4 0.0 1383833.0 -1202469.1 1265229.6 0.0 15197.2 10.3 1011.5 7.7 9.4 7.9 92.9 222.0 8.51 5.76 6.27 2.18 100.0 97.8 98.7 91.1 0.0 1383833.0 -1246720.5 1265229.6 0.0 12113.8 12.8 1010.8 7.7 9.3 7.5 91.7 219.0 9.54 5.88 7.56 2.18 100.0 100.0 100.0 95.8 0.0 1383833.0 -1279739.9 1265229.6 0.0 13555.1 14.6 1009.9 7.7 9.3 7.5 91.8 215.0 10.31 5.81 8.56 2.19 100.0 100.0 72.3 99.9 0.0 1383833.0 -1294956.6 1265229.6 0.0 13377.1 15.5 1009.6 7.7 9.5 8.0 93.0 222.0 10.8 7.18 8.08 2.25 100.0 100.0 99.9 100.0 0.0 1383833.0 -1301712.0 1265229.6 0.0 11846.3 16.2 1009.0 7.7 9.7 8.7 95.1 229.0 10.88 8.15 7.23 2.41 100.0 100.0 99.9 100.0 0.0 1383833.0 -1301387.8 1265229.6 0.0 6127.6 16.4 1008.8 7.7 10.1 9.1 95.4 235.0 10.78 8.83 6.19 2.52 100.0 100.0 98.7 100.0 0.4 1385137.5 -1296079.0 1266524.4 0.0 5265.5 16.4 1008.3 7.7 10.2 9.1 95.0 235.0 9.5 7.84 5.4 2.56 100.0 100.0 34.3 100.0 3.3 1396909.1 -1290026.5 1277091.3 0.0 6384.0 16.2 1007.9 7.7 10.6 9.2 93.1 240.0 9.92 8.58 4.96 2.57 100.0 100.0 0.4 100.0 10.4 1434339.0 -1286159.5 1311448.4 0.0 13752.5 14.9 1007.8 7.7 10.8 9.2 92.2 243.0 10.34 9.26 4.58 2.58 100.0 100.0 2.7 100.0 14.7 1487340.1 -1288886.4 1359959.4 0.0 12751.5 15.6 1007.8 7.7 10.9 9.2 92.0 243.0 10.34 9.22 4.68 2.58 100.0 100.0 3.9 100.0 22.5 1568189.8 -1297438.4 1434083.0 0.0 13299.2 15.6 1007.8 7.7 10.9 9.2 92.0 243.0 10.1 9.04 4.51 2.58 100.0 100.0 21.3 100.0 19.4 1638095.9 -1301986.9 1498111.1 0.0 13002.4 15.5 1007.9 7.7 11.0 9.2 91.6 244.0 8.81 7.93 3.84 2.59 100.0 100.0 7.1 100.0 7.8 1666407.8 -1301781.3 1524039.0 0.0 13616.1 15.1 1008.4 7.7 11.2 9.2 90.9 250.0 8.18 7.52 3.14 2.61 100.0 100.0 3.9 100.0 1.5 1671751.5 -1299095.5 1528920.5 0.0 14130.1 13.1 </gml:doubleOrNilReasonTupleList> </gml:DataBlock> </gml:rangeSet> <gml:coverageFunction> <gml:CoverageMappingRule> <gml:ruleDefinition>Linear</gml:ruleDefinition> </gml:CoverageMappingRule> </gml:coverageFunction> <gmlcov:rangeType> <swe:DataRecord> <swe:field name="Pressure" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=Pressure&language=eng"/> <swe:field name="GeopHeight" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=GeopHeight&language=eng"/> <swe:field name="Temperature" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=Temperature&language=eng"/> <swe:field name="DewPoint" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=DewPoint&language=eng"/> <swe:field name="Humidity" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=Humidity&language=eng"/> <swe:field name="WindDirection" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=WindDirection&language=eng"/> <swe:field name="WindSpeedMS" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=WindSpeedMS&language=eng"/> <swe:field name="WindUMS" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=WindUMS&language=eng"/> <swe:field name="WindVMS" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=WindVMS&language=eng"/> <swe:field name="PrecipitationAmount" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=PrecipitationAmount&language=eng"/> <swe:field name="TotalCloudCover" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=TotalCloudCover&language=eng"/> <swe:field name="LowCloudCover" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=LowCloudCover&language=eng"/> <swe:field name="MediumCloudCover" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=MediumCloudCover&language=eng"/> <swe:field name="HighCloudCover" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=HighCloudCover&language=eng"/> <swe:field name="RadiationGlobal" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=RadiationGlobal&language=eng"/> <swe:field name="RadiationGlobalAccumulation" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=RadiationGlobalAccumulation&language=eng"/> <swe:field name="RadiationNetSurfaceLWAccumulation" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=RadiationNetSurfaceLWAccumulation&language=eng"/> <swe:field name="RadiationNetSurfaceSWAccumulation" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=RadiationNetSurfaceSWAccumulation&language=eng"/> <swe:field name="RadiationSWAccumulation" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=RadiationSWAccumulation&language=eng"/> <swe:field name="Visibility" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=Visibility&language=eng"/> <swe:field name="WindGust" xlink:href="http://opendata.fmi.fi/meta?observableProperty=forecast&param=WindGust&language=eng"/> </swe:DataRecord> </gmlcov:rangeType> </gmlcov:MultiPointCoverage> </om:result> </omso:GridSeriesObservation>

In any case the GML encoded WFS response is wrapped in a wfs:FeatureCollection element:

<?xml version="1.0" encoding="UTF-8"?> <wfs:FeatureCollection timeStamp="2012-04-03T22:56:09" numberMatched="15" numberReturned="1" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:om="http://www.opengis.net/om/2.0" xmlns:omso="http://inspire.ec.europa.eu/schemas/omso/2.9" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:swe="http://www.opengis.net/swe/2.0" xmlns:gmlcov="http://www.opengis.net/gmlcov/1.0" xmlns:sam="http://www.opengis.net/sampling/2.0" xmlns:sams="http://www.opengis.net/samplingSpatial/2.0" xsi:schemaLocation="http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd http://www.opengis.net/gmlcov/1.0 http://schemas.opengis.net/gmlcov/1.0/gmlcovAll.xsd http://www.opengis.net/sampling/2.0 http://schemas.opengis.net/sampling/2.0/samplingFeature.xsd http://www.opengis.net/samplingSpatial/2.0 http://schemas.opengis.net/samplingSpatial/2.0/spatialSamplingFeature.xsd http://www.opengis.net/swe/2.0 http://schemas.opengis.net/sweCommon/2.0/swe.xsd http://inspire.ec.europa.eu/schemas/omso/2.9 http://inspire.ec.europa.eu/draftschemas/omso/2.9/SpecialisedObservations.xsd">

<wfs:boundedBy> <!-- 2D Envelope for point forecast data (ETRS89 2D) --> <gml:Envelope srsName="http://www.opengis.net/def/crs/EPSG/0/4258" srsDimension="2"> <gml:lowerCorner>60.17522 24.94458</gml:lowerCorner> <gml:upperCorner>60.17522 24.94458</gml:upperCorner> </gml:Envelope> </wfs:boundedBy>

<wfs:member> .... [the first response feature here] .... </wfs:member>

<wfs:member> .... [the second response feature here] .... </wfs:member>

[etc]

</wfs:featureCollection>