This is most likely the last version on FMI MetObjects.
The development of meteorological GML features continues under
a new name "Weather Objects Modelling Language (WOML)".
See the WOML Wiki
for more information.
FMI Meteorological Objects (version 2009/11/09 - 1.0)
FMI Meteorological Objects represent different weather-related
phenomena described as GML Features. The primary use for these XML
Schemas is describing the language for exchanging high-level
abstaractions of meteorological data (weather analysis results, forecast
coordination maps,...) using the OGC Web Feature Service (WFS).
For overview of the FMI Meteorological Objects and the forthcoming
Weather Objects Modelling Language (WOML), see the presentation
"Sense and Extensibility - Towards Weather Objects Modelling Language (WOML)" (PDF, 1MB)
held in 2nd Workshop on the use of GIS/OGC standards in meteorology, Toulousee, France, 23nd November 2009.
The schemas have been separated into several XML Schema files,
but all the elements and types are declared in the same
Users are free to use only a subset of these schemas by either
- importing only one of the schema files as metobjects namespace
in their own schemas, or
- by creating and hosting an aggregate schema file with the
metobjects targetNamespace including only the the wanted subset of
metobjects schema files, and importing the created aggregate schema
files as the metobjects namespace.
An aggregate schema file
metobjects-all.xsd has been
provided for those willing to import all the elements and types in their
own schemas as the metobjects namespace.
Documentation & Schema files
Documentation for the Metobjects
Schema is generated with Oxygen XML. It also covers part of the elements
and the types in the GML 3.1.1 schema (dynamicFeature)
and Dublin Core metadata elements (Simple DC) schema
common elements used in more than one of the other schema files
common geometry types for Met Objects Application Schema, mostly
simplified extensions for GML geometry types.
abstract) base elements and types for metobjects
features fixed at a single point in space (symbols e.g.).
having a linear representation in space (fronts, jets, e.g.)
features covering a "on-the-earth-surface" geospatial area (rain or
collections consisting of other metobjects (complete weather analysis
or forecast for a specific time e.g.)
aggregate containing all the metobject elements and types.
GML 3.1.1 dynamicFeature and geometryPrimitives as GML 3.1.1 namespace.
Download all the mentioned XML Schema files as
a single zip-file.
For any questions, please contact Ilkka Rinne (ilkka dot rinne at
fmi dot fi).
Changes since 2009/09/30
The main change was to make meteorological object collections
- AbstractMeteorologicalObjectCollectionType was made concrete,
the name was changed to MeteorologicalObjectCollectionType accordingly.
- MeteorologicalObjectCollectionType no longer extends
AbstractMeteorologicalObjectType, but gml:FeatureCollectionType.
- Added gml:validTime property to
AbstractApprovedObjectCollectionType to replace the same property
previously inherited from gml:DynamicFeatureType.
- MeteorologicalObjectArrayPropertyType was removed as obsolete.
- MeteorologicalObjectGroupType was removed as obsolete.
- Moved usedReferenceData property from
AbstractMeteorologicalObjectType to WeatherForecastType and
- Added new object PointNoteType for general location-specific
textual and/or graphic notes.
- Added new object AreaNoteType for general surface area
specific textual and/or graphic notes.
Changes since 2009/09/07
The version 2009/09/30 is basically just a downport of the
2009/09/07 with the GML version changed from 3.2.1 to 3.1.1 to be
compatible with WFS 1.1.0. As of writing this there is no GML 3.2.1
comptible version of WFS.
- The schema now (again) depends on GML 3.1.1
- Changed the property "coordinateSystemReference" of
ElevationType to "coordinateReferenceSystem", also changed its type
from gml:CooordinateSystemType to xs:anyURI
- GeophysicalParameterValueSetType may now contain zero or more
of either single or range values.
- Added new complex type sRGBColorType. The new type is used in
FontSymbolType's color property.
Changes since 2009/07/07
- DynamicMeteorologicalObjectType and
DynamicMeteorologicalObject element have been removed completely.
Dynamic changes of MetObjects in time should be described using the
gml:history property defined in gml:DynamicFeatureType. Change events
included in the gml:history should be given using
metobj:PointObjectEvent, metobj:LineObjectEvent and
- Added new property metobj:historyInterpolationRule to
metobj:AbstractMeteorologicalObjectType. The new object defines the
intended time interpolation method and maximum time resolution for
presenting the changes (gml:history) of the object in time.
- All complex types are now defined as derivants of
gml:AbstractType and declared as named types following the GML
property/object model: userType -> UserType, timeAggregationType ->
TimeAggregationType, timeInterpolationType -> TimeInterpolationType,
numericalWeatherModelType -> NumericalWeatherModelType. All these
objects are now referenced through a property elements, as they should
always have been, that is: objects should only contain simple type or
property type children.
- ElevationType now has the choice of two reference types:
coordinateSystemReference or modelReference.
- "flightLevel" was removed from the "type" enumeration if
NumericalModelHeightReference. Also its numericalModel property is now
- Added new types (and elements) GeophysicalParameterValueType
and GeophysicalParameterValueRangeType and
GeophysicalParameterValueSet to be used as content elements in the new
Feature type PointGeophysicalParameterSetType.
- Dublin Core metadata elements in
MeteorologicalObjectMetaDataType are now imported from Simple DC XML
Schema, not from the Qualified DC XML Schema.
- Added "approximateRainFall" property to
- Changed the type of the actual data in
GeophysicalParameterValueArea from xs:double to gml:MeasureType
- metobjects-point: Removed Feature types
PointGeophysicalParameterRangeType and replaced them with the new
PointGeophysicalParameterValueSetType capable of containing multiple
(observation/forecast) parameter values or ranges for the same position
- metobjects-solid: the solid object placeholder
AbstractSolidObjectType has been completely removed for now as well as
the whole metobjects-solid.xsd file. No implementing concrete solid
type objects existed nor were any such metobjects objects planned for
the near future.
Changes since 2009/04/28
The 2009/07/07 version is a major update due to a couple of big
- The GML version was upgraded from 3.1.1 to 3.2.1
- Feature property extensions by restriction were removed
because of validation issues in many XML Schema validators.
- A dual model of including both actual controlling spline curve
and (optionally) a line string interpolation version of line and
surface objects was introduced. Before, the curve and the surface
geometries could be expressed either by a spline curve or a line
string, not both. The rationaly behind this redundant encoding is that
view-only clients may directly use the interpolated version of the
curve for visualization while more advanced clients may render the same
feature using the actual (controlling) spline curve. All edits must be
based only the control version of the geometry (the spline), and the
line string interpolation may be left out if the client so wishes. The
interpolated curve can always be automatically calculated for any
object using the control curve.
- All Met Object types now extend gml:DynamicFeatureType instead
of gml:AbstractFeatureType. This enables using them directly as
instances in dynamic object time series in GML 3.2 compliant way. This
change makes the inheritently dynamic nature of the Met Objects (as
abstractions of the changing real-world phenomena) more obvious.
- Changed all element names of abstract types to begin with
prefix "Abstract" instead of the GML 3.1 way "_" (underscore).
- All the property types previously directly indirectly
extending gml:FeaturePropertyType (by restriction) now (implicitly)
- Surface objects:
- Added new Feature type TextForecastAreaType (extends
metobj:AbstractSurfaceObjectType). The elements of this type are used
for describing structural, text-based weather forecast information for
the given area.
- Point objects:
- Removed pointMeteorologicalSymbolProperty,
pointGeophysicalParameterRangeProperty. Might as well use the generic
metobj:pointObjectProperty instead as the the property types are no
- Line objects:
- Removed coldFrontProperty, warmFrontProperty,
occludedFrontProperty, jetProperty, troughProperty and
upperTroughProperty. Might as well use the generic
metobj:lineObjectProperty instead as the the property types are no
- Changed the name of NamedRegionType to GeographicRegion and
made it extend gml:AbstractFeature instead of gml:AbstractGMLType.
Also added a boundary geometry and an ID property.
- Added GeographicRegionReference and
- Moved all the geometry-related stuff to its own schema file
- Added regionIdType for identifying GeographicRegions.
- gml:TimeIntervalLengthType is now used in
metobj:timeInterpolationType for describing the maxResolution.
- Changed the name of knownNumericalModelType to
NumericalWeatherModelType. Separated the model id as its own type
"numericalWeatherModelId". Added several new model names to this new
id enumeration and added possibility to use other id's with "other:"
- TimeAggregationType now uses gml:TimeIntervalLengthType for
- Added new ForecastTextSectionType to be used as the content
sections in the new TextForecastAreaType.
- MeteorologicalObjectMetaDataType no longer extends (the
- Added new types for interpolated curve and surface to be used
in metobj:AbstractLineObjectType and metobj:AbstractSurfaceObjectType.
These new types also describe the interpolation frequency used when
creating these interpolations.
- Changed the name of the SimpleSplineSurfaceType to
CubicSplineSurfaceType. Added new type CubicSplineRing to be used in
this new surface type's exterior and interior properties instead of
- Added new line segment types for cubic spline and line string
(SimpleCubicSplineType and SimpleLineStringSegment). The coordinate
positions can only be given using gml:posList not the two other ways
as in corresponding GML types.
- Removed the metobj:TimeReferencedMeteorologicalObjectType and
the AbstractMeteorologicalObjectTimeSeriesType in favor of using the
gml:DynamicFeature for describing the time evolvment of the Met
- MeteorologicalAnalysis element's substitutionGroup is now
corrected as AbstractApprovedObjectCollection instead of
- metobj:validTime property was removed from the
metobj:AbstractMeteorologicalObject in favour of using the
gml:validTime property inherited from the gml:DynamicFeatureType. this
means that Met Objects now may have a much more complex valid times
than before. Not sure this is good thing in the end, as it makes the
valid time parsing a lot more difficult. But again there are certain
benefits from adhering to the gml:DynamicFeature model.
- The DynamicMeteorologicalObject was moved to base from
collection, since it really describes a single feature evolving in
time. The content model of this type was changed also to reflect the
new way if describing the time instances of an evolving Met Object:
The keyTimeInstances array now directly contains any Met Object
feature types, as they all decend from gml:DynamicObjectType.
- AbstractLineObjectType now contains controlCurve and
(optionally) interpolatedCurve properties instead of either lineString
- AbstractSurfaceObjectType now contains controlSurface and
(optionally) interpolatedSurface properties instead of single
- Removed "xs" prefix for all the schema files, the default
namespace is not XML Schema everywhere.
Changes since 2009/03/26
- The complex type "DirectedMeteorologicalSymbolType" was
renamed as "DirectionalMeteorologicalSymbolType"
- Deprecated SimpleCubicSplineCurveType, should be replaced by
CubicSplineCurveType which is a restriction of gml:CurveType (not
extension gml:AbstractCurve). This change was made to make the cubic
splines fit more nicely into the data models of the software able to
handle gml:Curve elements with zero or more line segments.
CubicSplineCurveType may contain 0..n segments, but the type of these
segments is always CubicSplineType, not any derivative of
gml:AbstractCurveSegment as in gml:CurveType.
- Deprecated SimpleCubicSplineCurvePropertyType is replaced by
CubicSplineCurvePropertyType in AbstractLineObjectType. Also the
property name was changed from "cubicSpline" to "cubicSplineCurve" to
reflect this change.
Changes since 2009/03/13
- Members array of AbstractMeteorologicalObjectCollectionType is
now a proper array association type. Also shared connection points is
now a proper array association of ConnectionPoints.
- endPointConnectsTo and startPointConnectsTo properties of
AbstractLinearObjectType are now of type ConnectionPointReferenceType.
- Time instance array of
AbstractMeteorologicalObjectTimeSeriesType is now a proper array
- SplineSurfacePatch is replaced by SimpleSplineSurface. It only
permits LinearRings for exterior and interior.
- ConnectionPoint is now restriction of gml:Point, gml:id is
required and only the non-deprecated gml:pos is allowed for specifying
- Added ConnectionPointReferenceType for forcing no-content
references to ConnectionPoint objects.
- Added DirectedMeteorologicalSymbolType to support directed
symbols like wind arrows.
- Added Schematron validation annotations to all property
elements prohibiting xlink:href and content from co-existing.
- All property elements are now substitutable with from more
generic property elements and their types derived by restriction.
- Added WeatherForecastReference and
MeteorologicalAnalysisReference elements, corresponding types and
properties to be used as DataSources.
- DataSource may now contain also a WeatherForecastReference or
- Added ConnectionPointProperty element, type and property
- ValidTimePerioid is now derived from
gml:AbstractTimeObjectType (was gml:AbstractGMLType)
(collection) element is now named member again (the collected objects
in one collection may be of different types)
- Added property types and elements for _PointObject,
_LineObject, _SurfaceObject and _SolidObject
- Added property type and element for
Changes since 2009/03/09
- metobjects-common: Added new SimpleCubicSplineCurveType,
corresponding element, property type and property element.
- metobjects-base:Simplified the curve specification of
AbstractLineObjectType: replaced the overly complicated curve element
(of gml:curvePropertyType) with a choice between "lineString" and
"cubicSpline" elements (of types gml:lineStringPropertyType and
metobj:simpleCubicSplineCurvePropertyType correspondingly). Also added
an optional attribute "orientation" to indicate the orientation of the
Changes since 2009/03/03
- Fixed regex pattern in cloudCoverEigthsType
- Removed metobj:metaData element from
metobj:AbstractMeteorologicalObjectType, gml:metaDataProperty defined
in gml:AbstractGMLType may include any XML and should be used instead
for feature metadata
Changes since 2009/03
- Improved Geometry property findability in linear and surface
objects. All metobject features now have a property with a value
derived from gml:_Geometry.
- Removed PointLocation and pointLocationProperty elements and
the corresponding complex types. These were not needed anymore because
of the Geometry schema changes.
- Changed the name "createTime" property to "creationTime" in
all Metobject features.
Changes since 2009/02
- Added "role" property to userType.
- Added "fog" value to the rainPhaseType enumeration.
- Added "UNKNOWN" value to the cloudTypeAnnex3Type.
- Changed the "name" property of the
AbstractMeteorologicalObjectType into "localizedName" to avoid
confusion with gml:name property of the gml:AbstractGMLType.
- Added new type FontSymbolType (extends
AbstractMeteorologicalSymbolType) for describing font-specific symbols.
- Added new property "scaleFactor" to GraphicSymbolType.
- Added new property "analysisTime" to WeatherForecastType.
Changes since 2008/11
- Fixed typo: "*perioid" is now "*period" everywhere.
- AbstractLineObjectType had Curve element as direct child. This
is against the GML object/property rule (objects may only contains
properties as direct children, a property may have an object as its
value). AbstractLineObjectType now has "curve" property containing the
Curve object element.
- New SplineSurfacePatchType type and SplineSurfacePatch element
(and corresdponding property type and element) with a fixed
interpolation attribute value "polynomialSpline". The
AbstractSurfaceObjectType's surface element is now of type
- Changes in the substitutionGroup attributes of features,
mainly between metobj:_MeteorologicalObject and gml:_Feature. Hopefully
they are now OK.
- Separation of the single schema file into 7 schema files.