From 9f0baeb44e0ffb968070e60d9d8b907d41844b42 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Sun, 15 Feb 2026 13:47:22 +0200 Subject: [PATCH 01/28] docs(dem): v2 WIP --- .../DEM/Guides/height_extraction.md | 735 ++++++++++++++++++ ...getting_started.md => terrain_provider.md} | 8 +- .../DEM/Services/catalog/profile_v1_0.md | 29 +- .../DEM/Services/catalog/profile_v2_0.md | 84 ++ .../Raster/services/catalog/profile_v1_0.md | 2 +- docs/ogc/protocols/ogc-wcs.md | 128 ++- sidebars.js | 9 +- 7 files changed, 972 insertions(+), 23 deletions(-) create mode 100644 docs/MapColonies/DEM/Guides/height_extraction.md rename docs/MapColonies/DEM/Guides/{DEM_getting_started.md => terrain_provider.md} (98%) create mode 100644 docs/MapColonies/DEM/Services/catalog/profile_v2_0.md diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md new file mode 100644 index 0000000000..af9170246e --- /dev/null +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -0,0 +1,735 @@ +--- +id: height-extraction +slug: height-extraction +title: Height Extraction +tags: + - guide + - DEM + - DTM + - DSM + - getting-started +--- + +## Step by step guide +The following guide will help you understand ***Step-by-step*** how to work with the Map Colonies Height Extraction service, from the [Catalog](/docs/MapColonies/DEM/Services/catalog/dem-catalog) to the WCS protocol. + +:::warning +This guide is for using height extraction for algorithm usage and **not for viewing purposes**. +::: + +:::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). +::: + +## Flow diagram +```mermaid +flowchart LR + subgraph Prerequisite + direction LR + a1[Define filter] + a2[Get Auth Token] + end + + a1 -- filter --> B[STEP 1
Query CSW catalog] + a2 -- token --> B + subgraph Metadata drill-down + direction LR + c1[STEP 2
Get DEM metadata] + c2[STEP 2.1 optional
Get terrain provider URI] + end + B -- xml --> c1 + B -- xml --> c2 + c1 -. IN DEVELOPMENT
metadata
of available for export data .-> E[STEP 3
Your system] + c2 -- terrain_URI --> D[STEP 3.1
Cesium] + + linkStyle 4 color:green,stroke:#f4cccc,stroke-width:5px %% Arrow +``` + +## 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). + +### Get all records (pagination) + +When we want to get all of the records in the catalog we can make the following query: + +```bash +curl --location --request POST '/csw?token=' \ +--header 'Content-Type: application/xml' \ +--data-raw ' + + + full + +' +``` + +
+ Response + ```xml + + + + + + 2019-12-31T11:00:00Z + 2019-12-31T11:00:00Z + Area + 0 + FLOAT32 + + {"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,0]]]} + egm96 + e2d812ba-40b7-4dfe-b3e7-869356467d3a + 2025-12-31T10:17:16Z + 2020-12-31T11:00:00Z + /wcs?request=GetCapabilities + /path/to/file.ext + 2 + 6 + 4 + 0.0004 + 40 + 1 + 5 + 3 + 0.0004 + 40 + -32768 + IDFMU + 81d2b9b0-a99f-45da-8dce-b83323d22d1c + product_name_2 + DSM + 1 + region + sensors + 4326 + WGS84GEO + RECORD_DEM + 2020-12-31T11:00:00Z + + 0.0 0.0 + 10.0 10.0 + + + + + ``` +
+ +Notice the attriutes `startPosition` and `maxRecords`, both of them help us to implement the `pagination` concept. In result, we get the following attributes in the response: + +- `numberOfRecordsMatched` indicating the total amount of records in the catalog matching our filters +- `numberOfRecordsReturned` indicating the amount of records returned for this request (may be less than `maxRecords` given in the request) +- `nextRecord` the value that should be passed for `startPosition` in the following request + +Our next request should look like this: + +```bash +curl --location --request POST '/csw?token=' \ +--header 'Content-Type: application/xml' \ +--data-raw ' + + + full + +' +``` + +### Get all records with productType DTM + +```bash +curl --location --request POST '/csw?token=' \ +--header 'Content-Type: application/xml' \ +--data-raw ' + + + full + + + + mc:productType + DTM + + + + +' +``` + +
+ Response + ```xml + + + + + + 2024-12-31T11:00:00Z + 2024-12-31T11:00:00Z + Area + 0 + FLOAT32 + {"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,0]]]} + egm96 + d2d812ba-40b7-4dfe-b3e7-869356467d3a + 2025-12-31T09:55:51Z + 2025-12-31T11:00:00Z + /wcs?request=GetCapabilities + /path/to/file.ext + 2 + 6 + 4 + 0.0004 + 40 + 1 + 5 + 3 + 0.0004 + 40 + -32768 + IDFMU + 71d2b9b0-a99f-45da-8dce-b83323d22d1c + product_name_1 + DTM + 1 + region + sensors + 4326 + WGS84GEO + RECORD_DEM + 2025-12-31T11:00:00Z + + 0.0 0.0 + 10.0 10.0 + + + + + ``` +
+ +### Get all records with productType DTM and contained in a given BBOX + +```bash +curl --location --request POST '/csw?token=' \ +--data-raw ' + + + full + + + + + mc:productType + DTM + + + ows:BoundingBox + + -10 -10 + 20 20 + + + + + + +' +``` + +### Get all records with productType DTM and contained in a given Polygon + +```bash +curl --location --request POST '/csw?token=' \ +--data-raw ' + + + full + + + + + mc:productType + DTM + + + ows:BoundingBox + + + + + [COORD1_X],[COORD1_Y] [COORD2_X],[COORD2_Y] [COORD3_X],[COORD3_Y] [COORD4_X],[COORD4_Y] ... [COORDN_X],[COORDN_Y] [COORD1_X],[COORD1_Y] + + + + + + + + + +' +``` + +## Get metadata (Step 2) + +In the Response, look for desired data according to profile definition. + +For the next steps you may want to examine the information returned from the `catalog` and extraction service additional requests in order to make calculated decisions about which `product` to use. + +### Catalog service + +:::info +For details about each filed read more [here](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2). +::: + +Fields you may want to filter by: +| **Field name / Partial name** | **Filter purpose** | +| ----------- | ----------- | +| footprint | Specific geographical area | +| ...Accuracy... | | +| ...Resolution... | | +| productType | Specific product type (for example: only DTM) | +| srsId / srsName | Wanted SRS | +| ingestionDateUTC | Layers that were ingested before / after a given time | +| updateDateUTC | Layers that were updated before / after a given time | + +### Extraction service capabilities + +:::info +Read more about this request [here](/docs/ogc/protocols/ogc-wcs#getcapabilities). +::: + +```bash +/wcs?request=GetCapabilities&token= +``` + +
+ Response + ```xml + + + + + + urn:ogc:service:wcs + 2.0.1 + 1.1.1 + 1.1.0 + http://www.opengis.net/spec/WCS/2.0/conf/core + http://www.opengis.net/spec/WCS_protocol-binding_get-kvp/1.0.1 + http://www.opengis.net/spec/WCS_protocol-binding_post-xml/1.0 + http://www.opengis.net/spec/WCS_service-extension_crs/1.0/conf/crs-gridded-coverage + + + + http://www.opengis.net/spec/GMLCOV/1.0/conf/gml-coverage + http://www.opengis.net/spec/GMLCOV/1.0/conf/special-format + http://www.opengis.net/spec/GMLCOV/1.0/conf/multipart + http://www.opengis.net/spec/WCS_service-extension_scaling/1.0/conf/scaling + http://www.opengis.net/spec/WCS_service-extension_crs/1.0/conf/crs + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/interpolation + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/interpolation-per-axis + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/nearest-neighbor + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/linear + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/cubic + http://www.opengis.net/spec/WCS_service-extension_range-subsetting/1.0/conf/record-subsetting + NONE + NONE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XML + + + + + application/gml+xml + image/jpeg + image/png + image/tiff + image/tiff;application=geotiff + text/plain + + + ... + http://www.opengis.net/def/crs/EPSG/0/3857 + ... + http://www.opengis.net/def/crs/EPSG/0/4326 + ... + http://www.opengis.net/def/crs/EPSG/0/32600 + http://www.opengis.net/def/crs/EPSG/0/32601 + http://www.opengis.net/def/crs/EPSG/0/32602 + http://www.opengis.net/def/crs/EPSG/0/32603 + http://www.opengis.net/def/crs/EPSG/0/32604 + http://www.opengis.net/def/crs/EPSG/0/32605 + http://www.opengis.net/def/crs/EPSG/0/32606 + http://www.opengis.net/def/crs/EPSG/0/32607 + http://www.opengis.net/def/crs/EPSG/0/32608 + http://www.opengis.net/def/crs/EPSG/0/32609 + http://www.opengis.net/def/crs/EPSG/0/32610 + http://www.opengis.net/def/crs/EPSG/0/32611 + http://www.opengis.net/def/crs/EPSG/0/32612 + http://www.opengis.net/def/crs/EPSG/0/32613 + http://www.opengis.net/def/crs/EPSG/0/32614 + http://www.opengis.net/def/crs/EPSG/0/32615 + http://www.opengis.net/def/crs/EPSG/0/32616 + http://www.opengis.net/def/crs/EPSG/0/32617 + http://www.opengis.net/def/crs/EPSG/0/32618 + http://www.opengis.net/def/crs/EPSG/0/32619 + http://www.opengis.net/def/crs/EPSG/0/32620 + http://www.opengis.net/def/crs/EPSG/0/32621 + http://www.opengis.net/def/crs/EPSG/0/32622 + http://www.opengis.net/def/crs/EPSG/0/32623 + http://www.opengis.net/def/crs/EPSG/0/32624 + http://www.opengis.net/def/crs/EPSG/0/32625 + http://www.opengis.net/def/crs/EPSG/0/32626 + http://www.opengis.net/def/crs/EPSG/0/32627 + http://www.opengis.net/def/crs/EPSG/0/32628 + http://www.opengis.net/def/crs/EPSG/0/32629 + http://www.opengis.net/def/crs/EPSG/0/32630 + http://www.opengis.net/def/crs/EPSG/0/32631 + http://www.opengis.net/def/crs/EPSG/0/32632 + http://www.opengis.net/def/crs/EPSG/0/32633 + http://www.opengis.net/def/crs/EPSG/0/32634 + http://www.opengis.net/def/crs/EPSG/0/32635 + http://www.opengis.net/def/crs/EPSG/0/32636 + http://www.opengis.net/def/crs/EPSG/0/32637 + http://www.opengis.net/def/crs/EPSG/0/32638 + http://www.opengis.net/def/crs/EPSG/0/32639 + http://www.opengis.net/def/crs/EPSG/0/32640 + http://www.opengis.net/def/crs/EPSG/0/32641 + http://www.opengis.net/def/crs/EPSG/0/32642 + http://www.opengis.net/def/crs/EPSG/0/32643 + http://www.opengis.net/def/crs/EPSG/0/32644 + http://www.opengis.net/def/crs/EPSG/0/32645 + http://www.opengis.net/def/crs/EPSG/0/32646 + http://www.opengis.net/def/crs/EPSG/0/32647 + http://www.opengis.net/def/crs/EPSG/0/32648 + http://www.opengis.net/def/crs/EPSG/0/32649 + http://www.opengis.net/def/crs/EPSG/0/32650 + http://www.opengis.net/def/crs/EPSG/0/32651 + http://www.opengis.net/def/crs/EPSG/0/32652 + http://www.opengis.net/def/crs/EPSG/0/32653 + http://www.opengis.net/def/crs/EPSG/0/32654 + http://www.opengis.net/def/crs/EPSG/0/32655 + http://www.opengis.net/def/crs/EPSG/0/32656 + http://www.opengis.net/def/crs/EPSG/0/32657 + http://www.opengis.net/def/crs/EPSG/0/32658 + http://www.opengis.net/def/crs/EPSG/0/32659 + http://www.opengis.net/def/crs/EPSG/0/32660 + http://www.opengis.net/def/crs/EPSG/0/32661 + http://www.opengis.net/def/crs/EPSG/0/32662 + http://www.opengis.net/def/crs/EPSG/0/32663 + http://www.opengis.net/def/crs/EPSG/0/32664 + http://www.opengis.net/def/crs/EPSG/0/32665 + http://www.opengis.net/def/crs/EPSG/0/32666 + http://www.opengis.net/def/crs/EPSG/0/32667 + http://www.opengis.net/def/crs/EPSG/0/32700 + http://www.opengis.net/def/crs/EPSG/0/32701 + http://www.opengis.net/def/crs/EPSG/0/32702 + http://www.opengis.net/def/crs/EPSG/0/32703 + http://www.opengis.net/def/crs/EPSG/0/32704 + http://www.opengis.net/def/crs/EPSG/0/32705 + http://www.opengis.net/def/crs/EPSG/0/32706 + http://www.opengis.net/def/crs/EPSG/0/32707 + http://www.opengis.net/def/crs/EPSG/0/32708 + http://www.opengis.net/def/crs/EPSG/0/32709 + http://www.opengis.net/def/crs/EPSG/0/32710 + http://www.opengis.net/def/crs/EPSG/0/32711 + http://www.opengis.net/def/crs/EPSG/0/32712 + http://www.opengis.net/def/crs/EPSG/0/32713 + http://www.opengis.net/def/crs/EPSG/0/32714 + http://www.opengis.net/def/crs/EPSG/0/32715 + http://www.opengis.net/def/crs/EPSG/0/32716 + http://www.opengis.net/def/crs/EPSG/0/32717 + http://www.opengis.net/def/crs/EPSG/0/32718 + http://www.opengis.net/def/crs/EPSG/0/32719 + http://www.opengis.net/def/crs/EPSG/0/32720 + http://www.opengis.net/def/crs/EPSG/0/32721 + http://www.opengis.net/def/crs/EPSG/0/32722 + http://www.opengis.net/def/crs/EPSG/0/32723 + http://www.opengis.net/def/crs/EPSG/0/32724 + http://www.opengis.net/def/crs/EPSG/0/32725 + http://www.opengis.net/def/crs/EPSG/0/32726 + http://www.opengis.net/def/crs/EPSG/0/32727 + http://www.opengis.net/def/crs/EPSG/0/32728 + http://www.opengis.net/def/crs/EPSG/0/32729 + http://www.opengis.net/def/crs/EPSG/0/32730 + http://www.opengis.net/def/crs/EPSG/0/32731 + http://www.opengis.net/def/crs/EPSG/0/32732 + http://www.opengis.net/def/crs/EPSG/0/32733 + http://www.opengis.net/def/crs/EPSG/0/32734 + http://www.opengis.net/def/crs/EPSG/0/32735 + http://www.opengis.net/def/crs/EPSG/0/32736 + http://www.opengis.net/def/crs/EPSG/0/32737 + http://www.opengis.net/def/crs/EPSG/0/32738 + http://www.opengis.net/def/crs/EPSG/0/32739 + http://www.opengis.net/def/crs/EPSG/0/32740 + http://www.opengis.net/def/crs/EPSG/0/32741 + http://www.opengis.net/def/crs/EPSG/0/32742 + http://www.opengis.net/def/crs/EPSG/0/32743 + http://www.opengis.net/def/crs/EPSG/0/32744 + http://www.opengis.net/def/crs/EPSG/0/32745 + http://www.opengis.net/def/crs/EPSG/0/32746 + http://www.opengis.net/def/crs/EPSG/0/32747 + http://www.opengis.net/def/crs/EPSG/0/32748 + http://www.opengis.net/def/crs/EPSG/0/32749 + http://www.opengis.net/def/crs/EPSG/0/32750 + http://www.opengis.net/def/crs/EPSG/0/32751 + http://www.opengis.net/def/crs/EPSG/0/32752 + http://www.opengis.net/def/crs/EPSG/0/32753 + http://www.opengis.net/def/crs/EPSG/0/32754 + http://www.opengis.net/def/crs/EPSG/0/32755 + http://www.opengis.net/def/crs/EPSG/0/32756 + http://www.opengis.net/def/crs/EPSG/0/32757 + http://www.opengis.net/def/crs/EPSG/0/32758 + http://www.opengis.net/def/crs/EPSG/0/32759 + http://www.opengis.net/def/crs/EPSG/0/32760 + http://www.opengis.net/def/crs/EPSG/0/32761 + http://www.opengis.net/def/crs/EPSG/0/32762 + http://www.opengis.net/def/crs/EPSG/0/32763 + http://www.opengis.net/def/crs/EPSG/0/32764 + http://www.opengis.net/def/crs/EPSG/0/32765 + http://www.opengis.net/def/crs/EPSG/0/32766 + ... + + + http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbor + http://www.opengis.net/def/interpolation/OGC/1/linear + http://www.opengis.net/def/interpolation/OGC/1/cubic + + + + + + mimad + + mimad + WCS + GeoTIFF + + dem__mimad + RectifiedGridCoverage + + 473139.25219177455 3230615.3954787063 + 873608.5831505858 3831319.391916923 + + + 32.70697763422942 29.149161895068794 + 37.071150249328454 34.62339561526329 + + + + mimad + + mimad + WCS + GeoTIFF + + dem__mimad + RectifiedGridCoverage + + 473139.25219177455 3230615.3954787063 + 873608.5831505858 3831319.391916923 + + + 32.70697763422942 29.149161895068794 + 37.071150249328454 34.62339561526329 + + + + srtm30 + + srtm30 + WCS + GeoTIFF + + dem__srtm30 + RectifiedGridCoverage + + 34.716796875 32.16796875 + 35.68359375 32.958984375 + + + 34.716796875 32.16796875 + 35.68359375 32.958984375 + + + + + + ``` +
+ +#### Understanding the capabilities response + +Read more [here](/docs/ogc/protocols/ogc-wcs#understanding-capabilities). + +### Extraction service coverage metadata + +:::info +Read more about this request [here](/docs/ogc/protocols/ogc-wcs#describecoverage). +::: + +```bash +curl --location --request GET '/wcs?request=DescribeCoverage&version=2.0.1&coverageId=srtm30&token=' +``` + +
+ Response + ```xml + + + + Generated from GeoTIFF + srtm30 + + + 32.16796875 34.716796875 + 32.958984375 35.68359375 + + + dem__srtm30 + + + Linear + 0 0 + + + + + + srtm30 + WCS + GeoTIFF + + + + + + + + 0 0 + 2815 2303 + + + i j + + + 32.95881271362305 34.71696853637695 + + + 0.0 3.4332275390625E-4 + -3.4332275390625E-4 0.0 + + + + + + + GRAY_INDEX + + + -32768.0 + + + + + + -32768 32767 + + + + + + + + RectifiedGridCoverage + image/tiff + + + + ``` +
+ +You should save the `srsName`, `axisLabels` and `srsDimension` attributes for [step 3](#get-coverage). + +#### Understanding the extraction service coverage metadata + +Read more [here](/docs/ogc/protocols/ogc-wcs#understanding-describe-coverage). + +## Request elevation data (Step 3) {#get-coverage} + +Now we can actually make a request for elevation data. + +:::danger +We recommend you don't use the following `query parameters` when making requests: +- bbox_width +- bbox_height +- subset +- scalesize + +These parameters require additional calculations on the server-side which means that the original data is changed on-the-fly resulting in new data with different attributes such as `resolution` or `accuracy`. +**Any** use of these parameters is the sole responsibility of the user as we cannot know the resulting requests metadata. +::: + +### Get + +Replace `` with the URL link that you got from **Step 2.1 (optional)**. + +Replace `` with the token you have. diff --git a/docs/MapColonies/DEM/Guides/DEM_getting_started.md b/docs/MapColonies/DEM/Guides/terrain_provider.md similarity index 98% rename from docs/MapColonies/DEM/Guides/DEM_getting_started.md rename to docs/MapColonies/DEM/Guides/terrain_provider.md index e7c5573bf1..7e02cf51ef 100644 --- a/docs/MapColonies/DEM/Guides/DEM_getting_started.md +++ b/docs/MapColonies/DEM/Guides/terrain_provider.md @@ -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 @@ -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" diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md index 57156bed19..929e2eb774 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md @@ -1,6 +1,6 @@ --- id: dem-profile-v1 -slug: catalog-profile-v1 +slug: dem-catalog-profile-v1 description: v1 Profile title: Profile v1 tags: @@ -15,6 +15,31 @@ 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! + +

The following parameters are depracted an will be removed in v2

+ +| **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | +| ----------- | ----------- | ----------- | +| mc:imagingTimeBeginUTC | date | start imaging date of raw product
supported format: **dd/mm/yyyy (not later than "End date")** | +| mc:imagingTimeEndUTC | date | end imaging date of raw product
supported format: **dd/mm/yyyy (not earlier than "Begin date")** | +| mc:resolutionDeg | double | the product resolution in degrees
double unsigned valid: **0.00000009 to 0.072** | +| mc:resolutionMeter | double | the product resolution in meters
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")
valid: **-500 to 9000** | +| mc:heightRangeTo | double | **maximum** height range in Meters (not less than "heightRangeFrom")
valid: **-500 to 9000** | +| mc:SRS | int | reference System ID (EPSG),
ex: 4326 / 3857 | +| mc:verticalDatum | enum | **Valid Values**:
WGS 1984 / WGS 1972 / Pulkovo 1942 / MSL Height / Israel | +| mc:units | enum | **Valid Values**:
METER / DD / DMS / ARC_SECONDS / UNKNOWN | +| mc:geographicArea | text | geographic area cities | +| mc:undulationModel | enum | **Valid Values**:
MSL EGM96 / MSL EGM2008 / MSL DMA10 / ILUM | +| mc:productBBox | text | the bounding box of the product minX,minY,maxX,maxY | + +::: + | **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | | ----------- | ----------- | ----------- | | mc:id | text | unique internal catalog item id | @@ -35,7 +60,7 @@ tags: | mc:heightRangeTo | double | **maximum** height range in Meters (not less than "heightRangeFrom")
valid: **-500 to 9000** | | mc:SRS | int | reference System ID (EPSG),
ex: 4326 / 3857 | | mc:SRSName | text | name of reference system | -| mc:verticalDatum | enum | **Valid Values**:
WGS 1984 / WGS 1972 / Pulkovo 1942 / Palestine 1923 / MSL Height / Israel / ED 1950 IDF | +| mc:verticalDatum | enum | **Valid Values**:
WGS 1984 / WGS 1972 / Pulkovo 1942 / MSL Height / Israel | | mc:region | text | sector / countries
comma separated list | | mc:classification | enum | product classification / confidentiality
Classification values | | mc:producerName | text | manufacturer / organization that produced / supplied the product | diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md new file mode 100644 index 0000000000..520df88302 --- /dev/null +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -0,0 +1,84 @@ +--- +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 + +| **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | +| ----------- | ----------- | ----------- | +| mc:productVersion | int | the product version | +| mc:srsId | int | reference System ID (EPSG),
ex: 4326 / 3857 | +| mc:dataType | enum | **Valid Values**:
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
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**:
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),
ex: 4326 / 3857 | +| mc:srsName | text | name of reference system | +| mc:dataType | enum | **Valid Values**:
FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 | +| mc:sensors | text | list of sensors used as a source for the product
comma separated list | +| mc:region | text | sector / countries
comma separated list | +| mc:insertDateUTC | date | the date when the product was added to catalog
supported format: **dd-mm-yyyyThh:mm:ssZ** | +| mc:ingestionDateUTC | date | when last was the **data** or **parts** updated
supported format: **dd-mm-yyyyThh:mm:ssZ** | +| mc:updateDateUTC | date | when last was the MD updated
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 | | +| 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
Classification values | +| mc:producerName | text | manufacturer / organization that produced / supplied the product | +| mc:noDataValue | enum | **Valid Values**:
-32768 | +| mc:type | enum | type of the catalog
**Valid values**: RECORD_RASTER / RECORD_3D / RECORD_DEM
default: ***RECORD_DEM***| +| mc:keywords | text | list of key words relevant for product | diff --git a/docs/MapColonies/Raster/services/catalog/profile_v1_0.md b/docs/MapColonies/Raster/services/catalog/profile_v1_0.md index 3b3109d2b1..acc24b4cb6 100644 --- a/docs/MapColonies/Raster/services/catalog/profile_v1_0.md +++ b/docs/MapColonies/Raster/services/catalog/profile_v1_0.md @@ -17,7 +17,7 @@ tags: :::warning New version [v2](/docs/MapColonies/Raster/services/catalog/raster-catalog-profile-v2) is coming! -

