> For the complete documentation index, see [llms.txt](https://docs.os.uk/os-downloads/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.os.uk/os-downloads/products/land-and-terrain-portfolio/os-terrain-50/os-terrain-50-technical-specification/gml-feature-types.md).

# GML Feature Types

The model is ‘feature-based’ so that ContourLine, SpotHeight and LandWaterBoundary are feature types with specific attributes.

The feature types within the contours are represented as individual features to enable easier interpretation. For example, the contours can be drawn as different colours to highlight the index contours, the high- water mark, and spot heights over a certain value.

The column names have been reformatted to comply with Esri software.

## **ContourLine feature type**

| Column name      | Type           | Description                            |
| ---------------- | -------------- | -------------------------------------- |
| +geometry        | GM\_LineString | The structure of the feature           |
| +propertyValue   | Distance       | The length of the contour              |
| +contourLineType | String         | <p>master ordinary</p><p>auxiliary</p> |

{% hint style="info" %}
*The ContourLine sub-type value names align with INSPIRE draft elevation specification. The terms 'master' and 'ordinary' represent the more traditionally recognised terms of 'index' and 'standard' (contours), respectively.*
{% endhint %}

## **SpotHeight feature type**

| Column name     | Type      | Description                                                                     |
| --------------- | --------- | ------------------------------------------------------------------------------- |
| +geometry       | GM\_Point | The structure of the feature                                                    |
| +propertyValue  | Distance  | The z value (height above Newlyn, or other British height datum) of the feature |
| +spotHeightType | String    | <p>formSpot generic mountainPass</p><p>summit</p>                               |

{% hint style="info" %}
*At launch, only the sub-type value 'generic' has been used, but the other values provide functionality to enrich the attribution if required in a later product release.*
{% endhint %}

## **LandWaterBoundary feature type**

| Column name         | Type           | Description                                                                      |
| ------------------- | -------------- | -------------------------------------------------------------------------------- |
| +geometry           | GM\_LineString | The structure of the feature                                                     |
| +propertyValue      | Distance       | The length of the boundary line                                                  |
| +waterLevelCategory | String         | <p>meanHighWater meanLowWater meanHighWaterSprings</p><p>meanLowWaterSprings</p> |

{% hint style="info" %}
*Mean High and Low Waters apply to tidal waters in England and Wales, whereas the Mean High and Low Water Springs apply to those in Scotland.*
{% endhint %}

### **Example of the ContourLine feature type**

<pre class="language-xml"><code class="lang-xml">
    
        
<strong>            gml:id="os.t50.sx98.691.geom">
</strong><strong>                300000 87424.1 299997 87432.8 299995.9 87445.7 299997.1
</strong><strong>87459.6 300000 87473.8
</strong><strong>            
</strong><strong>        
</strong><strong>        40
</strong><strong>        ordinary
</strong><strong>        
</strong>
</code></pre>

**Example of the SpotHeight feature type**\<os:member>    \<os:SpotHeight gml:id="os.t50.sx98.5">        \<os:geometry>        \<gml:Point srsName="urn:ogc:def:crs:EPSG::27700"gml:id="os.t50.sx98.5.geom">            \<gml:pos>298939.2 88163.4\</gml:pos>        \</gml:Point>        \</os:geometry>    \<os:propertyValue uom="m">53\</os:propertyValue>    \<os:spotHeightType>generic\</os:spotHeightType>    \</os:SpotHeight>\</os:member>**Example of the LandWaterBoundary feature type**                                298703.2 80000 298695.7 80002.8 298681.6 80002.1298662.7 80000                                -0.51        meanLowWater   **Unique identifiersGML 3.2.1 requires features and their geometries to have unique identifiers. For OS Terrain products, the feature identifiers have been structured as follows: os.t50.\<tile name>.\<sequential number>, where the second part abbreviates the product name, i.e. t50 for OS Terrain 50 and t5 for OS Terrain 5. Geometry identifiers in the GML use the same form, but with a .geom suffix.Therefore, for a given release of the product, every feature and geometry is guaranteed to have a unique identifier. The OS Terrain products will both be updated by whole tile refresh, and there are no plans to supply feature-based change-only updates (COUs). When a tile is updated, the sequential identifiers are re-generated.Coordinate reference systemThe coordinate reference system for geometries in the OS Terrain 50 GML is expressed using anEPSG code embedded in a URN (urn:ogc:def:crs:EPSG::27700). This is a more generic way of expressing the reference system, rather than osgb:BNG (British National Grid) which was used in previous versions of the product.**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.os.uk/os-downloads/products/land-and-terrain-portfolio/os-terrain-50/os-terrain-50-technical-specification/gml-feature-types.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
