Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
OS Open Rivers consists of two core features:
WatercourseLink – A feature which represents all or part of a watercourse.
HydroNode – A feature which represents a river’s source, end, or where three or more links meet at a junction, and places where the real-world related attribution recorded changes, for example, a watercourse becoming tidal.
This product is based upon the INSPIRE Data Specification on Hydrography. The result is a product that inherits attribution from INSPIRE. An overview of the product's structure can be found in Figure 3 below, which highlights the inherited INSPIRE feature types and attribution. Properties of the INSPIRE specification which are voidable are not included in the diagrams or tables that follow. For information on the INSPIRE properties which are not included in this product, please see the INSPIRE Data Specification on Hydrography.
GML attribute naming is used in the main text of this guide. GeoPackage and vector tile attribute naming is very similar to GML as there are no character-length limitations in the GeoPackage or MBTiles formats. However, shapefile attribute naming is limited to 11 characters.
Attribute mappings between GML and shapefile are provided in the Esri shapefile overview.
Attribute mappings mapping between GML and GeoPackage are provided in the GeoPackage overview.
Attribute mappings between GML and Vector tiles are provided in the Vector tiles overview.
HydroNode features are added at the start and end of every WatercourseLink feature. They can represent the source of a watercourse, the end of a watercourse, a junction along a watercourse, or a change of real- world related attribution.
A feature at the end of one or more WatercourseLink features that indicates either the confluence or two or more watercourses and/or a change in the attribution of the WatercourseLink features.
Nature of the HydroNode.
Attribute name: hydroNodeCategory (GML), hydro_node_category (VectorTiles), hydro_node_category (GeoPackage), formOfNode (Esri shapefile)
Type: HydroNodeCategoryValue
Multiplicity: [1]
The location of the HydroNode.
Attribute name: geometry (GML), Not provided (VectorTiles), Not provided (GeoPackage), Not provided (Esri shapefile)
Type: GM_Point
Multiplicity: [1]
GML attribute | Esri shapefile attribute |
---|---|
gml:identifier
id
hydroNodeCategory
hydro_node_category
geometry
*
This section describes the two features available in the OS Open Rivers product. The attributes associated with these feature types are listed below along with a brief description of their data properties.
The name of the attribute and what it is describing.
The nature of the attribute, for example, a numeric value or a logical indicator.
Describes how many times this element is expected to be populated in the data. An attribute may be optional or mandatory within the product. These are denoted by:
‘1’ – There must be a value.
‘2’ – There must be two values.
‘n’ – There may be one or more values.
‘0’ – Population is optional.
These values may be used in combination.
Association – An association identifies the relationship between features. These relationships are by reference only and the value will be the identifier of the referenced feature.
A code list is a controlled set of values for an attribute. This section identifies the code lists used within OS Open Rivers and describes their values.
The WatercourseLink feature is attributed with a form with a data type of WatercourseFormValue. The following table lists the codes which are used to populate this field and gives a description for each code.
Classification value defining the type of WatercourseLink
Code | Description |
---|---|
canal
A manmade watercourse originally created for inland navigation.
inlandRiver
A river or stream that is not influenced by normal tidal action.
lake
A large area of non-tidal water without an obvious flow that is enclosed by land.
tidalRiver
Tidal river or stream (that is, below Normal Tidal Limit).
The WatercourseLink feature is a generalised representation of the watercourse alignment. WatercourseLink features are split where their real-world related attribution changes or where they meet to form a junction.
A segment that forms part of a watercourse.
Direction of water flow in the segment relative to digitisation of segment geometry.
Attribute name: flowDirection (GML), flow_direction (VectorTiles), flow_direction (GeoPackage), flow (Esri shapefile)
Type: LinkDirectionValue
Multiplicity: [1]
Length of network segment.
Attribute name: length (GML), length (VectorTiles), length (GeoPackage), length (Esri shapefile)
Type: Length
Multiplicity: [1]
The geometry that represents the centreline of the link.
Attribute name: centrelineGeometry (GML), Not provided (VectorTiles), Not provided (GeoPackage), Not provided (Esri shapefile)
Type: GM_Curve
Multiplicity: [1]
Indicator that the centreline geometry of the link is a straight line with no intermediate control points – unless the straight line represents the geography in the resolution of the data set appropriately.
Attribute name: centrelineGeometry (GML), Not provided (VectorTiles), Not provided (GeoPackage), Not provided (Esri shapefile)
Type: Boolean
Multiplicity: [1]
Classification of the type of watercourse that is formed by the WatercourseLink.
Attribute name: form (GML), form (VectorTiles), form (GeoPackage), form (Esri shapefile)
Type: WatercourseFormValue
Multiplicity: [1]
Recognised name assigned to the watercourse.
The language used to define the name shall also be provided as a three-digit ISO 639-2 code ('eng', 'cym' 'gla'). Note 2: Where a watercourse has a name in more than one language, this attribute will be the Welsh or Gaelic version.
Attribute name: watercourseName (GML), watercourse_name (VectorTiles), watercourse_name (GeoPackage), name1 (Esri shapefile)
Type: LocalisedCharacterString
Multiplicity: [0..1]
An alternative name of the main watercourse the link is part of. Note 1: The language used to define the name shall also be provided as a three-digit ISO 639-2 code ('eng', 'cym' 'gla').
Where a watercourse has a name in more than one language, this attribute will be the English version.
Attribute name: watercourseNameAlternative (GML), watercourse_name_alternative (VectorTiles), watercourse_name_alternative (GeoPackage), name2 (Esri shapefile)
Type: LocalisedCharacterString
Multiplicity: [0..1]
The HydroNode coincident with the first vertex for this WatercourseLink.
Attribute name: startNode (GML), Not provided (VectorTiles), start_node (GeoPackage), startNode (Esri shapefile)
Multiplicity: [0..1]
The HydroNode coincident with the last vertex for this WatercourseLink. On very rare occasions, the end HydroNode may be the same instance as the start HydroNode.
Attribute name: endNode (GML), Not provided (VectorTiles), end_node (GeoPackage), endNode (Esri shapefile)
Multiplicity: [0..1]
The WatercourseLink feature is attributed with a flowDirection with a data type of LinkDirectionValue. The following table lists the codes which are used to populate this field and gives a description for each code.
This code list is inherited from INSPIRE and is not extendable.
List of values for directions relative to a link http://inspire.ec.europa.eu/codelist/LinkDirectionValue/
Code | Description |
---|---|
Where the flow direction has not been determined, this attribute is set to null and a nilReason is given.
Where the value of nilReason is set to unknown, then the flow direction is not known to Ordnance Survey. A correct value may exist, but the methods employed by Ordnance Survey to date have not facilitated capture.
Where the value of nilReason is set to missing, then the flow can be considered indiscernible. Ordnance Survey has attempted to identify the flow on the ground, but no flow has been determined.
both directions
In both directions.
in direction
In the direction of the link.
in opposite direction
In the opposite direction of the link.
The Open Geospatial Consortium (OGC) defines GeoPackage (*.gpkg) an open, non-proprietary, platform- independent, standards-based data format for geographic information systems (GIS). It is designed to be a lightweight format that can contain large amounts of varied and complex data in a single, easy-to-distribute and ready-to-use file. GeoPackage is natively supported by numerous software applications.
GeoPackage offer users the following benefits:
The single file is easy to transfer and offers a rich end-user experience.
Attribute names are not limited in length, making the format user friendly.
The file size limit is large at 140 TB.
A file size limit could be imposed by the file system to which the file is written.
It supports raster, vector, and database formats, making it a highly versatile solution.
It is an OGC standard.
In most cases, it is a plug-and-play format.
For information on how to open, use and understand a GeoPackage dataset, please refer to our Getting Started with GeoPackage guide. For further information on GeoPackage, please see the GeoPackage website.
OS Open Rivers is supplied as a national GeoPackage file.
The naming of attributes between GeoPackage and GML is very similar as both formats do not limit the number of characters for an attribute name. The following tables map the GML attribute name to its GeoPackage equivalent for the WatercourseLink and HydroNode features.
GML includes attributes which describes the geometry of the features; this is not applicable to GeoPackage files as they are separated by their geometry. The use of an asterisk symbol (*) in the following tables indicates that a particular attribute is not mapped in that format, for example, centrelineGeometry has no GeoPackage equivalent.
In April 2023 there were significant changes to the naming patterns in the GeoPackage format. These are outlined in GeoPackage format changes.
OS Open Rivers is supplied as an Esri shapefile. Shapefile is an open file format to store geometry and attribute information about spatial features.
The naming of attributes between GML and Esri shapefile is different; shapefiles limit attribute names to 11 characters, whereas GML has no limit. The tables that follow map the GML attribute name to its Esri shapefile equivalent for the WatercourseLink and HydroNode features.
GML includes attributes which describes the geometry of the features; this is not applicable to shapefile as they are separated by their geometry. The use of an asterisk symbol (*) in the following tables indicates that a particular attribute is not mapped in that format, for example, centrelineGeometry has no shapefile equivalent.
OS Open Rivers is supplied as a national vector tileset in a single MBTiles file. This is a lightweight set of tiles that is efficient and fast to render in your software, provides high-resolution data and a seamless experience when zooming in and out. The data is supplied in Web Mercator projection (ESPG:3857).
The naming of attributes between vector tiles and GML is very similar as the vector tiles (set within the MBTiles file) do not limit in the number of characters for attribute names. The tables included here map the GML attribute name its vector tiles equivalent for the WatercourseLink and HydroNode features.
The use of an asterisk symbol (*) in the following tables indicates that a particular attribute is not mapped in that format, for example, fictitious has no vector tile equivalent.
This section describes the GML format for OS Open Rivers. We recommend that you read this section in conjunction with the Open Geospatial Consortium (OGC) document, OpenGIS® Geography Markup Language (GML) Encoding.
The XML specifications on which the GML is based are available from the World Wide Web Consortium (W3C) website: https://www.w3.org/XML/.
Information about Unicode and UTF-8, the character encoding that we use, is available on the Unicode Consortium website: http://www.unicode.org/.
XML schemas are used to define and validate the format and content of the GML. The GML v3.2.1 specification provides a set of schemas that define the GML feature constructs and geometric types. These are designed to be used as a basis for building application-specific schemas, which define the data content.
The Ordnance Survey application schema, OSOpenRivers.xsd, which is referenced by the data, is available on the OS Open page of the XML file resources section of our website.
It OS schema imports the INSPIRE Data Specification on Hydrography application schema, which in turn imports the GML 3.2.1 schemas. These in turn import schemas produced by the W3C, which are available from the W3C website at: http://www.w3.org/XML/1998/namespace.html.
All these schemas are defined in XML Schema Definition language (XSD), as defined by the W3C.
The OS application schema uses the XML namespaces detailed in the table below. A link to each definition is provided in the last column.
Prefix | Namespace identifier | Definition available at |
---|---|---|
OS Open Rivers conforms to GML 3.2.1 Simple Features Profile – Level 0.
GML is designed to support a wide variety of capabilities, ranging from simple contextual mapping, such as OS OpenMap, to products that include complex geometric property types and even spatial and temporal topology. The Simple Features Profile of GML 3.2.1 defines a restricted subset of GML, which allows for greater interoperability.
GML attribute | Esri shapefile attribute |
---|---|
The HydroNode feature is attributed with a hydroNodeCategory with a data type of hydroNodeCategoryValue. The following table lists the codes which are used to populate this field and gives a description for each code.
The code list has been inherited from INSPIRE and is not extendable.
Classification value defining the type of hydrographic node http://inspire.ec.europa.eu/codelist/HydroNodeCategoryValue/
Code | Description |
---|---|
Where the hydroNodeCategory has not been identified, this attribute is set to null and a nilReason of inapplicable is given. This will indicate where an attribute of the watercourse changes which requires a watercourseLink to split, for example, watercourseName. In the Esri shapefile, these are given the attribute value of pseudo.
GML attribute | Esri shapefile attribute |
---|---|
gml
xsi
Built into the XML schema: http://www.w3.org/TR/xmlschema-1/
xlink
gml:identifier
identifier
hydroNodeCategory
formOfNode
geometry
*
junction
A split in the network to indicate where three or more watercourses meet at the same level, for example, confluences or bifurcations.
outlet
The end terminal of a set of one or more interconnected links that does not have any downstream flow, for example, sinks or the point where a river enters the sea.
source
The start terminal of a set of one or more interconnected links that has downstream flow, for example, springs or collects.
gml:identifier
identifier
flowDirection
flow
length
length
fictitious
fictitious
form
form
watercourseName
name1
watercourseNameAlternative
name2
startNode
startNode
endNode
endNode
centrelineGeometry
*
This technical specification provides detailed technical information about OS Open Rivers. It is targeted at technical users and software developers.
OS Open Rivers provides a two-dimensional, topologically-structured link-and-node network of Great Britain’s watercourses. A link represents the approximate central alignment of a watercourse. Links have been digitised in the direction of water flow. Attribution indicates the flow direction and name of each watercourse.
OS Open Rivers is a generalised product which is automatically derived from Ordnance Survey large-scale data. Generalisation is the process of reducing the scale and complexity of map detail whilst maintaining the important elements and characteristics of the features.
OS Open Rivers is supplied in the following formats:
Geography Markup Language (GML): A national vector dataset in GML 3.2.1 Simple Features Profile – level 0.
Shapefile: A national vector dataset in Esri shapefile (.shp) format.
GeoPackage: A national vector GeoPackage (.gpkg) file.
Vector tiles: A national vector tiles file in MBTiles format.
Each feature has a unique identifier. The identifier property name, which holds the feature's unique identifier, differs for each format:
GML: gml:identifier property.
Esri shapefile: identifier property.
GeoPackage: id property.
The identifier is not persistent between product versions; there is therefore no change-history information for features.
OS Open Rivers is based on the INSPIRE Data Specification on Hydrography, which itself is based on the ISO/TC 211 family of open standards.
OS Open Rivers extends the INSPIRE specification by extending the INSPIRE WatercourseLink feature type with a number of additional properties.
The data structure is described by Unified Modelling Language (UML) class diagrams and accompanying tables containing text. The UML diagrams conform to the approach specified in ISO 19103 - Conceptual schema language and ISO 19109 - Rules for application schema, as adopted by INSPIRE.
Colour conventions are used in the diagrams and tables to distinguish the INSPIRE specification from the additional properties that have been added in the Ordnance Survey specification.
In the UML diagrams, classes from the INSPIRE data specification are grey, whereas classes in the Ordnance Survey specification are orange. All code lists are blue and enumerations are green (see diagram below) The accompanying tables use orange for feature types, blue for code lists, and green for enumerations.
Class names are conceptually meaningful names (singular noun) in UpperCamelCase.
Class names end in Value where the class is assigned the stereotype <<CodeList>> or <<Enumeration>>.
Property names (attributes and associations) are in lowerCamelCase.
The following stereotypes are used on UML elements:
There are four key types of relationship that can be defined between classes, only the following two exist in OS Open Rivers:
Generalisation/specialisation – This is used to denote either:
An extension relationship - The target class represents the same real-world phenomenon. It has the same name as the class it extends. It simply includes additional properties. OR
A sub-typing relationship - The target class defines a specialised sub-type of a parent feature, for example, a TransportNetwork is a sub-type of a generic Network class.
Directed association – This is used to denote relationships between features. These relationships are by reference only (that is, they are implemented by a property whose value is the identifier of the related feature or object). The directed end is assigned a name that describes the relationship and a multiplicity.
This technical specification includes the following sections:
The vector tiles schema, as well as the zoom level for each attribute, is detailed in the following table.
In the Zoom levels columns, N (no) indicates that the specified layer and attribute does not display within that zoom level, whereas the Y (yes) indicates that the specified layer and attribute does display within that zoom level.
Attribute | 0 to 8 | 9 | 10 | 11 | 12 | 13 | 14 |
---|
Attribute | Zoom level: 0 to 8 | 9 | 10 | 11 | 12 | 13 | 14 |
---|
In April 2023 there were significant changes to the naming patterns in the GeoPackage format. The formatting of most names changed from title case to snake case. The following tables map the previous names to those use after April 2023.
GeoPackage attribute name prior to April 2023 | GeoPackage attribute name after April 2023 |
---|
GeoPackage layer name prior to April 2023 | GeoPackage layer name after April 2023 |
---|
GML attribute | GeoPackage attribute |
---|
GML attribute | Vector tiles attribute |
---|
Stereotype | UML element | Description |
---|---|---|
GeoPackage column name prior to April 2023 | GeoPackage column name after April 2023 |
---|
GeoPackage constraint name prior to April 2023 | GeoPackage constraint name after April 2023 |
---|
Application schema
Package
Parent package containing sub-packages and elements that comprise part of the modular specification.
FeatureType
Class
A spatial object type [ISO 19136].
Type
Class
A structured data type with identity.
CodeList
Class
A controlled set of values for a free text data type that may be extended.
Voidable
Property
A property that is required but is either not currently captured (unknown) or is partially populated (unpopulated).
id | N | Y | Y | Y | Y | Y | Y |
flow_direction | N | Y | Y | Y | Y | Y | Y |
length | N | Y | Y | Y | Y | Y | Y |
form | N | Y | Y | Y | Y | Y | Y |
watercourse_name | N | Y | Y | Y | Y | Y | Y |
watercourse_name_lang | N | Y | Y | Y | Y | Y | Y |
watercourse_name_alternative | N | Y | Y | Y | Y | Y | Y |
watercourse_name_alternative_lang | N | Y | Y | Y | Y | Y | Y |
id | N | Y | Y | Y | Y | Y | Y |
hydronode_category | N | Y | Y | Y | Y | Y | Y |
id | id |
flowDirection | flow_direction |
length | length |
fictitious | fictitious |
form | form |
watercourseName | watercourse_name |
watercourseNameAlternative | watercourse_name_alternative |
startNode | start_node |
endNode | end_node |
hydroNodeCategory | hydro_node_category |
HydroNode | hydro_node |
WatercourseLink | watercourse_link |
geom | geometry |
HydroNode_pkey | hydro_node_pkey |
WatercourseLink_pkey | watercourse_link_pkey |
gml:identifier | id |
flowDirection | flow_direction |
length | length |
fictitious | fictitious |
form | form |
watercourseName | watercourse_name |
watercourseNameAlternative | watercourse_name_alternative |
startNode | start_node |
endNode | end_node |
centrelineGeometry | * |
gml:identifier | id |
flowDirection | flow_direction |
length | length |
fictitious | * |
form | form |
watercourseName | watercourse_name |
* | watercourse_name_lang |
watercourseNameAlternative | watercourse_name_alternative |
* | watercourse_name_alternative_lang |
startNode | * |
endNode | * |
centrelineGeometry | * |
GML attribute | Vector tiles attribute |
---|---|
gml:identifier
id
hydroNodeCategory
hydro_node_category
geometry
*