The following parameters are depracted an will be removed in v2

+

The following parameters are deprecated and will be removed in v2

| **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | | ----------- | ----------- | ----------- | diff --git a/docs/ogc/protocols/ogc-wcs.md b/docs/ogc/protocols/ogc-wcs.md index ffc65936ec..facf420924 100644 --- a/docs/ogc/protocols/ogc-wcs.md +++ b/docs/ogc/protocols/ogc-wcs.md @@ -26,7 +26,7 @@ tags: A WCS server responding to a **GetCapabilities** request returns metadata about the service, including supported operations and parameters, and a list of the available layers. ``` -/geoserver/ows? +/ows? service=WCS& version=2.0.1& request=GetCapabilities @@ -78,36 +78,36 @@ request=GetCapabilities - + - + - + - + - + - + @@ -332,7 +332,6 @@ request=GetCapabilities - ``` @@ -341,11 +340,23 @@ This request shows an XML file containing the WCS 2.0.1 ***GetCapabilities*** re +### Understanding the capabilities response {#understanding-capabilities} + +| **Tag name** | **Use** | +| ----------- | ----------- | +| OperationsMetadata | Provides details about the service's available operations. | +| formatSupported | Located under the `ServiceMetadata` tag.
Lists the supported formats. | +| Extension | Located under the `ServiceMetadata` tag.
Lists all of the supported crs. | +| InterpolationMetadata | Located under the `Extension` tag.
Lists all of the available interpolation methods available. | +| Contents | Information about the available coverages. | + ## DescribeCoverage The purpose of the **DescribeCoverage** request is to additional information about a Coverage a client wants to query. It returns information about the crs, the metadata, the domain, the range and the formats it is available in. A client generally will need to issue a DescribeCoverage request before being sure it can make the proper GetCoverage request +### Version 1.0.0 + ``` -/geoserver/ows? +/ows? SERVICE=WCS& VERSION=1.0.0& REQUEST=DescribeCoverage& @@ -354,10 +365,9 @@ COVERAGE=n30_e034_1arc_v3
Response example - ``` xml - + Generated from GeoTIFF dem:n30_e034_1arc_v3 @@ -443,7 +453,97 @@ COVERAGE=n30_e034_1arc_v3 ```
-This request shows an XML file containing the DescribeCoverage response of ***n30_e034_1arc_v3*** layer. +### Version 2.0.1 + +```bash +curl --location --request GET '/wcs?request=DescribeCoverage&version=2.0.1&coverageId=srtm30&token=' +``` + +
+ Response + ```xml + + + + Generated from GeoTIFF + srtm30 + + + 32.16796875 34.716796875 + 32.958984375 35.68359375 + + + dem__srtm30 + + + Linear + 0 0 + + + + + + srtm30 + WCS + GeoTIFF + + + + + + + + 0 0 + 2815 2303 + + + i j + + + 32.95881271362305 34.71696853637695 + + + 0.0 3.4332275390625E-4 + -3.4332275390625E-4 0.0 + + + + + + + GRAY_INDEX + + + -32768.0 + + + + + + -32768 32767 + + + + + + + + RectifiedGridCoverage + image/tiff + + + + ``` +
+ +#### Understanding the describe coverage response {#understanding-describe-coverage} + +Notice the tag `boundedBy`, it describes the geographic extent of the coverage, It includes the following attributes: +| **Attribute name** | **Details** | **Example** | +| ----------- | ----------- | ----------- | +| srsName | Coverage SRS | http://www.opengis.net/def/crs/EPSG/0/4326 | +| axisLabels | Labels to use to describe the coverage axis | Lat Long | +| srsDimension | Dimension of points in the coverage | 2 | ## GetCoverage The **GetCoverage** operation requests the actual spatial data. It can retrieve subsets of coverages, and the result can be either the coverage itself or a reference to it. The most powerful thing about a GetCoverage request is its ability to subset domains (height and time) and ranges. It can also do resampling, encode in different data formats, and return the resulting file in different ways. @@ -451,7 +551,7 @@ The **GetCoverage** operation requests the actual spatial data. It can retrieve Detailed explanation about params might be found [here](https://www.mapserver.org/ogc/wcs_server.html) 🌐 ``` -/geoserver/ows? +/ows? SERVICE=WCS& VERSION=1.0.0& REQUEST=GetCoverage& @@ -463,4 +563,4 @@ HEIGHT=2833& FORMAT=PNG ``` -Downloaded data/image for **n30_e034_1arc_v3** layer for **EPSG:4326** projection and for defined **BBOX** +With this request we have successfully fetched data/image for **n30_e034_1arc_v3** layer for **EPSG:4326** projection and for defined **BBOX**! :tada: diff --git a/sidebars.js b/sidebars.js index 0d911c8850..d24b040e06 100644 --- a/sidebars.js +++ b/sidebars.js @@ -74,8 +74,13 @@ const sidebars = { items: [ { type: 'doc', - label: 'Getting Started', - id: 'MapColonies/DEM/Guides/dem-getting-started' + label: 'Terrain Provider', + id: 'MapColonies/DEM/Guides/terrain-provider' + }, + { + type: 'doc', + label: 'Height Extraction', + id: 'MapColonies/DEM/Guides/height-extraction' }, ] }, From 979d501ac91efa90543567f24343ccbb088c74ff Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Sun, 15 Feb 2026 18:39:10 +0200 Subject: [PATCH 02/28] docs(dem): v2 WIP --- .../DEM/Guides/height_extraction.md | 174 ++++++++++++++---- docs/MapColonies/obligations.md | 35 +++- 2 files changed, 166 insertions(+), 43 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index af9170246e..c2eec4f9de 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -10,6 +10,9 @@ tags: - getting-started --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + ## Step by step guide The following guide will help you understand ***Step-by-step*** how to work with the Map Colonies Height Extraction service, from the [Catalog](/docs/MapColonies/DEM/Services/catalog/dem-catalog) to the WCS protocol. @@ -55,8 +58,8 @@ Query the **DEM catalog** service to find item(s) according to a desired filter Filter should be based on fields in the [DEM profile](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2). -### Get all records (pagination) - + + When we want to get all of the records in the catalog we can make the following query: ```bash @@ -90,6 +93,8 @@ curl --location --request POST '/csw?token=' \ 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z /wcs?request=GetCapabilities + /wcs + /wfs?request=GetCapabilities /path/to/file.ext 2 6 @@ -102,8 +107,8 @@ curl --location --request POST '/csw?token=' \ 0.0004 40 -32768 - IDFMU - 81d2b9b0-a99f-45da-8dce-b83323d22d1c + PRODUCER + product_name_2 product_name_2 DSM 1 @@ -122,33 +127,102 @@ curl --location --request POST '/csw?token=' \ ``` + -Notice the attriutes `startPosition` and `maxRecords`, both of them help us to implement the `pagination` concept. In result, we get the following attributes in the response: - -- `numberOfRecordsMatched` indicating the total amount of records in the catalog matching our filters -- `numberOfRecordsReturned` indicating the amount of records returned for this request (may be less than `maxRecords` given in the request) -- `nextRecord` the value that should be passed for `startPosition` in the following request + +To fetch a specific layer you need the following values: +1. `productId` +2. `productType` -Our next request should look like this: +Usually you make this kind of request when you know there's a specific product that you want. +When you have these values in hand you can make a `POST` request to `/csw` with the following body (replace `productId` and `productType` with real values): ```bash curl --location --request POST '/csw?token=' \ --header 'Content-Type: application/xml' \ --data-raw ' - + full + + + + + mc:productId + product_name_2 + + + mc:productType + DSM + + + + ' ``` -### Get all records with productType DTM - +
+ Response + ```xml + + + + + + 2019-12-31T11:00:00Z + 2019-12-31T11:00:00Z + Area + 0 + FLOAT32 + + {"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,0]]]} + egm96 + e2d812ba-40b7-4dfe-b3e7-869356467d3a + 2025-12-31T10:17:16Z + 2020-12-31T11:00:00Z + /wcs?request=GetCapabilities + /wcs + /wfs?request=GetCapabilities + /path/to/file.ext + 2 + 6 + 4 + 0.0004 + 40 + 1 + 5 + 3 + 0.0004 + 40 + -32768 + PRODUCER + product_name_2 + product_name_2 + DSM + 1 + region + sensors + srs_id + WGS84GEO + RECORD_DEM + 2020-12-31T11:00:00Z + + 0.0 0.0 + 10.0 10.0 + + + + + ``` +
+
+ ```bash curl --location --request POST '/csw?token=' \ --header 'Content-Type: application/xml' \ --data-raw ' - + full @@ -181,8 +255,10 @@ curl --location --request POST '/csw?token=' \ d2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T09:55:51Z 2025-12-31T11:00:00Z - /wcs?request=GetCapabilities - /path/to/file.ext + /wcs?request=GetCapabilities + /wcs + /wfs?request=GetCapabilities + /path/to/file.ext 2 6 4 @@ -194,8 +270,8 @@ curl --location --request POST '/csw?token=' \ 0.0004 40 -32768 - IDFMU - 71d2b9b0-a99f-45da-8dce-b83323d22d1c + PRODUCER + product_name_1 product_name_1 DTM 1 @@ -214,13 +290,13 @@ curl --location --request POST '/csw?token=' \ ``` - -### Get all records with productType DTM and contained in a given BBOX - + + +Fetch all products with productType DTM and contained in a given BBOX. ```bash curl --location --request POST '/csw?token=' \ --data-raw ' - + full @@ -243,13 +319,16 @@ curl --location --request POST '/csw?token=' \ ' ``` - -### Get all records with productType DTM and contained in a given Polygon - + + +Fetch all products with productType DTM and contained in a given Polygon. +:::info +We can provide a polygon with as many points as we want as long as the first and last are the same point. +::: ```bash curl --location --request POST '/csw?token=' \ --data-raw ' - + full @@ -277,6 +356,27 @@ curl --location --request POST '/csw?token=' \ ' ``` + +
+ +Notice the attributes `startPosition` and `maxRecords`, both of them help us to implement the `pagination` concept. In result, we get the following attributes in the response: + +- `numberOfRecordsMatched` indicating the total amount of records in the catalog matching our filters +- `numberOfRecordsReturned` indicating the amount of records returned for this request (may be less than `maxRecords` given in the request) +- `nextRecord` the value that should be passed for `startPosition` in the following request + +In case we are fetching the full profile without any filters our next request should look like this: + +```bash +curl --location --request POST '/csw?token=' \ +--header 'Content-Type: application/xml' \ +--data-raw ' + + + full + +' +``` ## Get metadata (Step 2) @@ -295,7 +395,7 @@ Fields you may want to filter by: | ----------- | ----------- | | footprint | Specific geographical area | | ...Accuracy... | | -| ...Resolution... | | +| ...Resolution... | Mix and Max resolution | | productType | Specific product type (for example: only DTM) | | srsId / srsName | Wanted SRS | | ingestionDateUTC | Layers that were ingested before / after a given time | @@ -626,8 +726,11 @@ Read more [here](/docs/ogc/protocols/ogc-wcs#understanding-capabilities). Read more about this request [here](/docs/ogc/protocols/ogc-wcs#describecoverage). ::: +For this step we need the `coverageId` of a product we selected from the previous steps. The wanted ID should look like this: `-`. +Lets select the product `product_name_1`, this means our ID will be `product_name_1-DTM` and our request will be: + ```bash -curl --location --request GET '/wcs?request=DescribeCoverage&version=2.0.1&coverageId=srtm30&token=' +curl --location --request GET '/wcs?request=DescribeCoverage&version=2.0.1&coverageId=product_name_1-DTM&token=' ```
@@ -635,16 +738,16 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve ```xml - + Generated from GeoTIFF - srtm30 + product_name_1-DTM 32.16796875 34.716796875 32.958984375 35.68359375 - dem__srtm30 + dem__product_name_1-DTM Linear @@ -654,14 +757,14 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve - srtm30 + product_name_1-DTM WCS GeoTIFF - + 0 0 @@ -670,7 +773,7 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve i j - + 32.95881271362305 34.71696853637695 @@ -728,6 +831,9 @@ These parameters require additional calculations on the server-side which means **Any** use of these parameters is the sole responsibility of the user as we cannot know the resulting requests metadata. ::: +For all of the examples in this section we need the following parameters: +- coverageId - + ### Get Replace `` with the URL link that you got from **Step 2.1 (optional)**. diff --git a/docs/MapColonies/obligations.md b/docs/MapColonies/obligations.md index 5e87f7cb5b..ada74ded17 100644 --- a/docs/MapColonies/obligations.md +++ b/docs/MapColonies/obligations.md @@ -7,7 +7,7 @@ tags: - obligations - recommendations - catalog - - catalogue + - catalog - raster - vector - 3d @@ -16,23 +16,33 @@ tags: Here we detail the must-haves for every application that wishes to work with our services. +## Common (for all services) + ### Application Startup -When your application is loaded or refreshed you are required make a request to our `catalogue` services in order to fetch **up-to-date information**. Caching the request may result in errors due to changed metadata and links, new products or even deleted products that don't exist anymore. +When your application is loaded or refreshed you are required make a request to our `catalog` services in order to fetch **up-to-date information**. Caching the request may result in errors due to changed metadata and links, new products or even deleted products that don't exist anymore. ### Catalog items -In order to use our services you are required to go through the catalogue. The `catalogue` is the gateway to many of our services, it details the available `products` and `product metadata` for a particular domain. +In order to use our services you are required to go through the catalog. The `catalog` is the gateway to many of our services, it details the available `products` and `product metadata` for a particular domain. ### Hardcoded Links -We require that you fetch and extract any link that is available in our `catalogue services` through your code.
-Any link that **isn't available** through the catalogue service may be held as an **easily configurable** parameter. +We require that you fetch and extract any link that is available in our `catalog services` through your code.
+Any link that **isn't available** through the catalog service may be held as an **easily configurable** parameter. :::warning -We hold the right to change any link that is available through our catalogue services at any time. +We hold the right to change any link that is available through our catalog services at any time. ::: +### Pagination + +Some of our services return multiple results per request, according to filter parameters, and due to geographic entities the returned payload may be very large. In order to solve this issue we implement `pagination` using special parameters. + +You should be using `pagination` in order to control the amount of results returned and easily split a request that yields a huge amount of data or records in to multiple requests. Read more in the documentation page for each service in order to understand how to use this feature. + +## Raster + ### Basemaps At application startup there is usually a set of default Raster layers that are displayed. @@ -41,8 +51,15 @@ in case you want to use different layers in the future. We also recommend that the layers are loaded in the same order as described in the list for easy swapping. -### Pagination +## DEM -Some of our services return multiple results per request, according to filter parameters, and due to geographic entities the returned payload may be very large. In order to solve this issue we implement `pagination` using special parameters. +### Using WCS specific parameters -You should be using `pagination` in order to control the amount of results returned and easily split a request that yields a huge amount of data or records in to multiple requests. Read more in the documentation page for each service in order to understand how to use this feature. +We recommend you don't use the following `query parameters` when making requests: +- bbox_width +- bbox_height +- subset +- scalesize + +These parameters require additional calculations on the server-side which means that the original data is changed on-the-fly resulting in new data with different attributes such as `resolution` or `accuracy`. +**Any** use of these parameters is the sole responsibility of the user as we cannot know the resulting requests metadata. From a3d5b0d553ab97b521ae335aca865d71a3f3f47e Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 16 Feb 2026 17:15:42 +0200 Subject: [PATCH 03/28] docs(dem): v2 WIP --- .../DEM/Guides/height_extraction.md | 83 +++++++++++++------ docs/MapColonies/obligations.md | 9 +- 2 files changed, 62 insertions(+), 30 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index c2eec4f9de..b2f64a0508 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -31,25 +31,20 @@ Please note the [obligations](/docs/MapColonies/obligations) you need to follow ## Flow diagram ```mermaid flowchart LR - subgraph Prerequisite + subgraph sub1 [Prerequisites] direction LR a1[Define filter] a2[Get Auth Token] end - a1 -- filter --> B[STEP 1
Query CSW catalog] - a2 -- token --> B - subgraph Metadata drill-down - direction LR - c1[STEP 2
Get DEM metadata] - c2[STEP 2.1 optional
Get terrain provider URI] - end - B -- xml --> c1 - B -- xml --> c2 - c1 -. IN DEVELOPMENT
metadata
of available for export data .-> E[STEP 3
Your system] - c2 -- terrain_URI --> D[STEP 3.1
Cesium] + c[Step 1
Catalog] --> d + d[Step 2
Get Capabilities] --> e + e[Step 2
Describe Coverage] --> f + f[Step 3
Get Coverage] - linkStyle 4 color:green,stroke:#f4cccc,stroke-width:5px %% Arrow + sub1 -- request --> c + c -- Metadata --> e + c -- Metadata --> f ``` ## Query the DEM catalog (Step 1) @@ -727,10 +722,10 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#describecoverage ::: For this step we need the `coverageId` of a product we selected from the previous steps. The wanted ID should look like this: `-`. -Lets select the product `product_name_1`, this means our ID will be `product_name_1-DTM` and our request will be: +Lets select the product `srtm30`, this means our ID will be `srtm30-DTM` and our request will be: ```bash -curl --location --request GET '/wcs?request=DescribeCoverage&version=2.0.1&coverageId=product_name_1-DTM&token=' +curl --location --request GET '/wcs?request=DescribeCoverage&version=2.0.1&coverageId=srtm30-DTM&token=' ```
@@ -738,16 +733,16 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve ```xml - + Generated from GeoTIFF - product_name_1-DTM + srtm30 32.16796875 34.716796875 32.958984375 35.68359375 - dem__product_name_1-DTM + dem__srtm30 Linear @@ -757,14 +752,14 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve - product_name_1-DTM + srtm30 WCS GeoTIFF - + 0 0 @@ -773,7 +768,7 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve i j - + 32.95881271362305 34.71696853637695 @@ -822,10 +817,11 @@ Now we can actually make a request for elevation data. :::danger We recommend you don't use the following `query parameters` when making requests: -- bbox_width -- bbox_height -- subset -- scalesize +- `bbox_width` +- `bbox_height` +- `subset` +- `scalesize` +- `outputCRS` These parameters require additional calculations on the server-side which means that the original data is changed on-the-fly resulting in new data with different attributes such as `resolution` or `accuracy`. **Any** use of these parameters is the sole responsibility of the user as we cannot know the resulting requests metadata. @@ -834,7 +830,42 @@ These parameters require additional calculations on the server-side which means For all of the examples in this section we need the following parameters: - coverageId - -### Get +In the examples we show the use of specific parameter values, in order to understand what other values you can you review the [service capabilities](#extraction-service-capabilities). + +### Get whole coverage + +:::warning +The service output size is limited on our side in order to avoid huge requests, you may get the following error: + +```bash + + + + This request is trying to generate too much data, the limit is 1500MB but the actual amount of bytes to be written in the output is 5000MB + + +``` +::: + +Here we request the whole coverage in the `geotiff` format. + +```bash +curl --location 'https://poc-geoserver-wcs-nginx-route-dem-dev.apps.j1lk3njp.eastus.aroapp.io//wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image%2Ftiff%3Bapplication%3Dgeotiff&token=' +``` + +### Convert to other CRS + +In some situations we will have data in a geographical area in a different CRS than we expect for our calculations. In this case we can ask the service to convert the output to the wanted CRS. + +Here we are making a request to a coverage in `EPSG:4326` and requesting it in `EPSG:3857`: + +```bash +curl --location 'https://poc-geoserver-wcs-nginx-route-dem-dev.apps.j1lk3njp.eastus.aroapp.io//wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image%2Ftiff%3Bapplication%3Dgeotiff&outputCRS=EPSG%3A3857&token=' +``` + +### Set pixel size + +### Change resolution Replace `` with the URL link that you got from **Step 2.1 (optional)**. diff --git a/docs/MapColonies/obligations.md b/docs/MapColonies/obligations.md index ada74ded17..a9f3b7bc4a 100644 --- a/docs/MapColonies/obligations.md +++ b/docs/MapColonies/obligations.md @@ -56,10 +56,11 @@ We also recommend that the layers are loaded in the same order as described in t ### Using WCS specific parameters We recommend you don't use the following `query parameters` when making requests: -- bbox_width -- bbox_height -- subset -- scalesize +- `bbox_width` +- `bbox_height` +- `subset` +- `scalesize` +- `outputCRS` These parameters require additional calculations on the server-side which means that the original data is changed on-the-fly resulting in new data with different attributes such as `resolution` or `accuracy`. **Any** use of these parameters is the sole responsibility of the user as we cannot know the resulting requests metadata. From 463b18704ad1442dc1d680259ac23625614515e9 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Tue, 17 Feb 2026 16:16:00 +0200 Subject: [PATCH 04/28] docs(dem): v2 --- .../DEM/Guides/height_extraction.md | 51 +++++++++++++++---- docs/MapColonies/obligations.md | 5 +- 2 files changed, 45 insertions(+), 11 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index b2f64a0508..4aab14fc46 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -213,6 +213,7 @@ curl --location --request POST '/csw?token=' \
+Fetch all products with productType DTM. ```bash curl --location --request POST '/csw?token=' \ --header 'Content-Type: application/xml' \ @@ -396,7 +397,7 @@ Fields you may want to filter by: | ingestionDateUTC | Layers that were ingested before / after a given time | | updateDateUTC | Layers that were updated before / after a given time | -### Extraction service capabilities +### Extraction service capabilities {#capabilities} :::info Read more about this request [here](/docs/ogc/protocols/ogc-wcs#getcapabilities). @@ -817,11 +818,12 @@ Now we can actually make a request for elevation data. :::danger We recommend you don't use the following `query parameters` when making requests: -- `bbox_width` -- `bbox_height` - `subset` - `scalesize` +- `scaleFactor` +- `scaleAxes` - `outputCRS` +- `interpolation` These parameters require additional calculations on the server-side which means that the original data is changed on-the-fly resulting in new data with different attributes such as `resolution` or `accuracy`. **Any** use of these parameters is the sole responsibility of the user as we cannot know the resulting requests metadata. @@ -850,7 +852,15 @@ The service output size is limited on our side in order to avoid huge requests, Here we request the whole coverage in the `geotiff` format. ```bash -curl --location 'https://poc-geoserver-wcs-nginx-route-dem-dev.apps.j1lk3njp.eastus.aroapp.io//wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image%2Ftiff%3Bapplication%3Dgeotiff&token=' +curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&token=' +``` + +### Get by BBOX + +In most cases, we know which geographical area is of significance to us. This means that we can request the specific `BBOX` as a subset of the selected `coverage`: + +```bash +curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&subset=Lat(32.35306,32.49437)&subset=Long(35.13102,35.37051)&token=' ``` ### Convert to other CRS @@ -860,13 +870,36 @@ In some situations we will have data in a geographical area in a different CRS t Here we are making a request to a coverage in `EPSG:4326` and requesting it in `EPSG:3857`: ```bash -curl --location 'https://poc-geoserver-wcs-nginx-route-dem-dev.apps.j1lk3njp.eastus.aroapp.io//wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image%2Ftiff%3Bapplication%3Dgeotiff&outputCRS=EPSG%3A3857&token=' +curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&outputCRS=EPSG:3857&token=' ``` -### Set pixel size +### Scale image size (pixels) -### Change resolution + + +Set the output image to be a fixed amount of pixels. +```bash +curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&scaleSize=i(256),j(256)&token=' +``` + + +Set the output image size to be a certain factor from it's original size. +```bash +curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&scaleFactor=0.1&token=' +``` + + +Set the output image size to be a certain factor from it's original size for each axes. +```bash +curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&scaleAxes=i(0.1),j(0.2)&token=' +``` + + -Replace `` with the URL link that you got from **Step 2.1 (optional)**. +### Change interpolation method -Replace `` with the token you have. +There is an option to set the wanted interpolation method. +To see a full list of the available methods see the [capabilities](#capabilities). +```bash +curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&interpolation=http://www.opengis.net/def/interpolation/OGC/1/linear&token=' +``` diff --git a/docs/MapColonies/obligations.md b/docs/MapColonies/obligations.md index a9f3b7bc4a..81adf93774 100644 --- a/docs/MapColonies/obligations.md +++ b/docs/MapColonies/obligations.md @@ -56,11 +56,12 @@ We also recommend that the layers are loaded in the same order as described in t ### Using WCS specific parameters We recommend you don't use the following `query parameters` when making requests: -- `bbox_width` -- `bbox_height` - `subset` - `scalesize` +- `scaleFactor` +- `scaleAxes` - `outputCRS` +- `interpolation` These parameters require additional calculations on the server-side which means that the original data is changed on-the-fly resulting in new data with different attributes such as `resolution` or `accuracy`. **Any** use of these parameters is the sole responsibility of the user as we cannot know the resulting requests metadata. From 88f7eac06347de92dad4fe6040110310e5a1dc22 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Tue, 17 Feb 2026 16:27:48 +0200 Subject: [PATCH 05/28] docs(dem): fix broken links --- docs/MapColonies/3D/Guides/3D_getting_started.md | 2 +- docs/MapColonies/DEM/Guides/height_extraction.md | 2 +- docs/MapColonies/DEM/Services/CesiumTerrainProvider/README.md | 2 +- docs/MapColonies/DEM/Services/catalog/profile_v1_0.md | 2 +- docs/MapColonies/DEM/Services/catalog/profile_v2_0.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/MapColonies/3D/Guides/3D_getting_started.md b/docs/MapColonies/3D/Guides/3D_getting_started.md index f23a2d7867..8ac31b2e77 100644 --- a/docs/MapColonies/3D/Guides/3D_getting_started.md +++ b/docs/MapColonies/3D/Guides/3D_getting_started.md @@ -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" diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index 4aab14fc46..03154912bf 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -832,7 +832,7 @@ These parameters require additional calculations on the server-side which means For all of the examples in this section we need the following parameters: - coverageId - -In the examples we show the use of specific parameter values, in order to understand what other values you can you review the [service capabilities](#extraction-service-capabilities). +In the examples we show the use of specific parameter values, in order to understand what other values you can you review the [service capabilities](#capabilities). ### Get whole coverage diff --git a/docs/MapColonies/DEM/Services/CesiumTerrainProvider/README.md b/docs/MapColonies/DEM/Services/CesiumTerrainProvider/README.md index f5905dd6af..53d9156371 100644 --- a/docs/MapColonies/DEM/Services/CesiumTerrainProvider/README.md +++ b/docs/MapColonies/DEM/Services/CesiumTerrainProvider/README.md @@ -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 diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md index 929e2eb774..d403c62f8f 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md @@ -45,7 +45,7 @@ New version [v2](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2) | 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**:
DTM / DSM / QuantizedMesh / QuantizedMeshDTMBest / QuantizedMeshDSMBest | +| mc:productType | enum | **Valid Values**:
DTM / DSM / QuantizedMesh / QuantizedMeshDTMBest / QuantizedMeshDSMBest | | mc:description | text | the product description | | mc:imagingTimeBeginUTC | date | start imaging date of raw product
supported format: **dd/mm/yyyy (not later than "End date")** | | mc:imagingTimeEndUTC | date | end imaging date of raw product
supported format: **dd/mm/yyyy (not earlier than "Begin date")** | diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md index 520df88302..e8a28f8fbc 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -47,7 +47,7 @@ supported format: **dd-mm-yyyyThh:mm:ssZ** | | 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**:
DTM / DSM | +| mc:productType | enum | **Valid Values**:
DTM / DSM | | mc:productVersion | int | the product version | | mc:description | text | the product description | | mc:footprint | geojson | geographical delineation of the product / model trace | From eba1ae0badd01f370a5638b0d3edb61c2249f931 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Thu, 19 Feb 2026 14:54:12 +0200 Subject: [PATCH 06/28] docs(dem): ogc-wcs add examples per-version --- docs/ogc/protocols/ogc-wcs.md | 744 ++++++++++++++++++++-------------- 1 file changed, 436 insertions(+), 308 deletions(-) diff --git a/docs/ogc/protocols/ogc-wcs.md b/docs/ogc/protocols/ogc-wcs.md index facf420924..452b82ce10 100644 --- a/docs/ogc/protocols/ogc-wcs.md +++ b/docs/ogc/protocols/ogc-wcs.md @@ -25,10 +25,12 @@ tags: ## GetCapabilities A WCS server responding to a **GetCapabilities** request returns metadata about the service, including supported operations and parameters, and a list of the available layers. +### Version 1.0.0 + ``` /ows? service=WCS& -version=2.0.1& +version=1.0.0& request=GetCapabilities ``` @@ -37,304 +39,417 @@ request=GetCapabilities ``` xml title="Response Example" - - - - - urn:ogc:service:wcs - 2.0.1 - 1.1.1 - 1.1.0 - http://www.opengis.net/spec/WCS/2.0/conf/core - http://www.opengis.net/spec/WCS_protocol-binding_get-kvp/1.0.1 - http://www.opengis.net/spec/WCS_protocol-binding_post-xml/1.0 - http://www.opengis.net/spec/WCS_service-extension_crs/1.0/conf/crs-gridded-coverage - http://www.opengis.net/spec/WCS_geotiff-coverages/1.0/conf/geotiff-coverage - http://www.opengis.net/spec/GMLCOV/1.0/conf/gml-coverage - http://www.opengis.net/spec/GMLCOV/1.0/conf/special-format - http://www.opengis.net/spec/GMLCOV/1.0/conf/multipart - http://www.opengis.net/spec/WCS_service-extension_scaling/1.0/conf/scaling - http://www.opengis.net/spec/WCS_service-extension_crs/1.0/conf/crs - http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/interpolation - http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/interpolation-per-axis - http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/nearest-neighbor - http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/linear - http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/cubic - http://www.opengis.net/spec/WCS_service-extension_range-subsetting/1.0/conf/record-subsetting - NONE - NONE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XML - - - - - application/gml+xml - application/x-gzip - image/jpeg - image/png - image/tiff - text/plain - - - http://www.opengis.net/def/crs/EPSG/0/2000 - http://www.opengis.net/def/crs/EPSG/0/100001 - http://www.opengis.net/def/crs/EPSG/0/100002 - http://www.opengis.net/def/crs/EPSG/0/100003 - http://www.opengis.net/def/crs/EPSG/0/900913 - - http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbor - http://www.opengis.net/def/interpolation/OGC/1/linear - http://www.opengis.net/def/interpolation/OGC/1/cubic - - - - - 30n030e_20101117_gmted_min075 - Generated from GeoTIFF - - 30n030e_20101117_gmted_min075 - WCS - GeoTIFF - - dem__30n030e_20101117_gmted_min075 - RectifiedGridCoverage - - 29.999861111111112 29.99986111111111 - 59.999861111111116 49.99986111111111 - - - 29.999861111111112 29.99986111111111 - 59.999861111111116 49.99986111111111 - - - - gt30e020n40 - Generated from GeoTIFF - - gt30e020n40 - WCS - GeoTIFF - - dem__gt30e020n40 - RectifiedGridCoverage - - 20.000000000000004 -9.999999999980012 - 59.99999999998401 39.99999999999999 - - - 20.000000000000004 -9.999999999980012 - 59.99999999998401 39.99999999999999 - - - - n30_e034_1arc_v3 - Generated from GeoTIFF - - n30_e034_1arc_v3 - WCS - GeoTIFF - - dem__n30_e034_1arc_v3 - RectifiedGridCoverage - - 33.99986111111111 29.999861111111112 - 35.000138888888884 31.00013888888889 - - - 33.99986111111111 29.999861111111112 - 35.000138888888884 31.00013888888889 - - - - n30_e035_1arc_v3 - Generated from GeoTIFF - - n30_e035_1arc_v3 - WCS - GeoTIFF - - dem__n30_e035_1arc_v3 - RectifiedGridCoverage - - 34.99986111111111 29.999861111111112 - 36.000138888888884 31.00013888888889 - - - 34.99986111111111 29.999861111111112 - 36.000138888888884 31.00013888888889 - - - - - n31_e034_1arc_v3 - Generated from GeoTIFF - - n31_e034_1arc_v3 - WCS - GeoTIFF - - dem__n31_e034_1arc_v3 - RectifiedGridCoverage - - 33.99986111111111 30.999861111111112 - 35.000138888888884 32.00013888888889 - - - 33.99986111111111 30.999861111111112 - 35.000138888888884 32.00013888888889 - - - - n31_e035_1arc_v3 - Generated from GeoTIFF - - n31_e035_1arc_v3 - WCS - GeoTIFF - - dem__n31_e035_1arc_v3 - RectifiedGridCoverage - - 34.99986111111111 30.999861111111112 - 36.000138888888884 32.00013888888889 - - - 34.99986111111111 30.999861111111112 - 36.000138888888884 32.00013888888889 - - - - n31_e036_1arc_v3 - Generated from GeoTIFF - - n31_e036_1arc_v3 - WCS - GeoTIFF - - dem__n31_e036_1arc_v3 - RectifiedGridCoverage - - 35.99986111111111 30.999861111111112 - 37.000138888888884 32.00013888888889 - - - 35.99986111111111 30.999861111111112 - 37.000138888888884 32.00013888888889 - - - - n32_e034_1arc_v3 - Generated from GeoTIFF - - n32_e034_1arc_v3 - WCS - GeoTIFF - - dem__n32_e034_1arc_v3 - RectifiedGridCoverage - - 33.99986111111111 31.999861111111112 - 35.000138888888884 33.00013888888889 - - - 33.99986111111111 31.999861111111112 - 35.000138888888884 33.00013888888889 - - - - n32_e035_1arc_v3 - Generated from GeoTIFF - - n32_e035_1arc_v3 - WCS - GeoTIFF - - dem__n32_e035_1arc_v3 - RectifiedGridCoverage - - 34.99986111111111 31.999861111111112 - 36.000138888888884 33.00013888888889 - - - 34.99986111111111 31.999861111111112 - 36.000138888888884 33.00013888888889 - - - - n32_e036_1arc_v3 - Generated from GeoTIFF - - n32_e036_1arc_v3 - WCS - GeoTIFF - - dem__n32_e036_1arc_v3 - RectifiedGridCoverage - - 35.99986111111111 31.999861111111112 - 37.000138888888884 33.00013888888889 - - - 35.99986111111111 31.999861111111112 - 37.000138888888884 33.00013888888889 - - - - - + + + + WCS + + NONE + NONE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + application/vnd.ogc.se_xml + + + + + Generated from GeoTIFF + dem:mimad + mimad + + 32.70697763422942 29.149161895068794 + 37.071150249328454 34.62339561526329 + + + mimad + WCS + GeoTIFF + + + + Generated from GeoTIFF + dem:srtm30 + srtm30 + + 34.716796875 32.16796875 + 35.68359375 32.958984375 + + + srtm30 + WCS + GeoTIFF + + + + ```
+### Version 2.0.1 + +``` +/ows? +service=WCS& +version=2.0.1& +request=GetCapabilities +``` + +
+Response example + ``` xml title="Response Example" + + + + + + urn:ogc:service:wcs + 2.0.1 + 1.1.1 + 1.1.0 + http://www.opengis.net/spec/WCS/2.0/conf/core + http://www.opengis.net/spec/WCS_protocol-binding_get-kvp/1.0.1 + http://www.opengis.net/spec/WCS_protocol-binding_post-xml/1.0 + http://www.opengis.net/spec/WCS_service-extension_crs/1.0/conf/crs-gridded-coverage + + + + http://www.opengis.net/spec/GMLCOV/1.0/conf/gml-coverage + http://www.opengis.net/spec/GMLCOV/1.0/conf/special-format + http://www.opengis.net/spec/GMLCOV/1.0/conf/multipart + http://www.opengis.net/spec/WCS_service-extension_scaling/1.0/conf/scaling + http://www.opengis.net/spec/WCS_service-extension_crs/1.0/conf/crs + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/interpolation + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/interpolation-per-axis + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/nearest-neighbor + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/linear + http://www.opengis.net/spec/WCS_service-extension_interpolation/1.0/conf/cubic + http://www.opengis.net/spec/WCS_service-extension_range-subsetting/1.0/conf/record-subsetting + NONE + NONE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XML + + + + + application/gml+xml + image/jpeg + image/png + image/tiff + image/tiff;application=geotiff + text/plain + + + ... + http://www.opengis.net/def/crs/EPSG/0/3857 + ... + http://www.opengis.net/def/crs/EPSG/0/4326 + ... + http://www.opengis.net/def/crs/EPSG/0/32600 + http://www.opengis.net/def/crs/EPSG/0/32601 + http://www.opengis.net/def/crs/EPSG/0/32602 + http://www.opengis.net/def/crs/EPSG/0/32603 + http://www.opengis.net/def/crs/EPSG/0/32604 + http://www.opengis.net/def/crs/EPSG/0/32605 + http://www.opengis.net/def/crs/EPSG/0/32606 + http://www.opengis.net/def/crs/EPSG/0/32607 + http://www.opengis.net/def/crs/EPSG/0/32608 + http://www.opengis.net/def/crs/EPSG/0/32609 + http://www.opengis.net/def/crs/EPSG/0/32610 + http://www.opengis.net/def/crs/EPSG/0/32611 + http://www.opengis.net/def/crs/EPSG/0/32612 + http://www.opengis.net/def/crs/EPSG/0/32613 + http://www.opengis.net/def/crs/EPSG/0/32614 + http://www.opengis.net/def/crs/EPSG/0/32615 + http://www.opengis.net/def/crs/EPSG/0/32616 + http://www.opengis.net/def/crs/EPSG/0/32617 + http://www.opengis.net/def/crs/EPSG/0/32618 + http://www.opengis.net/def/crs/EPSG/0/32619 + http://www.opengis.net/def/crs/EPSG/0/32620 + http://www.opengis.net/def/crs/EPSG/0/32621 + http://www.opengis.net/def/crs/EPSG/0/32622 + http://www.opengis.net/def/crs/EPSG/0/32623 + http://www.opengis.net/def/crs/EPSG/0/32624 + http://www.opengis.net/def/crs/EPSG/0/32625 + http://www.opengis.net/def/crs/EPSG/0/32626 + http://www.opengis.net/def/crs/EPSG/0/32627 + http://www.opengis.net/def/crs/EPSG/0/32628 + http://www.opengis.net/def/crs/EPSG/0/32629 + http://www.opengis.net/def/crs/EPSG/0/32630 + http://www.opengis.net/def/crs/EPSG/0/32631 + http://www.opengis.net/def/crs/EPSG/0/32632 + http://www.opengis.net/def/crs/EPSG/0/32633 + http://www.opengis.net/def/crs/EPSG/0/32634 + http://www.opengis.net/def/crs/EPSG/0/32635 + http://www.opengis.net/def/crs/EPSG/0/32636 + http://www.opengis.net/def/crs/EPSG/0/32637 + http://www.opengis.net/def/crs/EPSG/0/32638 + http://www.opengis.net/def/crs/EPSG/0/32639 + http://www.opengis.net/def/crs/EPSG/0/32640 + http://www.opengis.net/def/crs/EPSG/0/32641 + http://www.opengis.net/def/crs/EPSG/0/32642 + http://www.opengis.net/def/crs/EPSG/0/32643 + http://www.opengis.net/def/crs/EPSG/0/32644 + http://www.opengis.net/def/crs/EPSG/0/32645 + http://www.opengis.net/def/crs/EPSG/0/32646 + http://www.opengis.net/def/crs/EPSG/0/32647 + http://www.opengis.net/def/crs/EPSG/0/32648 + http://www.opengis.net/def/crs/EPSG/0/32649 + http://www.opengis.net/def/crs/EPSG/0/32650 + http://www.opengis.net/def/crs/EPSG/0/32651 + http://www.opengis.net/def/crs/EPSG/0/32652 + http://www.opengis.net/def/crs/EPSG/0/32653 + http://www.opengis.net/def/crs/EPSG/0/32654 + http://www.opengis.net/def/crs/EPSG/0/32655 + http://www.opengis.net/def/crs/EPSG/0/32656 + http://www.opengis.net/def/crs/EPSG/0/32657 + http://www.opengis.net/def/crs/EPSG/0/32658 + http://www.opengis.net/def/crs/EPSG/0/32659 + http://www.opengis.net/def/crs/EPSG/0/32660 + http://www.opengis.net/def/crs/EPSG/0/32661 + http://www.opengis.net/def/crs/EPSG/0/32662 + http://www.opengis.net/def/crs/EPSG/0/32663 + http://www.opengis.net/def/crs/EPSG/0/32664 + http://www.opengis.net/def/crs/EPSG/0/32665 + http://www.opengis.net/def/crs/EPSG/0/32666 + http://www.opengis.net/def/crs/EPSG/0/32667 + http://www.opengis.net/def/crs/EPSG/0/32700 + http://www.opengis.net/def/crs/EPSG/0/32701 + http://www.opengis.net/def/crs/EPSG/0/32702 + http://www.opengis.net/def/crs/EPSG/0/32703 + http://www.opengis.net/def/crs/EPSG/0/32704 + http://www.opengis.net/def/crs/EPSG/0/32705 + http://www.opengis.net/def/crs/EPSG/0/32706 + http://www.opengis.net/def/crs/EPSG/0/32707 + http://www.opengis.net/def/crs/EPSG/0/32708 + http://www.opengis.net/def/crs/EPSG/0/32709 + http://www.opengis.net/def/crs/EPSG/0/32710 + http://www.opengis.net/def/crs/EPSG/0/32711 + http://www.opengis.net/def/crs/EPSG/0/32712 + http://www.opengis.net/def/crs/EPSG/0/32713 + http://www.opengis.net/def/crs/EPSG/0/32714 + http://www.opengis.net/def/crs/EPSG/0/32715 + http://www.opengis.net/def/crs/EPSG/0/32716 + http://www.opengis.net/def/crs/EPSG/0/32717 + http://www.opengis.net/def/crs/EPSG/0/32718 + http://www.opengis.net/def/crs/EPSG/0/32719 + http://www.opengis.net/def/crs/EPSG/0/32720 + http://www.opengis.net/def/crs/EPSG/0/32721 + http://www.opengis.net/def/crs/EPSG/0/32722 + http://www.opengis.net/def/crs/EPSG/0/32723 + http://www.opengis.net/def/crs/EPSG/0/32724 + http://www.opengis.net/def/crs/EPSG/0/32725 + http://www.opengis.net/def/crs/EPSG/0/32726 + http://www.opengis.net/def/crs/EPSG/0/32727 + http://www.opengis.net/def/crs/EPSG/0/32728 + http://www.opengis.net/def/crs/EPSG/0/32729 + http://www.opengis.net/def/crs/EPSG/0/32730 + http://www.opengis.net/def/crs/EPSG/0/32731 + http://www.opengis.net/def/crs/EPSG/0/32732 + http://www.opengis.net/def/crs/EPSG/0/32733 + http://www.opengis.net/def/crs/EPSG/0/32734 + http://www.opengis.net/def/crs/EPSG/0/32735 + http://www.opengis.net/def/crs/EPSG/0/32736 + http://www.opengis.net/def/crs/EPSG/0/32737 + http://www.opengis.net/def/crs/EPSG/0/32738 + http://www.opengis.net/def/crs/EPSG/0/32739 + http://www.opengis.net/def/crs/EPSG/0/32740 + http://www.opengis.net/def/crs/EPSG/0/32741 + http://www.opengis.net/def/crs/EPSG/0/32742 + http://www.opengis.net/def/crs/EPSG/0/32743 + http://www.opengis.net/def/crs/EPSG/0/32744 + http://www.opengis.net/def/crs/EPSG/0/32745 + http://www.opengis.net/def/crs/EPSG/0/32746 + http://www.opengis.net/def/crs/EPSG/0/32747 + http://www.opengis.net/def/crs/EPSG/0/32748 + http://www.opengis.net/def/crs/EPSG/0/32749 + http://www.opengis.net/def/crs/EPSG/0/32750 + http://www.opengis.net/def/crs/EPSG/0/32751 + http://www.opengis.net/def/crs/EPSG/0/32752 + http://www.opengis.net/def/crs/EPSG/0/32753 + http://www.opengis.net/def/crs/EPSG/0/32754 + http://www.opengis.net/def/crs/EPSG/0/32755 + http://www.opengis.net/def/crs/EPSG/0/32756 + http://www.opengis.net/def/crs/EPSG/0/32757 + http://www.opengis.net/def/crs/EPSG/0/32758 + http://www.opengis.net/def/crs/EPSG/0/32759 + http://www.opengis.net/def/crs/EPSG/0/32760 + http://www.opengis.net/def/crs/EPSG/0/32761 + http://www.opengis.net/def/crs/EPSG/0/32762 + http://www.opengis.net/def/crs/EPSG/0/32763 + http://www.opengis.net/def/crs/EPSG/0/32764 + http://www.opengis.net/def/crs/EPSG/0/32765 + http://www.opengis.net/def/crs/EPSG/0/32766 + ... + + + http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbor + http://www.opengis.net/def/interpolation/OGC/1/linear + http://www.opengis.net/def/interpolation/OGC/1/cubic + + + + + + mimad + + mimad + WCS + GeoTIFF + + dem__mimad + RectifiedGridCoverage + + 473139.25219177455 3230615.3954787063 + 873608.5831505858 3831319.391916923 + + + 32.70697763422942 29.149161895068794 + 37.071150249328454 34.62339561526329 + + + + mimad + + mimad + WCS + GeoTIFF + + dem__mimad + RectifiedGridCoverage + + 473139.25219177455 3230615.3954787063 + 873608.5831505858 3831319.391916923 + + + 32.70697763422942 29.149161895068794 + 37.071150249328454 34.62339561526329 + + + + srtm30 + + srtm30 + WCS + GeoTIFF + + dem__srtm30 + RectifiedGridCoverage + + 34.716796875 32.16796875 + 35.68359375 32.958984375 + + + 34.716796875 32.16796875 + 35.68359375 32.958984375 + + + + + + ``` +
+ This request shows an XML file containing the WCS 2.0.1 ***GetCapabilities*** response (the following pictures contains the **dem__gt30e020n40** layer related sub-section).
@@ -463,7 +578,7 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve Response ```xml - + Generated from GeoTIFF srtm30 @@ -536,7 +651,7 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve ``` -#### Understanding the describe coverage response {#understanding-describe-coverage} +### Understanding the describe coverage response {#understanding-describe-coverage} Notice the tag `boundedBy`, it describes the geographic extent of the coverage, It includes the following attributes: | **Attribute name** | **Details** | **Example** | @@ -550,17 +665,30 @@ The **GetCoverage** operation requests the actual spatial data. It can retrieve Detailed explanation about params might be found [here](https://www.mapserver.org/ogc/wcs_server.html) 🌐 +### Version 1.0.0 + ``` -/ows? -SERVICE=WCS& -VERSION=1.0.0& -REQUEST=GetCoverage& -coverage=n30_e034_1arc_v3& -CRS=EPSG:4326& -BBOX=33.99986111111111,29.999861111111112,35.000138888888884,31.00013888888889& -WIDTH=3199& -HEIGHT=2833& -FORMAT=PNG +/wcs? +request=GetCoverage& +version=1.0.0& +coverage=srtm30& +format=image/tiff;application=geotiff& +crs=EPSG%3A4326& +bbox=35.13102,32.35306,35.37051,32.49437& +width=1000& +height=1000 +``` + +### Version 2.0.1 + +``` +/wcs? +request=GetCoverage& +version=2.0.1& +coverageId=srtm30& +format=image/tiff;application=geotiff& +subset=Lat(32.35306,32.49437)& +subset=Long(35.13102,35.37051) ``` With this request we have successfully fetched data/image for **n30_e034_1arc_v3** layer for **EPSG:4326** projection and for defined **BBOX**! :tada: From a71cce347fea7f738da3a2362610de1d32c2d916 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Thu, 19 Feb 2026 14:57:23 +0200 Subject: [PATCH 07/28] docs(dem): note default interpolation method --- docs/MapColonies/DEM/Guides/height_extraction.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index 03154912bf..0fa45a22f4 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -900,6 +900,11 @@ curl --location '/wcs?request=GetCoverage&version=2.0.1&coverag There is an option to set the wanted interpolation method. To see a full list of the available methods see the [capabilities](#capabilities). + +:::note +The default method is `linear`. +::: + ```bash -curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&interpolation=http://www.opengis.net/def/interpolation/OGC/1/linear&token=' +curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&interpolation=http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbor&token=' ``` From fd6771285c6a1a07eed63967164d20beb2b72707 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Thu, 19 Feb 2026 15:01:19 +0200 Subject: [PATCH 08/28] docs(dem): remove subset from un-recommended parameter list --- docs/MapColonies/DEM/Guides/height_extraction.md | 3 +-- docs/MapColonies/obligations.md | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index 0fa45a22f4..8b78fe950a 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -818,7 +818,6 @@ Now we can actually make a request for elevation data. :::danger We recommend you don't use the following `query parameters` when making requests: -- `subset` - `scalesize` - `scaleFactor` - `scaleAxes` @@ -830,7 +829,7 @@ These parameters require additional calculations on the server-side which means ::: For all of the examples in this section we need the following parameters: -- coverageId - +- `coverageId` In the examples we show the use of specific parameter values, in order to understand what other values you can you review the [service capabilities](#capabilities). diff --git a/docs/MapColonies/obligations.md b/docs/MapColonies/obligations.md index 81adf93774..0fd7312625 100644 --- a/docs/MapColonies/obligations.md +++ b/docs/MapColonies/obligations.md @@ -56,7 +56,6 @@ We also recommend that the layers are loaded in the same order as described in t ### Using WCS specific parameters We recommend you don't use the following `query parameters` when making requests: -- `subset` - `scalesize` - `scaleFactor` - `scaleAxes` From 3fa291baa47188eaf0e136ad3bb6d5f11de6f63d Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Sun, 22 Feb 2026 13:55:49 +0200 Subject: [PATCH 09/28] docs(dem): add download guide --- .../DEM/Guides/height_extraction.md | 54 ++++----- .../DEM/Services/download/README.md | 108 ++++++++++++++++++ 2 files changed, 136 insertions(+), 26 deletions(-) create mode 100644 docs/MapColonies/DEM/Services/download/README.md diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index 8b78fe950a..cff0c6c576 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -17,7 +17,7 @@ import TabItem from '@theme/TabItem'; The following guide will help you understand ***Step-by-step*** how to work with the Map Colonies Height Extraction service, from the [Catalog](/docs/MapColonies/DEM/Services/catalog/dem-catalog) to the WCS protocol. :::warning -This guide is for using height extraction for algorithm usage and **not for viewing purposes**. +This guide is **not** for viewing purposes. ::: :::note @@ -87,10 +87,10 @@ curl --location --request POST '/csw?token=' \ e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z - /wcs?request=GetCapabilities - /wcs - /wfs?request=GetCapabilities - /path/to/file.ext + /wcs?request=GetCapabilities + /wcs + /wfs?request=GetCapabilities + /path/to/file.ext 2 6 4 @@ -103,8 +103,8 @@ curl --location --request POST '/csw?token=' \ 40 -32768 PRODUCER - product_name_2 - product_name_2 + mimad + mimad DSM 1 region @@ -144,7 +144,7 @@ curl --location --request POST '/csw?token=' \ mc:productId - product_name_2 + mimad mc:productType @@ -176,10 +176,10 @@ curl --location --request POST '/csw?token=' \ e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z - /wcs?request=GetCapabilities - /wcs - /wfs?request=GetCapabilities - /path/to/file.ext + /wcs?request=GetCapabilities + /wcs + /wfs?request=GetCapabilities + /path/to/file.ext 2 6 4 @@ -192,8 +192,8 @@ curl --location --request POST '/csw?token=' \ 40 -32768 PRODUCER - product_name_2 - product_name_2 + mimad + mimad DSM 1 region @@ -251,10 +251,10 @@ curl --location --request POST '/csw?token=' \ d2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T09:55:51Z 2025-12-31T11:00:00Z - /wcs?request=GetCapabilities - /wcs - /wfs?request=GetCapabilities - /path/to/file.ext + /wcs?request=GetCapabilities + /wcs + /wfs?request=GetCapabilities + /path/to/file.ext 2 6 4 @@ -267,8 +267,8 @@ curl --location --request POST '/csw?token=' \ 40 -32768 PRODUCER - product_name_1 - product_name_1 + srtm30 + srtm30 DTM 1 region @@ -383,7 +383,7 @@ For the next steps you may want to examine the information returned from the `ca ### Catalog service :::info -For details about each filed read more [here](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2). +For details about each field read more [here](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2). ::: Fields you may want to filter by: @@ -659,7 +659,7 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#getcapabilities) WCS GeoTIFF - dem__mimad + dem__mimad-DTM RectifiedGridCoverage 473139.25219177455 3230615.3954787063 @@ -677,7 +677,7 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#getcapabilities) WCS GeoTIFF - dem__mimad + dem__mimad-DSM RectifiedGridCoverage 473139.25219177455 3230615.3954787063 @@ -695,7 +695,7 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#getcapabilities) WCS GeoTIFF - dem__srtm30 + dem__srtm30-DTM RectifiedGridCoverage 34.716796875 32.16796875 @@ -836,9 +836,9 @@ In the examples we show the use of specific parameter values, in order to unders ### Get whole coverage :::warning -The service output size is limited on our side in order to avoid huge requests, you may get the following error: +To maintain system stability and prevent oversized payloads, the service enforces a **maximum output size limit**. Exceeding this limit will trigger the following error: -```bash +```xml @@ -846,6 +846,8 @@ The service output size is limited on our side in order to avoid huge requests, ``` + +Most coverages will be larger than the limit so we suggest you [directly download](/docs/MapColonies/DEM/Services/download/dem-download) the source file. ::: Here we request the whole coverage in the `geotiff` format. diff --git a/docs/MapColonies/DEM/Services/download/README.md b/docs/MapColonies/DEM/Services/download/README.md new file mode 100644 index 0000000000..50af6da3f3 --- /dev/null +++ b/docs/MapColonies/DEM/Services/download/README.md @@ -0,0 +1,108 @@ +--- +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 '/csw?token=' \ +--header 'Content-Type: application/xml' \ +--data-raw ' + + + full + +' +``` + +Response: + +```xml + + + + + + 2019-12-31T11:00:00Z + 2019-12-31T11:00:00Z + Area + 0 + FLOAT32 + + {"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,0]]]} + egm96 + e2d812ba-40b7-4dfe-b3e7-869356467d3a + 2025-12-31T10:17:16Z + 2020-12-31T11:00:00Z + /wcs?request=GetCapabilities + /wcs + /wfs?request=GetCapabilities + /path/to/file.ext + 2 + 6 + 4 + 0.0004 + 40 + 1 + 5 + 3 + 0.0004 + 40 + -32768 + PRODUCER + mimad + mimad + DSM + 1 + region + sensors + 4326 + WGS84GEO + RECORD_DEM + 2020-12-31T11:00:00Z + + 0.0 0.0 + 10.0 10.0 + + + + +``` + +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 '/path/to/file.ext?token=' +``` + +:::note +Materials may be very large so we suggest you implement a fail-safe strategy and prepare for long download times. +::: From e1cb1c1baccc54aa3dfdd00304120ac314890a5f Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 23 Feb 2026 17:01:03 +0200 Subject: [PATCH 10/28] docs(dem): change download example to be for specific layer --- .../DEM/Guides/height_extraction.md | 36 ++++++++++++++++--- .../DEM/Services/catalog/profile_v1_0.md | 2 +- .../DEM/Services/catalog/profile_v2_0.md | 3 +- .../DEM/Services/download/README.md | 20 +++++++++-- 4 files changed, 51 insertions(+), 10 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index cff0c6c576..844f8fb158 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -311,13 +311,13 @@ curl --location --request POST '/csw?token=' \ - + ' ``` -Fetch all products with productType DTM and contained in a given Polygon. +Fetch all products with productType DTM and intersect with a given Polygon. :::info We can provide a polygon with as many points as we want as long as the first and last are the same point. ::: @@ -336,7 +336,7 @@ curl --location --request POST '/csw?token=' \ ows:BoundingBox - + @@ -348,7 +348,35 @@ curl --location --request POST '/csw?token=' \ - + + +' +``` + + +Fetch all products with productType DTM that intersect with a given Point. +```bash +curl --location '/csw?token=' \ +--data ' + + + full + + + + + mc:productType + DTM + + + ows:BoundingBox + + 5 5 + + + + + ' ``` diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md index d403c62f8f..1cc3271642 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md @@ -18,7 +18,7 @@ tags: :::warning New version [v2](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2) is coming! -

