Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/MapColonies/3D/Guides/3D_getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ In the Response, look for
:::

## Get terrain provider URI (Step 2.1, optional)
This section explains how to query "Best" terrain for complementing the `3D models` and giving a true 3D visualization. If you wish to get a specifc terrain please use [DEM Getting Started Guide](/docs/MapColonies/DEM/Guides/DEM_getting_started.md)
This section explains how to query "Best" terrain for complementing the `3D models` and giving a true 3D visualization. If you wish to get a specifc terrain please use [DEM Terrain Provider Guide](/docs/MapColonies/DEM/Guides/terrain-provider)

To query the "Best" terrain, use the following:
```xml title="GetRecords Request For Terrain"
Expand Down
939 changes: 939 additions & 0 deletions docs/MapColonies/DEM/Guides/height_extraction.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
id: dem-getting-started
slug: dem-getting-started
title: Getting started
id: terrain-provider
slug: terrain-provider
title: Terrain Provider
tags:
- guide
- DEM
Expand Down Expand Up @@ -41,7 +41,7 @@ flowchart LR
## Query CSW catalog (Step 1)
Query **DEM CSW catalog** service to find item(s) according to desired filter [examples are here](/docs/ogc/protocols/ogc-csw/ogc-csw-examples)

Filter should be based on [DEM profile](/docs/MapColonies/DEM/Services/catalog/catalog-profile-v1)
Filter should be based on [DEM profile](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v1)

Example query based on `mc:classification` profile field
```xml title="GetRecords Request"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ const terrainProvider = new Cesium.CesiumTerrainProvider({
*Critical Considerations Pertaining to the url Parameter*

The url parameter must unequivocally designate the root directory of the terrain tile service. The `CesiumTerrainProvider` internally constructs the complete path to individual tiles (e.g. level/x/y.terrain) based upon this foundational URL.
Get the URL for the terrain server from the catalog, details [here](../../Guides/DEM_getting_started.md#query-csw-catalog-step-1)
Get the URL for the terrain server from the catalog, details [here](../../Guides/terrain-provider#query-csw-catalog-step-1)
:::

### Assigning the Terrain Provider
Expand Down
31 changes: 28 additions & 3 deletions docs/MapColonies/DEM/Services/catalog/profile_v1_0.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: dem-profile-v1
slug: catalog-profile-v1
slug: dem-catalog-profile-v1
description: v1 Profile
title: Profile v1
tags:
Expand All @@ -15,12 +15,37 @@ tags:
2. **main_namespace** = `http://schema.mapcolonies.com/dem`
3. The **DEM** sub-system Catalog profile fields with information of each of them:

:::warning
New version [v2](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2) is coming!

<p style={{color:"red"}}><b>The following parameters are depracted an will be removed in v2:</b></p>

| **PYCSW Queryable/XML <br/> Element Name** | **Type** | **Description** |
| ----------- | ----------- | ----------- |
| mc:imagingTimeBeginUTC | date | start imaging date of raw product <br/> supported format: **dd/mm/yyyy (not later than "End date")** |
| mc:imagingTimeEndUTC | date | end imaging date of raw product <br/> supported format: **dd/mm/yyyy (not earlier than "Begin date")** |
| mc:resolutionDeg | double | the product resolution in degrees <br/> double unsigned valid: **0.00000009 to 0.072** |
| mc:resolutionMeter | double | the product resolution in meters <br/> double unsigned valid: **0.01 to 8000** |
| mc:absoluteAccuracyLEP90 | double | LEP90 maximum absolute vertical plane accuracy range in meters |
| mc:relativeAccuracyLEP90 | double | LEP90 maximum relative vertical plane accuracy range in meters |
| mc:layerPolygonParts | geojson | polygons of the discrete parts (versions) and the list of layers in the best converted to Geojson |
| mc:heightRangeFrom | double | **minimum** height range in Meters (not greater than "heightRangeTo") <br /> valid: **-500 to 9000** |
| mc:heightRangeTo | double | **maximum** height range in Meters (not less than "heightRangeFrom") <br /> valid: **-500 to 9000** |
| mc:SRS | int | reference System ID (EPSG), <br /> ex: 4326 / 3857 |
| mc:verticalDatum | enum | **Valid Values**: <br/> WGS 1984 / WGS 1972 / Pulkovo 1942 / MSL Height / Israel |
| mc:units | enum | **Valid Values**: <br/> METER / DD / DMS / ARC_SECONDS / UNKNOWN |
| mc:geographicArea | text | geographic area cities |
| mc:undulationModel | enum | **Valid Values**: <br/> MSL EGM96 / MSL EGM2008 / MSL DMA10 / ILUM |
| mc:productBBox | text | the bounding box of the product minX,minY,maxX,maxY |

:::

| **PYCSW Queryable/XML <br/> Element Name** | **Type** | **Description** |
| ----------- | ----------- | ----------- |
| mc:id | text | unique internal catalog item id |
| mc:productId | text | unique external product id |
| mc:productName | text | the product name |
| [mc:productType](#productType) | enum | **Valid Values**: <br/> DTM / DSM / QuantizedMesh / QuantizedMeshDTMBest / QuantizedMeshDSMBest |
| mc:productType | enum | **Valid Values**: <br/> DTM / DSM / QuantizedMesh / QuantizedMeshDTMBest / QuantizedMeshDSMBest |
| mc:description | text | the product description |
| mc:imagingTimeBeginUTC | date | start imaging date of raw product <br/> supported format: **dd/mm/yyyy (not later than "End date")** |
| mc:imagingTimeEndUTC | date | end imaging date of raw product <br/> supported format: **dd/mm/yyyy (not earlier than "Begin date")** |
Expand All @@ -35,7 +60,7 @@ tags:
| mc:heightRangeTo | double | **maximum** height range in Meters (not less than "heightRangeFrom") <br /> valid: **-500 to 9000** |
| mc:SRS | int | reference System ID (EPSG), <br /> ex: 4326 / 3857 |
| mc:SRSName | text | name of reference system |
| mc:verticalDatum | enum | **Valid Values**: <br/> WGS 1984 / WGS 1972 / Pulkovo 1942 / Palestine 1923 / MSL Height / Israel / ED 1950 IDF |
| mc:verticalDatum | enum | **Valid Values**: <br/> WGS 1984 / WGS 1972 / Pulkovo 1942 / MSL Height / Israel |
| mc:region | text | sector / countries <br/> comma separated list |
| mc:classification | enum | product classification / confidentiality <br /> Classification values |
| mc:producerName | text | manufacturer / organization that produced / supplied the product |
Expand Down
83 changes: 83 additions & 0 deletions docs/MapColonies/DEM/Services/catalog/profile_v2_0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
id: dem-profile-v2
slug: dem-catalog-profile-v2
description: v2 Profile
title: Profile v2
tags:
- DEM
- catalog
- v2
---

# DEM Catalog Profile Information

1. **typename** = `mc:MCDEMRecord`
2. **main_namespace** = `http://schema.mapcolonies.com/dem`
3. The **DEM** sub-system Catalog profile fields with information of each of them:

:::info
The following parameters were added v2:
| **PYCSW Queryable/XML <br/> Element Name** | **Type** | **Description** |
| ----------- | ----------- | ----------- |
| mc:productVersion | int | the product version |
| mc:srsId | int | reference System ID (EPSG), <br /> ex: 4326 / 3857 |
| mc:dataType | enum | **Valid Values**: <br/> FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 |
| mc:acquisitionTimeBeginUTC | date | Start acquisition time (UTC time) of raw product
supported format: **dd-mm-yyyyThh:mm:ssZ** |
| mc:acquisitionTimeEndUTC | date | End acquisition time (UTC time) of raw product
supported format: **dd-mm-yyyyThh:mm:ssZ** |
| mc:minResolutionDegree | double | the product min resolution in degrees |
| mc:maxResolutionDegree | double | the product max resolution in degrees |
| mc:minResolutionMeter | double | the product min resolution in meters |
| mc:maxResolutionMeter | double | the product max resolution in meters |
| mc:minAbsoluteAccuracyLep90 | double | LEP90 min absolute vertical plane accuracy range in meters |
| mc:maxAbsoluteAccuracyLep90 | double | LEP90 max absolute vertical plane accuracy range in meters |
| mc:minRelativeAccuracyLep90 | double | LEP90 min relative vertical plane accuracy range in meters |
| mc:maxRelativeAccuracyLep90 | double | LEP90 max relative vertical plane accuracy range in meters |
| mc:minHorizontalAccuracyCep90 | double | |
| mc:maxHorizontalAccuracyCep90 | double | |
| mc:geoidModel | text | |
| mc:areaOrPoint | enum | Describes if pixel is “Area” or “Point” |
| mc:links | text | Available links for different services available for the current product |
:::

| **PYCSW Queryable/XML <br/> Element Name** | **Type** | **Description** |
| ----------- | ----------- | ----------- |
| mc:id | text | unique internal catalog item id |
| mc:productId | text | unique external product id |
| mc:productName | text | the product name |
| mc:productType | enum | **Valid Values**: <br/> DTM / DSM |
| mc:productVersion | int | the product version |
| mc:description | text | the product description |
| mc:footprint | geojson | geographical delineation of the product / model trace |
| mc:BoundingBox | bbox | two points that represent the record extent |
| mc:srsId | int | reference System ID (EPSG), <br /> ex: 4326 / 3857 |
| mc:srsName | text | name of reference system |
| mc:dataType | enum | **Valid Values**: <br/> FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 |
| mc:sensors | text | list of sensors used as a source for the product <br/> comma separated list |
| mc:region | text | sector / countries <br/> comma separated list |
| mc:insertDateUTC | date | the date when the product was added to catalog <br/> supported format: **dd-mm-yyyyThh:mm:ssZ** |
| mc:ingestionDateUTC | date | when last was the **data** or **parts** updated <br/> supported format: **dd-mm-yyyyThh:mm:ssZ** |
| mc:updateDateUTC | date | when last was the MD updated <br/> supported format: **dd-mm-yyyyThh:mm:ssZ** |
| mc:acquisitionTimeBeginUTC | date | Start acquisition time (UTC time) of raw product
supported format: **dd-mm-yyyyThh:mm:ssZ** |
| mc:acquisitionTimeEndUTC | date | End acquisition time (UTC time) of raw product
supported format: **dd-mm-yyyyThh:mm:ssZ** |
| mc:minResolutionDegree | double | the product min resolution in degrees |
| mc:maxResolutionDegree | double | the product max resolution in degrees |
| mc:minResolutionMeter | double | the product min resolution in meters |
| mc:maxResolutionMeter | double | the product max resolution in meters |
| mc:minAbsoluteAccuracyLep90 | double | LEP90 min absolute vertical plane accuracy range in meters |
| mc:maxAbsoluteAccuracyLep90 | double | LEP90 max absolute vertical plane accuracy range in meters |
| mc:minRelativeAccuracyLep90 | double | LEP90 min relative vertical plane accuracy range in meters |
| mc:maxRelativeAccuracyLep90 | double | LEP90 max relative vertical plane accuracy range in meters |
| mc:minHorizontalAccuracyCep90 | double | |
| mc:maxHorizontalAccuracyCep90 | double | |
| mc:geoidModel | text | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think we should rename this field, lets wait for a confirmation on this from our product

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok.

| mc:areaOrPoint | enum | Describes if pixel is “Area” or “Point” |
| mc:links | text | Available links for different services available for the current product |
| mc:classification | enum | product classification / confidentiality <br /> Classification values |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

classification is a string type with a regex of int values from 0 to 100

| mc:producerName | text | manufacturer / organization that produced / supplied the product |
| mc:noDataValue | enum | **Valid Values**: <br/> -32768 |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

noDataValue is a number (double)

| mc:type | enum | type of the catalog <br /> **Valid values**: RECORD_RASTER / RECORD_3D / RECORD_DEM <br /> default: ***RECORD_DEM***|

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't the only possible value is RECORD_DEM?

| mc:keywords | text | list of key words relevant for product |
122 changes: 122 additions & 0 deletions docs/MapColonies/DEM/Services/download/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
---
id: dem-download
slug: dem-download
title: Download
tags:
- guide
- DEM
- DTM
- DSM
- download
---

## Step by step guide
The following guide will help you understand ***Step-by-step*** how to work with the Map Colonies DEM download service, from the [Catalog](/docs/MapColonies/DEM/Services/catalog/dem-catalog) to the download server.

:::note
Please note the [obligations](/docs/MapColonies/obligations) you need to follow while using our services.
:::

:::warning
**Any** request to our services should include a `token` as a form of [authentication](/docs/MapColonies/authentication).
:::

## Query the DEM catalog (Step 1)

Query the **DEM catalog** service to find item(s) according to a desired filter [examples are here](/docs/ogc/protocols/ogc-csw/ogc-csw-examples).

Filter should be based on fields in the [DEM profile](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2).

Request example:

```bash
curl --location --request POST '<DEM_CATALOG_SERVICE_URL>/csw?token=<token>' \
--header 'Content-Type: application/xml' \
--data-raw '<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecords outputFormat="application/xml" outputSchema="http://schema.mapcolonies.com/dem" resultType="results" service="CSW" version="2.0.2" startPosition="1" maxRecords="1" xmlns:mc="http://schema.mapcolonies.com/dem" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:ogc="http://www.opengis.net/ogc">
<csw:Query typeNames="mc:MCDEMRecord">
<csw:ElementSetName>full</csw:ElementSetName>
<csw:Constraint version="1.1.0">
<Filter xmlns="http://www.opengis.net/ogc">
<And>
<PropertyIsEqualTo>
<PropertyName>mc:productId</PropertyName>
<Literal>mimad</Literal>
</PropertyIsEqualTo>
<PropertyIsEqualTo>
<PropertyName>mc:productType</PropertyName>
<Literal>DSM</Literal>
</PropertyIsEqualTo>
</And>
</Filter>
</csw:Constraint >
</csw:Query>
</csw:GetRecords>'
```

Response:

```xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<csw:GetRecordsResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gml="http://www.opengis.net/gml" xmlns:ows="http://www.opengis.net/ows" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mc="http://schema.mapcolonies.com/dem" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">
<csw:SearchStatus timestamp="2026-02-15T13:53:32Z"/>
<csw:SearchResults numberOfRecordsMatched="1" numberOfRecordsReturned="1" nextRecord="0" recordSchema="http://schema.mapcolonies.com/dem" elementSet="full">
<mc:MCDEMRecord>
<mc:acquisitionTimeBeginUTC>2019-12-31T11:00:00Z</mc:acquisitionTimeBeginUTC>
<mc:acquisitionTimeEndUTC>2019-12-31T11:00:00Z</mc:acquisitionTimeEndUTC>
<mc:areaOrPoint>Area</mc:areaOrPoint>
<mc:classification>0</mc:classification>
<mc:dataType>FLOAT32</mc:dataType>
<mc:description></mc:description>
<mc:footprint>{"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,0]]]}</mc:footprint>
<mc:geoidModel>egm96</mc:geoidModel>
<mc:id>e2d812ba-40b7-4dfe-b3e7-869356467d3a</mc:id>
<mc:ingestionDateUTC>2025-12-31T10:17:16Z</mc:ingestionDateUTC>
<mc:insertDateUTC>2020-12-31T11:00:00Z</mc:insertDateUTC>
<mc:links scheme="WCS" name="mimad-DSM" description=""><WCS_SERVICE_URL>/wcs?request=GetCapabilities</mc:links>
<mc:links scheme="WCS_BASE" name="mimad-DSM" description=""><WCS_SERVICE_URL>/wcs</mc:links>
<mc:links scheme="WFS_BASE" name="mimad-DSM" description=""><WFS_SERVICE_URL>/wfs?request=GetCapabilities</mc:links>
<mc:links scheme="Download" name="mimad-DSM" description=""><DOWNLOAD_SERVICE_URL>/path/to/file.ext</mc:links>
<mc:maxAbsoluteAccuracyLEP90>2</mc:maxAbsoluteAccuracyLEP90>
<mc:maxHorizontalAccuracyCEP90>6</mc:maxHorizontalAccuracyCEP90>
<mc:maxRelativeAccuracyLEP90>4</mc:maxRelativeAccuracyLEP90>
<mc:maxResolutionDegree>0.0004</mc:maxResolutionDegree>
<mc:maxResolutionMeter>40</mc:maxResolutionMeter>
<mc:minAbsoluteAccuracyLEP90>1</mc:minAbsoluteAccuracyLEP90>
<mc:minHorizontalAccuracyCEP90>5</mc:minHorizontalAccuracyCEP90>
<mc:minRelativeAccuracyLEP90>3</mc:minRelativeAccuracyLEP90>
<mc:minResolutionDegree>0.0004</mc:minResolutionDegree>
<mc:minResolutionMeter>40</mc:minResolutionMeter>
<mc:noDataValue>-32768</mc:noDataValue>
<mc:producerName>PRODUCER</mc:producerName>
<mc:productId>mimad</mc:productId>
<mc:productName>mimad</mc:productName>
<mc:productType>DSM</mc:productType>
<mc:productVersion>1</mc:productVersion>
<mc:region>region</mc:region>
<mc:sensors>sensors</mc:sensors>
<mc:srsId>srs_id</mc:srsId>
<mc:srsName>WGS84GEO</mc:srsName>
<mc:type>RECORD_DEM</mc:type>
<mc:updateDateUTC>2020-12-31T11:00:00Z</mc:updateDateUTC>
<ows:BoundingBox crs="urn:x-ogc:def:crs:EPSG:6.11:4326" dimensions="2">
<ows:LowerCorner>0.0 0.0</ows:LowerCorner>
<ows:UpperCorner>10.0 10.0</ows:UpperCorner>
</ows:BoundingBox>
</mc:MCDEMRecord>
</csw:SearchResults>
</csw:GetRecordsResponse>
```

We want to extract the value of the `links` tag with the `scheme=Download` attribue for the next step.

## Download the source material (Step 2)

Now we can make a request for the material:
```bash
curl --location '<DOWNLOAD_SERVICE_URL>/path/to/file.ext?token=<token>'
```

:::note
Materials may be very large so we suggest you implement a fail-safe strategy and prepare for long download times.
:::
2 changes: 1 addition & 1 deletion docs/MapColonies/Raster/services/catalog/profile_v1_0.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ tags:

:::warning
New version [v2](/docs/MapColonies/Raster/services/catalog/raster-catalog-profile-v2) is coming!
<p style={{color:"red"}}><b>The following parameters are depracted an will be removed in v2</b></p>
<p style={{color:"red"}}><b>The following parameters are deprecated and will be removed in v2</b></p>

| **PYCSW Queryable/XML <br/> Element Name** | **Type** | **Description** |
| ----------- | ----------- | ----------- |
Expand Down
Loading