The following parameters are depracted an will be removed in v2

+

The following parameters are depracted an will be removed in v2:

| **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | | ----------- | ----------- | ----------- | diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md index e8a28f8fbc..9c72a65cb9 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -16,7 +16,7 @@ tags: 3. The **DEM** sub-system Catalog profile fields with information of each of them: :::info - +The following parameters were added v2: | **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | | ----------- | ----------- | ----------- | | mc:productVersion | int | the product version | @@ -39,7 +39,6 @@ supported format: **dd-mm-yyyyThh:mm:ssZ** | | 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
Element Name** | **Type** | **Description** | diff --git a/docs/MapColonies/DEM/Services/download/README.md b/docs/MapColonies/DEM/Services/download/README.md index 50af6da3f3..f4e1511c15 100644 --- a/docs/MapColonies/DEM/Services/download/README.md +++ b/docs/MapColonies/DEM/Services/download/README.md @@ -36,6 +36,20 @@ curl --location --request POST '/csw?token=' \ full + + + + + mc:productId + mimad + + + mc:productType + DSM + + + + ' ``` @@ -45,8 +59,8 @@ Response: ```xml - - + + 2019-12-31T11:00:00Z 2019-12-31T11:00:00Z @@ -81,7 +95,7 @@ Response: 1 region sensors - 4326 + srs_id WGS84GEO RECORD_DEM 2020-12-31T11:00:00Z From c26d4e1f2ae6b6a23f8942d9b7394089a1d784d1 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Thu, 4 Jun 2026 18:15:12 +0300 Subject: [PATCH 11/28] docs(dem): fix PR comments --- .../DEM/Guides/height_extraction.md | 106 ++++++++++-------- .../DEM/Guides/terrain_provider.md | 28 ++--- .../DEM/Services/catalog/profile_v1_0.md | 2 +- .../DEM/Services/catalog/profile_v2_0.md | 52 +++++---- .../DEM/Services/download/README.md | 14 +-- docs/ogc/protocols/ogc-wcs.md | 70 ++++++------ 6 files changed, 144 insertions(+), 128 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index 844f8fb158..d124c839f5 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -58,7 +58,7 @@ Filter should be based on fields in the [DEM profile](/docs/MapColonies/DEM/Serv When we want to get all of the records in the catalog we can make the following query: ```bash -curl --location --request POST '/csw?token=' \ +curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ --header 'Content-Type: application/xml' \ --data-raw ' @@ -87,10 +87,10 @@ curl --location --request POST '/csw?token=' \ e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z - /wcs?request=GetCapabilities - /wcs - /wfs?request=GetCapabilities - /path/to/file.ext + {WCS_SERVICE_URL}/wcs?request=GetCapabilities + {WCS_SERVICE_URL}/wcs + {WFS_SERVICE_URL}/wfs?request=GetCapabilities + {DOWNLOAD_SERVICE_URL}/path/to/file.ext 2 6 4 @@ -131,9 +131,9 @@ To fetch a specific layer you need the following values: Usually you make this kind of request when you know there's a specific product that you want. -When you have these values in hand you can make a `POST` request to `/csw` with the following body (replace `productId` and `productType` with real values): +When you have these values in hand you can make a `POST` request to `{DEM_CATALOG_SERVICE_URL}/csw` with the following body (replace `productId` and `productType` with real values): ```bash -curl --location --request POST '/csw?token=' \ +curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ --header 'Content-Type: application/xml' \ --data-raw ' @@ -176,10 +176,10 @@ curl --location --request POST '/csw?token=' \ e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z - /wcs?request=GetCapabilities - /wcs - /wfs?request=GetCapabilities - /path/to/file.ext + {WCS_SERVICE_URL}/wcs?request=GetCapabilities + {WCS_SERVICE_URL}/wcs + {WFS_SERVICE_URL}/wfs?request=GetCapabilities + {DOWNLOAD_SERVICE_URL}/path/to/file.ext 2 6 4 @@ -215,7 +215,7 @@ curl --location --request POST '/csw?token=' \ Fetch all products with productType DTM. ```bash -curl --location --request POST '/csw?token=' \ +curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ --header 'Content-Type: application/xml' \ --data-raw ' @@ -251,10 +251,10 @@ curl --location --request POST '/csw?token=' \ d2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T09:55:51Z 2025-12-31T11:00:00Z - /wcs?request=GetCapabilities - /wcs - /wfs?request=GetCapabilities - /path/to/file.ext + {WCS_SERVICE_URL}/wcs?request=GetCapabilities + {WCS_SERVICE_URL}/wcs + {WFS_SERVICE_URL}/wfs?request=GetCapabilities + {DOWNLOAD_SERVICE_URL}/path/to/file.ext 2 6 4 @@ -290,7 +290,7 @@ curl --location --request POST '/csw?token=' \ Fetch all products with productType DTM and contained in a given BBOX. ```bash -curl --location --request POST '/csw?token=' \ +curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ --data-raw ' @@ -319,10 +319,10 @@ curl --location --request POST '/csw?token=' \ Fetch all products with productType DTM and intersect with a given Polygon. :::info -We can provide a polygon with as many points as we want as long as the first and last are the same point. +A polygon must contain **at least 4 points**, where the first and last point are identical (a closed ring). Any number of additional points is allowed. ::: ```bash -curl --location --request POST '/csw?token=' \ +curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ --data-raw ' @@ -336,7 +336,7 @@ curl --location --request POST '/csw?token=' \ ows:BoundingBox - + @@ -356,7 +356,7 @@ curl --location --request POST '/csw?token=' \ Fetch all products with productType DTM that intersect with a given Point. ```bash -curl --location '/csw?token=' \ +curl --location '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ --data ' @@ -392,7 +392,7 @@ Notice the attributes `startPosition` and `maxRecords`, both of them help us to In case we are fetching the full profile without any filters our next request should look like this: ```bash -curl --location --request POST '/csw?token=' \ +curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ --header 'Content-Type: application/xml' \ --data-raw ' @@ -432,7 +432,7 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#getcapabilities) ::: ```bash -/wcs?request=GetCapabilities&token= +{WCS_SERVICE_URL}/wcs?request=GetCapabilities&token= ```
@@ -482,36 +482,36 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#getcapabilities) - + - + - + - + - + - + @@ -751,27 +751,32 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#describecoverage ::: For this step we need the `coverageId` of a product we selected from the previous steps. The wanted ID should look like this: `-`. + +:::info +The WCS service accepts the `coverageId` either with or without the internal workspace prefix `dem__`. Both `srtm30-DTM` and `dem__srtm30-DTM` are valid. The examples in this guide use the un-prefixed form. +::: + Lets select the product `srtm30`, this means our ID will be `srtm30-DTM` and our request will be: ```bash -curl --location --request GET '/wcs?request=DescribeCoverage&version=2.0.1&coverageId=srtm30-DTM&token=' +curl --location --request GET '{WCS_SERVICE_URL}/wcs?request=DescribeCoverage&version=2.0.1&coverageId=srtm30-DTM&token=' ```
Response ```xml - + Generated from GeoTIFF - srtm30 + srtm30-DTM 32.16796875 34.716796875 32.958984375 35.68359375 - dem__srtm30 + dem__srtm30-DTM Linear @@ -781,7 +786,7 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve - srtm30 + srtm30-DTM WCS GeoTIFF @@ -834,7 +839,7 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve ```
-You should save the `srsName`, `axisLabels` and `srsDimension` attributes for [step 3](#get-coverage). +You should save the `srsName`, `axisLabels` and `srsDimension` attributes from the `gml:Envelope` element for [step 3](#get-coverage). These describe how to compose `subset=` parameters and what CRS the coverage is natively stored in (see examples). #### Understanding the extraction service coverage metadata @@ -846,7 +851,7 @@ Now we can actually make a request for elevation data. :::danger We recommend you don't use the following `query parameters` when making requests: -- `scalesize` +- `scaleSize` - `scaleFactor` - `scaleAxes` - `outputCRS` @@ -881,15 +886,28 @@ Most coverages will be larger than the limit so we suggest you [directly downloa Here we request the whole coverage in the `geotiff` format. ```bash -curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&token=' +curl --location '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&token=' ``` ### Get by BBOX -In most cases, we know which geographical area is of significance to us. This means that we can request the specific `BBOX` as a subset of the selected `coverage`: +In most cases, we know which geographical area is of significance to us. This means that we can request the specific `BBOX` as a subset of the selected `coverage`. + +For example, given a coverage with the following extent: +```xml + + 32.16796875 34.716796875 + 32.958984375 35.68359375 + +``` + +- `srsDimension="2"` tells you the coverage has 2 axes — you'll need one `subset=` per axis. +- `axisLabels="Lat Long"` gives you the axis names to use in the request: `subset=Lat(...)&subset=Long(...)`. +- `srsName="http://www.opengis.net/def/crs/EPSG/0/4326"` is the native CRS — the coordinates inside `subset=` must be expressed in this CRS, and the corner values above bound the valid range. +This produces a `GetCoverage` request like: ```bash -curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&subset=Lat(32.35306,32.49437)&subset=Long(35.13102,35.37051)&token=' +curl --location --request GET '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&subset=Lat(32.35306,32.49437)&subset=Long(35.13102,35.37051)&token=' ``` ### Convert to other CRS @@ -899,7 +917,7 @@ In some situations we will have data in a geographical area in a different CRS t Here we are making a request to a coverage in `EPSG:4326` and requesting it in `EPSG:3857`: ```bash -curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&outputCRS=EPSG:3857&token=' +curl --location '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&outputCRS=EPSG:3857&token=' ``` ### Scale image size (pixels) @@ -908,19 +926,19 @@ curl --location '/wcs?request=GetCoverage&version=2.0.1&coverag Set the output image to be a fixed amount of pixels. ```bash -curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&scaleSize=i(256),j(256)&token=' +curl --location '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&scaleSize=i(256),j(256)&token=' ``` Set the output image size to be a certain factor from it's original size. ```bash -curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&scaleFactor=0.1&token=' +curl --location '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&scaleFactor=0.1&token=' ``` Set the output image size to be a certain factor from it's original size for each axes. ```bash -curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&scaleAxes=i(0.1),j(0.2)&token=' +curl --location '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&scaleAxes=i(0.1),j(0.2)&token=' ``` @@ -935,5 +953,5 @@ The default method is `linear`. ::: ```bash -curl --location '/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30&format=image/tiff;application=geotiff&interpolation=http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbor&token=' +curl --location '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&interpolation=http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbor&token=' ``` diff --git a/docs/MapColonies/DEM/Guides/terrain_provider.md b/docs/MapColonies/DEM/Guides/terrain_provider.md index 7e02cf51ef..af7cf0f4aa 100644 --- a/docs/MapColonies/DEM/Guides/terrain_provider.md +++ b/docs/MapColonies/DEM/Guides/terrain_provider.md @@ -48,19 +48,19 @@ Example query based on `mc:classification` profile field POST Request url: -'/csw' +'{DEM_CATALOG_SERVICE_URL}/csw' body (XML): - - + + full mc:classification - 5 + 0 mc:productType @@ -82,7 +82,7 @@ You will get GetRecords XML Response with product **metadata**. - + 999.0 5 @@ -90,11 +90,11 @@ You will get GetRecords XML Response with product **metadata**. ישראל 999.0 c2bbeeee-6081-4e69-918c-287f48ea244d - http://dem-server/15211-65da-4523-9d6f-08016ad51b0d.... + http://dem-server/15211-65da-4523-9d6f-08016ad51b0d.... DAVID 31.2603,33.4345,32.3353,34.4888 - c2bbeeee-6081-4e69-918c-287f48ea244d - מודל פריז + srtm30-DTM + srtm30-DTM DTM 1 photogrammetric @@ -160,8 +160,8 @@ In the Response, look for desired data according to profile definition. In the Response, look for ```xml title="Extract link for terrain provider" - - http://terrain-server.com/terrains/srtm100 + + {TERRAIN_URL}/terrains/srtm30 ``` @@ -189,14 +189,14 @@ Now, after you got all product metadata that you need by querying our Catalog, l // **Optional** add to Cesium terrain provider in order to clamp 3d models to the ground or investigate terrain viewer.terrainProvider = new Cesium.TerrainProvider({ url: new Cesium.Resource({ - url: "", + url: "{TERRAIN_URL}", queryParameters: { - "token": "", + "token": "{token}", }, }), }); ... ``` -Replace `` with the URL link that you got from **Step 2.1 (optional)**. +Replace `{TERRAIN_URL}` with the URL link that you got from **Step 2.1 (optional)**. -Replace `` with the token you have. +Replace `{token}` with the token you have. diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md index 1cc3271642..5f8bac182f 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md @@ -18,7 +18,7 @@ tags: :::warning New version [v2](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2) is coming! -

The following parameters are depracted an will be removed in v2:

+

The following parameters are depracted and will be removed in v2:

| **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | | ----------- | ----------- | ----------- | diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md index 9c72a65cb9..c9009ea1dd 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -17,28 +17,28 @@ tags: :::info The following parameters were added v2: + | **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | | ----------- | ----------- | ----------- | | mc:productVersion | int | the product version | | mc:srsId | int | reference System ID (EPSG),
ex: 4326 / 3857 | -| mc:dataType | enum | **Valid Values**:
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:dataType | enum | **Valid Values**:
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: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
Element Name** | **Type** | **Description** | @@ -46,38 +46,36 @@ supported format: **dd-mm-yyyyThh:mm:ssZ** | | 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**:
DTM / DSM | +| mc:productType | enum | **Valid Values**:
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),
ex: 4326 / 3857 | +| mc:srsId | int | reference System ID (EPSG),
ex: 4326 / 3857 | | mc:srsName | text | name of reference system | -| mc:dataType | enum | **Valid Values**:
FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 | +| mc:dataType | enum | **Valid Values**:
FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 | | mc:sensors | text | list of sensors used as a source for the product
comma separated list | | mc:region | text | sector / countries
comma separated list | | mc:insertDateUTC | date | the date when the product was added to catalog
supported format: **dd-mm-yyyyThh:mm:ssZ** | | mc:ingestionDateUTC | date | when last was the **data** or **parts** updated
supported format: **dd-mm-yyyyThh:mm:ssZ** | | mc:updateDateUTC | date | when last was the MD updated
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: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: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 | -| mc:classification | enum | product classification / confidentiality
Classification values | +| mc:classification | text | product classification / confidentiality
Classification values should be numbers between 0 and 100 | | mc:producerName | text | manufacturer / organization that produced / supplied the product | -| mc:noDataValue | enum | **Valid Values**:
-32768 | -| mc:type | enum | type of the catalog
**Valid values**: RECORD_RASTER / RECORD_3D / RECORD_DEM
default: ***RECORD_DEM***| +| mc:noDataValue | int | **Valid Values**:
-32768 | +| mc:type | enum | type of the catalog
**Value**: RECORD_DEM | | mc:keywords | text | list of key words relevant for product | diff --git a/docs/MapColonies/DEM/Services/download/README.md b/docs/MapColonies/DEM/Services/download/README.md index f4e1511c15..09a498ab2d 100644 --- a/docs/MapColonies/DEM/Services/download/README.md +++ b/docs/MapColonies/DEM/Services/download/README.md @@ -30,7 +30,7 @@ Filter should be based on fields in the [DEM profile](/docs/MapColonies/DEM/Serv Request example: ```bash -curl --location --request POST '/csw?token=' \ +curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ --header 'Content-Type: application/xml' \ --data-raw ' @@ -73,10 +73,10 @@ Response: e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z - /wcs?request=GetCapabilities - /wcs - /wfs?request=GetCapabilities - /path/to/file.ext + {WCS_SERVICE_URL}/wcs?request=GetCapabilities + {WCS_SERVICE_URL}/wcs + {WFS_SERVICE_URL}/wfs?request=GetCapabilities + {DOWNLOAD_SERVICE_URL}/path/to/file.ext 2 6 4 @@ -108,13 +108,13 @@ Response:
``` -We want to extract the value of the `links` tag with the `scheme=Download` attribue for the next step. +We want to extract the value of the `links` tag with the `scheme=Download` attribute for the next step. ## Download the source material (Step 2) Now we can make a request for the material: ```bash -curl --location '/path/to/file.ext?token=' +curl --location '{DOWNLOAD_SERVICE_URL}/path/to/file.ext?token=' ``` :::note diff --git a/docs/ogc/protocols/ogc-wcs.md b/docs/ogc/protocols/ogc-wcs.md index 452b82ce10..a581322cd0 100644 --- a/docs/ogc/protocols/ogc-wcs.md +++ b/docs/ogc/protocols/ogc-wcs.md @@ -28,7 +28,7 @@ A WCS server responding to a **GetCapabilities** request returns metadata about ### Version 1.0.0 ``` -/ows? +{WCS_SERVICE_URL}/wcs? service=WCS& version=1.0.0& request=GetCapabilities @@ -39,7 +39,7 @@ request=GetCapabilities ``` xml title="Response Example" - + WCS @@ -53,14 +53,14 @@ request=GetCapabilities - + - + @@ -69,14 +69,14 @@ request=GetCapabilities - + - + @@ -85,14 +85,14 @@ request=GetCapabilities - + - + @@ -119,14 +119,14 @@ request=GetCapabilities Generated from GeoTIFF - dem:srtm30 - srtm30 + dem:srtm30-DTM + srtm30-DTM 34.716796875 32.16796875 35.68359375 32.958984375 - srtm30 + srtm30-DTM WCS GeoTIFF @@ -139,7 +139,7 @@ request=GetCapabilities ### Version 2.0.1 ``` -/ows? +{WCS_SERVICE_URL}/wcs? service=WCS& version=2.0.1& request=GetCapabilities @@ -192,36 +192,36 @@ request=GetCapabilities - + - + - + - + - + - + @@ -427,13 +427,13 @@ request=GetCapabilities - srtm30 + srtm30-DTM - srtm30 + srtm30-DTM WCS GeoTIFF - dem__srtm30 + dem__srtm30-DTM RectifiedGridCoverage 34.716796875 32.16796875 @@ -471,7 +471,7 @@ The purpose of the **DescribeCoverage** request is to additional information abo ### Version 1.0.0 ``` -/ows? +{WCS_SERVICE_URL}/wcs? SERVICE=WCS& VERSION=1.0.0& REQUEST=DescribeCoverage& @@ -482,7 +482,7 @@ COVERAGE=n30_e034_1arc_v3 Response example ``` xml - + Generated from GeoTIFF dem:n30_e034_1arc_v3 @@ -571,24 +571,24 @@ COVERAGE=n30_e034_1arc_v3 ### Version 2.0.1 ```bash -curl --location --request GET '/wcs?request=DescribeCoverage&version=2.0.1&coverageId=srtm30&token=' +curl --location --request GET '{WCS_SERVICE_URL}/wcs?request=DescribeCoverage&version=2.0.1&coverageId=srtm30-DTM&token=' ```
Response ```xml - - + + Generated from GeoTIFF - srtm30 + srtm30-DTM 32.16796875 34.716796875 32.958984375 35.68359375 - dem__srtm30 + dem__srtm30-DTM Linear @@ -598,14 +598,14 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve - srtm30 + srtm30-DTM WCS GeoTIFF - + 0 0 @@ -614,7 +614,7 @@ curl --location --request GET '/wcs?request=DescribeCoverage&ve i j - + 32.95881271362305 34.71696853637695 @@ -668,10 +668,10 @@ Detailed explanation about params might be found [here](https://www.mapserver.or ### Version 1.0.0 ``` -/wcs? +{WCS_SERVICE_URL}/wcs? request=GetCoverage& version=1.0.0& -coverage=srtm30& +coverage=srtm30-DTM& format=image/tiff;application=geotiff& crs=EPSG%3A4326& bbox=35.13102,32.35306,35.37051,32.49437& @@ -682,10 +682,10 @@ height=1000 ### Version 2.0.1 ``` -/wcs? +{WCS_SERVICE_URL}/wcs? request=GetCoverage& version=2.0.1& -coverageId=srtm30& +coverageId=srtm30-DTM& format=image/tiff;application=geotiff& subset=Lat(32.35306,32.49437)& subset=Long(35.13102,35.37051) From a32650b1e12f69043a9302e33d21f66478d5c56b Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Thu, 4 Jun 2026 18:40:10 +0300 Subject: [PATCH 12/28] docs(dem): add new catalog fields --- docs/MapColonies/DEM/Services/catalog/profile_v2_0.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md index c9009ea1dd..e80b5b9714 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -35,9 +35,11 @@ The following parameters were added v2: | 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 | +| mc:verticalType | enum | **Valid Values**: Orthometric, Ellipsoidal | +| mc:verticalSrsId | text | reference System ID (EPSG),
ex: 4326 / 3857 | +| mc:verticalSrsName | text | name of reference system | ::: @@ -51,7 +53,7 @@ The following parameters were added v2: | 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),
ex: 4326 / 3857 | +| mc:srsId | text | reference System ID (EPSG),
ex: 4326 / 3857 | | mc:srsName | text | name of reference system | | mc:dataType | enum | **Valid Values**:
FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 | | mc:sensors | text | list of sensors used as a source for the product
comma separated list | @@ -71,7 +73,6 @@ The following parameters were added v2: | 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 | | mc:classification | text | product classification / confidentiality
Classification values should be numbers between 0 and 100 | @@ -79,3 +80,6 @@ The following parameters were added v2: | mc:noDataValue | int | **Valid Values**:
-32768 | | mc:type | enum | type of the catalog
**Value**: RECORD_DEM | | mc:keywords | text | list of key words relevant for product | +| mc:verticalType | enum | **Valid Values**: Orthometric, Ellipsoidal | +| mc:verticalSrsId | text | reference System ID (EPSG),
ex: 4326 / 3857 | +| mc:verticalSrsName | text | name of reference system | From e53a8be19fd400aac4b6dd26637a02ecb75c43dd Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Thu, 4 Jun 2026 18:58:35 +0300 Subject: [PATCH 13/28] docs(dem): add new catalog fields to other documents --- docs/MapColonies/DEM/Guides/height_extraction.md | 16 ++++++++++++---- docs/MapColonies/DEM/Services/download/README.md | 4 +++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index d124c839f5..e26e7617e6 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -83,7 +83,9 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ FLOAT32 {"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,0]]]} - egm96 + Orthometric + 5773 + EGM96 e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z @@ -172,7 +174,9 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ FLOAT32 {"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,0]]]} - egm96 + Orthometric + 5773 + EGM96 e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z @@ -247,7 +251,9 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ 0 FLOAT32 {"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,0]]]} - egm96 + Orthometric + 5773 + EGM96 d2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T09:55:51Z 2025-12-31T11:00:00Z @@ -421,7 +427,9 @@ Fields you may want to filter by: | ...Accuracy... | | | ...Resolution... | Mix and Max resolution | | productType | Specific product type (for example: only DTM) | -| srsId / srsName | Wanted SRS | +| srsId / srsName | Wanted horizontal SRS | +| verticalSrsId / verticalSrsName | Wanted vertical SRS | +| verticalType | Orthometric / Ellipsoidal heights | | ingestionDateUTC | Layers that were ingested before / after a given time | | updateDateUTC | Layers that were updated before / after a given time | diff --git a/docs/MapColonies/DEM/Services/download/README.md b/docs/MapColonies/DEM/Services/download/README.md index 09a498ab2d..7233fb08a9 100644 --- a/docs/MapColonies/DEM/Services/download/README.md +++ b/docs/MapColonies/DEM/Services/download/README.md @@ -69,7 +69,9 @@ Response: FLOAT32 {"type":"Polygon","coordinates":[[[0,0],[10,0],[10,10],[0,0]]]} - egm96 + Orthometric + 5773 + EGM96 e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z From 953256d5672beec2c0124edab742f34dc3764f48 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 6 Jul 2026 16:15:22 +0300 Subject: [PATCH 14/28] docs(dem): fix terrain provider doc --- .../DEM/Guides/terrain_provider.md | 153 ++++++++---------- 1 file changed, 66 insertions(+), 87 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/terrain_provider.md b/docs/MapColonies/DEM/Guides/terrain_provider.md index af7cf0f4aa..e0e16d38e9 100644 --- a/docs/MapColonies/DEM/Guides/terrain_provider.md +++ b/docs/MapColonies/DEM/Guides/terrain_provider.md @@ -39,35 +39,49 @@ 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/dem-catalog-profile-v1) +:::warning + +Currently the terrain provider is only available through the `3D catalog`. + +::: + +:::info + +**Authentication must be integrated in order to communicate with Catalog services.**
+**See the principles [here](/docs/MapColonies/authentication)** + +::: + +Query **3D CSW catalog** service to find item(s) according to desired filter [examples are here](/docs/ogc/protocols/ogc-csw/ogc-csw-examples). -Example query based on `mc:classification` profile field -```xml title="GetRecords Request" +Filter should be based on [3D profile](/docs/MapColonies/3D/services/catalog/catalog-profile-v2). + +```xml title="GetRecords Request For Terrain" POST Request url: -'{DEM_CATALOG_SERVICE_URL}/csw' +'<3D_CATALOG_SERVICE_URL>/csw' body (XML): - - + + full - - - - mc:classification - 0 - - - mc:productType - DTM - - - + + + + + mc:productType + + + + QuantizedMeshDTMBest + + + + @@ -80,100 +94,65 @@ You will get GetRecords XML Response with product **metadata**. ```xml title="Search Results Example" - + - - - 999.0 + + + 4.0 5 - {"type":"Polygon","coordinates":[[[31.2603,33.4345],[31.2603,34.4888],[32.3353,34.4888],[32.3353,33.4345],[31.2603,33.4345]]]} - ישראל - 999.0 - c2bbeeee-6081-4e69-918c-287f48ea244d - http://dem-server/15211-65da-4523-9d6f-08016ad51b0d.... - DAVID - 31.2603,33.4345,32.3353,34.4888 - srtm30-DTM - srtm30-DTM - DTM - 1 - photogrammetric - P-30 - 1 - צפון - sensor1 - 2022-06-15T10:39:00Z - 2022-06-15T10:39:00Z - 4567 - WGS24GEO - RECORD_DEM - - 33.4345 31.2603 - 34.4888 32.3353 - - - - 999.0 - 5 - 2022-06-15 - srtm100 - {"type":"Polygon","coordinates":[[[35.2670012825,32.5856881598],[35.2670012825,32.6300363309],[35.3105702702,32.6300363309],[35.3105702702,32.5856881598],[35.2670012825,32.5856881598]]]} + 2022-10-24 + {"type":"Polygon","coordinates":[[[34.98,32.8],[35.1,32.8],[35.1,32.7],[34.98,32.7],[34.98,32.8]]]} North 999.0 - 11111111-1111-1111-1111-111111111111 - http://terrain-server.com/terrains/srtm100 - MIKI + 33333333-3333-3333-3333-333333333333 + 2022-10-24 + https://tiles.mapcolonies.net/api/dem/v1/terrains/srtm100 + producer 35.2670012825,32.5856881598,35.3105702702,32.6300363309 - 11111111-1111-1111-1111-111111111111 + 33333333-3333-3333-3333-333333333333 srtm100 - DTM + + PUBLISHED + QuantizedMeshDTMBest 1 - 1 - Israel + region UNDEFINED - 2022-06-15 - 2022-06-15 + 2022-10-24 + 2022-10-24 4326 WGS84GEO - RECORD_DEM + RECORD_3D + 2022-10-25T16:48:17Z - 32.5856881598 35.2670012825 - 32.6300363309 35.3105702702 + 32.7 34.98 + 32.8 35.1 - + ```
-:::info -**Authentication must be integrated in order to communicate with Catalog services.**
-**See the principles [here](/docs/MapColonies/authentication)** -::: - ## Get DEM metadata (Step 2) In the Response, look for desired data according to profile definition. -## Get terrain provider URI (Step 2.1, optional) -In the Response, look for +## Get terrain provider URI (Step 2.1) {#step-2.1} +In the Response, look for a `link` tag with `schem="TERRAIN_QMESH"`, this will be the link you need to get the data. + +For our case: ```xml title="Extract link for terrain provider" - - {TERRAIN_URL}/terrains/srtm30 + + {TERRAIN_URL}/terrains/srtm100 ``` -:::info -**You should extract the `` element value as TERRAIN_URL variable, which is a terrain provider consumption URL for the following steps.** -::: - -## Using catalog data (Step 3) -In the future, you'll be able to export catalog data( elevation raw data in TIFF format ) after filtering. +Save the value as `TERRAIN_URL` for the next steps. -## Construct Client (Step 3.1) -Now, after you got all product metadata that you need by querying our Catalog, lets actually use it in your client application. +## Construct Client (Step 3) +Now let's see how we can load the provider in our application. :::warning **Below examples are based on `Pseudo code`, you will have to adapt it in your own application to make it work.** @@ -197,6 +176,6 @@ viewer.terrainProvider = new Cesium.TerrainProvider({ }); ... ``` -Replace `{TERRAIN_URL}` with the URL link that you got from **Step 2.1 (optional)**. +Replace `{TERRAIN_URL}` with the URL link that you got from **[Step 2.1](#step-2.1)**. -Replace `{token}` with the token you have. +Replace `{token}` with the token we provided you. From 2432a2594a811fa4a623db1aa12f390e631c6bd3 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 6 Jul 2026 16:23:56 +0300 Subject: [PATCH 15/28] docs(3d): reference DEM terrain provider guide --- .../3D/Guides/3D_getting_started.md | 95 +------------------ 1 file changed, 2 insertions(+), 93 deletions(-) diff --git a/docs/MapColonies/3D/Guides/3D_getting_started.md b/docs/MapColonies/3D/Guides/3D_getting_started.md index 8ac31b2e77..5a8b012afb 100644 --- a/docs/MapColonies/3D/Guides/3D_getting_started.md +++ b/docs/MapColonies/3D/Guides/3D_getting_started.md @@ -42,7 +42,7 @@ flowchart LR Query **3D CSW catalog** service to find item(s) according to desired filter [example are here](/docs/ogc/protocols/ogc-csw/ogc-csw-examples) -Filter should be based on [3D profile](/docs/MapColonies/3D/services/catalog/catalog-profile-v2) +Filter should be based on [3D profile](/docs/MapColonies/3D/services/catalog/catalog-profile-v2). :::warning Pay attention to set the following parameter 'outputSchema="http://schema.mapcolonies.com/3d"' in order to get full catalog data @@ -196,98 +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 Terrain Provider Guide](/docs/MapColonies/DEM/Guides/terrain-provider) - -To query the "Best" terrain, use the following: -```xml title="GetRecords Request For Terrain" -POST Request - -url: -'<3D_CATALOG_SERVICE_URL>/csw' - -body (XML): - - - - full - - - - - - mc:productType - - - - QuantizedMeshDTMBest - - - - - - - -``` - -You will get GetRecords XML Response with product **metadata**. - -
- Response example - -```xml title="Search Results Example" - - - - - - 4.0 - 5 - 2022-10-24 - {"type":"Polygon","coordinates":[[[34.98,32.8],[35.1,32.8],[35.1,32.7],[34.98,32.7],[34.98,32.8]]]} - North - 999.0 - 33333333-3333-3333-3333-333333333333 - 2022-10-24 - https://tiles.mapcolonies.net/api/dem/v1/terrains/srtm100 - producer - 35.2670012825,32.5856881598,35.3105702702,32.6300363309 - 33333333-3333-3333-3333-333333333333 - srtm100 - - PUBLISHED - QuantizedMeshDTMBest - 1 - - 1 - region - UNDEFINED - 2022-10-24 - 2022-10-24 - 4326 - WGS84GEO - RECORD_3D - 2022-10-25T16:48:17Z - - 32.7 34.98 - 32.8 35.1 - - - - -``` -
- - -```xml title="Extract link for terrain provider" - - http://tiles.com/terrains/srtm100/layer.json - -``` - - -:::info -**You need to save `` element value as TERRAIN_URL, which is a terrain provider consumption URL.** -::: +Read more in the [DEM Terrain Provider Guide](/docs/MapColonies/DEM/Guides/terrain-provider). ## Step 3 ### Construct Client side Layer From 65ea3ae2b77d640402dd4fdc707e05457f5cce94 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 6 Jul 2026 16:24:37 +0300 Subject: [PATCH 16/28] docs(dem): fix noDataValue in catalog v2 to be double --- docs/MapColonies/DEM/Services/catalog/profile_v2_0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md index e80b5b9714..868d570e47 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -77,7 +77,7 @@ The following parameters were added v2: | mc:links | text | Available links for different services available for the current product | | mc:classification | text | product classification / confidentiality
Classification values should be numbers between 0 and 100 | | mc:producerName | text | manufacturer / organization that produced / supplied the product | -| mc:noDataValue | int | **Valid Values**:
-32768 | +| mc:noDataValue | double | **Valid Values**:
-32768 | | mc:type | enum | type of the catalog
**Value**: RECORD_DEM | | mc:keywords | text | list of key words relevant for product | | mc:verticalType | enum | **Valid Values**: Orthometric, Ellipsoidal | From e237b4faf59bddd8f1e5d2f1c0aa44961633f808 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 6 Jul 2026 16:26:03 +0300 Subject: [PATCH 17/28] docs(dem): update height extraction warning --- docs/MapColonies/DEM/Guides/height_extraction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index e26e7617e6..247fad41cd 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -17,7 +17,7 @@ import TabItem from '@theme/TabItem'; The following guide will help you understand ***Step-by-step*** how to work with the Map Colonies Height Extraction service, from the [Catalog](/docs/MapColonies/DEM/Services/catalog/dem-catalog) to the WCS protocol. :::warning -This guide is **not** for viewing purposes. +This guide is for algorithmic purposes. ::: :::note From e87c17f4bf9c29515281a61fc1dac57639938641 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 6 Jul 2026 17:14:52 +0300 Subject: [PATCH 18/28] docs(dem): update terrain provider guide --- docs/MapColonies/DEM/Guides/terrain_provider.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/terrain_provider.md b/docs/MapColonies/DEM/Guides/terrain_provider.md index e0e16d38e9..88a52a0466 100644 --- a/docs/MapColonies/DEM/Guides/terrain_provider.md +++ b/docs/MapColonies/DEM/Guides/terrain_provider.md @@ -12,7 +12,7 @@ tags: --- ## Step by step guide -The following guide will help you understand, ***Step-by-step*** the best practices of how to work with the Map Colonies **DEM** Catalog and how to consume mapping products in a ***dynamic way*** (materials might be changed or added) +The following guide will help you understand, ***Step-by-step*** how to add a `terrain provider` to your application. ## Flow diagram ```mermaid @@ -135,7 +135,7 @@ You will get GetRecords XML Response with product **metadata**. ```
-## Get DEM metadata (Step 2) +## Get terrain metadata (Step 2) In the Response, look for desired data according to profile definition. ## Get terrain provider URI (Step 2.1) {#step-2.1} @@ -165,7 +165,7 @@ Now let's see how we can load the provider in our application. ::: ```javascript -// **Optional** add to Cesium terrain provider in order to clamp 3d models to the ground or investigate terrain +// **Optional** add to Cesium terrain provider in order to clamp 3d models to the ground or investigate terrain viewer.terrainProvider = new Cesium.TerrainProvider({ url: new Cesium.Resource({ url: "{TERRAIN_URL}", From 4be5b13ad70d7ffa4277990af621d0be150fad84 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 6 Jul 2026 17:15:31 +0300 Subject: [PATCH 19/28] docs(dem): move warning placing in height extraction --- docs/MapColonies/DEM/Guides/height_extraction.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index 247fad41cd..159e544b85 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -20,14 +20,14 @@ The following guide will help you understand ***Step-by-step*** how to work with This guide is for algorithmic purposes. ::: -:::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). ::: +:::note +Please note the [obligations](/docs/MapColonies/obligations) you need to follow while using our services. +::: + ## Flow diagram ```mermaid flowchart LR From 7c074b4268f33c32d022b9df0691ef81ceb06167 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 6 Jul 2026 17:16:16 +0300 Subject: [PATCH 20/28] chore: remove space at EOL --- docs/MapColonies/Raster/services/catalog/profile_v1_0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MapColonies/Raster/services/catalog/profile_v1_0.md b/docs/MapColonies/Raster/services/catalog/profile_v1_0.md index acc24b4cb6..d9aeec28f8 100644 --- a/docs/MapColonies/Raster/services/catalog/profile_v1_0.md +++ b/docs/MapColonies/Raster/services/catalog/profile_v1_0.md @@ -17,7 +17,7 @@ tags: :::warning New version [v2](/docs/MapColonies/Raster/services/catalog/raster-catalog-profile-v2) is coming! -

The following parameters are deprecated and will be removed in v2

+

The following parameters are deprecated and will be removed in v2

| **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | | ----------- | ----------- | ----------- | From d9ac59b532825df654cb01c7c0e3edf4da397b92 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 6 Jul 2026 17:17:51 +0300 Subject: [PATCH 21/28] docs(dem): fix verticalSrsId row in catalog v2 --- docs/MapColonies/DEM/Services/catalog/profile_v2_0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md index 868d570e47..de481a1752 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -81,5 +81,5 @@ The following parameters were added v2: | mc:type | enum | type of the catalog
**Value**: RECORD_DEM | | mc:keywords | text | list of key words relevant for product | | mc:verticalType | enum | **Valid Values**: Orthometric, Ellipsoidal | -| mc:verticalSrsId | text | reference System ID (EPSG),
ex: 4326 / 3857 | +| mc:verticalSrsId | text | reference system ID (EPSG),
ex: 5773 / 3855 / 4979 | | mc:verticalSrsName | text | name of reference system | From c1b8bba145be570c185b5bee872f410d044b9020 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 6 Jul 2026 17:26:20 +0300 Subject: [PATCH 22/28] chore: replace product name --- .../DEM/Guides/height_extraction.md | 38 +++++++++---------- .../DEM/Services/download/README.md | 14 +++---- docs/ogc/protocols/ogc-wcs.md | 18 ++++----- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index 159e544b85..a643f5332e 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -89,10 +89,10 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z - {WCS_SERVICE_URL}/wcs?request=GetCapabilities - {WCS_SERVICE_URL}/wcs - {WFS_SERVICE_URL}/wfs?request=GetCapabilities - {DOWNLOAD_SERVICE_URL}/path/to/file.ext + {WCS_SERVICE_URL}/wcs?request=GetCapabilities + {WCS_SERVICE_URL}/wcs + {WFS_SERVICE_URL}/wfs?request=GetCapabilities + {DOWNLOAD_SERVICE_URL}/path/to/file.ext 2 6 4 @@ -105,8 +105,8 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ 40 -32768 PRODUCER - mimad - mimad + product + product DSM 1 region @@ -146,7 +146,7 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ mc:productId - mimad + product mc:productType @@ -180,10 +180,10 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z - {WCS_SERVICE_URL}/wcs?request=GetCapabilities - {WCS_SERVICE_URL}/wcs - {WFS_SERVICE_URL}/wfs?request=GetCapabilities - {DOWNLOAD_SERVICE_URL}/path/to/file.ext + {WCS_SERVICE_URL}/wcs?request=GetCapabilities + {WCS_SERVICE_URL}/wcs + {WFS_SERVICE_URL}/wfs?request=GetCapabilities + {DOWNLOAD_SERVICE_URL}/path/to/file.ext 2 6 4 @@ -196,8 +196,8 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ 40 -32768 PRODUCER - mimad - mimad + product + product DSM 1 region @@ -689,13 +689,13 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#getcapabilities) - mimad + product - mimad + product WCS GeoTIFF - dem__mimad-DTM + dem__product-DTM RectifiedGridCoverage 473139.25219177455 3230615.3954787063 @@ -707,13 +707,13 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#getcapabilities) - mimad + product - mimad + product WCS GeoTIFF - dem__mimad-DSM + dem__product-DSM RectifiedGridCoverage 473139.25219177455 3230615.3954787063 diff --git a/docs/MapColonies/DEM/Services/download/README.md b/docs/MapColonies/DEM/Services/download/README.md index 7233fb08a9..8fbd6fc8d1 100644 --- a/docs/MapColonies/DEM/Services/download/README.md +++ b/docs/MapColonies/DEM/Services/download/README.md @@ -41,7 +41,7 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ mc:productId - mimad + product mc:productType @@ -75,10 +75,10 @@ Response: e2d812ba-40b7-4dfe-b3e7-869356467d3a 2025-12-31T10:17:16Z 2020-12-31T11:00:00Z - {WCS_SERVICE_URL}/wcs?request=GetCapabilities - {WCS_SERVICE_URL}/wcs - {WFS_SERVICE_URL}/wfs?request=GetCapabilities - {DOWNLOAD_SERVICE_URL}/path/to/file.ext + {WCS_SERVICE_URL}/wcs?request=GetCapabilities + {WCS_SERVICE_URL}/wcs + {WFS_SERVICE_URL}/wfs?request=GetCapabilities + {DOWNLOAD_SERVICE_URL}/path/to/file.ext 2 6 4 @@ -91,8 +91,8 @@ Response: 40 -32768 PRODUCER - mimad - mimad + product + product DSM 1 region diff --git a/docs/ogc/protocols/ogc-wcs.md b/docs/ogc/protocols/ogc-wcs.md index a581322cd0..76d270b1a7 100644 --- a/docs/ogc/protocols/ogc-wcs.md +++ b/docs/ogc/protocols/ogc-wcs.md @@ -105,14 +105,14 @@ request=GetCapabilities Generated from GeoTIFF - dem:mimad - mimad + dem:product + product 32.70697763422942 29.149161895068794 37.071150249328454 34.62339561526329 - mimad + product WCS GeoTIFF @@ -391,13 +391,13 @@ request=GetCapabilities - mimad + product - mimad + product WCS GeoTIFF - dem__mimad + dem__product RectifiedGridCoverage 473139.25219177455 3230615.3954787063 @@ -409,13 +409,13 @@ request=GetCapabilities - mimad + product - mimad + product WCS GeoTIFF - dem__mimad + dem__product RectifiedGridCoverage 473139.25219177455 3230615.3954787063 From d014d912896829a7f32743877de5820974ddf618 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Tue, 7 Jul 2026 13:28:07 +0300 Subject: [PATCH 23/28] docs(dem): change warning in height exrtaction --- docs/MapColonies/DEM/Guides/height_extraction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index a643f5332e..4e18a5e3a1 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -17,7 +17,7 @@ import TabItem from '@theme/TabItem'; The following guide will help you understand ***Step-by-step*** how to work with the Map Colonies Height Extraction service, from the [Catalog](/docs/MapColonies/DEM/Services/catalog/dem-catalog) to the WCS protocol. :::warning -This guide is for algorithmic purposes. +This guide is intended for algorithmic design, not visual presentation. ::: :::warning From 0106d3d7278c3d889954bdc66ad575aeecb3ee8e Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Tue, 7 Jul 2026 13:32:59 +0300 Subject: [PATCH 24/28] fix: broken merge --- .../3D/Guides/3D_getting_started.md | 96 ------------------- 1 file changed, 96 deletions(-) diff --git a/docs/MapColonies/3D/Guides/3D_getting_started.md b/docs/MapColonies/3D/Guides/3D_getting_started.md index 0350afda14..5f81b4df57 100644 --- a/docs/MapColonies/3D/Guides/3D_getting_started.md +++ b/docs/MapColonies/3D/Guides/3D_getting_started.md @@ -197,103 +197,7 @@ In the Response, look for ::: ## Get terrain provider URI (Step 2.1, optional) -<<<<<<< new-dem Read more in the [DEM Terrain Provider Guide](/docs/MapColonies/DEM/Guides/terrain-provider). -======= -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) - -To query the "Best" terrain, use the following: -```xml title="GetRecords Request For Terrain" -POST Request - -url: -'<3D_CATALOG_SERVICE_URL>/csw' - -body (XML): - - - - full - - - - - - mc:productType - - - - QuantizedMeshDTMBest - - - - - - - -``` - -You will get GetRecords XML Response with product **metadata**. - -
- Response example - -```xml title="Search Results Example" - - - - - - 4.0 - 5 - 2022-10-24 - {"type":"Polygon","coordinates":[[[34.98,32.8],[35.1,32.8],[35.1,32.7],[34.98,32.7],[34.98,32.8]]]} - North - 999.0 - 33333333-3333-3333-3333-333333333333 - 2022-10-24 - https://tiles.mapcolonies.net/api/dem/v1/terrains/srtm100 - producer - 35.2670012825,32.5856881598,35.3105702702,32.6300363309 - 33333333-3333-3333-3333-333333333333 - srtm100 - - PUBLISHED - QuantizedMeshDTMBest - Test subtype - 1 - - 1 - region - UNDEFINED - 2022-10-24 - 2022-10-24 - 4326 - WGS84GEO - RECORD_3D - 2022-10-25T16:48:17Z - - 32.7 34.98 - 32.8 35.1 - - - - -``` -
- - -```xml title="Extract link for terrain provider" - - http://tiles.com/terrains/srtm100/layer.json - -``` - - -:::info -**You need to save `` element value as TERRAIN_URL, which is a terrain provider consumption URL.** -::: ->>>>>>> master ## Step 3 ### Construct Client side Layer From 8c26748e4e423ae2ea6bd556881a40ffc2740524 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Sun, 12 Jul 2026 17:08:36 +0300 Subject: [PATCH 25/28] docs(dem): fix some information in v2 catalog profile --- docs/MapColonies/DEM/Services/catalog/profile_v2_0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md index de481a1752..602c9cb8ed 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -21,7 +21,7 @@ The following parameters were added v2: | **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | | ----------- | ----------- | ----------- | | mc:productVersion | int | the product version | -| mc:srsId | int | reference System ID (EPSG),
ex: 4326 / 3857 | +| mc:srsId | int | reference system ID (EPSG),
ex: 4326 / 3857 | | mc:dataType | enum | **Valid Values**:
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** | @@ -38,7 +38,7 @@ The following parameters were added v2: | mc:areaOrPoint | enum | Describes if pixel is “Area” or “Point” | | mc:links | text | Available links for different services available for the current product | | mc:verticalType | enum | **Valid Values**: Orthometric, Ellipsoidal | -| mc:verticalSrsId | text | reference System ID (EPSG),
ex: 4326 / 3857 | +| mc:verticalSrsId | text | reference system ID (EPSG),
ex: 5773 / 3855 / 4979 | | mc:verticalSrsName | text | name of reference system | ::: @@ -53,7 +53,7 @@ The following parameters were added v2: | 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 | text | reference System ID (EPSG),
ex: 4326 / 3857 | +| mc:srsId | text | reference system ID (EPSG),
ex: 4326 / 3857 | | mc:srsName | text | name of reference system | | mc:dataType | enum | **Valid Values**:
FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 | | mc:sensors | text | list of sensors used as a source for the product
comma separated list | From 6427a4db3c3d0695f0305237e457a262004ce9e1 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 20 Jul 2026 13:43:05 +0300 Subject: [PATCH 26/28] docs(dem): mark field diffs in v1/v2 catalog profile tables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge dup added/removed field blocks into main tables. v2 gets a "Changes from last version" column (🆕), v1 gets "Changes in next version" (🗑️) — single source of truth per field instead of two tables listing the same rows. Co-Authored-By: Claude Sonnet 5 --- .../DEM/Services/catalog/profile_v1_0.md | 89 ++++++--------- .../DEM/Services/catalog/profile_v2_0.md | 106 +++++++----------- 2 files changed, 76 insertions(+), 119 deletions(-) diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md index 5f8bac182f..29ea865afd 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v1_0.md @@ -18,59 +18,40 @@ tags: :::warning New version [v2](/docs/MapColonies/DEM/Services/catalog/dem-catalog-profile-v2) is coming! -

The following parameters are depracted and will be removed in v2:

- -| **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | -| ----------- | ----------- | ----------- | -| mc:imagingTimeBeginUTC | date | start imaging date of raw product
supported format: **dd/mm/yyyy (not later than "End date")** | -| mc:imagingTimeEndUTC | date | end imaging date of raw product
supported format: **dd/mm/yyyy (not earlier than "Begin date")** | -| mc:resolutionDeg | double | the product resolution in degrees
double unsigned valid: **0.00000009 to 0.072** | -| mc:resolutionMeter | double | the product resolution in meters
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")
valid: **-500 to 9000** | -| mc:heightRangeTo | double | **maximum** height range in Meters (not less than "heightRangeFrom")
valid: **-500 to 9000** | -| mc:SRS | int | reference System ID (EPSG),
ex: 4326 / 3857 | -| mc:verticalDatum | enum | **Valid Values**:
WGS 1984 / WGS 1972 / Pulkovo 1942 / MSL Height / Israel | -| mc:units | enum | **Valid Values**:
METER / DD / DMS / ARC_SECONDS / UNKNOWN | -| mc:geographicArea | text | geographic area cities | -| mc:undulationModel | enum | **Valid Values**:
MSL EGM96 / MSL EGM2008 / MSL DMA10 / ILUM | -| mc:productBBox | text | the bounding box of the product minX,minY,maxX,maxY | - +**Changes in next version** column: 🗑️ removed in v2, blank = unchanged. ::: -| **PYCSW Queryable/XML
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**:
DTM / DSM / QuantizedMesh / QuantizedMeshDTMBest / QuantizedMeshDSMBest | -| mc:description | text | the product description | -| mc:imagingTimeBeginUTC | date | start imaging date of raw product
supported format: **dd/mm/yyyy (not later than "End date")** | -| mc:imagingTimeEndUTC | date | end imaging date of raw product
supported format: **dd/mm/yyyy (not earlier than "Begin date")** | -| mc:resolutionDeg | double | the product resolution in degrees
double unsigned valid: **0.00000009 to 0.072** | -| mc:resolutionMeter | double | the product resolution in meters
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:sensors | text | list of sensors used as a source for the product
comma separated list | -| mc:layerPolygonParts | geojson | polygons of the discrete parts (versions) and the list of layers in the best converted to Geojson | -| mc:footprint | geojson | geographical delineation of the product / model trace | -| mc:heightRangeFrom | double | **minimum** height range in Meters (not greater than "heightRangeTo")
valid: **-500 to 9000** | -| mc:heightRangeTo | double | **maximum** height range in Meters (not less than "heightRangeFrom")
valid: **-500 to 9000** | -| mc:SRS | int | reference System ID (EPSG),
ex: 4326 / 3857 | -| mc:SRSName | text | name of reference system | -| mc:verticalDatum | enum | **Valid Values**:
WGS 1984 / WGS 1972 / Pulkovo 1942 / MSL Height / Israel | -| mc:region | text | sector / countries
comma separated list | -| mc:classification | enum | product classification / confidentiality
Classification values | -| mc:producerName | text | manufacturer / organization that produced / supplied the product | -| mc:units | enum | **Valid Values**:
METER / DD / DMS / ARC_SECONDS / UNKNOWN | -| mc:geographicArea | text | geographic area cities | -| mc:undulationModel | enum | **Valid Values**:
MSL EGM96 / MSL EGM2008 / MSL DMA10 / ILUM | -| mc:dataType | enum | **Valid Values**:
FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 | -| mc:noDataValue | enum | **Valid Values**:
-32768 / -326767 / -999 | -| mc:productBBox | text | the bounding box of the product minX,minY,maxX,maxY | -| mc:insertDate | date | the date when item was added to catalog | -| mc:keywords | text | list of key words relevant for product | -| mc:updateDateUTC | date | date the record got and update in catalog
supported format: **dd/mm/yyyy** | -| mc:type | enum | type of the catalog
**Valid values**: RECORD_RASTER / RECORD_3D / RECORD_DEM
default: ***RECORD_DEM***| +| **Changes in next version** | **PYCSW Queryable/XML
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**:
DTM / DSM / QuantizedMesh / QuantizedMeshDTMBest / QuantizedMeshDSMBest | +| | mc:description | text | the product description | +| 🗑️ | mc:imagingTimeBeginUTC | date | start imaging date of raw product
supported format: **dd/mm/yyyy (not later than "End date")** | +| 🗑️ | mc:imagingTimeEndUTC | date | end imaging date of raw product
supported format: **dd/mm/yyyy (not earlier than "Begin date")** | +| 🗑️ | mc:resolutionDeg | double | the product resolution in degrees
double unsigned valid: **0.00000009 to 0.072** | +| 🗑️ | mc:resolutionMeter | double | the product resolution in meters
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:sensors | text | list of sensors used as a source for the product
comma separated list | +| 🗑️ | mc:layerPolygonParts | geojson | polygons of the discrete parts (versions) and the list of layers in the best converted to Geojson | +| | mc:footprint | geojson | geographical delineation of the product / model trace | +| 🗑️ | mc:heightRangeFrom | double | **minimum** height range in Meters (not greater than "heightRangeTo")
valid: **-500 to 9000** | +| 🗑️ | mc:heightRangeTo | double | **maximum** height range in Meters (not less than "heightRangeFrom")
valid: **-500 to 9000** | +| 🗑️ | mc:SRS | int | reference System ID (EPSG),
ex: 4326 / 3857 | +| | mc:SRSName | text | name of reference system | +| 🗑️ | mc:verticalDatum | enum | **Valid Values**:
WGS 1984 / WGS 1972 / Pulkovo 1942 / MSL Height / Israel | +| | mc:region | text | sector / countries
comma separated list | +| | mc:classification | enum | product classification / confidentiality
Classification values | +| | mc:producerName | text | manufacturer / organization that produced / supplied the product | +| 🗑️ | mc:units | enum | **Valid Values**:
METER / DD / DMS / ARC_SECONDS / UNKNOWN | +| 🗑️ | mc:geographicArea | text | geographic area cities | +| 🗑️ | mc:undulationModel | enum | **Valid Values**:
MSL EGM96 / MSL EGM2008 / MSL DMA10 / ILUM | +| | mc:dataType | enum | **Valid Values**:
FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 | +| | mc:noDataValue | enum | **Valid Values**:
-32768 / -326767 / -999 | +| 🗑️ | mc:productBBox | text | the bounding box of the product minX,minY,maxX,maxY | +| | mc:insertDate | date | the date when item was added to catalog | +| | mc:keywords | text | list of key words relevant for product | +| | mc:updateDateUTC | date | date the record got and update in catalog
supported format: **dd/mm/yyyy** | +| | mc:type | enum | type of the catalog
**Valid values**: RECORD_RASTER / RECORD_3D / RECORD_DEM
default: ***RECORD_DEM***| diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md index 602c9cb8ed..854db927c2 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -16,70 +16,46 @@ tags: 3. The **DEM** sub-system Catalog profile fields with information of each of them: :::info -The following parameters were added v2: - -| **PYCSW Queryable/XML
Element Name** | **Type** | **Description** | -| ----------- | ----------- | ----------- | -| mc:productVersion | int | the product version | -| mc:srsId | int | reference system ID (EPSG),
ex: 4326 / 3857 | -| mc:dataType | enum | **Valid Values**:
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:areaOrPoint | enum | Describes if pixel is “Area” or “Point” | -| mc:links | text | Available links for different services available for the current product | -| mc:verticalType | enum | **Valid Values**: Orthometric, Ellipsoidal | -| mc:verticalSrsId | text | reference system ID (EPSG),
ex: 5773 / 3855 / 4979 | -| mc:verticalSrsName | text | name of reference system | - +**Changes from last version** column: 🆕 added, blank = unchanged. ::: -| **PYCSW Queryable/XML
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**:
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 | text | reference system ID (EPSG),
ex: 4326 / 3857 | -| mc:srsName | text | name of reference system | -| mc:dataType | enum | **Valid Values**:
FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 | -| mc:sensors | text | list of sensors used as a source for the product
comma separated list | -| mc:region | text | sector / countries
comma separated list | -| mc:insertDateUTC | date | the date when the product was added to catalog
supported format: **dd-mm-yyyyThh:mm:ssZ** | -| mc:ingestionDateUTC | date | when last was the **data** or **parts** updated
supported format: **dd-mm-yyyyThh:mm:ssZ** | -| mc:updateDateUTC | date | when last was the MD updated
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:areaOrPoint | enum | Describes if pixel is “Area” or “Point” | -| mc:links | text | Available links for different services available for the current product | -| mc:classification | text | product classification / confidentiality
Classification values should be numbers between 0 and 100 | -| mc:producerName | text | manufacturer / organization that produced / supplied the product | -| mc:noDataValue | double | **Valid Values**:
-32768 | -| mc:type | enum | type of the catalog
**Value**: RECORD_DEM | -| mc:keywords | text | list of key words relevant for product | -| mc:verticalType | enum | **Valid Values**: Orthometric, Ellipsoidal | -| mc:verticalSrsId | text | reference system ID (EPSG),
ex: 5773 / 3855 / 4979 | -| mc:verticalSrsName | text | name of reference system | +| **Changes from last version** | **PYCSW Queryable/XML
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**:
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 | text | reference system ID (EPSG),
ex: 4326 / 3857 | +| | mc:srsName | text | name of reference system | +| 🆕 | mc:dataType | enum | **Valid Values**:
FLOAT64 / FLOAT32 / FLOAT16 / INT64 / INT32 / INT16 / INT8 | +| | mc:sensors | text | list of sensors used as a source for the product
comma separated list | +| | mc:region | text | sector / countries
comma separated list | +| | mc:insertDateUTC | date | the date when the product was added to catalog
supported format: **dd-mm-yyyyThh:mm:ssZ** | +| | mc:ingestionDateUTC | date | when last was the **data** or **parts** updated
supported format: **dd-mm-yyyyThh:mm:ssZ** | +| | mc:updateDateUTC | date | when last was the MD updated
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:areaOrPoint | enum | Describes if pixel is “Area” or “Point” | +| 🆕 | mc:links | text | Available links for different services available for the current product | +| | mc:classification | text | product classification / confidentiality
Classification values should be numbers between 0 and 100 | +| | mc:producerName | text | manufacturer / organization that produced / supplied the product | +| | mc:noDataValue | double | **Valid Values**:
-32768 | +| | mc:type | enum | type of the catalog
**Value**: RECORD_DEM | +| | mc:keywords | text | list of key words relevant for product | +| 🆕 | mc:verticalType | enum | **Valid Values**: Orthometric, Ellipsoidal | +| 🆕 | mc:verticalSrsId | text | reference system ID (EPSG),
ex: 5773 / 3855 / 4979 | +| 🆕 | mc:verticalSrsName | text | name of reference system | From 29d4148c08ad92896a05abdf580cdc7c4ebc164b Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Thu, 24 Sep 2026 17:02:27 +0300 Subject: [PATCH 27/28] docs(dem): use GML3 polygon filter and add productSubType to v2 profile The GML2 outerBoundaryIs/coordinates polygon is rejected by the catalog ("Missing gml:posList"); the GML3 exterior/posList form was verified on dem-dev. productSubType is a declared v2 queryable (helm-charts#684 mappings.py / mc_dem profile) missing from the table. Co-Authored-By: Claude Opus 5.5 (1M context) --- docs/MapColonies/DEM/Guides/height_extraction.md | 14 ++++++++------ .../DEM/Services/catalog/profile_v2_0.md | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index 4e18a5e3a1..c9547610df 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -326,6 +326,8 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ Fetch all products with productType DTM and intersect with a given Polygon. :::info A polygon must contain **at least 4 points**, where the first and last point are identical (a closed ring). Any number of additional points is allowed. + +Coordinates go in a single space-separated `gml:posList`, in **latitude longitude** order for `EPSG:4326`. The GML2 form (`gml:outerBoundaryIs` / `gml:coordinates`) is not supported. ::: ```bash curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ @@ -342,14 +344,14 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \
ows:BoundingBox - - + + - - [COORD1_X],[COORD1_Y] [COORD2_X],[COORD2_Y] [COORD3_X],[COORD3_Y] [COORD4_X],[COORD4_Y] ... [COORDN_X],[COORDN_Y] [COORD1_X],[COORD1_Y] - + + [COORD1_LAT] [COORD1_LON] [COORD2_LAT] [COORD2_LON] [COORD3_LAT] [COORD3_LON] ... [COORDN_LAT] [COORDN_LON] [COORD1_LAT] [COORD1_LON] + - +
diff --git a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md index 854db927c2..4181052460 100644 --- a/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md +++ b/docs/MapColonies/DEM/Services/catalog/profile_v2_0.md @@ -25,6 +25,7 @@ tags: | | mc:productId | text | unique external product id | | | mc:productName | text | the product name | | | mc:productType | enum | **Valid Values**:
DTM / DSM | +| 🆕 | mc:productSubType | text | additional classification of the product that provides a more specific description within the selected productType | | 🆕 | mc:productVersion | int | the product version | | | mc:description | text | the product description | | | mc:footprint | geojson | geographical delineation of the product / model trace | From 85dfb5678eb1696f32ac336d3451c4f11f2d2c13 Mon Sep 17 00:00:00 2001 From: shimoncohen Date: Mon, 28 Sep 2026 14:32:01 +0300 Subject: [PATCH 28/28] docs(dem): fix findings from live review against dem-dev - height_extraction: coverageId prefix note is WCS-version specific (dem: in 1.0.0 and 2.0.1, dem__ only in 2.0.1); typos; srsId example - terrain_provider: terrain link is in the DEM catalog too; scheme= typo; link name matches live records; Cesium fromUrl (min 1.104) - CesiumTerrainProvider: replace removed url option and readyPromise with fromUrl; terrainProvider is set on viewer, not viewer.scene - download: srsId example Co-Authored-By: Claude Opus 5.5 (1M context) --- .../DEM/Guides/height_extraction.md | 12 ++-- .../DEM/Guides/terrain_provider.md | 16 ++--- .../Services/CesiumTerrainProvider/README.md | 60 +++++++++---------- .../DEM/Services/download/README.md | 2 +- 4 files changed, 43 insertions(+), 47 deletions(-) diff --git a/docs/MapColonies/DEM/Guides/height_extraction.md b/docs/MapColonies/DEM/Guides/height_extraction.md index c9547610df..47b91257f3 100644 --- a/docs/MapColonies/DEM/Guides/height_extraction.md +++ b/docs/MapColonies/DEM/Guides/height_extraction.md @@ -202,7 +202,7 @@ curl --location --request POST '{DEM_CATALOG_SERVICE_URL}/csw?token=' \ 1 region sensors - srs_id + 4326 WGS84GEO RECORD_DEM 2020-12-31T11:00:00Z @@ -427,7 +427,7 @@ Fields you may want to filter by: | ----------- | ----------- | | footprint | Specific geographical area | | ...Accuracy... | | -| ...Resolution... | Mix and Max resolution | +| ...Resolution... | Min and Max resolution | | productType | Specific product type (for example: only DTM) | | srsId / srsName | Wanted horizontal SRS | | verticalSrsId / verticalSrsName | Wanted vertical SRS | @@ -763,7 +763,7 @@ Read more about this request [here](/docs/ogc/protocols/ogc-wcs#describecoverage For this step we need the `coverageId` of a product we selected from the previous steps. The wanted ID should look like this: `-`. :::info -The WCS service accepts the `coverageId` either with or without the internal workspace prefix `dem__`. Both `srtm30-DTM` and `dem__srtm30-DTM` are valid. The examples in this guide use the un-prefixed form. +The WCS service accepts the `coverageId` with or without the internal workspace prefix, but the prefix form differs by WCS version: `dem:srtm30-DTM` works in both 1.0.0 and 2.0.1, and 2.0.1 also accepts `dem__srtm30-DTM`. The examples in this guide use the un-prefixed form, which works in both versions. ::: Lets select the product `srtm30`, this means our ID will be `srtm30-DTM` and our request will be: @@ -874,7 +874,7 @@ These parameters require additional calculations on the server-side which means For all of the examples in this section we need the following parameters: - `coverageId` -In the examples we show the use of specific parameter values, in order to understand what other values you can you review the [service capabilities](#capabilities). +In the examples we show the use of specific parameter values, to see what other values you can use, review the [service capabilities](#capabilities). ### Get whole coverage @@ -940,13 +940,13 @@ curl --location '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverag ```
-Set the output image size to be a certain factor from it's original size. +Set the output image size to be a certain factor from its original size. ```bash curl --location '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&scaleFactor=0.1&token=' ``` -Set the output image size to be a certain factor from it's original size for each axes. +Set the output image size to be a certain factor from its original size for each axis. ```bash curl --location '{WCS_SERVICE_URL}/wcs?request=GetCoverage&version=2.0.1&coverageId=srtm30-DTM&format=image/tiff;application=geotiff&scaleAxes=i(0.1),j(0.2)&token=' ``` diff --git a/docs/MapColonies/DEM/Guides/terrain_provider.md b/docs/MapColonies/DEM/Guides/terrain_provider.md index 88a52a0466..bad6cd8ed6 100644 --- a/docs/MapColonies/DEM/Guides/terrain_provider.md +++ b/docs/MapColonies/DEM/Guides/terrain_provider.md @@ -40,9 +40,9 @@ flowchart LR ## Query CSW catalog (Step 1) -:::warning +:::info -Currently the terrain provider is only available through the `3D catalog`. +The terrain provider link is available in both the `3D catalog` and the `DEM catalog`. ::: @@ -139,12 +139,12 @@ You will get GetRecords XML Response with product **metadata**. In the Response, look for desired data according to profile definition. ## Get terrain provider URI (Step 2.1) {#step-2.1} -In the Response, look for a `link` tag with `schem="TERRAIN_QMESH"`, this will be the link you need to get the data. +In the Response, look for a `link` tag with `scheme="TERRAIN_QMESH"`, this will be the link you need to get the data. For our case: ```xml title="Extract link for terrain provider" - + {TERRAIN_URL}/terrains/srtm100 ``` @@ -161,19 +161,19 @@ Now let's see how we can load the provider in our application. ### Cesium :::info -**The minimum required version for cesium is v84.** +**The minimum required version for cesium is v1.104.** ::: ```javascript // **Optional** add to Cesium terrain provider in order to clamp 3d models to the ground or investigate terrain -viewer.terrainProvider = new Cesium.TerrainProvider({ - url: new Cesium.Resource({ +viewer.terrainProvider = await Cesium.CesiumTerrainProvider.fromUrl( + new Cesium.Resource({ url: "{TERRAIN_URL}", queryParameters: { "token": "{token}", }, }), -}); +); ... ``` Replace `{TERRAIN_URL}` with the URL link that you got from **[Step 2.1](#step-2.1)**. diff --git a/docs/MapColonies/DEM/Services/CesiumTerrainProvider/README.md b/docs/MapColonies/DEM/Services/CesiumTerrainProvider/README.md index 53d9156371..8166228e7a 100644 --- a/docs/MapColonies/DEM/Services/CesiumTerrainProvider/README.md +++ b/docs/MapColonies/DEM/Services/CesiumTerrainProvider/README.md @@ -102,11 +102,13 @@ Create an instance of `Cesium.CesiumTerrainProvider`, providing the base `URL` o ```js // A new CesiumTerrainProvider instance. -const terrainProvider = new Cesium.CesiumTerrainProvider({ - url: 'https://your.custom.terrain.server/path/to/tiles/', // CRITICAL: This URL must be replaced with the actual URL of the custom Quantized Mesh terrain server. - requestVertexNormals: false, // Optional: The fetching of vertex normals is to be enabled for enhanced lighting. - requestWaterMask: false // Optional: The fetching of water masks is to be enabled for accurate water rendering. -}); +const terrainProvider = await Cesium.CesiumTerrainProvider.fromUrl( + 'https://your.custom.terrain.server/path/to/tiles/', // CRITICAL: This URL must be replaced with the actual URL of the custom Quantized Mesh terrain server. + { + requestVertexNormals: false, // Optional: The fetching of vertex normals is to be enabled for enhanced lighting. + requestWaterMask: false // Optional: The fetching of water masks is to be enabled for accurate water rendering. + } +); ``` :::info @@ -118,7 +120,7 @@ Get the URL for the terrain server from the catalog, details [here](../../Guides ### Assigning the Terrain Provider -Assign the newly created terrainProvider instance to the `terrainProvider` property of the `viewer.scene` object. This action directs `Cesium.js` to utilize the specified Quantized Mesh data source for the rendering of the globe's terrain. +Assign the newly created terrainProvider instance to the `terrainProvider` property of the `viewer` object. This action directs `Cesium.js` to utilize the specified Quantized Mesh data source for the rendering of the globe's terrain. ```js // Assign the custom terrain provider to the viewer's scene. @@ -166,20 +168,30 @@ Refer down in the example down blow for cesium query / header mapcolonies' token // Create the CesiumTerrainProvider instance, referencing the custom Quantized Mesh server. // CRITICAL: The placeholder 'https://your.custom.terrain.server/path/to/tiles/' must be substituted with the actual URL from MapColonies 3D / DEM Catalog! - const terrainProvider = new Cesium.CesiumTerrainProvider({ - url: 'https://your.custom.terrain.server/path/to/tiles/', - // url:new Cesium.Resource({ - // url: '', + Cesium.CesiumTerrainProvider.fromUrl( + 'https://your.custom.terrain.server/path/to/tiles/', + // new Cesium.Resource({ + // url: '', // headers: { 'x-api-key': MAPCOLONIES_TOKEN }, // choose either header or query // queryParameters: { 'token': MAPCOLONIES_TOKEN }, // choose either header or query - //}), - requestVertexNormals: true, // Vertex normals are to be requested for enhanced lighting and shading. - requestWaterMask: true // Water masks are to be requested for accurate water rendering effects. + // }), + { + requestVertexNormals: true, // Vertex normals are to be requested for enhanced lighting and shading. + requestWaterMask: true // Water masks are to be requested for accurate water rendering effects. + } + ).then(function(terrainProvider) { + // Assign the custom terrain provider to the viewer. + viewer.terrainProvider = terrainProvider; + + // Add robust error handling for terrain loading. + // The errorEvent is dispatched if issues arise during the fetching or parsing of terrain tiles. + terrainProvider.errorEvent.addEventListener(function(error) { + console.error('An error was encountered during terrain loading:', error); + }); + }).catch(function(error) { + console.error('CesiumTerrainProvider initialization failed', error); }); - // Assign the custom terrain provider to the viewer's scene. - viewer.terrainProvider = terrainProvider; - // Optional: The camera may be programmatically directed to a specific geographic location // to immediately showcase the loaded terrain. viewer.camera.flyTo({ @@ -191,22 +203,6 @@ Refer down in the example down blow for cesium query / header mapcolonies' token }, duration: 3 // Duration of the flight in seconds }); - - // Add robust error handling for terrain loading. - // The errorEvent is dispatched if issues arise during the fetching or parsing of terrain tiles. - terrainProvider.errorEvent.addEventListener(function(error) { - console.error('An error was encountered during terrain loading:', error); - // In a production environment, consider using a more user-friendly message - // or attempting to utilize a fallback terrain provider. - }); - - // Optional: A listener may be added for the event signifying the readiness of the terrain provider. - // This is beneficial for executing actions only subsequent to the commencement of terrain data loading. - terrainProvider.readyPromise.then(function() { - console.log('CesiumTerrainProvider is ready and terrain loading has started.'); - }).otherwise(function(error) { - console.error('CesiumTerrainProvider initialization failed', error); - }); diff --git a/docs/MapColonies/DEM/Services/download/README.md b/docs/MapColonies/DEM/Services/download/README.md index 8fbd6fc8d1..e51eaaaeb9 100644 --- a/docs/MapColonies/DEM/Services/download/README.md +++ b/docs/MapColonies/DEM/Services/download/README.md @@ -97,7 +97,7 @@ Response: 1 region sensors - srs_id + 4326 WGS84GEO RECORD_DEM 2020-12-31T11:00:00Z