diff --git a/.llm_cache/DOCS__clcplus-core__CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1.qmd.json b/.llm_cache/DOCS__clcplus-core__CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1.qmd.json new file mode 100644 index 00000000..970dafa5 --- /dev/null +++ b/.llm_cache/DOCS__clcplus-core__CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1.qmd.json @@ -0,0 +1,13 @@ +{ + "intro": "This annex to the CLC+ Core User Guideline provides essential documentation for administrative users managing the Copernicus Land Monitoring Service's CLC+ Core system. It outlines the enhanced privileges and responsibilities of Admin Users, detailing processes for managing user accounts and organisations, including role assignments and status changes. Crucially, it covers the functionality for expert users to upload and update EAGLE Ontology versions and to approve the EAGLE compliance of ingested datasets, ensuring the system's foundational data standards are maintained effectively.", + "keywords": [ + "CLC+ Core administration", + "Admin User roles", + "user management", + "organisation management", + "EAGLE Ontology management", + "EAGLE compliance approval", + "EIONET data dictionary", + "data standardisation" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__clcplus-core__CLCplusCore_User_Manual_Issue_4.0_v1.qmd.json b/.llm_cache/DOCS__clcplus-core__CLCplusCore_User_Manual_Issue_4.0_v1.qmd.json new file mode 100644 index 00000000..a92ef734 --- /dev/null +++ b/.llm_cache/DOCS__clcplus-core__CLCplusCore_User_Manual_Issue_4.0_v1.qmd.json @@ -0,0 +1,18 @@ +{ + "intro": "This CLC+ Core User Guideline provides comprehensive documentation for navigating and utilising the Copernicus Land Monitoring Service's CLC+ Core system. It meticulously details the web-based, multi-use land cover and land use data repository, focusing on its functionalities for data ingestion, standardised integration via the EAGLE language, and sophisticated rule-based extraction of CLC+ Instances. The document offers essential guidance on data formats, system interfaces, and workflow procedures, ensuring scientists, regulators, and data engineers can efficiently manage and derive valuable information from Europe's land monitoring products, supporting crucial environmental policies.", + "keywords": [ + "CLC+ Core", + "Land Cover/Land Use data", + "EAGLE concept", + "data ingestion workflow", + "data extraction rulesets", + "Input classes", + "Output classes", + "100m spatial resolution", + "Copernicus Land Monitoring Service", + "EIONET authentication", + "Land Use", + "Land-Use Change and Forestry", + "HRL data products" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__filenaming__clms-filenaming_design-principles_v1.qmd.json b/.llm_cache/DOCS__filenaming__clms-filenaming_design-principles_v1.qmd.json new file mode 100644 index 00000000..8bbccd22 --- /dev/null +++ b/.llm_cache/DOCS__filenaming__clms-filenaming_design-principles_v1.qmd.json @@ -0,0 +1,17 @@ +{ + "intro": "This document outlines the design principles and mandatory conventions for filenaming all new Copernicus Land Monitoring Service (CLMS) products, including reprocessings and new versions. It establishes a consistent, machine-parseable structure, detailing rules for character sets, delimiters, field order, temporal and spatial definitions, and versioning. The guidelines ensure uniformity across the entire CLMS portfolio, facilitating data discovery, integration, and management for scientists, regulators, and data engineers. Adherence to these principles is crucial for maintaining data consistency within the Copernicus Land Data Store.", + "keywords": [ + "Filenaming conventions", + "CLMS product naming", + "data interoperability", + "product metadata standards", + "spatial resolution encoding", + "temporal coverage formats", + "geographic extent identifiers", + "EPSG codes", + "product versioning", + "quality layer naming", + "parsEO schema registry", + "CDSE product catalogue" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__filenaming__clms-filenaming_filename-tree_v1.qmd.json b/.llm_cache/DOCS__filenaming__clms-filenaming_filename-tree_v1.qmd.json new file mode 100644 index 00000000..f2be4093 --- /dev/null +++ b/.llm_cache/DOCS__filenaming__clms-filenaming_filename-tree_v1.qmd.json @@ -0,0 +1,17 @@ +{ + "intro": "This document presents the \"Filename Tree\" for Copernicus Land Monitoring Service (CLMS) products, offering a structured, visual guide to all valid filename variants. It serves as a practical reference for understanding and constructing CLMS product filenames, detailing the hierarchical options for each field. The tree systematically illustrates choices for product codes, temporal coverage, spatial resolution, geographic extent, and product variables, supported by concrete examples. Designed to complement the CLMS Filenaming Design Principles, this guide facilitates accurate data identification and ensures consistency across the CLMS data catalogue.", + "keywords": [ + "CLMS filenaming conventions", + "product naming taxonomy", + "filename structure", + "temporal coverage formats", + "spatial resolution types", + "geographic extent identifiers", + "product variable codes", + "data catalogue schema", + "MGRS tiling system", + "LAEA 100km grid", + "functional urban areas", + "Copernicus Land Monitoring Service" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__guidelines__editor-manual_v1.qmd.json b/.llm_cache/DOCS__guidelines__editor-manual_v1.qmd.json index 27179d2d..eef13307 100644 --- a/.llm_cache/DOCS__guidelines__editor-manual_v1.qmd.json +++ b/.llm_cache/DOCS__guidelines__editor-manual_v1.qmd.json @@ -1,17 +1,15 @@ { - "intro": "This manual provides a comprehensive guide for editors contributing technical documentation to the Copernicus Land Monitoring Service (CLMS) Technical Library. It details the entire workflow for authoring, editing, and publishing scientific content using Quarto and Markdown, emphasising integration with a central repository via Git subtrees and dedicated Git aliases. The document covers essential aspects such as document structuring, YAML header configuration, versioning, local previewing within RStudio, and the multi-stage publication process, ensuring consistency and adherence to CLMS documentation standards. Its technical focus aims to empower authors to effectively manage and disseminate CLMS scientific and technical information.", + "intro": "This Editor Manual provides comprehensive guidance for contributing to the Copernicus Land Monitoring Service (CLMS) Technical Library. It details the workflow for document creation, editing, and publishing, explaining the integration of project repositories with the central library via Git subtrees. The manual covers essential aspects such as document lifecycle management, file naming conventions, YAML header configuration, and content formatting. It also outlines procedures for local previewing, publishing to the `develop` branch, and restoring previous document versions, ensuring consistent and efficient documentation practices for all contributors.", "keywords": [ "CLMS Technical Library", - "Quarto documentation", - "Markdown authoring", - "Git subtree integration", - "Document publishing workflow", - "Versioning strategy", - "RStudio editing environment", - "ATBD templates", - "PUM templates", + "technical document authoring", + "Git subtree", + "publishing workflow", + "document lifecycle management", + "Quarto Markdown", "YAML header configuration", - "Local document previewing", - "Release path management" + "file naming conventions", + "document versioning", + "RStudio integration" ] } \ No newline at end of file diff --git a/.llm_cache/DOCS__tools__parseo-dashboard__index.qmd.json b/.llm_cache/DOCS__tools__parseo-dashboard__index.qmd.json new file mode 100644 index 00000000..2d00d33d --- /dev/null +++ b/.llm_cache/DOCS__tools__parseo-dashboard__index.qmd.json @@ -0,0 +1,15 @@ +{ + "intro": "This document introduces the `parsEO` dashboard, a web-based utility designed to assist users in managing Copernicus Land Monitoring Service (CLMS) product filenames and associated metadata schemas. It provides interactive tools to assemble filenames from predefined fields, parse existing filenames into their structured components, and validate JSON schemas for product metadata. The dashboard aims to streamline adherence to CLMS naming conventions, ensuring data consistency and facilitating efficient data discovery and processing for scientists, data engineers, and regulators interacting with CLMS products.", + "keywords": [ + "parsEO dashboard", + "CLMS filename conventions", + "filename parsing", + "filename assembly", + "JSON schema validation", + "product metadata management", + "Earth Observation data", + "data standardisation", + "web-based utility", + "API interface" + ] +} \ No newline at end of file diff --git a/.llm_cache/images/00fc8e231c1e7e3ed79e717cc61b37f8.json b/.llm_cache/images/00fc8e231c1e7e3ed79e717cc61b37f8.json new file mode 100644 index 00000000..475439f2 --- /dev/null +++ b/.llm_cache/images/00fc8e231c1e7e3ed79e717cc61b37f8.json @@ -0,0 +1 @@ +{"image_type": "chart", "description": "Four density scatter plots display the comparison of Vegetation Phenology and Productivity (VPP) metrics derived from short versus long MODIS PPI input time series for the 2025 season 1. Each plot is based on N = 500,000 paired pixels. The x-axis represents values from the long input time series (MODIS PPI from 2000-02-24 to 2026-04-19), and the y-axis represents values from the short input time series (MODIS PPI from 2024-01-01 to 2026-04-19). A color bar on the right of each subplot indicates relative density on a logarithmic scale from 10^0 to 10^2, with darker blue signifying higher point density (maximum value of 100). Each plot includes a dashed black \"1:1 line\" and a solid red \"Regression\" line.\n\nThe four plots are:\n1. **Start Of Season Day (SOSD) 2025 season 1:** X-axis (SOSD long time series) and Y-axis (SOSD short time series) range from -100 to 200. Statistics: R² = 0.969; Regression equation y = 0.993x + 0.65; Bias = -0.08; RMSE = 8.18; MAE = 0.42. 99.5% of points are on the 1:1 line.\n2. **End Of Season Day (EOSD) 2025 season 1:** X-axis (EOSD long time series) and Y-axis (EOSD short time series) range from 0 to 450. Statistics: R² = 0.968; Regression equation y = 0.988x + 2.81; Bias = -0.14; RMSE = 11.44; MAE = 0.83. 99.1% of points are on the 1:1 line.\n3. **Amplitude (AMPL) 2025 season 1:** X-axis (AMPL long time series) and Y-axis (AMPL short time series) range from 0 to 5. Statistics: R² = 0.997; Regression equation y = 0.998x + 0.00; Bias = -0.00; RMSE = 0.04; MAE = 0.00. 99.7% of points are on the 1:1 line.\n4. **Total Productivity (TPROD) 2025 season 1:** X-axis (TPROD long time series) and Y-axis (TPROD short time series) range from 0 to 350. Statistics: R² = 0.992; Regression equation y = 0.996x + 0.46; Bias = -0.02; RMSE = 5.94; MAE = 0.27. 99.5% of points are on the 1:1 line.\n\nOverall, the plots demonstrate very high consistency between the short and long time series processing approaches for all four VPP metrics, characterized by R² values ranging from 0.968 to 0.997, regression lines closely aligned with the 1:1 line, and a high percentage of data points near the 1:1 line."} \ No newline at end of file diff --git a/.llm_cache/images/07c8b38d2e9c4aa2768a258a1f8e3986.json b/.llm_cache/images/07c8b38d2e9c4aa2768a258a1f8e3986.json new file mode 100644 index 00000000..5ec2a731 --- /dev/null +++ b/.llm_cache/images/07c8b38d2e9c4aa2768a258a1f8e3986.json @@ -0,0 +1 @@ +{"image_type": "diagram", "description": "This bitmask diagram illustrates the structure and interpretation of an 8-bit Quality Assurance (QA) value for Vegetation Phenology and Productivity (VPP) parameters. The 8-bit value, ranging from Bit 7 (most significant) to Bit 0 (least significant), is segmented into four 2-bit fields, each assigned to a specific quality aspect.\n\nThe mapping of bit pairs to quality levels is:\n* `00` = Best\n* `01` = Good\n* `10` = Fair\n* `11` = Poor\n\nThe 8-bit value is structured as follows:\n* **Bits 7 and 6 (red section)** represent \"Overall quality\".\n* **Bits 5 and 4 (orange section)** represent \"EOS quality\" (End of Season quality).\n* **Bits 3 and 2 (green section)** represent \"Peak quality\".\n* **Bits 1 and 0 (light green section)** represent \"SOS quality\" (Start of Season quality).\n\nAn example QA value `00010100` (decimal 20) is provided. This value is interpreted to mean \"an overall best phenology retrieval, with best quality for SOS (00), good quality for peak (01) and EOS (01) estimations.\""} \ No newline at end of file diff --git a/.llm_cache/images/1d7ec6d66874d329e63ebd0d2fda4fe4.json b/.llm_cache/images/1d7ec6d66874d329e63ebd0d2fda4fe4.json new file mode 100644 index 00000000..0676b60a --- /dev/null +++ b/.llm_cache/images/1d7ec6d66874d329e63ebd0d2fda4fe4.json @@ -0,0 +1 @@ +{"image_type": "map", "description": "This image displays two choropleth maps of Europe, both including parts of North Africa, illustrating drought conditions and their impact in 2018. A north arrow and a 0 to 1,000 km scale bar are present on both maps.\n\nThe left map, titled \"2018 N. Europe drought SPEI03 2018 July\", shows the Standardised Precipitation-Evapotranspiration Index (SPEI03) for July 2018. The colour scale ranges from red, indicating severe drought (SPEI3 value -3), through light yellow (SPEI3 value 0, normal conditions), to light green (SPEI3 value 3, wet conditions). Large parts of Central and Northern Europe, including the United Kingdom, Ireland, France, Germany, Poland, the Baltic states, and southern Scandinavia, are depicted in red and orange, indicating widespread drought conditions (SPEI3 values around -3 to -1). In contrast, the Iberian Peninsula, Italy, the Balkan region, and parts of North Africa show normal to wetter conditions (yellow to light green, SPEI3 values 0 to 3).\n\nThe right map, titled \"2018 N. Europe drought impact vs. 2017 in TPROD\", shows the anomaly in Total Productivity (TPROD) for 2018 compared to 2017. The legend \"TPROD2018-17\" indicates this difference. The colour scale ranges from red (value -50), representing a significant decrease in productivity, through light yellow (value 0, no change), to light blue (value 50), indicating a significant increase in productivity. This map reveals a strong correlation with the drought map, showing substantial negative productivity anomalies (red/dark red, values around -50 to -25) across the same areas of Central and Northern Europe (e.g., UK, France, Germany, Poland, Baltic states, southern Sweden). Conversely, areas of Spain, Portugal, Italy, and southeastern Europe display positive productivity anomalies (blue/light blue, values around 25 to 50), indicating increased vegetation productivity in 2018 compared to 2017 in those regions."} \ No newline at end of file diff --git a/.llm_cache/images/2c5e4c7e031a5a7b445d1d6e2fae3030.json b/.llm_cache/images/2c5e4c7e031a5a7b445d1d6e2fae3030.json new file mode 100644 index 00000000..aa396da5 --- /dev/null +++ b/.llm_cache/images/2c5e4c7e031a5a7b445d1d6e2fae3030.json @@ -0,0 +1 @@ +{"image_type": "map", "description": "Four choropleth maps depicting Vegetation Phenology and Productivity (VPP) metrics across Europe, comparing results derived from long and short input time series for 2025. The geographic area spans approximately 25° to 70° North Latitude and -20° to 45° East Longitude, covering continental Europe, parts of Scandinavia, North Africa, and the Middle East. Each map includes a scale bar from 0 to 1,000 km.\n\nThe top row displays End Of Season Day (EOSD) for season 1, with the map titles \"2025 SOSD season 1\" but captioned as \"(c) EOSD using long time series (2000-2026)\" (left panel) and \"(d) EOSD using short time series (2024-2026)\" (right panel). The colour legend is a circular wheel indicating months, ranging from red (January) through yellow/green (spring/summer) to blue/purple (autumn/winter), with markers at 1 (Jan), 11 (Nov), and 21 (Sept). Across Europe, EOSD predominantly falls between July and October (yellow to orange-red hues). Mediterranean regions show earlier EOSD (July-August, yellow-green), while central and northern Europe show later EOSD (August-October, orange).\n\nThe bottom row displays Amplitude (AMPL) for season 1, titled \"2025 AMPL season 1\", comparing the \"Long time series\" (left panel) and \"Short time series\" (right panel). The linear vertical colour scale ranges from 0 (brown) to 2 (green), representing increasing amplitude. Higher amplitude values (darker green) are observed in temperate forest and agricultural regions of Central and Eastern Europe, the UK, and Ireland, indicating pronounced seasonal vegetation cycles. Lower amplitude values (yellow to brown) are visible in Mediterranean areas, parts of Scandinavia, and semi-arid North African regions, signifying less distinct seasonal vegetation changes.\n\nFor both EOSD and AMPL, the spatial patterns and colour distributions are visually highly consistent between the long time series (2000–2026) and short time series (2024–2026) implementations, demonstrating strong agreement in the derived VPP metrics across Europe."} \ No newline at end of file diff --git a/.llm_cache/images/2ee2ed74b3501c27cf5a105b46d9948a.json b/.llm_cache/images/2ee2ed74b3501c27cf5a105b46d9948a.json new file mode 100644 index 00000000..5610fa9b --- /dev/null +++ b/.llm_cache/images/2ee2ed74b3501c27cf5a105b46d9948a.json @@ -0,0 +1 @@ +{"image_type": "chart", "description": "Line chart illustrating the temporal variation of Scaled Plant Phenology Index (PPI) from 2018-01-01 to 2020-01-01. The Y-axis represents Scaled PPI (value x 10000), ranging from 0 to 10000. The X-axis represents time, with major labels at 2018-01-01, 2019-01-01, and 2020-01-01.\n\nThe black line represents the \"Cubic spline fit\" to the PPI time series, and red dots indicate the \"Start/End of season\". The chart shows two main growing seasons:\n\n1. **2018 Season:**\n * Period 'a' (early 2018) shows low PPI values.\n * A season starts around mid-April 2018 (approximately Scaled PPI 1800).\n * Peak 'A' occurs around June 2018, reaching a Scaled PPI value of approximately 7200.\n * The season ends around early August 2018 (approximately Scaled PPI 1300).\n * Period 'b' shows a trough, with a small peak 'B' around November 2018 reaching approximately Scaled PPI 1200.\n\n2. **2019 Season:**\n * Period 'c' (early 2019) shows low PPI values, with a minimum around February 2019.\n * A new season starts around mid-April 2019 (approximately Scaled PPI 2100).\n * This season exhibits a double peak structure:\n * Peak 'C' occurs around June 2019, reaching approximately Scaled PPI 8800.\n * This is followed by a trough 'd' around September 2019 (approximately Scaled PPI 6000).\n * Peak 'D' occurs around October 2019, reaching approximately Scaled PPI 8200.\n * The season ends around early December 2019 (approximately Scaled PPI 1300).\n\nOverall, the 2019 growing season shows higher peak Scaled PPI values compared to the 2018 season, with peak C being the highest observed value. The red dots effectively delineate periods of significant vegetative activity."} \ No newline at end of file diff --git a/.llm_cache/images/33470a15f9d396bd2c5bb305c2162fec.json b/.llm_cache/images/33470a15f9d396bd2c5bb305c2162fec.json new file mode 100644 index 00000000..c9188a35 --- /dev/null +++ b/.llm_cache/images/33470a15f9d396bd2c5bb305c2162fec.json @@ -0,0 +1 @@ +{"image_type": "photo", "description": "This image is a screenshot of the Copernicus Land Monitoring Service (CLMS) Core user interface, displaying the details for a data ingestion named 'UA_IBK_2018'. The interface is structured with a top navigation bar, a \"General Information\" section on the left, a map preview in the center, and an \"Input Classes\" table below the map.\n\nThe top navigation bar includes links for \"Data Catalogue\", \"EAGLE Ontology\", \"About EAGLE\", \"Organisations\", \"Users\", and \"CLC+ Core User Admin/Support\". The main page title is \"Data Catalogue / Ingestion 'UA_IBK_2018'\", with a status tag \"INGESTED_PRE\" (7).\n\nThe \"General Information\" section on the left provides metadata for the 'UA_IBK_2018' ingestion:\n* Name: UA_IBK_2018\n* Country: Austria/Österreich\n* Region: Innsbruck\n* Reference Year: 2018\n* Time Range of Ingested Data: 01.01.2018 - 31.12.2018\n* INSPIRE Themes: LU Land use, LC Land cover\n* Created By: CLC+ Core User Admin/Support\n* Organisation/s: CLC, European Environment Agency (EEA)\nAn \"EDIT\" button is available next to the \"General Information\" heading.\n\nA map preview is displayed on the right, showing an aerial/satellite imagery base layer of the Innsbruck region, filtered for \"AT Austria/Österreich\" and \"AT332 Innsbruck\". A green overlay highlights a specific area within the region. The map includes zoom controls, layer toggles, and a scale bar showing \"10 km\" and \"5 mi\". A \"PREVIEW\" button (5) is located above the map.\n\nAbove the map, there are buttons for \"REPUBLISH ON GEOSERVER\", \"START INGESTION\", and \"PUBLISH\" (6). Below the map, a \"DOWNLOAD EAGLE BARCODING\" button (4) is visible.\n\nThe \"Input Classes\" table lists specific land cover classes relevant to the ingestion, with columns for:\n* \"Class Code ↑\": Numeric identifiers (e.g., 11100, 11210, 11220, 11230).\n* \"Name *\": Editable names corresponding to the class codes (e.g., \"11100\").\n* \"EAGLE Elements *\" (3): Describes the class mapping according to the EIONET Action Group on Land monitoring in Europe (EAGLE) concept, such as \"Sealed Artificial Surfaces and Constructions +10\" or \"Sealed Artificial Surfaces and Constructions +11\".\n* \"100% EAGLE compliant\" (2): Indicates compliance with EAGLE specifications (all classes shown have a green checkmark).\n* \"Colour\": Small coloured squares (red, dark red, medium red, light red) representing the visualization colour for each class.\n* \"Show in Map\": Toggle switches, all currently off, indicating these specific classes are not actively displayed on the map preview.\n\nAn \"APPROVE EAGLE COMPLIANCE\" button (1) is located below the 'UA_IBK_2018' title."} \ No newline at end of file diff --git a/.llm_cache/images/3d29d78e9850f3e790464c7f8ace6a8d.json b/.llm_cache/images/3d29d78e9850f3e790464c7f8ace6a8d.json new file mode 100644 index 00000000..d163f91a --- /dev/null +++ b/.llm_cache/images/3d29d78e9850f3e790464c7f8ace6a8d.json @@ -0,0 +1 @@ +{"image_type": "table", "description": "This table displays a simplified EAGLE (Eionet Action Group on Land monitoring in Europe) barcoding scheme used by the Copernicus Land Monitoring Service (CLMS) CLC+ CORE consortium for land cover and land use classification. The table includes columns for `URI` (Uniform Resource Identifier), `Code`, `Label`, `Level`, `Barcode`, and `Factor`. Above the main data, general instructions state: `Class Code* (If continuous dataset, enter \"0\" as Class Code)`. Additional metadata indicates the dataset is `100% EAGLE Compliant` (Yes) and provides a `Colour Code` (`#FFFFFF`). The text `Inland water for mineral extraction` is also present at the top right, possibly as a specific example for barcoding application.\n\nThe table content is:\n\n| URI | Code | Label | Level | Barcode | Factor |\n|---|---|---|---|---|---|\n| https://dd.LCC-2_4_3 | LCC-2_4_3 | Algae | 3 | | |\n| https://dd.LCC-2_4_3_1 | LCC-2_4_3_1 | Macro Algae | 4 | | |\n| https://dd.LCC-2_4_3_2 | LCC-2_4_3_2 | Micro Algae (Plankton) | 4 | | |\n| https://dd.LCC-3 | LCC-3 | Water | 1 | | |\n| https://dd.LCC-3_1 | LCC-3_1 | Liquid Water Bodies | 2 | | |\n| https://dd.LCC-3_1_1 | LCC-3_1_1 | Inland Water Bodies | 3 | 3 | |\n| https://dd.LCC-3_1_1_1 | LCC-3_1_1_1 | Water Course | 4 | | |\n| https://dd.LCC-3_1_1_2 | LCC-3_1_1_2 | Standing Water | 4 | | |\n| https://dd.LCC-3_1_2 | LCC-3_1_2 | Marine Waters | 3 | | |\n| https://dd.LCC-3_2 | LCC-3_2 | Solid Waters | 2 | | |\n| https://dd.LCC-3_2_1 | LCC-3_2_1 | Snow | 3 | | |\n| https://dd.LCC-3_2_2 | LCC-3_2_2 | Ice, Glaciers | 3 | | |\n| LUA | LUA | Land Use Attributes | 0 | | |\n| https://dd.LUA-1 | LUA-1 | Primary Production Sector | 1 | | |\n| https://dd.LUA-1_1 | LUA-1_1 | Agriculture | 2 | | |\n| https://dd.LUA-1_1_1 | LUA-1_1_1 | Commercial Crop Production | 3 | | |\n| https://dd.LUA-1_1_2 | LUA-1_1_2 | Farming Infrastructure | 3 | | |\n| https://dd.LUA-1_1_2_1 | LUA-1_1_2_1 | Animal Husbandry | 4 | | |\n| https://dd.LUA-1_1_2_2 | LUA-1_1_2_2 | Farming Storage | 4 | | |\n| https://dd.LUA-1_1_2_3 | LUA-1_1_2_3 | Other Farming Infrastructure | 4 | | |\n| https://dd.LUA-1_1_3 | LUA-1_1_3 | Production for Own Consumption | 3 | | |\n| https://dd.LUA-1_2 | LUA-1_2 | Forestry | 2 | | |\n| https://dd.LUA-1_3 | LUA-1_3 | Mining and Quarrying | 2 | 5 | |\n| https://dd.LUA-1_4 | LUA-1_4 | Aquaculture and Fishing | 2 | | |\n| https://dd.LUA-1_4_1 | LUA-1_4_1 | Aquaculture | 3 | | |\n| https://dd.LUA-1_4_2 | LUA-1_4_2 | Professional Wild Fishery | 3 | | |\n| https://dd.LUA-1_5 | LUA-1_5 | Other Primary Production | 2 | | |\n| https://dd.LUA-1_5_1 | LUA-1_5_1 | Hunting | 3 | | |\n\nThe table provides a hierarchical classification of Land Cover Classes (LCC), such as \"Water\" and its subtypes (e.g., \"Inland Water Bodies\"), and Land Use Attributes (LUA), like \"Primary Production Sector\" with its sub-sectors (e.g., \"Agriculture\", \"Forestry\", \"Mining and Quarrying\"). Specific \"Barcode\" values are assigned to \"Inland Water Bodies\" (3) and \"Mining and Quarrying\" (5), illustrating a simplified barcoding approach for these categories."} \ No newline at end of file diff --git a/.llm_cache/images/4e0e9fdfb77dbf3f8e0c639d421ce8e6.json b/.llm_cache/images/4e0e9fdfb77dbf3f8e0c639d421ce8e6.json new file mode 100644 index 00000000..61717ff2 --- /dev/null +++ b/.llm_cache/images/4e0e9fdfb77dbf3f8e0c639d421ce8e6.json @@ -0,0 +1 @@ +{"image_type": "table", "description": "This table provides a hierarchical classification of Copernicus Land Monitoring Service (CLMS) Land Cover Components, detailing codes, Uniform Resource Identifiers (URIs), descriptive names, and their hierarchical level, alongside \"Barcode\" values for specific land cover types. The table is structured into columns: \"URI\", \"Code\", \"Land Cover Components\", \"Label (Level)\", \"Barcode\", and \"Factor\".\n\nThe classification includes:\n- **Abiotic / Non-Vegetated Surfaces and Objects (LCC-1)** (Level 0, with red background shading): Subdivided into \"Artificial Surfaces and Constructions\" (LCC-1_1, Level 1, Barcode 1) and \"Natural Material Surfaces\" (LCC-1_2, Level 2). Artificial surfaces further branch into \"Sealed Artificial Surfaces and Constructions\" (LCC-1_1_1, Level 2) like \"Buildings\" (LCC-1_1_1_1, Level 3) and \"Open Sealed Surfaces\" (LCC-1_1_1_3, Level 3), and \"Non-Sealed Artificial Surfaces\" (LCC-1_1_2, Level 2, Barcode 1) like \"Waste Materials\" (LCC-1_1_2_2, Level 4). Natural Material Surfaces include \"Consolidated Surfaces\" (LCC-1_2_1, Level 3) like \"Bare Rock\" (LCC-1_2_1_1, Level 4) and \"Unconsolidated Surfaces\" (LCC-1_2_2, Level 3) which include \"Mineral Fragments\" (LCC-1_2_2_1, Level 4) such as \"Sand, Grit\" (LCC-1_2_2_1_3, Level 5, Barcode 1) and \"Bare Soils\" (LCC-1_2_2_2, Level 4, Barcode 1), and \"Natural Deposits\" (LCC-1_2_2_3, Level 4) including \"Organic Deposits (Peat)\" (LCC-1_2_2_3_2, Level 5).\n- **Biotic / Vegetation (LCC-2)** (Level 1, with green background shading): Subdivided into \"Woody Vegetation\" (LCC-2_1, Level 2) (e.g., \"Trees\", \"Bushes, Shrubs\"), \"Herbaceous Vegetation (Grass-Like, Forbs, Ferns)\" (LCC-2_2, Level 2) (e.g., \"Grasses, Sedges, Rushes, Cereals\", \"Non-Graminoids (Forbs, Ferns)\"), \"Succulents, Cacti\" (LCC-2_3, Level 2), and \"Lichens, Mosses, Algae\" (LCC-2_4, Level 2). The top-level LCC-2 has a Barcode of 3.\n- **Water (LCC-3)** (Level 1, with blue background shading): Subdivided into \"Liquid Water Bodies\" (LCC-3_1, Level 2) and \"Solid Waters\" (LCC-3_2, Level 2). Liquid Water Bodies include \"Inland Water Bodies\" (LCC-3_1_1, Level 3, Barcode 1) (e.g., \"Water Course\", \"Standing Water\") and \"Marine Waters\" (LCC-3_1_2, Level 3). Solid Waters include \"Snow\" (LCC-3_2_1, Level 3) and \"Ice, Glaciers\" (LCC-3_2_2, Level 3, Barcode 1, Factor 1).\n\nAdditional metadata is present: \"Class Code* (If continuous dataset, enter \"0\" as Class Code)\" is indicated, alongside \"100% EAGLE Compliant\" status \"Yes\", a \"Colour Code\" of \"#000000\", and a 'Name*' field showing \"Sports area\". The \"Factor\" column is largely empty, with a single value of '1' for \"Ice, Glaciers\"."} \ No newline at end of file diff --git a/.llm_cache/images/4e7996f2eab8c321fb188c0c010123ef.json b/.llm_cache/images/4e7996f2eab8c321fb188c0c010123ef.json new file mode 100644 index 00000000..498bf209 --- /dev/null +++ b/.llm_cache/images/4e7996f2eab8c321fb188c0c010123ef.json @@ -0,0 +1 @@ +{"image_type": "map", "description": "Two choropleth maps illustrate the spatial distribution of the Start Of Season Day (SOSD) for season 1 in 2025 across Europe, extending into parts of North Africa and the Middle East. Both maps share a common colour-wheel legend showing SOSD by month and day: Jan (red), Feb (pink), Mar (light purple), Apr (dark purple), May (blue), Jun (light blue), Jul (teal), Aug (light green), Sep (yellow-green), Oct (yellow), Nov (orange), Dec (red-orange). The inner rings of the colour wheel indicate day '1' and '21' within each month. Both maps span from approximately 25°N to 70°N Latitude and -15°W to 45°E Longitude, and include a 0, 500, 1,000 km scale bar.\n\nMap (a) shows SOSD derived from a long time series of MODIS PPI data (2000–2026).\nMap (b) shows SOSD derived from a short time series of MODIS PPI data (2024–2026).\n\nBoth maps exhibit similar spatial patterns for SOSD: earlier season onset (January–February, red/orange tones) in southern Europe and North Africa, and progressively later onset (May–August, blue/green tones) in northern Europe and higher latitudes. The visual comparison indicates strong agreement in the large-scale spatial distributions of SOSD between the long and short time series processing approaches, with overall high consistency across Europe."} \ No newline at end of file diff --git a/.llm_cache/images/56a92cd4eff90eca513afbb3510bf9cf.json b/.llm_cache/images/56a92cd4eff90eca513afbb3510bf9cf.json new file mode 100644 index 00000000..3d748559 --- /dev/null +++ b/.llm_cache/images/56a92cd4eff90eca513afbb3510bf9cf.json @@ -0,0 +1 @@ +{"image_type": "chart", "description": "Line chart illustrating the temporal evolution of the Phenological Phase Index (PPI) from late 2018 through early 2020. The Y-axis represents PPI values, ranging from 0 to 2.0. The X-axis represents time in years, labelled \"2019\" and \"2020\", showing data from approximately late 2018 to early 2020.\n\nThe chart displays three data series:\n* \"Raw data\" (open circles)\n* \"Clear-sky land observation\" (solid black circles)\n* \"Seasonal trajectory\" (red line)\n\nColoured background areas delineate phenological phases:\n* \"Green up\" (green shaded area)\n* \"Green peak\" (orange-red shaded area)\n* \"Green down\" (yellow-orange shaded area)\n\nTwo distinct seasonal cycles are visible. The first, shorter cycle occurs in late 2018 to early 2019, primarily showing a \"Green down\" phase where PPI values decrease from approximately 0.8 to near 0. The second, more prominent cycle starts in mid-2019, showing a \"Green up\" phase where PPI rises from near 0 to above 1.0, followed by a \"Green peak\" phase reaching maximum values around 1.3 to 1.4, and then a \"Green down\" phase where PPI decreases back towards 0 by late 2019. The \"Seasonal trajectory\" (red line) is a smoothed curve that fits the \"Clear-sky land observation\" data, particularly during the active growing seasons, representing the phenological cycle. Raw data points show more scatter, especially when PPI values are low."} \ No newline at end of file diff --git a/.llm_cache/images/62ad2024ecb67d3521a13d3c3ab1d147.json b/.llm_cache/images/62ad2024ecb67d3521a13d3c3ab1d147.json new file mode 100644 index 00000000..f5b6bc09 --- /dev/null +++ b/.llm_cache/images/62ad2024ecb67d3521a13d3c3ab1d147.json @@ -0,0 +1 @@ +{"image_type": "table", "description": "This table displays sample entries from a dataset, likely from the Copernicus Land Monitoring Service (CLMS) Urban Atlas 2018 (UA2018) for Innsbruck, Austria. The table shows 11 rows of data out of a total of 12068 features, with no features currently filtered or selected.\n\n| fid | country | fua_name | fua_code | code_2018 | class_2018 | prod_date |\n|---|---|---|---|---|---|---|\n| 1 | AT | Innsbruck | AT005L3 | 11210 | Discontinuous dense urban fabric | 2020-08 |\n| 2 | AT | Innsbruck | AT005L3 | 14200 | Sports and leisure facilities | 2020-08 |\n| 3 | AT | Innsbruck | AT005L3 | 11210 | Discontinuous dense urban fabric | 2020-08 |\n| 4 | AT | Innsbruck | AT005L3 | 11210 | Discontinuous dense urban fabric | 2020-08 |\n| 5 | AT | Innsbruck | AT005L3 | 13400 | Land without current use | 2020-08 |\n| 6 | AT | Innsbruck | AT005L3 | 11220 | Discontinuous medium-density urban fabric | 2020-08 |\n| 7 | AT | Innsbruck | AT005L3 | 12100 | Industrial, commercial, public and military units | 2020-08 |\n| 8 | AT | Innsbruck | AT005L3 | 12100 | Industrial, commercial, public and military units | 2020-08 |\n| 9 | AT | Innsbruck | AT005L3 | 12100 | Industrial, commercial, public and military units | 2020-08 |\n| 10 | AT | Innsbruck | AT005L3 | 12100 | Industrial, commercial, public and military units | 2020-08 |\n| 11 | AT | Innsbruck | AT005L3 | 11240 | Discontinuous very low-density urban fabric | 2020-08 |\n\nThe table details various land cover / land use (LCLU) classes within the Functional Urban Area (FUA) of Innsbruck (fua_code: AT005L3), Austria (country: AT). Each entry includes a feature identifier (fid), a land cover code (code_2018), and its corresponding descriptive class name (class_2018) from the Urban Atlas 2018 nomenclature. All entries shown have a production date of 2020-08."} \ No newline at end of file diff --git a/.llm_cache/images/72efb44e1dfa69faac1d13f39bea722c.json b/.llm_cache/images/72efb44e1dfa69faac1d13f39bea722c.json new file mode 100644 index 00000000..9a629e8c --- /dev/null +++ b/.llm_cache/images/72efb44e1dfa69faac1d13f39bea722c.json @@ -0,0 +1 @@ +{"image_type": "chart", "description": "A line chart illustrating the derivation of TIMESAT parameters from a time series of data. The Y-axis is labelled \"Data\" and shows values from 0 to over 160. The X-axis is labelled \"Time\" and ranges from approximately 12 to 61 units. The chart displays two data series: a noisy blue line representing the raw data and a smooth red line representing the fitted curve, likely obtained using TIMESAT software. Several key parameters are annotated on the chart: `e` marks the peak value of the smoothed red curve. `f` indicates the maximum data value achieved (peak value) relative to the X-axis. `g` represents the amplitude, defined as the difference between the peak value and the base level during the trough of the cycle. Points `a` and `b` on the smoothed red curve define the start and end of a specific period or phenological phase. `c` measures the duration of this phase, spanning horizontally between the vertical lines dropped from points `a` and `b`. `d` denotes a baseline data value, approximately 90 units on the Y-axis. The shaded area `h` (dark grey) represents the integral of the smoothed curve above the baseline `d` during the duration `c`. The shaded area `i` (light grey) represents the integral of the baseline `d` over the same duration `c`. The text \"TIMESAT parameters\" is present in the bottom left, indicating the purpose of the diagram. A Creative Commons (cc) icon is visible in the bottom right corner."} \ No newline at end of file diff --git a/.llm_cache/images/772a16d999636304fd9f12e8e92f01b3.json b/.llm_cache/images/772a16d999636304fd9f12e8e92f01b3.json new file mode 100644 index 00000000..fb39f4c4 --- /dev/null +++ b/.llm_cache/images/772a16d999636304fd9f12e8e92f01b3.json @@ -0,0 +1 @@ +{"image_type": "chart", "description": "This line chart displays the temporal evolution of Scaled PPI (Phenological Phase Index) values, fitted with a cubic spline, from 2018-01-01 to 2020-01-01. The Y-axis represents \"Scaled PPI (x10000)\" ranging from 0 to 10000. The X-axis represents time in ISO 8601 date format. The black line indicates the \"Cubic spline fit\", and red circles mark the \"Start/End of season\".\n\nThe chart shows two distinct phenological cycles. The first cycle, during 2018, begins around 2018-03-01 (first red circle) with a Scaled PPI of approximately 1900, peaks at point A with a value of approximately 7000 around 2018-05-01, and ends around 2018-07-01 (second red circle) with a value of approximately 1200. Following this, there is a lower activity period (labeled 'a' before the peak, 'b' after, and a subsequent smaller peak B around 1200).\n\nThe second cycle, during 2019, shows a period of very low activity (labeled 'c') around early 2019. It then begins around 2019-04-01 (third red circle) with a Scaled PPI of approximately 2200. This cycle exhibits a bimodal pattern, with a primary peak C reaching approximately 8800 around 2019-06-01, followed by a trough 'd' at approximately 6000 around 2019-08-01, and a secondary peak D at approximately 8200 around 2019-10-01. The season concludes around 2019-12-01 (fourth red circle) with a Scaled PPI value of approximately 1300. The overall Scaled PPI values in 2019 are generally higher than in 2018, indicating potentially higher or prolonged vegetation activity."} \ No newline at end of file diff --git a/.llm_cache/images/7cf817c6c6a0fb7dfba709884fbdfc62.json b/.llm_cache/images/7cf817c6c6a0fb7dfba709884fbdfc62.json new file mode 100644 index 00000000..f5510b8c --- /dev/null +++ b/.llm_cache/images/7cf817c6c6a0fb7dfba709884fbdfc62.json @@ -0,0 +1 @@ +{"image_type": "map", "description": "Two choropleth maps display the spatial distribution of 2025 Total Productivity (TPROD) for season 1 across Europe, ranging from approximately -10° to 45° Longitude and 30° to 65° Latitude. The map on the left represents TPROD calculated using a \"Long time series\" of MODIS PPI data (24 February 2000 to 19 April 2026), while the map on the right uses a \"Short time series\" (1 January 2024 to 19 April 2026). Both maps share an identical colour legend, representing TPROD values in m²m⁻².day: dark red (0), darker orange (30), orange (60), light orange (90), light yellow (120), light green (150), green (180), darker green (210), teal (240), darker teal (270), dark blue (300), and dark blue triangle (>330). Higher TPROD values (green to dark blue, 150–330 m²m⁻².day) are concentrated in central and northern Europe, including areas of France, Germany, Poland, and Fennoscandia. Lower TPROD values (red to orange, 0–90 m²m⁻².day) are observed in southern Europe (e.g., Spain, Portugal, Italy, Greece), North Africa, parts of Eastern Europe, and the northernmost regions of Scandinavia and Iceland. The visual comparison of the two maps shows strong agreement and high consistency in the large-scale spatial distributions of TPROD between the long and short time series processing approaches, with only minor localized differences. Each map includes a scale bar indicating 0, 500, and 1,000 km. The Y-axis is labelled Latitude (°) and the X-axis is labelled Longitude (°)."} \ No newline at end of file diff --git a/.llm_cache/images/7f215ded9c91c929866082606671be97.json b/.llm_cache/images/7f215ded9c91c929866082606671be97.json new file mode 100644 index 00000000..4ad47b41 --- /dev/null +++ b/.llm_cache/images/7f215ded9c91c929866082606671be97.json @@ -0,0 +1 @@ +{"image_type": "table", "description": "This table presents a segment of the Land Use Attribute (LUA) classification scheme, specifically detailing \"Cultural, Entertainment and Recreational Services\" and \"Transport Networks, Logistics, Utilities\". The table includes metadata for the entire dataset: \"Class Code\" is 41, \"Name\" is \"Sports area\", \"100% EAGLE Compliant\" is \"Yes\", and \"Colour Code\" is \"#000000\".\n\nThe main table columns are:\n| URI | Code | Label | Level | Barcode | Factor |\n|:----------------------------|:-------------|:--------------------------------------------------|:------|:--------|:-------|\n| https://dd.LUA-3_3_4_2 | LUA-3_3_4_2 | Monastery | 4 | | |\n| https://dd.LUA-3_3_4_3 | LUA-3_3_4_3 | Cemetery | 4 | | |\n| https://dd.LUA-3_3_5 | LUA-3_3_5 | Other Community Services | 3 | | |\n| https://dd.LUA-3_4 | LUA-3_4 | Cultural, Entertainment and Recreational Services | 2 | | |\n| https://dd.LUA-3_4_1 | LUA-3_4_1 | Cultural Services | 3 | | |\n| https://dd.LUA-3_4_1_1 | LUA-3_4_1_1 | Indoor Cultural Service | 4 | | |\n| https://dd.LUA-3_4_1_2 | LUA-3_4_1_2 | Outdoor Cultural Service | 4 | | |\n| https://dd.LUA-3_4_2 | LUA-3_4_2 | Entertainment | 3 | | |\n| https://dd.LUA-3_4_3 | LUA-3_4_3 | Sports Infrastructure | 3 | 5 | |\n| https://dd.LUA-3_4_3_1 | LUA-3_4_3_1 | Golf Course | 4 | | |\n| https://dd.LUA-3_4_3_2 | LUA-3_4_3_2 | Ski Piste | 4 | | |\n| https://dd.LUA-3_4_3_3 | LUA-3_4_3_3 | Outdoor Racecourse | 4 | | |\n| https://dd.LUA-3_4_3_4 | LUA-3_4_3_4 | Sport Hall | 4 | | |\n| https://dd.LUA-3_4_3_5 | LUA-3_4_3_5 | Stadium | 4 | | |\n| https://dd.LUA-3_4_3_6 | LUA-3_4_3_6 | Swimming Pool | 4 | | |\n| https://dd.LUA-3_4_3_7 | LUA-3_4_3_7 | Sports Ground | 4 | | |\n| https://dd.LUA-3_4_3_8 | LUA-3_4_3_8 | Indoor Sport-/Fitness Facility | 4 | | |\n| https://dd.LUA-3_4_3_9 | LUA-3_4_3_9 | Yachtharbour, Sport Boat Marina | 4 | | |\n| https://dd.LUA-3_4_4 | LUA-3_4_4 | Open Air Recreational Areas | 3 | | |\n| https://dd.LUA-3_4_4_1 | LUA-3_4_4_1 | Urban Greenery and City Parks | 4 | | |\n| https://dd.LUA-3_4_4_2 | LUA-3_4_4_2 | (Semi-)Natural Areas Used for Recreation | 4 | | |\n| https://dd.LUA-3_4_5 | LUA-3_4_5 | Other Recreational Services | 3 | | |\n| https://dd.LUA-3_4_5_1 | LUA-3_4_5_1 | Allotment Garden | 4 | | |\n| https://dd.LUA-3_4_5_2 | LUA-3_4_5_2 | Amateur Fishing | 4 | | |\n| https://dd.LUA-3_5 | LUA-3_5 | Other Services | 2 | | |\n| https://dd.LUA-4 | LUA-4 | Transport Networks, Logistics, Utilities | 1 | | |\n\nThe \"Level\" column indicates the hierarchical depth of each Land Use Attribute (LUA) category. The \"Barcode\" column contains a value of '5' for the \"Sports Infrastructure\" (LUA-3_4_3) entry, suggesting a specific classification code for this category within a wider \"Sports area\" context. The table details various sub-categories under \"Sports Infrastructure,\" all at Level 4, such as \"Golf Course,\" \"Ski Piste,\" \"Stadium,\" and \"Swimming Pool.\""} \ No newline at end of file diff --git a/.llm_cache/images/8ba3cb3cd676d6879070e1b47fd0f76a.json b/.llm_cache/images/8ba3cb3cd676d6879070e1b47fd0f76a.json new file mode 100644 index 00000000..85bf6cb7 --- /dev/null +++ b/.llm_cache/images/8ba3cb3cd676d6879070e1b47fd0f76a.json @@ -0,0 +1 @@ +{"image_type": "chart", "description": "A line chart showing the Plant Phenology Indicator (PPI) over time, spanning from late 2018/early 2019 to early 2020. The Y-axis represents PPI values, ranging from 0 to 2.0. The X-axis represents time, marked with \"2019\" and \"2020\".\n\nThe chart displays multiple data series:\n* \"Raw data\" are shown as small open white circles across the entire period.\n* \"Clear-sky land observations\" are shown as solid black circles, typically clustered around the seasonal trajectory.\n* A \"Seasonal trajectory\" is depicted by a thick red line, representing a smoothed curve of phenological development.\n* Three distinct phenological phases are indicated by shaded background regions: \"Green up\" (light green), \"Green peak\" (darker green), and \"Green down\" (orange).\n\nThe chart illustrates two seasonal cycles. The first cycle shows a \"Green down\" phase in early 2019, with PPI values decreasing from approximately 0.8 to 0.2. The second, more prominent cycle starts around mid-2019. This cycle begins with a \"Green up\" phase where PPI values rise from approximately 0.2 to 0.9. It then transitions into a \"Green peak\" phase, where PPI reaches its maximum around 1.4 near the end of 2019. Finally, a \"Green down\" phase extends into early 2020, with PPI values decreasing from approximately 1.2 to 0.2. Clear-sky land observations are concentrated along the seasonal trajectory, particularly during the green-up and green peak phases of the main growing season, representing valid observations for VPP (Vegetation Productivity Parameter) quality assurance."} \ No newline at end of file diff --git a/.llm_cache/images/8dd2854b2170c7518ac857ca3cbb7327.json b/.llm_cache/images/8dd2854b2170c7518ac857ca3cbb7327.json new file mode 100644 index 00000000..17034ba3 --- /dev/null +++ b/.llm_cache/images/8dd2854b2170c7518ac857ca3cbb7327.json @@ -0,0 +1 @@ +{"image_type": "diagram", "description": "This process flow diagram illustrates the generation of the MR-VPP (Vegetation Phenology and Productivity) product suite outputs for the 2000–2025 period, providing spatially consistent vegetation phenology and productivity information for the EEA-39 region and Ukraine.\n\nThe workflow consists of three main stages: Input data, Processing concept, and MR-VPP product suite outputs.\n\n**1. Input data:**\n * **MODIS MCD43A4 Collection 6.1:** Provides Nadir BRDF-Adjusted Reflectance (NBAR) data, including Red and Near-Infrared (NIR) reflectance over time.\n * **MODIS MCD43A2 Collection 6.1:** Provides Bidirectional Reflectance Distribution Function (BRDF), Albedo quality, and geometry information.\n * **Input archive:** Daily Moderate Resolution Imaging Spectroradiometer (MODIS) source data, used for VPP estimation, spans from February 2000 to April 2026.\n\n**2. Processing concept:**\n * **PPI calculation:** The Plant Phenology Index (PPI) is calculated, derived from MODIS Red and NIR NBAR data.\n * **PPI quality weighting:** PPI data is weighted using quality information from the MODIS MCD43A2 product.\n * **TIMESAT v4.2 smoothing:** Raw PPI trajectories are smoothed using the TIMESAT v4.2 algorithm to produce smoothed seasonal PPI trajectories, illustrated with an example over monthly periods (JFMAMJJASOND).\n * **Phenology and productivity retrieval:** This step retrieves phenology and productivity parameters, capable of identifying up to two growing seasons per year.\n\n**3. MR-VPP product suite outputs (2000–2025):**\n * **A) Seasonal trajectories (ST):**\n * Outputs include Plant Phenology Index (PPI) and PPI Quality Assurance (QA).\n * Delivered at a nominal 5-day interval.\n * A regular archive is maintained for visual inspection and time-series analysis.\n * **B) Annual VPP products:**\n * Consist of 13 VPP parameters plus VPP QA.\n * Annual outputs are generated for the period 2000–2025.\n * Can account for up to two growing seasons per year (Season 1 and Season 2), as shown by example curves over the JFMAMJJASOND period.\n * The 13 VPP parameters include: SOSD, EOSD, MAXD, LENGTH, SOSV, EOSV, MAXV, MINV, AMPL, TPROD, SPROD, LSLOPE, RSLOPE.\n * These products summarise timing, magnitude, and seasonal productivity."} \ No newline at end of file diff --git a/.llm_cache/images/920c5da07ecc8d059bc820a672afd149.json b/.llm_cache/images/920c5da07ecc8d059bc820a672afd149.json new file mode 100644 index 00000000..5239c5d6 --- /dev/null +++ b/.llm_cache/images/920c5da07ecc8d059bc820a672afd149.json @@ -0,0 +1 @@ +{"image_type": "diagram", "description": "This diagram illustrates the TIMESAT version 4.2 processing overview as a flowchart. The process begins with \"Daily PPI seasonal trajectories\" (Plant Phenology Index time-series data) as input.\n\nThe main processing path follows these steps:\n1. **Daily PPI seasonal trajectories** are used to \"Find all potential seasons\".\n2. From these seasons, the system proceeds to \"Extract VPP parameters\" (Vegetation Phenology Parameters).\n3. The extracted VPP parameters are then subjected to a decision step: \"Check if VPP parameters within limits\".\n * **IF** VPP parameters are **not** within limits (\"No\" branch), **THEN** VPP is set to \"NoData\" and the Quality Assurance (QA) value is set to \"255\" (indicating the data was processed but no season was found). This is an end state for that particular VPP.\n * **IF** VPP parameters **are** within limits (\"Yes\" branch), **THEN** the process continues to \"Assign seasons to years\", resulting in \"VPP parameters\".\n\nIn parallel, a \"Setting\" input feeds into \"Raw PPI time series\". Both the \"VPP parameters\" (from the main processing path) and the \"Raw PPI time series\" are then used to \"Estimate Quality\". This \"Estimate Quality\" step produces \"VPP parameters Quality\"."} \ No newline at end of file diff --git a/.llm_cache/images/9219f0d83d9ac0d2730ef0e50765b0c4.json b/.llm_cache/images/9219f0d83d9ac0d2730ef0e50765b0c4.json new file mode 100644 index 00000000..b19dc269 --- /dev/null +++ b/.llm_cache/images/9219f0d83d9ac0d2730ef0e50765b0c4.json @@ -0,0 +1 @@ +{"image_type": "map", "description": "Two choropleth maps display the mean Total Productivity (TPROD) in m²·m⁻²·day across Europe and parts of North Africa, aggregated at a 0.1 degree grid resolution. The map on the left shows \"Mean TPROD 2000 s1\" (for the year 2000, season 1), and the map on the right shows \"Mean TPROD 2025 s1\" (for the year 2025, season 1). Both maps use an identical colour scale ranging from 10 m²·m⁻²·day (brown) to 210 m²·m⁻²·day (teal), indicating lower to higher productivity respectively. A compass rose indicates North, and a scale bar shows distances of 0, 500, and 1,000 km.\n\nIn both 2000 and 2025, areas of high TPROD (teal green) are concentrated across Central and Eastern Europe, extending into the British Isles. Lower TPROD (brown) is consistently observed in Scandinavia, the Iberian Peninsula, Mediterranean coastal regions, and North Africa. A comparison between the two maps suggests a general trend of reduced TPROD in 2025 compared to 2000 across several regions. Specifically, parts of Eastern Europe, the Balkan Peninsula, and Southern Europe show a noticeable shift towards lower productivity (more brown hues) in the 2025 projection, indicating potential environmental changes or drought impacts."} \ No newline at end of file diff --git a/.llm_cache/images/9b6bf208da4a290a31d1d20e7cd36dd9.json b/.llm_cache/images/9b6bf208da4a290a31d1d20e7cd36dd9.json new file mode 100644 index 00000000..eb5c8983 --- /dev/null +++ b/.llm_cache/images/9b6bf208da4a290a31d1d20e7cd36dd9.json @@ -0,0 +1 @@ +{"image_type": "map", "description": "Two choropleth maps of Europe, including parts of North Africa and Western Asia, are presented side-by-side, depicting the spatial distribution of a vegetation-related metric with the unit `m²m².day`. Both maps share the same colour legend and scale, indicating the value of the metric:\n* Dark Red: 0\n* Brownish-Red: 30\n* Orange-Brown: 60\n* Light Orange: 90\n* Pale Yellow: 120\n* Pale Green: 150\n* Light Green: 180\n* Medium Green: 210\n* Darker Green: 240\n* Teal: 270\n* Dark Teal: 300\n* Dark Blue: >330\n\nHigher values (green and blue) represent higher levels of the metric, while lower values (red and orange) represent lower levels. Both maps use the coordinate reference system (CRS) ETRS89-extended / LAEA Europe (EPSG:3035). A scale bar at the bottom of each map indicates distances from 0 to 1,000 km, with increments at 250, 500, and 750 km. A north arrow is present in the top-left corner of each map.\n\nThe **left map** shows widespread moderate to high values (green shades) across Central Europe, the British Isles, and parts of Scandinavia, indicating robust vegetation activity.\nThe **right map**, in comparison, shows a noticeable decrease in the metric across large parts of continental Europe, including Central and Eastern Europe, the Iberian Peninsula, and the British Isles, with these areas predominantly coloured in orange and reddish tones (lower values). High values (green and blue) persist in mountainous regions like the Alps and in northern Scandinavia in both maps. The difference between the two maps suggests a temporal variation, possibly representing different seasons, phenological stages, or years, impacting vegetation vigour across the continent."} \ No newline at end of file diff --git a/.llm_cache/images/a89836dd70d12a281defbbda222dafc8.json b/.llm_cache/images/a89836dd70d12a281defbbda222dafc8.json new file mode 100644 index 00000000..15c22c04 --- /dev/null +++ b/.llm_cache/images/a89836dd70d12a281defbbda222dafc8.json @@ -0,0 +1 @@ +{"image_type": "diagram", "description": "This workflow diagram illustrates the generic process for data ingestion and subsequent extraction within the Copernicus Land Monitoring Service (CLMS) CLC+ Core System. The workflow is divided into two main phases: an Ingestion phase (orange area) and an Extraction phase (purple area).\n\n**Ingestion Phase:**\n1. The process begins with establishing \"Reporting or extraction requirements.\"\n2. An \"Extraction concept\" is developed based on these requirements.\n3. This is followed by \"Data acquisition and selection.\"\n4. \"EAGLE barcoding\" is then performed.\n5. The barcoded data proceeds to \"Ingestion\" into the CLC+ Core System.\n6. If \"Adaptions of EAGLE barcoding\" are required (e.g., for optional re-ingestion), the process moves to this step, which leads to \"Re-Ingestion\". There is a feedback loop from \"Re-Ingestion\" back to \"Adaptions of EAGLE barcoding\" for iterative adjustments.\n7. Once the ingestion is complete and satisfactory, the data is marked by \"Publish Ingestion.\"\n\n**Extraction Phase:**\n1. Following \"Publish Ingestion,\" the process moves to \"Input Classes selection.\"\n2. This is followed by the \"Definition of Output Classes.\"\n3. \"Extraction rulesets\" are then defined. There is a feedback loop from \"Extraction rulesets\" back to \"Input Classes selection,\" allowing refinement of input classes based on ruleset definitions.\n4. An \"Extraction\" is performed using the defined rulesets. There is a feedback loop from \"Extraction\" back to \"Extraction rulesets\" and \"Input Classes selection,\" indicating that extraction results may necessitate adjustments to rulesets or input classes.\n5. The final step is to \"Publish Extraction.\""} \ No newline at end of file diff --git a/.llm_cache/images/b08a8132b99b9a13639476be6698a2ca.json b/.llm_cache/images/b08a8132b99b9a13639476be6698a2ca.json new file mode 100644 index 00000000..0c256470 --- /dev/null +++ b/.llm_cache/images/b08a8132b99b9a13639476be6698a2ca.json @@ -0,0 +1 @@ +{"image_type": "chart", "description": "This image presents four density scatter plots (a, b, c, d) comparing Vegetation Phenology and Productivity (VPP) metrics derived from short and long input time series for 2025, season 2. Each plot displays data for N = 66,599 valid paired pixels. The x-axis represents values from the long time series, and the y-axis represents values from the short time series. A dashed black line indicates the 1:1 agreement, and a solid red line shows the regression fit. A vertical colour bar on the right of each subplot indicates relative density, ranging from 10^0 (light blue) to 10^2 (dark blue), with a maximum relative density of 100.\n\nSubplot (a) shows the Start Of Season Day (SOSD):\n- X-axis: SOSD long time series, ranging approximately from 100 to 350.\n- Y-axis: SOSD short time series, ranging approximately from 100 to 350.\n- Statistics: R² = 0.975, regression equation y = 0.992x + 2.00, Bias = -0.09, RMSE = 9.59, MAE = 0.85, with 97.9% of points on the 1:1 line.\n\nSubplot (b) shows the End Of Season Day (EOSD):\n- X-axis: EOSD long time series, ranging approximately from 200 to 650.\n- Y-axis: EOSD short time series, ranging approximately from 200 to 650.\n- Statistics: R² = 0.910, regression equation y = 0.971x + 15.83, Bias = 4.97, RMSE = 33.25, MAE = 7.63, with 93.4% of points on the 1:1 line.\n\nSubplot (c) shows the Amplitude (AMPL):\n- X-axis: AMPL long time series, ranging from 0 to 5.\n- Y-axis: AMPL short time series, ranging from 0 to 5.\n- Statistics: R² = 0.997, regression equation y = 0.999x + 0.01, Bias = 0.01, RMSE = 0.05, MAE = 0.01, with 96.7% of points on the 1:1 line.\n\nSubplot (d) shows the Total Productivity (TPROD):\n- X-axis: TPROD long time series, ranging from 0 to 350.\n- Y-axis: TPROD short time series, ranging from 0 to 350.\n- Statistics: R² = 0.974, regression equation y = 0.991x + 2.10, Bias = 1.44, RMSE = 10.90, MAE = 1.98, with 95.5% of points on the 1:1 line.\n\nThe plots demonstrate strong consistency between the short and long time series processing approaches for all four VPP metrics, with high R² values and a large percentage of data points close to the 1:1 line, particularly for AMPL which shows the highest agreement."} \ No newline at end of file diff --git a/.llm_cache/images/b15cb6b544708cc34b64cd47fc64b29f.json b/.llm_cache/images/b15cb6b544708cc34b64cd47fc64b29f.json new file mode 100644 index 00000000..64c7a723 --- /dev/null +++ b/.llm_cache/images/b15cb6b544708cc34b64cd47fc64b29f.json @@ -0,0 +1 @@ +{"image_type": "diagram", "description": "This is a data processing workflow diagram illustrating the extraction of Vegetation Phenology and Productivity (VPP) parameters. The process involves three main sequential steps:\n1. **Pre-processing**: This step takes `Phenology Primary Indicator (PPI) time series`, associated `Quality flags`, and `Sensing dates` as inputs. It is also influenced by `Settings`.\n2. **Data smoothing**: The output from `Pre-processing` is fed into the `Data smoothing` step.\n3. **VPP parameter extraction**: The smoothed data is then used to perform `VPP parameter extraction`.\n\nThe `VPP parameter extraction` step generates two outputs: `Seasonal VPP` (likely phenology metrics such as Start-Of-Season Date (SOSD) and End-Of-Season Date (EOSD)) and `VPP quality flags` (Quality Assurance (QA) information associated with the VPP parameters)."} \ No newline at end of file diff --git a/.llm_cache/images/c89b86bc15d1e1946adbf2126d1f6f4c.json b/.llm_cache/images/c89b86bc15d1e1946adbf2126d1f6f4c.json new file mode 100644 index 00000000..1ed90537 --- /dev/null +++ b/.llm_cache/images/c89b86bc15d1e1946adbf2126d1f6f4c.json @@ -0,0 +1 @@ +{"image_type": "diagram", "description": "This diagram illustrates the computational workflow for determining the Plant Photosynthetic Index (PPI). The process involves multiple parallel and sequential calculation steps, originating from two primary inputs:\n1. The \"Daily MODIS NBAR product\" serves as an input for the \"Compute DVI\" (Difference Vegetation Index) step, which is calculated using Equation 2. The output of this DVI computation is then used in two subsequent steps.\n2. The DVI output from step 1 is used to \"Compute MDVI\" (temporal potential maximum DVI).\n3. In parallel, an input derived from \"Compute diffuse radiation frac. Eq. 5\" is used to \"Compute QE\" (quantum efficiency) using Equation 4.\n4. The QE output from step 3 is subsequently used to \"Compute K\" (light extinction coefficient) using Equation 3.\n5. Finally, all intermediate computations converge to \"Compute PPI\" (Plant Photosynthetic Index) using Equation 1. This final step directly integrates the outputs from the DVI computation, the MDVI computation, and the K computation."} \ No newline at end of file diff --git a/.llm_cache/images/d83e527495e21e29642a0fa3fb6686a7.json b/.llm_cache/images/d83e527495e21e29642a0fa3fb6686a7.json new file mode 100644 index 00000000..11c14ee2 --- /dev/null +++ b/.llm_cache/images/d83e527495e21e29642a0fa3fb6686a7.json @@ -0,0 +1 @@ +{"image_type": "diagram", "description": "This process flow diagram illustrates the algorithm for retrieving Vegetation Phenology Products (VPP). The workflow is divided into three main sections: MODIS NBAR product, Vegetation index, and TIMESAT processing.\n\nThe process begins with the **MODIS NBAR product** inputs:\n1. Nadir Bidirectional Reflectance Distribution Function Adjusted Reflectance (NBAR) from MCD43A4.\n2. Data quality and Solar Zenith Angle (SZA) from MCD43A2.\n\nThese inputs are used in the **Vegetation index** stage:\n3. Compute per-pixel Modified Normalised Difference Vegetation Index (MDVI).\n4. Compute daily Plant Phenology Index (PPI) and its associated data flag.\n\nFollowing the vegetation index computation, a decision point checks for **sufficient valid data**:\n5. IF \"Sufficient valid data?\" is \"Yes\", THEN the process continues to **TIMESAT** pre-processing.\n6. IF \"Sufficient valid data?\" is \"No\", THEN the process concludes by outputting \"5-daily PPI and Quality Assurance (QA) for archiving\".\n\nFor the \"Yes\" path, the **TIMESAT** processing involves:\n7. TIMESAT Pre-processing, which includes dummy years and assignment of weights.\n8. This step then branches into two parallel fitting processes:\n a. Sinusoidal function fitting to determine the season number.\n b. Cubic spline fitting.\n9. Both fitting processes converge to a second decision point: \"Phenology present?\".\n a. IF \"Phenology present?\" is \"Yes\", THEN the output is \"Annual phenology parameters and QA\".\n b. IF \"Phenology present?\" is \"No\", THEN the output is \"Missing data / no phenology estimation (QA=255)\"."} \ No newline at end of file diff --git a/.llm_cache/images/dc30efd9db747c5f7dbc5e83da3e2a9b.json b/.llm_cache/images/dc30efd9db747c5f7dbc5e83da3e2a9b.json new file mode 100644 index 00000000..e86da257 --- /dev/null +++ b/.llm_cache/images/dc30efd9db747c5f7dbc5e83da3e2a9b.json @@ -0,0 +1 @@ +{"image_type": "table", "description": "This table presents an excerpt from the EAGLE (EIONET Action Group on Land monitoring in Europe) matrix, detailing hierarchical classifications for Land Cover Components (LCC) and Land Use Attributes (LUA) used within the Copernicus Land Monitoring Service (CLMS) CLC+ Core consortium.\n\nThe table includes the following metadata fields: `Class Code*` with value `84100`, `Name*` with value `Open sea`, `100% EAGLE Compliant*` with value `Yes`, and `Colour Code` with value `#e6f5f3`.\n\n| Code | Label | Level | Factor |\n|---|---|---|---|\n| LCC-2_2_1_2 | Reeds, Bamboos, Canes | 4 | |\n| LCC-2_2_2 | Non-Graminoids (Forbs, Ferns) | 3 | |\n| LCC-2_3 | Succulents, Cacti | 2 | |\n| LCC-2_4 | Lichens, Mosses, Algae | 2 | |\n| LCC-2_4_1 | Lichens | 3 | |\n| LCC-2_4_2 | Mosses | 3 | |\n| LCC-2_4_3 | Algae | 3 | |\n| LCC-2_4_3_1 | Macro Algae | 4 | |\n| LCC-2_4_3_2 | Micro Algae (Plankton) | 4 | |\n| LCC-3 | Water | 1 | |\n| LCC-3_1 | Liquid Water Bodies | 2 | |\n| LCC-3_1_1 | Inland Water Bodies | 3 | |\n| LCC-3_1_1_1 | Water Course | 4 | |\n| LCC-3_1_1_2 | Standing Water | 4 | |\n| LCC-3_1_2 | Marine Waters | 3 | 5 |\n| LCC-3_2 | Solid Waters | 2 | |\n| LCC-3_2_1 | Snow | 3 | |\n| LCC-3_2_2 | Ice, Glaciers | 3 | |\n| LUA | Land Use Attributes | 0 | |\n| LUA-1 | Primary Production Sector | 1 | |\n| LUA-1_1 | Agriculture | 2 | |\n| LUA-1_1_1 | Commercial Crop Production | 3 | |\n| LUA-1_1_2 | Farming Infrastructure | 3 | |\n| LUA-1_1_2_1 | Animal Husbandry | 4 | |\n| LUA-1_1_2_2 | Farming Storage | 4 | |\n| LUA-1_1_2_3 | Other Farming Infrastructure | 4 | |\n| LUA-1_1_3 | Production for Own Consumption | 3 | |\n| LUA-1_2 | Forestry | 2 | |\n| LUA-1_3 | Mining and Quarrying | 2 | |\n| LUA-1_4 | Aquaculture and Fishing | 2 | |\n| LUA-1_4_1 | Aquaculture | 3 | |\n| LUA-1_4_2 | Professional Wild Fishery | 3 | |\n| LUA-1_5 | Other Primary Production | 2 | |\n| LUA-1_5_1 | Hunting | 3 | |\n| LUA-1_5_2 | Migratory Animals | 3 | |\n| LUA-1_5_3 | Picking Natural Products | 3 | |\n| LUA-1_5_4 | Apiculture (Bee Hives) | 3 | |\n\nThe table details Land Cover Components (LCC) such as vegetation (e.g., Reeds, Bamboos, Canes, Lichens, Mosses, Algae) and various water bodies (e.g., Inland Water Bodies, Standing Water, Marine Waters, Snow, Ice, Glaciers), alongside Land Use Attributes (LUA) related to primary production (e.g., Agriculture, Forestry, Mining and Quarrying, Aquaculture and Fishing). Each entry includes a hierarchical `Code`, `Label`, and `Level` (ranging from 0 for broad categories like LUA to 4 for highly specific types like Micro Algae or Animal Husbandry), with only `Marine Waters` having a `Factor` of `5`."} \ No newline at end of file diff --git a/.llm_cache/images/ec5261ebdf953a8430dfbb279d7b5b46.json b/.llm_cache/images/ec5261ebdf953a8430dfbb279d7b5b46.json new file mode 100644 index 00000000..37c2964f --- /dev/null +++ b/.llm_cache/images/ec5261ebdf953a8430dfbb279d7b5b46.json @@ -0,0 +1 @@ +{"image_type": "diagram", "description": "This is a bitmask encoding diagram illustrating the structure and interpretation of an 8-bit Quality Assurance (QA) layer for VPP (Vegetation Phenology and Productivity) parameters. The 8 bits, indexed from 7 (most significant) to 0 (least significant), are grouped into four 2-bit segments, each representing a specific quality aspect:\n1. **Bits 7 and 6**: Encode \"Overall quality\".\n2. **Bits 5 and 4**: Encode \"EOS quality\" (End of Season).\n3. **Bits 3 and 2**: Encode \"Peak quality\".\n4. **Bits 1 and 0**: Encode \"SOS quality\" (Start of Season).\n\nEach 2-bit segment is interpreted using a common mapping:\n* `00` corresponds to \"Best\" quality.\n* `01` corresponds to \"Good\" quality.\n* `10` corresponds to \"Fair\" quality.\n* `11` corresponds to \"Poor\" quality.\n\nAn example is provided: a QA value of `00010100` (decimal 20) indicates an \"overall best phenology retrieval,\" with \"best quality for SOS, good quality for peak and EOS estimations.\" Breaking down the example:\n* Bits 7-6 (`00`) decode to \"Best\" for Overall quality.\n* Bits 5-4 (`01`) decode to \"Good\" for EOS quality.\n* Bits 3-2 (`01`) decode to \"Good\" for Peak quality.\n* Bits 1-0 (`00`) decode to \"Best\" for SOS quality."} \ No newline at end of file diff --git a/.llm_cache/images/ed65a43813c9f8636ab49e9a99041236.json b/.llm_cache/images/ed65a43813c9f8636ab49e9a99041236.json new file mode 100644 index 00000000..1edda161 --- /dev/null +++ b/.llm_cache/images/ed65a43813c9f8636ab49e9a99041236.json @@ -0,0 +1 @@ +{"image_type": "map", "description": "The map displays a geographic tiling scheme overlaid on a satellite imagery base map of Europe and its adjacent regions, including the North Atlantic, Arctic, North Africa, and the Middle East. Land areas are shown with natural colours (green for vegetation, white for ice, brown for desert), and water bodies are dark blue. A grid of red lines defines individual tiles, each uniquely labelled with light blue alphanumeric codes such as `h15v05`, `h16v02`, `h17v03`, `h18v04`, `h19v04`, `h20v05`, and `h21v04`. A grey outline highlights the extent of land masses within the mapped area. The map includes a north arrow in the top-left corner and a scale bar indicating distances from 0 to 2,000 km in increments of 500 km. The Coordinate Reference System (CRS) is specified as `ETRS89-extended / LAEA Europe (EPSG:3035)`."} \ No newline at end of file diff --git a/.llm_cache/images/fbdbd9714035badf57b66a874790df66.json b/.llm_cache/images/fbdbd9714035badf57b66a874790df66.json index 811b2ba5..b375a104 100644 --- a/.llm_cache/images/fbdbd9714035badf57b66a874790df66.json +++ b/.llm_cache/images/fbdbd9714035badf57b66a874790df66.json @@ -1 +1 @@ -{"image_type": "photo", "description": "A screenshot of the RStudio integrated development environment (IDE) displaying the file \"CLMS_ATBD_Template.qmd\". The top toolbar includes a \"Render on Save\" checkbox, which is checked, and a \"Render\" button. A dropdown menu, activated by an arrow next to the \"Render\" button, is open (the arrow and the \"Render MS Word\" option are highlighted by purple ovals). The dropdown menu presents three output options: \"Render HTML\", \"Render MS Word\", and \"Render PDF\". The main editor panel shows the beginning of a Quarto Markdown (`.qmd`) document, with lines from its YAML header visible: `title: \"Product SHORT NA[unreadable]\"`, `subtitle: \"ATBD Copernic[unreadable] Service\"`, and `date: \"2022-10-06\"`. Tabs for \"Source\" and \"Visual\" modes are also present."} \ No newline at end of file +{"image_type": "photo", "description": "This is a screenshot of a document editing interface, likely a markdown or Quarto editor, displaying the file `CLMS_ATBD_Template.qmd`. The interface shows 'Source' and 'Visual' tabs for content editing. A toolbar is visible at the top, featuring a 'Render' button with an active dropdown menu. The dropdown menu presents three rendering options: 'Render HTML', 'Render MS Word', and 'Render PDF'. The 'Render MS Word' option is highlighted by a purple oval. The document's YAML front matter is partially visible in the 'Source' tab, including `title: \"Product SHORT NA`, `subtitle: \"ATBD Copernicu`, and `date: \"2022-10-06\"`."} \ No newline at end of file diff --git a/DOCS/CDSE_Migration/CLMS_CDSE_Migration_Dashboard.qmd b/DOCS/CDSE_Migration/CLMS_CDSE_Migration_Dashboard.qmd new file mode 100644 index 00000000..0601f33f --- /dev/null +++ b/DOCS/CDSE_Migration/CLMS_CDSE_Migration_Dashboard.qmd @@ -0,0 +1,634 @@ +--- +title: "CLMS Migration to Copernicus Data Space Ecosystem" +subtitle: "Status Update" +author: "Copernicus Land Monitoring Service" +date: 2026-07-16 +category: non-browsable +type: dashboard +--- + + + +```{ojs} +// ── Load data from the canonical data repo ── +data = await fetch("https://raw.githubusercontent.com/copernicus-land/clms-cdse-migration-data/main/migration_data.json") + .then(r => { if (!r.ok) throw new Error("HTTP " + r.status); return r.json() }) + // On failure, return a COMPLETE empty shape (every field the cells below read) + // plus `_loadError`, so nothing downstream throws and the dynamic blocks can + // show an error section instead of crashing the OJS runtime. + .catch(e => { console.error("Failed to load data", e); return {_loadError: String(e && e.message || e), groups:[], portfolio:{}, cdse:{}, summary:{}, scraped_at:"", odata_tracking:{history:[]}, previous:{groups:[]}} }) +groups = data.groups +summary = data.summary +portfolio = data.portfolio +cdse = data.cdse +lastUpdated = data.scraped_at.slice(0,10) + +// ── OData tracking lives in the main data file (single JSON) ── +odataDaily = data.odata_tracking || {} + +// ── OData deltas, computed client-side from the daily totals history ── +odataHist = odataDaily.history || [] +odataTotal = odataDaily.total_odata || (odataHist.length ? odataHist[odataHist.length - 1].total : 0) +odataDailyDelta = odataHist.length >= 2 + ? odataHist[odataHist.length - 1].total - odataHist[odataHist.length - 2].total + : 0 +odataWeeklyBase = { + if (odataHist.length === 0) return null + const today = odataHist[odataHist.length - 1].date + const weekAgo = new Date(new Date(today).getTime() - 7 * 86400000).toISOString().slice(0, 10) + const past = odataHist.filter(h => h.date <= weekAgo) + return past.length ? past[past.length - 1] : odataHist[0] +} +odataWeeklyDelta = odataWeeklyBase ? odataTotal - odataWeeklyBase.total : 0 +odataDaysCovered = odataWeeklyBase && odataHist.length + ? Math.max(1, Math.round((new Date(odataHist[odataHist.length - 1].date) - new Date(odataWeeklyBase.date)) / 86400000)) + : 1 +odataDailyAvg = odataWeeklyDelta ? Math.round(odataWeeklyDelta / odataDaysCovered) : 0 + +// ── Filter groups ── +componentOf = d => { + if (d.datasets?.length > 0) return d.datasets[0].component + return d.portfolio?.[0]?.component || "" +} +groupHasComponent = (g, comp) => { + if (g.datasets?.some(d => d.component === comp)) return true + if (g.portfolio?.some(d => d.component === comp)) return true + return false +} +filtered = groups.filter(d => { + let matches = false + for (const comp of activeComponents) { + if (groupHasComponent(d, comp)) { matches = true; break } + } + if (!matches) return false + if (searchTerm && !d.name.toLowerCase().includes(searchTerm.toLowerCase())) return false + return true +}) + +// ── Aggregate by category ── +categories = [...new Set(filtered.map(d => d.category).filter(Boolean))].sort() + +// ── Totals reflecting the current filter selection ── +filteredTotals = ({ + datasets: d3.sum(filtered, d => d.total), + groups: filtered.length +}) +catStats = categories.map(cat => { + const g = filtered.filter(d => d.category === cat) + return { + name: cat, + groups: g, + total: d3.sum(g, d => d.total), + on_cdse: d3.sum(g, d => d.on_cdse), + pct: Math.round(d3.sum(g, d => d.on_cdse) / Math.max(d3.sum(g, d => d.total), 1) * 100), + s3: d3.sum(g, d => d.s3), + stac: d3.sum(g, d => d.stac), + openeo: d3.sum(g, d => d.openeo), + shub: d3.sum(g, d => d.shub), + } +}) + +// ── Helpers ── +badge = (val, total) => { + if (val === 0 && total === 0) return htl.html`—` + const pct = Math.min(val / Math.max(total, 1), 1) + const color = pct >= 1 ? "#00aa00" : pct >= 0.75 ? "#66cc00" : pct >= 0.5 ? "#ffcc00" : pct >= 0.25 ? "#ff8800" : "#ff0000" + return htl.html`${val}` +} + +check = (on) => on + ? htl.html`✓` + : htl.html`✗` + +// ── Error banner shown in place of the dynamic blocks when the live data +// load failed. A FUNCTION (not a plain cell) so Quarto doesn't auto-display it; +// it's only rendered when a gated block calls errorSection(). ── +errorSection = () => htl.html`
+ Dashboard data could not be loaded. +
The live data source did not respond${data._loadError ? htl.html` (${data._loadError})` : ""}. Please refresh the page or try again later.
+
` + +// ── Deltas vs previous run, computed client-side from the embedded snapshot ── +prevByName = Object.fromEntries((data.previous?.groups || []).map(g => [g.name, g])) +changes = (data.previous?.groups?.length ? groups : []).map(g => { + const old = prevByName[g.name] || {} + const oldIds = new Set(old.cdse_dataset_ids || []) + const oldStac = new Set(old.stac_ids || []) + const oldOeo = new Set(old.openeo_ids || []) + const curIds = (g.datasets || []).map(d => d.id) + const dS3 = g.s3 - (old.s3 || 0) + const dStac = g.stac - (old.stac || 0) + const dOeo = g.openeo - (old.openeo || 0) + return { + name: g.name, + s3: dS3, stac: dStac, openeo: dOeo, + newly_on_cdse: g.on_cdse > 0 && !(old.on_cdse > 0), + new_s3: dS3 > 0 ? curIds.filter(id => !oldIds.has(id)) : [], + new_stac: dStac > 0 ? curIds.filter(id => !oldStac.has(id)) : [], + new_openeo: dOeo > 0 ? curIds.filter(id => !oldOeo.has(id)) : [], + } +}).filter(d => d.s3 !== 0 || d.stac !== 0 || d.openeo !== 0) +newGroups = changes.filter(d => d.newly_on_cdse) +positiveChanges = changes.filter(d => d.s3 > 0 && !d.newly_on_cdse) +lastWeek = changes.length > 0 ? "since " + (data.previous?.scraped_at || data.scraped_at).slice(0,10) : "" + +// ── Expand/collapse state, kept outside the DOM so it survives the full +// table rebuild that happens on every filter or search change ── +expandedCategories = new Set() +expandedGroups = new Set() + +// ── Toggle functions for expand/collapse (plain DOM, no OJS reactivity) ── +toggleScript = { + window.toggleCategory = function(catName) { + const key = catName.replace(/"/g, '"'); + const groupRows = document.querySelectorAll('tr[data-category="' + key + '"]:not([data-group])'); + const isExpanded = groupRows.length > 0 && groupRows[0].style.display !== 'none'; + groupRows.forEach(function(r) { r.style.display = isExpanded ? 'none' : ''; }); + if (isExpanded) { + // Collapsing the category also collapses any open dataset rows within it + document.querySelectorAll('tr[data-category="' + key + '"][data-group]').forEach(function(r) { r.style.display = 'none'; }); + document.querySelectorAll('span[data-group-arrow^="' + key + '::"]').forEach(function(a) { a.textContent = '▶'; }); + expandedCategories.delete(catName); + [...expandedGroups].filter(k => k.startsWith(catName + '::')).forEach(k => expandedGroups.delete(k)); + } else { + expandedCategories.add(catName); + } + const arrow = document.querySelector('span[data-arrow="' + key + '"]'); + if (arrow) arrow.textContent = isExpanded ? '▶' : '▼'; + } + window.toggleGroup = function(groupKey) { + const key = groupKey.replace(/"/g, '"'); + const rows = document.querySelectorAll('tr[data-group="' + key + '"]'); + const isExpanded = rows.length > 0 && rows[0].style.display !== 'none'; + rows.forEach(function(r) { r.style.display = isExpanded ? 'none' : ''; }); + if (isExpanded) expandedGroups.delete(groupKey); + else expandedGroups.add(groupKey); + const arrow = document.querySelector('span[data-group-arrow="' + key + '"]'); + if (arrow) arrow.textContent = isExpanded ? '▶' : '▼'; + } +} +``` + +```{ojs} +// ── Onboarding history plot ── + +onboardingPlot = { + const plotHeight = 170 + let mode = "weekly" + + // ISO-8601 week key, e.g. "2026-W31". The Thursday of a week decides its + // week-year, which is why the year comes from the shifted date and not from + // the input: a week straddling New Year then keys to one year, not two, and + // plain string sort stays chronological across the boundary. + function isoWeekKey(dateStr) { + const d = new Date(dateStr + "T00:00:00Z") + d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7)) // Mon=1..Sun=7 + const year = d.getUTCFullYear() + const jan1 = Date.UTC(year, 0, 1) + const week = Math.ceil(((d - jan1) / 86400000 + 1) / 7) + return year + "-W" + String(week).padStart(2, "0") + } + + function buildChart(container) { + container.innerHTML = "" + + // Weekly mode sums the daily deltas per ISO week so each week gets its own + // bar; reading odataWeeklyDelta directly yielded one bar for the whole + // trailing period. + const data = mode === "daily" + ? odataHist.map((h, i) => { + const d = i > 0 ? h.total - odataHist[i - 1].total : 0 + return {label: h.date, value: d, color: d >= 0 ? '#e67e22' : '#e74c3c'} + }).slice(1).reverse() + : (() => { + const deltas = odataHist.map((h, i) => { + const d = i > 0 ? h.total - odataHist[i - 1].total : 0 + return {date: h.date, value: d} + }).slice(1) + const weekly = {} + for (const d of deltas) { + const key = isoWeekKey(d.date) + if (!weekly[key]) weekly[key] = {label: key, value: 0} + weekly[key].value += d.value + } + return Object.values(weekly) + .sort((a, b) => a.label.localeCompare(b.label)) + .reverse() + .map(d => ({...d, color: d.value >= 0 ? '#e67e22' : '#e74c3c'})) + })() + + // Signed domain: the scale has to cover the losses as well as the gains. + const hiVal = Math.max(...data.map(d => d.value), 0) + const loVal = Math.min(...data.map(d => d.value), 0) + const range = Math.max(hiVal - loVal, 1) + + // `data` is newest-first; vertical bars read left-to-right in time, so plot + // a chronological copy rather than reordering the builders above. + const chrono = data.slice().reverse() + + // Tooltip carries the exact value — no need for labels on the bars themselves. + const yAxisW = 46 + // Daily labels are day-first: "2026-07-21" -> "21-07". Weekly keys already + // carry their own form: "2026-W31" -> "W31". + const shortLabel = (l) => l.includes("-W") + ? l.slice(5) + : l.slice(8, 10) + "-" + l.slice(5, 7) + const signed = (v) => (v >= 0 ? "+" : "\u2212") + Math.abs(v).toLocaleString() + + // Round the scale out to whole steps, so ticks land on values worth reading. + // Bars are scaled to this same domain, which is what keeps their heights + // consistent with the gridlines. + const rawStep = range / 4 + const mag = Math.pow(10, Math.floor(Math.log10(rawStep))) + const norm = rawStep / mag + const step = Math.max(1, Math.round((norm <= 1 ? 1 : norm <= 2 ? 2 : norm <= 5 ? 5 : 10) * mag)) + // With no losses in the window `bot` is 0 and this is an ordinary 0..top + // scale; a loss pushes the floor down instead of being folded into the top. + const bot = Math.floor(loVal / step) * step + const top = Math.max(Math.ceil(hiVal / step) * step, bot + step) + const span = top - bot + const ticks = [] + for (let v = bot; v <= top; v += step) ticks.push(v) + + // Pixels above the bottom of the plot band for a given value. + const yOf = (v) => (v - bot) / span * plotHeight + const zeroY = yOf(0) + + const chartRow = document.createElement("div") + chartRow.style.cssText = "display:flex" + + // ── y axis ── + const yAxis = document.createElement("div") + yAxis.style.cssText = `width:${yAxisW}px;flex-shrink:0;position:relative;height:${plotHeight}px` + ticks.forEach(v => { + const t = document.createElement("div") + t.textContent = v.toLocaleString() + // translateY(50%) centres the text on its gridline + t.style.cssText = `position:absolute;right:6px;bottom:${yOf(v)}px;transform:translateY(50%);font-size:0.62em;color:#555;white-space:nowrap` + yAxis.appendChild(t) + }) + chartRow.appendChild(yAxis) + + // ── plot area: gridlines behind, bars in front ── + const plotWrap = document.createElement("div") + plotWrap.style.cssText = `flex:1;position:relative;height:${plotHeight}px;border-bottom:1px solid #ccc` + + const grid = document.createElement("div") + grid.style.cssText = `position:absolute;left:0;right:0;bottom:0;height:${plotHeight}px;pointer-events:none` + ticks.forEach(v => { + // The lowest tick needs no line; the plot's own bottom border draws it. + if (v === bot) return + const line = document.createElement("div") + // Zero is what the bars grow from, so it reads darker than the rest. + line.style.cssText = `position:absolute;left:0;right:0;bottom:${yOf(v)}px;border-top:1px solid ${v === 0 ? "#ccc" : "#eee"}` + grid.appendChild(line) + }) + plotWrap.appendChild(grid) + + // position:relative lifts the bars above the absolutely-placed gridlines + const plot = document.createElement("div") + plot.style.cssText = "position:relative;display:flex;gap:3px;height:100%" + + chrono.forEach(d => { + const col = document.createElement("div") + col.style.cssText = "flex:1 1 0;min-width:8px;height:100%;position:relative" + col.title = d.label + ": " + signed(d.value) + + // Gains grow up from the zero line, losses hang below it, so a drop can + // never be read as a rise. Small floor keeps a zero delta visible as a tick. + const barH = Math.max(Math.abs(d.value) / span * plotHeight, 1) + const bar = document.createElement("div") + bar.style.cssText = `position:absolute;left:0;right:0;height:${barH}px;background:${d.color};` + (d.value >= 0 + ? `bottom:${zeroY}px;border-radius:2px 2px 0 0` + : `top:${plotHeight - zeroY}px;border-radius:0 0 2px 2px`) + col.appendChild(bar) + + plot.appendChild(col) + }) + plotWrap.appendChild(plot) + chartRow.appendChild(plotWrap) + container.appendChild(chartRow) + + // Tick labels are anchored at each cell's centre with the transform origin at + // the text's top-right corner, so rotating -60deg sweeps the text down and to + // the left, keeping it below the axis. Rotating about `top center` (as before) + // swept it upwards into the bars. The left margin matches the y axis so the + // labels stay aligned with their columns. + const axis = document.createElement("div") + axis.style.cssText = `display:flex;gap:3px;height:44px;margin-left:${yAxisW}px` + chrono.forEach(d => { + const cell = document.createElement("div") + cell.style.cssText = "flex:1 1 0;min-width:8px;position:relative" + const t = document.createElement("span") + t.textContent = shortLabel(d.label) + t.style.cssText = "position:absolute;top:3px;right:50%;text-align:right;font-size:0.62em;color:#555;white-space:nowrap;transform:rotate(-60deg);transform-origin:top right" + cell.appendChild(t) + axis.appendChild(cell) + }) + container.appendChild(axis) + + // Radio buttons below the chart + const controls = document.createElement("div") + controls.style.cssText = "display:flex;gap:16px;margin-top:8px;align-items:center" + + ;["daily", "weekly"].forEach(m => { + const lbl = document.createElement("label") + lbl.style.cssText = "display:flex;align-items:center;gap:4px;font-size:0.85em;cursor:pointer;color:#555" + + const radio = document.createElement("input") + radio.type = "radio" + radio.name = "onboardingMode" + radio.value = m + radio.checked = m === mode + radio.style.cursor = "pointer" + + radio.addEventListener("change", () => { + mode = m + buildChart(container) + }) + + lbl.appendChild(radio) + lbl.append(m) + controls.appendChild(lbl) + }) + + container.appendChild(controls) + } + + const container = document.createElement("div") + container.style.marginTop = "8px" + buildChart(container) + return container +} +``` + +## Migration Statistics + +```{ojs} +{ + if (data._loadError) return errorSection(); + return html` +${newGroups.length > 0 ? htl.html ` +
+ 🆕 Products ${lastWeek} +
Newly onboarded: ${newGroups.map(d => d.name).join(", ")}
+
` : ""} + +${positiveChanges.length > 0 ? htl.html ` +
+ 📈 Products ${lastWeek} + ${positiveChanges.map(d => htl.html `
${d.name}: +${d.s3} S3, +${d.stac} STAC, +${d.openeo} OpenEO
`)} +
` : ""} + +${changes.length === 0 ? htl.html `
No new CLMS product were onboarded this week.
` : ""} + +${(odataWeeklyDelta || odataDailyDelta || odataHist.length > 0) ? htl.html ` +
+ 📦 File Level Statitics + ${odataDailyAvg ? htl.html `
Daily average: ${odataDailyAvg.toLocaleString()} new files/day
` : ""} + ${onboardingPlot} +
` : ""} +`; +} +``` + +## CLMS Product on CDSE + +This table shows the full, currently active CLMS portfolio and each product's migration status to the CDSE. +```{ojs} +// Toggle-button style filter: click a component to enable/disable it +// (multi-select, all enabled by default). Replaces the old single-select +// dropdown, which only let one component be viewed at a time. +viewof activeComponents = { + if (data._loadError) { const el = document.createElement("span"); el.value = new Set(); return el; } + const allComponents = [...new Set(groups.map(d => componentOf(d)).filter(Boolean))].sort() + const active = new Set(allComponents) + + const container = document.createElement("div") + container.style.cssText = "display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px"; + + function render() { + container.innerHTML = ""; + allComponents.forEach(comp => { + const isActive = active.has(comp); + const btn = document.createElement("button"); + btn.type = "button"; + btn.textContent = comp; + btn.style.cssText = `padding:6px 14px;border-radius:16px;cursor:pointer;font-size:0.85em;border:1px solid ${isActive ? "#0d6efd" : "#ccc"};background:${isActive ? "#0d6efd" : "#f5f5f5"};color:${isActive ? "#fff" : "#555"}`; + btn.addEventListener("click", () => { + if (active.has(comp)) active.delete(comp); + else active.add(comp); + render(); + container.value = new Set(active); + container.dispatchEvent(new CustomEvent("input")); + }); + container.appendChild(btn); + }); + } + render(); + container.value = new Set(active); + return container; +} + +viewof searchTerm = data._loadError + ? Object.assign(document.createElement("span"), { value: "" }) + : Inputs.text({label: "Search", placeholder: "Product group…", width: 250}) +``` + +```{ojs} +// ── Build the table via plain DOM APIs ── +// so that column widths defined on are guaranteed to apply to +// every row, including rows toggled between hidden/visible. +productGroupsTable = { + if (data._loadError) return htl.html``; + // Category takes the remaining width (~46%) now that Progress is gone + const colWidths = ["auto", "9%", "9%", "9%", "9%", "9%", "9%"]; + + function makeCell(tag, html, opts = {}) { + const el = document.createElement(tag); + if (html instanceof Node) el.appendChild(html); + else el.innerHTML = html; + el.style.padding = opts.padding ?? "6px"; + el.style.whiteSpace = "nowrap"; + el.style.overflow = "hidden"; + el.style.textOverflow = "ellipsis"; + if (opts.center) el.style.textAlign = "center"; + if (opts.bold) el.style.fontWeight = "bold"; + if (opts.title) el.title = opts.title; + if (opts.style) el.style.cssText += ";" + opts.style; + return el; + } + + const wrap = document.createElement("div"); + + const table = document.createElement("table"); + table.style.cssText = "width:100%;border-collapse:collapse;font-size:0.8em;table-layout:fixed"; + + const colgroup = document.createElement("colgroup"); + colWidths.forEach(w => { + const col = document.createElement("col"); + col.style.width = w; + colgroup.appendChild(col); + }); + table.appendChild(colgroup); + + const thead = document.createElement("thead"); + const headRow = document.createElement("tr"); + headRow.style.cssText = "background:#f0f0f0;text-align:left"; + ["Category", "Total", "CDSE", "S3", "STAC", "OpenEO", "S.Hub"].forEach((label, i) => { + const th = makeCell("th", label, { center: i > 0, padding: "6px" }); + th.style.borderBottom = "2px solid #ddd"; + headRow.appendChild(th); + }); + thead.appendChild(headRow); + table.appendChild(thead); + + const tbody = document.createElement("tbody"); + + catStats.forEach(cat => { + const tr = document.createElement("tr"); + tr.style.cssText = "background:#f5f5f5;border-bottom:1px solid #ccc;cursor:pointer"; + + const nameCell = makeCell("td", "", { bold: true, title: cat.name }); + const arrow = document.createElement("span"); + arrow.dataset.arrow = cat.name; + arrow.textContent = expandedCategories.has(cat.name) ? "▼" : "▶"; + nameCell.appendChild(arrow); + nameCell.append(" " + cat.name); + tr.appendChild(nameCell); + + tr.appendChild(makeCell("td", String(cat.total), { center: true, bold: true })); + tr.appendChild(makeCell("td", String(cat.on_cdse), { center: true, bold: true })); + tr.appendChild(makeCell("td", badge(cat.s3, cat.total), { center: true })); + tr.appendChild(makeCell("td", badge(cat.stac, cat.total), { center: true })); + tr.appendChild(makeCell("td", badge(cat.openeo, cat.total), { center: true })); + tr.appendChild(makeCell("td", badge(cat.shub, cat.total), { center: true })); + + tr.addEventListener("click", () => window.toggleCategory(cat.name)); + tbody.appendChild(tr); + + cat.groups.forEach(g => { + const groupKey = cat.name + "::" + g.name; + const gtr = document.createElement("tr"); + gtr.dataset.category = cat.name; + gtr.style.cssText = "border-bottom:1px solid #ddd;cursor:pointer" + (expandedCategories.has(cat.name) ? "" : ";display:none"); + + const gNameCell = makeCell("td", "", { title: g.name, padding: "4px 6px 4px 24px" }); + const dsInFilter = (g.datasets || []).filter(ds => activeComponents.has(ds.component)); + const lpOffCdse = (g.portfolio || []).filter(lp => !lp.on_cdse && activeComponents.has(lp.component)); + const hasDatasets = dsInFilter.length + lpOffCdse.length > 0; + if (hasDatasets) { + const gArrow = document.createElement("span"); + gArrow.dataset.groupArrow = groupKey; + gArrow.textContent = expandedGroups.has(groupKey) ? "▼" : "▶"; + gArrow.style.marginRight = "4px"; + gNameCell.appendChild(gArrow); + } + const link = document.createElement("a"); + link.href = g.url; + link.target = "_blank"; + link.textContent = g.name; + link.addEventListener("click", (e) => e.stopPropagation()); + gNameCell.appendChild(link); + gtr.appendChild(gNameCell); + + gtr.appendChild(makeCell("td", String(g.total), { center: true, bold: true, padding: "4px 6px" })); + gtr.appendChild(makeCell("td", String(g.on_cdse), { center: true, bold: true, padding: "4px 6px" })); + gtr.appendChild(makeCell("td", badge(g.s3, g.total), { center: true, padding: "4px 6px" })); + gtr.appendChild(makeCell("td", badge(g.stac, g.total), { center: true, padding: "4px 6px" })); + gtr.appendChild(makeCell("td", badge(g.openeo, g.total), { center: true, padding: "4px 6px" })); + gtr.appendChild(makeCell("td", badge(g.shub, g.total), { center: true, padding: "4px 6px" })); + + if (hasDatasets) { + gtr.addEventListener("click", () => window.toggleGroup(groupKey)); + } + tbody.appendChild(gtr); + + dsInFilter.forEach(ds => { + const dtr = document.createElement("tr"); + dtr.dataset.category = cat.name; + dtr.dataset.group = groupKey; + dtr.style.cssText = "border-bottom:1px solid #eee;background:#fafafa" + (expandedGroups.has(groupKey) ? "" : ";display:none"); + + dtr.appendChild(makeCell("td", ds.id, { padding: "3px 6px 3px 44px", title: ds.id })); + dtr.appendChild(makeCell("td", "", { padding: "3px 6px" })); + dtr.appendChild(makeCell("td", "", { padding: "3px 6px" })); + dtr.appendChild(makeCell("td", check(ds.s3), { center: true, padding: "3px 6px" })); + dtr.appendChild(makeCell("td", check(ds.stac), { center: true, padding: "3px 6px" })); + dtr.appendChild(makeCell("td", check(ds.openeo), { center: true, padding: "3px 6px" })); + dtr.appendChild(makeCell("td", check(ds.shub), { center: true, padding: "3px 6px" })); + + tbody.appendChild(dtr); + }); + + lpOffCdse.forEach(lp => { + const dtr = document.createElement("tr"); + dtr.dataset.category = cat.name; + dtr.dataset.group = groupKey; + dtr.style.cssText = "border-bottom:1px solid #eee;background:#fafafa" + (expandedGroups.has(groupKey) ? "" : ";display:none"); + + dtr.appendChild(makeCell("td", lp.title, { padding: "3px 6px 3px 44px", title: lp.title, style: "color:#999;font-style:italic" })); + dtr.appendChild(makeCell("td", "", { padding: "3px 6px" })); + dtr.appendChild(makeCell("td", "", { padding: "3px 6px" })); + dtr.appendChild(makeCell("td", "—", { center: true, padding: "3px 6px", style: "color:#ccc" })); + dtr.appendChild(makeCell("td", "—", { center: true, padding: "3px 6px", style: "color:#ccc" })); + dtr.appendChild(makeCell("td", "—", { center: true, padding: "3px 6px", style: "color:#ccc" })); + dtr.appendChild(makeCell("td", "—", { center: true, padding: "3px 6px", style: "color:#ccc" })); + + tbody.appendChild(dtr); + }); + }); + }); + + // ── Summary row (col sums over the currently filtered groups) ── + const sumRow = document.createElement("tr"); + sumRow.style.cssText = "background:#e0e0e0;border-top:2px solid #999;font-weight:bold"; + const sumName = makeCell("td", "Total", { bold: true }); + sumName.style.fontStyle = "italic"; + sumRow.appendChild(sumName); + + const sumTotal = d3.sum(catStats, d => d.total); + const sumCDSE = d3.sum(catStats, d => d.on_cdse); + const sumS3 = d3.sum(catStats, d => d.s3); + const sumSTAC = d3.sum(catStats, d => d.stac); + const sumOEO = d3.sum(catStats, d => d.openeo); + const sumSHub = d3.sum(catStats, d => d.shub); + + sumRow.appendChild(makeCell("td", String(sumTotal), { center: true, bold: true })); + sumRow.appendChild(makeCell("td", String(sumCDSE), { center: true, bold: true })); + sumRow.appendChild(makeCell("td", badge(sumS3, sumTotal), { center: true })); + sumRow.appendChild(makeCell("td", badge(sumSTAC, sumTotal), { center: true })); + sumRow.appendChild(makeCell("td", badge(sumOEO, sumTotal), { center: true })); + sumRow.appendChild(makeCell("td", badge(sumSHub, sumTotal), { center: true })); + tbody.appendChild(sumRow); + + table.appendChild(tbody); + wrap.appendChild(table); + return wrap; +} + +``` + +## On CDSE soon + +> _Details to be provided — placeholder for upcoming CLMS products planned for CDSE ingestion._ + +Preparing dataset descriptions, expected timelines, and service coverage for the next batch of products to be onboarded. + +## Services + +- [S3 CSV Catalogue](https://csv.dataspace.copernicus.eu/CLMS/) +- [OData API](https://catalogue.dataspace.copernicus.eu/odata/v1/) +- [STAC Browser](https://browser.stac.dataspace.copernicus.eu/) +- [OpenEO](https://openeo.dataspace.copernicus.eu/) +- [Sentinel Hub](https://documentation.dataspace.copernicus.eu/APIs/SentinelHub/Data/CLMS.html) +- [CDSE Documentation](https://documentation.dataspace.copernicus.eu/Data/CopernicusServices/CLMS.html) + +## Methodology + +Per-service counts are matched by: + +- **S3**: Direct catalogue count per product type +- **STAC**: Fuzz-matched by checking if CDSE dataset ID (minus `_cog`/`_nc` suffix) appears in STAC collection IDs +- **OpenEO**: Matched by constructing `CLMS_{id.upper()}` convention +- **Sentinel Hub**: Estimated from S3 availability diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image1.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image1.png new file mode 100644 index 00000000..f9b96711 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image1.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image10.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image10.png new file mode 100644 index 00000000..b5e9b0a1 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image10.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image11.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image11.png new file mode 100644 index 00000000..2e085fb2 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image11.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image12.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image12.png new file mode 100644 index 00000000..fed7b049 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image12.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image13.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image13.png new file mode 100644 index 00000000..b95d0a74 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image13.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image14.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image14.png new file mode 100644 index 00000000..bffe45b2 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image14.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image15.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image15.png new file mode 100644 index 00000000..889632ee Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image15.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image6.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image6.png new file mode 100644 index 00000000..fd6269a3 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image6.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image7.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image7.png new file mode 100644 index 00000000..fc913fc6 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image7.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image8.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image8.png new file mode 100644 index 00000000..cd6067ed Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image8.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image9.jpg b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image9.jpg new file mode 100644 index 00000000..0f7d037d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image9.jpg differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1.qmd b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1.qmd new file mode 100644 index 00000000..ab30ccea --- /dev/null +++ b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1.qmd @@ -0,0 +1,366 @@ +--- +title: "CLC+ Core User Manual Annex" +subtitle: "CLC+ Core production and provision of complementary consultancy" +author: "European Environment Agency (EEA)" +version: "Issue 4.0" +date: "2023-12-22" +category: "products" +template-version: 1.0.0 +product-name: CLC+ Core User Manual Annex +description: "Product DESCRIPTION" +metadata-files: + - ./includes/default.yml +--- + + +Date: 2023-12-21 + +Doc. Version : Issue 4.0 + +Content ID: / + +**Document Control Information** + + ------------------------------------------------------------------------------------------------- + Document Title CLC+ Core User Guideline + ------------------ ------------------------------------------------------------------------------ + Project Title CLC+ Core production and provision of complementary consultancy services + + Document Author Thomas Mathis (Cloudflight), Tanja Gasber (GeoVille), Amelie Lindmayer (GAF) + + Project Owner Tobias Langanke (EEA) + + Project Manager Tobias Langanke (EEA) + + Document Code / + + Document Version Issue 4.0 + + Distribution + + Date 2023-12-20 + ------------------------------------------------------------------------------------------------- + +**Document Approver(s) and Reviewer(s):** + + ----------------------------------------------------------------------- + Name Role Action Date + --------------------- --------------- ----------------- --------------- + Tim Wiltzius (CLF) Reviewer Document review 2023-12-20 + + Johannes Vass (CLF) Reviewer Document review + ----------------------------------------------------------------------- + +**Document history** + + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + Revision Date Created by Short description of changes + ---------- ------------ ------------------------------------- --------------------------------------------------------------------------------------------------------------- + 1.0 2022-04-08 CLC+ Core consortium (CLF, GV, GAF) Initial document creation + + 2.0 2022-06-10 CLC+ Core consortium (CLF, GV, GAF) Restructure of entire document, extension of Extraction chapter and Admin User section + + 3.0 2023-06-06 CLC+ Core consortium (CLF, GV, GAF) Adaption of rule 3 in the current version of the CLC+ Core system + + 4.0 2023-12-22 CLC+ Core consortium (CLF, GV, GAF) Update of the entire document with all newly implemented features and improvements of the system (within SC8) + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +**Applicable Documents (AD)** + ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **ID** | **Document Name / Content** | ++========+:================================================================================================================================================================================================+ +| AD01 | Tender Specifications -- EEA/DIS/R0/20/019 -- Copernicus Land Monitoring Service -- Production of the CLC+ Core and Provision of Complementary Consultancy Services | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD02 | Consortium's Technical Proposal -- in response to Call for tenders EEA/DIS/R0/20/019 -- CLC+CORE Technical Proposal - v2.0 | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD03 | Specific Contract No 3436/R0-COPERNICUS/EEA.58286 | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD04 | Minutes of the KOM (CLC+Core_KOM_Minutes.docx) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD05 | PM1 - Project Management and Governance Plan (CLC+Core_Deliverable_PM1_Project_Management_Plan_V1.0.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD06 | Implementation of CLC+ based on the EAGLE concept --Additional support for further development of CLC+ | +| | | +| | databases (CLC+ and CLC+ instances, namely CLC+ LULUCF instance and CLC+ Legacy instance) - Task 4: From CLC+ Core to CLC+ Legacy - 3436/R0-Copernicus/EEA.57755 | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD07 | PM2 - 1st Project Management and Status Report (CLC+Core_Deliverable_PM2_1st-Project-Management-Status-Report_V1.0.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD08 | CLC+ Core Decision Log_V1.4 (CLC+Core_Decision_log_V1.4.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD09 | D1 - Software Design (CLC+Core_D1_Software \_Design_V1.0.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD10 | D3.2.1 - Demonstration and documentation of ingested CLMS datasets, under this Service Contract (CLC+Core_Deliverable_D3.2.1_Demonstration-and-documentation-of-ingested-CLMS-datasets_V01.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD11 | D3.1 - Documentation of deployment of CLC+ Core products to DIAS -- cloud service (CLC+Core_Deliverable_D3.1_Documentation of deployment of CLC+ Core products to DIAS_V1.0.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD12 | LULUCF_classes_simplified_EAGLE_query_rules_20210325.xlsx (Provided by EAGLE Group) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD13 | Specific contract no 3506_R0-COPERNCA_EEA.59433 | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +# Admin User only + +In this section information is given which is relevant for **Admin Users only**. This mainly concerns the categories Organisations and Users, where the Admin User has additional rights compared to a normal System User. An important task given to the admin user is the possibility to upload a new EAGLE ontology into the system. + +## Organisations + +This navigation menu tab provides an overview of the registered **Organisations** of the CLC+ Core system. + +Organisations are taken over by default from EIONET on your first login to CLC+ Core. Organisations play an important role when you define the visibility of your Ingestion or Extraction for publishing it. The visibility can be limited to users from your organisations only or for the country of the selected Organisation. Further, the Admin User has rights to add or remove Organisations (see [Figure 6‑1](#_Ref153959302)). + +As an **Admin User** your account has certain authorizations, i.e. you are able to add new Organisations. + +Search function, to **search for an organisation** within the system. + +![](./CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image6.png){width="6.925in" height="2.222916666666667in"} + +[]{#_Ref153959302 .anchor}**Figure 6‑1: Menu item -- Organisations** + +## Users + +This navigation menu tab provides an overview of the registered User of the CLC+ Core system. + +Users are taken over by default from EIONET on your first login to CLC+ Core. Depending on your role assigned, you have more or less rights. The Admin User has rights to add or remove Users from the system or change their status. To open your Profile, click on your name (see [Figure 6‑2](#_Ref153959323)). Now you will be forwarded to the Profile view (section 1.5.1 in User Manual). + +As an Admin User your account has certain authorizations, i.e. you are able to add new Users. + +Further, you have the possibility to **search for a User.** + +![](./CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image7.png){width="6.925in" height="2.7680555555555557in"} + +[]{#_Ref153959323 .anchor}**Figure 6‑2: Menu item -- Users.** + +### User Profile + +To open the **User Profile** you can either click on the User Profile Icon in the Header, which opens a context menu with the actions 'My Profile' and 'Logout' ([Figure 6‑3](#_Ref153959344)) or in the Users tab by clicking on your name ([Figure 6‑3](#_Ref153959344)). You will then be forwarded to the Profile view. + +![](./CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image8.png){width="6.925in" height="1.1444444444444444in"} + +[]{#_Ref153959344 .anchor}**Figure 6‑3: User Profile -- Actions.** + +### User Profile View + +When you click on the context menu action 'My Profile' of the User Profile Icon you will find yourself within the User Profile view. Thus, a profile can only be changed by a person with the role 'User Administration / support'. Within your Profile you can see several information (see [Figure 6‑4](#_Ref153959381)) such as: + +**General Information:** In this area the most important information from your user profile is shown which is username, first and last name, which organisation you are part of and your current status. The EIONET button guides you to the [Eionet Portal](https://www.eionet.europa.eu/login?came_from=/directory/user%3Fuid%3Dclccore). + +**Roles:** In this area it is displayed what roles are assigned to you. Roles define what you as a user are allowed to do within the CLC+ Core system from a functional point of view. Typically, roles are for only Users which administer the application. + +As an Admin User can deactivated by a person with the role 'User Administration / support'. "Inactive" Users do not have access to the application. + +![](./CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image10.png){width="6.925in" height="3.827777777777778in"} + +[]{#_Ref153959381 .anchor}**Figure 6‑4: View User Profile (User Administrator).** + +### Edit User Profile + +Editing your profile will only affect / edit the user profile in the CLC+ Core system and not the EIONET account. **General:** Changing your first- and last name and the organisation can only be done by a person with the role 'User Administration / support'. + +**Roles** can only be changed by a person with the role 'User Administration / support'. + +By clicking on 'Save' your entered information will be saved. If you do not want to save the changed information, then you have the possibility to click on 'Cancel' (see [Figure 6‑5](#_Ref153959405)). + +![](./CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image11.png){width="6.925in" height="2.23125in"} + +[]{#_Ref153959405 .anchor}**Figure 6‑5: Edit User Profile.** + +## Add / upload new EAGLE Ontology + +In the "**Add new version**" dialog a call is made to the EIONET data dictionary. This feature is for expert user only. The dictionary is immediately compared to the previous version and differences will be updated. For example, as in the figure below, there are no differences, which is why you get this view ([Figure 6‑6](#_Ref99095063)). + +By clicking on the **EIONET Data Dictionary** link you will be redirected to the EIONET data dictionary. Data Dictionary[^1] holds definitions of datasets, tables and data elements (see [Figure 6‑7](#_Ref153959430)). Each of these three levels is defined by a set of attributes, the core set of which corresponds to ISO 11179 standard for describing data elements. The whole attribute set is flexible, and attributes can be added / removed from/to the system. + +![](./CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image12.png){width="6.925in" height="1.7979166666666666in"} + +[]{#_Ref99095063 .anchor}**Figure 6‑6: Add new EAGLE Ontology Version.** + +![](./CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image13.png){width="6.0178619860017495in" height="2.9841885389326333in"} + +[]{#_Ref153959430 .anchor}**Figure 6‑7: EIONET data dictionary.** + +Once a new EAGLE ontology version is published all users get a notification (see section 1.7.3 in User Manual). + + + + + +## Approval EAGLE barcoding + +The EAGLE barcoding of an Ingestion can be approved for being **EAGLE compliant** by any user with the additional role of being an "EAGLE Maintainer/Approver". When opening an Ingestion, the button "Approve EAGLE Compliance" can only by seen by users with that role (see [Figure 6‑8](#_Ref153959461)). The User gets notified once the EAGLE barcoding for the Ingestion is approved by an EAGLE Maintainer. + +![](./CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image14.png){width="6.925in" height="3.8361111111111112in"} + +[]{#_Ref153959461 .anchor}**Figure 6‑8:Approval of EAGLE compliance for an Ingestion.** + +The Ingestion gets than a quality stamp in the Data Catalogue (first column) and when opening the Ingestion next to the status. Please note that for now it is only planned to go through the approval process for the CLMS products. + +The **EAGLE approval** for an Ingestion can also be revoked again by the EAGLE Maintainer (see [Figure 6‑9](#_Ref153959479)). Each approval change is saved and displayed in the history of an Ingestion. + +![](./CLCplusCore_User_Manual_Issue_4.0_Annex_Admin_User_v1-media/image15.png){width="6.925in" height="3.1902777777777778in"} + +[]{#_Ref153959479 .anchor}**Figure 6‑9:Approval and possibility to revoke the EAGLE approval again.** + +# List of abbreviations + + ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + Abbreviation Name Reference + ----------------------- ---------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- + **ADs** Applicable Documents + + **AI** Action Item + + **API** Application Programming Interface + + **CLC** CORINE Land Cover + + **CLC+** CORINE Land Cover + + + **CLMS** Copernicus Land Monitoring Service + + **COG** Cloud-optimized GIF + + **CORINE** Coordination of information on the environment + + **CZ** Coastal Zones + + **DB** Database + + **DIAS** Copernicus Data and Information Access Services + + **EAGLE** Eionet Action Group on Land monitoring in Europe + + **EC** European Commission + + **EEA** European Environment Agency + + **EEA39** The 33 member and 6 cooperating countries of the EEA + + **EEA38+UK** The 32 member and 6 cooperating countries of the EEA + United Kingdom + + **EO** Earth Observation + + **ESA** European Space Agency + + **ETC** European Topic Centre + + **EU** European Union + + **EU27** The 27 Member States of the European Union + + **FM** Final Meeting + + **FWC** Framework Contract + + **GDAL** Geospatial Data Abstraction Library + + **GDB** Geodatabase + + **GIO** GMES Initial Operations + + **GPKG** GeoPackage + + **HDF5** Hierarchical Data Format + + **HRL / HRLs** High Resolution Layer / High Resolution Layers + + **IaaS** Infrastructure-as-a-Service + + **ID** Identification Number + + **INSPIRE** Infrastructure for Spatial Information in Europe + + **ISO** International Organisation for Standardization + + **ITT** Invitation to Tender + + **JDBC** Java Database Connectivity + + **JWT** JSON Web Token + + **KOM** Kick-Off Meeting + + **LC** Land Cover + + **LCC** Land Cover Component + + **LCH** Land Characteristics + + **LC/LU** Land Cover / Land Use + + **LCC** Land Cover Component + + **LU** Land Use + + **LUA** Land Use Attribute + + **LULUCF** Land Use, Land Use Change and Forestry + + **LYR** ArcGIS Layer File + + **MMU** Minimum Mapping Unit + + **MS** Member States + + **NFRs** Non-Functional-Requirements + + **NRC** National Reference Centre + + **NUTS** Nomenclature of Territorial Units for Statistics + + **N2K** Natura 2000 + + **OBDC** Open Database Connectivity + + **PDF** Portable Document Format + + **PM** Progress Meeting + + **PMP** Project Management Plan + + **PoC** Proof of Concept + + **QA** Quality Assurance + + **QC** Quality Control + + **QM** Quality Management + + **QML** QGIS Style file + + **REST** Representational State Transfer + + **RZ** Riparian Zones + + **SC** Specific Contract + + **SHP** ESRI Shapefile + + **SLD** Styled Layer Descriptor + + **SQL** Structured Query Language + + **UA** Urban Atlas + + **UI** User Interface + + **URI** Uniform Resource Identifier + + **URL** Uniform Resource Locator + + **UUID** Universally Unique Identifier + + **VM** Virtual Machine + + **WBS** Work Breakdown Structure + + **WEkEO** Copernicus DIAS reference service for environmental data, virtual environments for data processing + + **WP** Work Package + + **ZIP** ZIP Format +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +[^1]: \ No newline at end of file diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image1.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image1.png new file mode 100644 index 00000000..f9b96711 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image1.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image10.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image10.png new file mode 100644 index 00000000..0514619e Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image10.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image100.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image100.png new file mode 100644 index 00000000..7ea8ee45 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image100.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image101.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image101.png new file mode 100644 index 00000000..24f33d70 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image101.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image102.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image102.png new file mode 100644 index 00000000..2614c5c4 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image102.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image103.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image103.png new file mode 100644 index 00000000..bc5412b1 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image103.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image104.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image104.png new file mode 100644 index 00000000..936f3b9a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image104.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image105.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image105.png new file mode 100644 index 00000000..04bf056d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image105.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image106.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image106.png new file mode 100644 index 00000000..93e74832 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image106.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image107.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image107.png new file mode 100644 index 00000000..ad87a0d8 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image107.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image108.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image108.png new file mode 100644 index 00000000..7694b4d3 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image108.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image109.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image109.png new file mode 100644 index 00000000..4dbde17d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image109.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image11.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image11.png new file mode 100644 index 00000000..cd6067ed Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image11.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image110.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image110.png new file mode 100644 index 00000000..da2b9209 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image110.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image111.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image111.png new file mode 100644 index 00000000..accd10f8 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image111.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image112.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image112.png new file mode 100644 index 00000000..71e9d0ef Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image112.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image113.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image113.png new file mode 100644 index 00000000..c8ec9608 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image113.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image114.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image114.png new file mode 100644 index 00000000..0accaf45 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image114.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image115.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image115.png new file mode 100644 index 00000000..711ef83d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image115.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image116.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image116.png new file mode 100644 index 00000000..b5a230f2 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image116.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image117.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image117.png new file mode 100644 index 00000000..d6982a64 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image117.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image118.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image118.png new file mode 100644 index 00000000..6178a463 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image118.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image119.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image119.png new file mode 100644 index 00000000..4a76ceb9 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image119.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image12.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image12.png new file mode 100644 index 00000000..e30a8fd0 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image12.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image120.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image120.png new file mode 100644 index 00000000..e58ebb94 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image120.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image121.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image121.png new file mode 100644 index 00000000..e862950d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image121.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image122.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image122.png new file mode 100644 index 00000000..87ffb38f Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image122.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image123.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image123.png new file mode 100644 index 00000000..440170d9 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image123.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image124.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image124.png new file mode 100644 index 00000000..0cc59f74 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image124.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image125.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image125.png new file mode 100644 index 00000000..33786010 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image125.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image126.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image126.png new file mode 100644 index 00000000..2d4b80ef Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image126.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image127.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image127.png new file mode 100644 index 00000000..e697591f Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image127.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image128.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image128.png new file mode 100644 index 00000000..c8fb672f Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image128.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image129.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image129.png new file mode 100644 index 00000000..bf066298 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image129.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image13.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image13.png new file mode 100644 index 00000000..f28f289c Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image13.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image130.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image130.png new file mode 100644 index 00000000..331021f0 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image130.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image131.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image131.png new file mode 100644 index 00000000..d9822750 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image131.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image132.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image132.png new file mode 100644 index 00000000..5cec043d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image132.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image133.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image133.png new file mode 100644 index 00000000..1450efde Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image133.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image134.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image134.png new file mode 100644 index 00000000..7593fcfe Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image134.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image135.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image135.png new file mode 100644 index 00000000..58cc51b6 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image135.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image136.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image136.png new file mode 100644 index 00000000..36813d0a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image136.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image137.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image137.png new file mode 100644 index 00000000..bf44fe54 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image137.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image137icon.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image137icon.png new file mode 100644 index 00000000..b720043d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image137icon.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image138.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image138.png new file mode 100644 index 00000000..7add285c Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image138.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image139.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image139.png new file mode 100644 index 00000000..acb12dc8 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image139.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image14.jpg b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image14.jpg new file mode 100644 index 00000000..0f7d037d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image14.jpg differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image140.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image140.png new file mode 100644 index 00000000..557d5b55 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image140.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image141.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image141.png new file mode 100644 index 00000000..206c0c31 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image141.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image142.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image142.png new file mode 100644 index 00000000..293a7864 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image142.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image143.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image143.png new file mode 100644 index 00000000..d7faaf6c Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image143.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image144.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image144.png new file mode 100644 index 00000000..75f1b6dc Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image144.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image145.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image145.png new file mode 100644 index 00000000..847215df Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image145.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image146.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image146.png new file mode 100644 index 00000000..1d7c5375 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image146.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image147.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image147.png new file mode 100644 index 00000000..de3ec56a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image147.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image148.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image148.png new file mode 100644 index 00000000..4b9ccafe Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image148.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image149.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image149.png new file mode 100644 index 00000000..82a6e81d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image149.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image15.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image15.png new file mode 100644 index 00000000..31858316 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image15.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image150.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image150.png new file mode 100644 index 00000000..ae521559 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image150.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image151.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image151.png new file mode 100644 index 00000000..01e21a8a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image151.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image152.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image152.png new file mode 100644 index 00000000..3a0bdf9d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image152.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image153.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image153.png new file mode 100644 index 00000000..06c66186 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image153.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image154.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image154.png new file mode 100644 index 00000000..fc339fae Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image154.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image155.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image155.png new file mode 100644 index 00000000..d6525519 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image155.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image156.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image156.png new file mode 100644 index 00000000..e0302771 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image156.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image157.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image157.png new file mode 100644 index 00000000..1263a275 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image157.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image158.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image158.png new file mode 100644 index 00000000..73f28ff3 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image158.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image159.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image159.png new file mode 100644 index 00000000..1fc1bcc9 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image159.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image16.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image16.png new file mode 100644 index 00000000..f003657e Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image16.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image160.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image160.png new file mode 100644 index 00000000..5e38751a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image160.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image161.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image161.png new file mode 100644 index 00000000..760e87c5 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image161.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image162.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image162.png new file mode 100644 index 00000000..430d3b01 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image162.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image163.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image163.png new file mode 100644 index 00000000..ec354159 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image163.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image164.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image164.png new file mode 100644 index 00000000..4a83c24d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image164.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image165.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image165.png new file mode 100644 index 00000000..e8de6a19 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image165.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image166.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image166.png new file mode 100644 index 00000000..dd750af2 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image166.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image167.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image167.png new file mode 100644 index 00000000..41c48118 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image167.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image168.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image168.png new file mode 100644 index 00000000..32529a8a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image168.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image169.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image169.png new file mode 100644 index 00000000..98759497 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image169.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image17.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image17.png new file mode 100644 index 00000000..8ff16c11 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image17.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image18.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image18.png new file mode 100644 index 00000000..8853f98f Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image18.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image19.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image19.png new file mode 100644 index 00000000..4ca182f3 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image19.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image2.jpg b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image2.jpg new file mode 100644 index 00000000..072da5fc Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image2.jpg differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image20.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image20.png new file mode 100644 index 00000000..e1668b06 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image20.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image21.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image21.png new file mode 100644 index 00000000..1f9acc10 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image21.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image23.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image23.png new file mode 100644 index 00000000..73ec2973 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image23.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image24.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image24.png new file mode 100644 index 00000000..b3007bb1 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image24.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image25.jpeg b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image25.jpeg new file mode 100644 index 00000000..ae9ce32f Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image25.jpeg differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image26.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image26.png new file mode 100644 index 00000000..07f7340a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image26.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image27.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image27.png new file mode 100644 index 00000000..1712bae1 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image27.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image28.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image28.png new file mode 100644 index 00000000..e6219728 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image28.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image29.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image29.png new file mode 100644 index 00000000..b1c3ed03 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image29.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image3.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image3.png new file mode 100644 index 00000000..a2028390 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image3.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image30.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image30.png new file mode 100644 index 00000000..a377819e Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image30.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image32.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image32.png new file mode 100644 index 00000000..0a849f1c Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image32.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image34.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image34.png new file mode 100644 index 00000000..2b54bf80 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image34.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image35.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image35.png new file mode 100644 index 00000000..497d01b1 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image35.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image36.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image36.png new file mode 100644 index 00000000..112e4e5d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image36.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image37.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image37.png new file mode 100644 index 00000000..0b079ca4 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image37.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image38.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image38.png new file mode 100644 index 00000000..7b2fc22f Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image38.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image39.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image39.png new file mode 100644 index 00000000..741da04b Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image39.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image4.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image4.png new file mode 100644 index 00000000..a6ccd561 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image4.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image40.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image40.png new file mode 100644 index 00000000..f255735e Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image40.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image41.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image41.png new file mode 100644 index 00000000..35f6af97 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image41.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image42.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image42.png new file mode 100644 index 00000000..dc380284 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image42.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image43.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image43.png new file mode 100644 index 00000000..dab2e149 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image43.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image44.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image44.png new file mode 100644 index 00000000..0e79a1bb Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image44.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image45.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image45.png new file mode 100644 index 00000000..6e73f237 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image45.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image46.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image46.png new file mode 100644 index 00000000..96bc3123 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image46.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image47.jpg b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image47.jpg new file mode 100644 index 00000000..7a630827 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image47.jpg differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image48.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image48.png new file mode 100644 index 00000000..392376e2 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image48.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image49.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image49.png new file mode 100644 index 00000000..e61ca24b Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image49.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image5.jpg b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image5.jpg new file mode 100644 index 00000000..d148773a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image5.jpg differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image50.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image50.png new file mode 100644 index 00000000..54323c74 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image50.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image51.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image51.png new file mode 100644 index 00000000..b1ead966 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image51.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image52.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image52.png new file mode 100644 index 00000000..c6af0f48 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image52.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image53.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image53.png new file mode 100644 index 00000000..360d20b0 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image53.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image54.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image54.png new file mode 100644 index 00000000..59783184 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image54.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image55.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image55.png new file mode 100644 index 00000000..adfa4fdc Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image55.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image56.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image56.png new file mode 100644 index 00000000..0b82f16d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image56.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image57.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image57.png new file mode 100644 index 00000000..45940ac3 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image57.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image58.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image58.png new file mode 100644 index 00000000..f4769996 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image58.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image59.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image59.png new file mode 100644 index 00000000..f1dfd558 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image59.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image6.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image6.png new file mode 100644 index 00000000..ad6685cb Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image6.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image60.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image60.png new file mode 100644 index 00000000..f6537b21 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image60.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image61.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image61.png new file mode 100644 index 00000000..4cbda229 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image61.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image62.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image62.png new file mode 100644 index 00000000..22ce3c1a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image62.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image63.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image63.png new file mode 100644 index 00000000..e43109fd Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image63.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image64.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image64.png new file mode 100644 index 00000000..2b920efe Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image64.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image65.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image65.png new file mode 100644 index 00000000..c75df8a6 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image65.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image66.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image66.png new file mode 100644 index 00000000..2d4334ac Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image66.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image67.JPG b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image67.JPG new file mode 100644 index 00000000..572e15e0 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image67.JPG differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image68.JPG b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image68.JPG new file mode 100644 index 00000000..e1f96ae4 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image68.JPG differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image69.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image69.png new file mode 100644 index 00000000..7425fb80 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image69.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image7.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image7.png new file mode 100644 index 00000000..1f9acc10 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image7.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image70.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image70.png new file mode 100644 index 00000000..d9515ab2 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image70.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image71.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image71.png new file mode 100644 index 00000000..9dad479d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image71.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image72.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image72.png new file mode 100644 index 00000000..f1f4e736 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image72.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image73.JPG b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image73.JPG new file mode 100644 index 00000000..44a4d36c Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image73.JPG differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image74.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image74.png new file mode 100644 index 00000000..9531db44 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image74.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image75.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image75.png new file mode 100644 index 00000000..14f5a5e9 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image75.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image76.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image76.png new file mode 100644 index 00000000..89555cca Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image76.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image77.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image77.png new file mode 100644 index 00000000..51434a07 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image77.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image78.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image78.png new file mode 100644 index 00000000..ebc06ec6 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image78.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image79.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image79.png new file mode 100644 index 00000000..7ee0bcbc Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image79.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image8.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image8.png new file mode 100644 index 00000000..48212cc8 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image8.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image80.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image80.png new file mode 100644 index 00000000..a67a064a Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image80.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image81.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image81.png new file mode 100644 index 00000000..9cb8b09d Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image81.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image82.jpeg b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image82.jpeg new file mode 100644 index 00000000..4c7b8cac Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image82.jpeg differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image83.jpeg b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image83.jpeg new file mode 100644 index 00000000..1ef47ecd Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image83.jpeg differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image84.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image84.png new file mode 100644 index 00000000..709d4e6e Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image84.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image85.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image85.png new file mode 100644 index 00000000..b64aa27e Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image85.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image86.JPG b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image86.JPG new file mode 100644 index 00000000..fddbe614 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image86.JPG differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image87.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image87.png new file mode 100644 index 00000000..85a0e9e7 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image87.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image88.JPG b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image88.JPG new file mode 100644 index 00000000..42c45616 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image88.JPG differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image89.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image89.png new file mode 100644 index 00000000..d85e6a76 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image89.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image9.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image9.png new file mode 100644 index 00000000..0008ff1c Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image9.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image90.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image90.png new file mode 100644 index 00000000..21ad5ed7 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image90.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image91.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image91.png new file mode 100644 index 00000000..aef4f155 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image91.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image92.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image92.png new file mode 100644 index 00000000..402a5e39 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image92.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image93.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image93.png new file mode 100644 index 00000000..edc7f344 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image93.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image94.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image94.png new file mode 100644 index 00000000..64105529 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image94.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image95.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image95.png new file mode 100644 index 00000000..9e5cffca Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image95.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image96.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image96.png new file mode 100644 index 00000000..f6501d02 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image96.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image97.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image97.png new file mode 100644 index 00000000..376acc8b Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image97.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image98.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image98.png new file mode 100644 index 00000000..2e30baee Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image98.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image99.png b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image99.png new file mode 100644 index 00000000..d6e2d208 Binary files /dev/null and b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1-media/image99.png differ diff --git a/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1.qmd b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1.qmd new file mode 100644 index 00000000..bbe994de --- /dev/null +++ b/DOCS/clcplus-core/CLCplusCore_User_Manual_Issue_4.0_v1.qmd @@ -0,0 +1,2065 @@ +--- +title: "CLC+ Core User Manual" +subtitle: "CLC+ Core production and provision of complementary consultancy" +date: "2023-12-22" +author: "European Environment Agency (EEA)" +version: Issue 4.0 +category: "products" +template-version: 1.0.0 +product-name: CLC+ Core User Manual +description: "Product DESCRIPTION" +--- + +Date: 2023-12-21 + +Doc. Version: Issue 4.0 + +Content ID: / + +**Document Control Information** + + ------------------------------------------------------------------------------------------------- + Document Title CLC+ Core User Guideline + ------------------ ------------------------------------------------------------------------------ + Project Title CLC+ Core production and provision of complementary consultancy services + + Document Author Thomas Mathis (Cloudflight), Tanja Gasber (GeoVille), Amelie Lindmayer (GAF) + + Project Owner Tobias Langanke (EEA) + + Project Manager Tobias Langanke (EEA) + + Document Code / + + Document Version Issue 4.0 + + Distribution + + Date 2023-12-20 + ------------------------------------------------------------------------------------------------- + +**Document Approver(s) and Reviewer(s):** + + ---------------------------------------------------------------- + Name Role Action Date + --------------------- ----------- ----------------- ------------ + Tim Wiltzius (CLF) Reviewer Document review 2023-12-20 + + Johannes Vass (CLF) Reviewer Document review + ---------------------------------------------------------------- + +**Document history** + + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + Revision Date Created by Short description of changes + ---------- ------------ ------------------------------------- --------------------------------------------------------------------------------------------------------------- + 1.0 2022-04-08 CLC+ Core consortium (CLF, GV, GAF) Initial document creation + + 2.0 2022-06-10 CLC+ Core consortium (CLF, GV, GAF) Restructure of entire document, extension of Extraction chapter and Admin User section + + 3.0 2023-06-06 CLC+ Core consortium (CLF, GV, GAF) Adaption of rule 3 in the current version of the CLC+ Core system + + 4.0 2023-12-22 CLC+ Core consortium (CLF, GV, GAF) Update of the entire document with all newly implemented features and improvements of the system (within SC8) + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +**Applicable Documents (AD)** + ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **ID** | **Document Name / Content** | ++========+:================================================================================================================================================================================================+ +| AD01 | Tender Specifications -- EEA/DIS/R0/20/019 -- Copernicus Land Monitoring Service -- Production of the CLC+ Core and Provision of Complementary Consultancy Services | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD02 | Consortium's Technical Proposal -- in response to Call for tenders EEA/DIS/R0/20/019 -- CLC+CORE Technical Proposal - v2.0 | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD03 | Specific Contract No 3436/R0-COPERNICUS/EEA.58286 | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD04 | Minutes of the KOM (CLC+Core_KOM_Minutes.docx) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD05 | PM1 - Project Management and Governance Plan (CLC+Core_Deliverable_PM1_Project_Management_Plan_V1.0.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD06 | Implementation of CLC+ based on the EAGLE concept --Additional support for further development of CLC+ | +| | | +| | databases (CLC+ and CLC+ instances, namely CLC+ LULUCF instance and CLC+ Legacy instance) - Task 4: From CLC+ Core to CLC+ Legacy - 3436/R0-Copernicus/EEA.57755 | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD07 | PM2 - 1st Project Management and Status Report (CLC+Core_Deliverable_PM2_1st-Project-Management-Status-Report_V1.0.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD08 | CLC+ Core Decision Log_V1.4 (CLC+Core_Decision_log_V1.4.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD09 | D1 - Software Design (CLC+Core_D1_Software \_Design_V1.0.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD10 | D3.2.1 - Demonstration and documentation of ingested CLMS datasets, under this Service Contract (CLC+Core_Deliverable_D3.2.1_Demonstration-and-documentation-of-ingested-CLMS-datasets_V01.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD11 | D3.1 - Documentation of deployment of CLC+ Core products to DIAS -- cloud service (CLC+Core_Deliverable_D3.1_Documentation of deployment of CLC+ Core products to DIAS_V1.0.pdf) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD12 | LULUCF_classes_simplified_EAGLE_query_rules_20210325.xlsx (Provided by EAGLE Group) | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| AD13 | Specific contract no 3506_R0-COPERNCA_EEA.59433 | ++--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +# Introduction + +This User Guideline is designed to provide documentation for the users of CLC+ Core[^1]. This documentation aims to describe all user interfaces and functionalities from the user\'s point of view. Furthermore, additional useful information, experiences and recommendations have been added to provide the user with the most comprehensive guideline possible. + +For a better understanding the described functionalities are highlighted with markers containing numbers (see example on the left side) in the text and within the screenshots. + +Further important notes and remarks are marked with a green outline. + +In addition, in section [5](#faq-frequently-asked-questions) frequently asked questions are collected and a [Glossary](#glossary) (see section [7](#glossary)) was added at the end of the user guideline explaining the most common terms relevant to the CLC+ Core system. + +## CLC+ Core in a nutshell + +With CLC+ Core, the European Environment Agency (EEA) offers you a consistent multi-use grid-based, web-based Land Cover/Land Use (LC/LU) hybrid data repository. Following up on the CLC+ Backbone, the CLC+ Core constitutes the second stage of the CLC+ Product Suite (see [Figure 1‑1](#_Ref151465617)). The CLC+ Core provides a flexible database approach to incorporate existing and future European Copernicus Land Monitoring Service (CLMS) products as well as various national land cover (LC) and land use (LU) datasets, by standardised integration along the EAGLE language, which further enables the Extraction of various CLC+ Instances. CLC+ Core will thus be able to provide unprecedented information to strengthen Europe's leading role in climate change impact mitigation and the management of environmental monitoring in support of programmes and policies such as Land Use, Land-Use Change and Forestry (LULUCF) and the European Green Deal. The goal of the CLC+ suite is to become the new European standard in land monitoring, within the CLMS. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image3.png){width="6.419444444444444in" height="2.6032841207349082in"} + +[]{#_Ref151465617 .anchor}**Figure 1‑1: CLC+ Product suite overview (from left to right) with the CLC+ Core database solution (middle) hosting integrated CLMS, and potentially ancillary and national LC/LU data.** + +The following chapters provide a brief overview about the CLC+ Core System and how to perform an Ingestion or Extraction. Chapter [0](#_Ref105139868) gives an introduction about how to get started and the main functionalities of the CLC+ Core. Further, you get to information about the Organizations and User that are part of the System. The EAGLE concept, as a main part of the System, is described in chapter [0](#_Toc65609501). In this section you get tips and hints how to perform the EAGLE barcoding. There are already several datasets in the CLC+ Core System. The process how to ingest your own data in the System is described in chapter [3](#ingestions) whereas chapter [4](#extraction) explains the creation of an Extraction. The Frequently Asked Questions (FAQ) section ([5](#faq-frequently-asked-questions)) provides the user a summary of questions and their answers regarding the CLC+ Core environment. + +**Please note that this guideline is a living document which will be updated regularly.** + +## Getting started? + +The CLC+ Core **Login** Page (see [Figure 1‑2](#_Ref151465691)) uses the EIONET Portal for authentication. If you already have an **EIONET account**, use your EIONET credentials to gain access: [clcplus-core.land.copernicus.eu](https://clcplus-core.land.copernicus.eu). If you are not logged in, the login app routes you automatically to the login. + +If you do not have an EIONET account yet, please contact the [Eionet Helpdesk](https://www.eionet.europa.eu/about/helpdesk?msclkid=265000d2aa8b11ec89be0ad26fcd73b0) to create one. + +If you already have an account but forgot your password, you can reset your password here: [Eionet passwor](https://www.eionet.europa.eu/password-reset)d reset. + +The European Environment Information and Observation Network (EIONET) is a partnership network of the European Environment Agency (EEA) and its 38 member and cooperating countries. EEA and Eionet gather and develop data, knowledge, and advice policy makers about Europe\'s environment. The Eionet helpdesk is a central contact point for support requests related to Eionet account management and IT troubleshooting on Eionet web sites, tools and services. + +Eionet user accounts are created for those who need access to Eionet websites, tools and services that require Eionet login. **New user accounts can only be created by the Eionet Helpdesk and the National Focal Points.** The Eionet helpdesk is manned throughout the opening hours of EEA and generally responds to the ticket within 24 hours. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image4.png){width="6.093470034995626in" height="3.9828751093613297in"} + +[]{#_Ref151465691 .anchor}**Figure 1‑2: CLC+ Core login page** + + +## Webpage elements + +In this section, the general page elements are described to give an overview of the structure of this website, its navigation and its content (see [Figure 1‑3](#_Ref151621809)). + +### Header + +The **Header** section contains the Navigation Menu (see [Figure 1‑3](#_Ref151621809)). The different tabs will be described in the respective sections of this document: + +- Data Catalogue (section [1.6](#data-catalogue)), + +- EAGLE Ontology (section [0](#_Toc65609501)), + +- About EAGLE (section [1.9](#about-eagle)), + +- Organisations (section [1.31.3](#webpage-elements)), + +- Users (section [1.5](#users)) + +- Notifications (see section [1.7.3](#notifications-messages)) and + +- User Profile (section [1.5.1](#user-profile)). + +### Content + +The **Content** represents the section between the Header and the Footer area and varies depending on which tab is opened (see [Figure 1‑3](#_Ref151621809)). The Data Catalogue (section [1.6](#data-catalogue)) is the landing page / starting point of CLC+ Core. To navigate through the system, simply click on the relevant navigation tabs or entries. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image7.png){width="6.925in" height="3.8055555555555554in"} + +[]{#_Ref151621809 .anchor}**Figure 1‑3: Content example - Data Catalogue** + +## Organisations + +This navigation menu tab provides an overview of the registered **Organisations** of the CLC+ Core system. + +Organisations are taken over by default from EIONET with your first login to CLC+ Core. Organisations play an important role when you define the visibility of your Ingestion or Extraction for publishing it. The visibility can be limited to users from your organisations only or for the country of the selected Organisation (see sections [3.8](#publish-ingestion) and [4.8](#publish-extraction-and-download-result)). + +**Search function**, to search for an organisation within the system (see [Figure 1‑4](#_Ref151465792)). If you are an Admin User, please refer to section 6.1 in separate Annex. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image8.png){width="6.925in" height="3.8201388888888888in"} + +[]{#_Ref151465792 .anchor}**Figure 1‑4: Menu item -- Organisations** + +## Users + +This navigation menu tab provides an overview of the registered **User** of the CLC+ Core system. + +Users are taken over by default from EIONET with your first login to CLC+ Core. Depending on your role assigned, you have more or less rights. To open your Profile click on your name. Now you will be forwarded to the Profile view (section [1.5.1](#user-profile)). + +You have the possibility to search for a **User** (see [Figure 1‑5](#_Ref100263548)). If you are an Admin User, please refer to section 6.2 in separate Annex. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image9.png){width="6.925in" height="3.832638888888889in"} + +[]{#_Ref100263548 .anchor}**Figure 1‑5: Menu item -- Users** + +### User Profile + +To open the **User Profile** View you can either click on the User Profile Icon in the Header, which opens a context menu with the actions 'My Profile' and 'Logout' ([Figure 1‑6](#_Ref100263532)) or in the Users tab by clicking on your name. You will then be forwarded to the Profile view. By clicking on Logout your session will be terminated. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image11.png){width="6.925in" height="1.1444444444444444in"} + +[]{#_Ref100263532 .anchor}**Figure 1‑6: User Profile -- Actions** + +### User Profile View + +When you click on the context menu action 'My Profile' of the User Profile Icon you will find yourself within the User Profile view. Thus, a profile can only be changed by a person with the role 'User Administration / support'. Within your Profile you can see several information (see [Figure 1‑7](#_Ref151622278)) such as: + +**General Information:** In this area the most important information from your user profile is shown which is username, first and last name, which organisation you are part of and your status. The EIONET button guides you to the [Eionet Portal](https://www.eionet.europa.eu/login?came_from=/directory/user%3Fuid%3Dclccore). + +**Roles:** In this area it is displayed what roles are assigned to you. Roles define what you as a user are allowed to do within the CLC+ Core system from a functional point of view. You are perfectly able to use the system if there are no roles assigned to you. If you are an Admin User, please refer to section 6.2 in separate Annex. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image12.png){width="6.925in" height="3.8125in"} + +[]{#_Ref151622278 .anchor}**Figure 1‑7: View User Profile (User without special roles)** + +In the table below ([Table 1‑1](#_Ref151985895)) the roles possible in the CLC+ Core system are listed: + + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + Role Description + ------------------------------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + User Administrator / Support As an User Administrator / Support you are allowed to manage (Add, Edit, Activate/Inactivate) users and organisations within CLC+ Core. Additionally, you can view and edit any Ingestion and Extraction within the CLC+ Core in order to support users if they are in need of help. + + EAGLE maintainer / Approver As an EAGLE maintainer you are allowed to add a new EAGLE ontology version to the CLC+ Core and approve EAGLE compliance of Ingestions. + + System Administrator For now, this role is only available within CLC+ Core so that it can be seen who is the system administrator. For later this role could be used for additional views like e.g., scheduling view. + + Database Administrator For now, this role is only available within CLC+ Core so that it can be seen who is the database administrator. For later this role could be used for additional views like e.g., performance view. + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + : []{#_Ref151985895 .anchor}Table 1‑1: different user roles in the CLC+ Core system + +Note: Only the admin can assign a role to the user + +## Data Catalogue + +The **Data Catalogue** is the landing page / starting point of CLC+ Core. In the Data Catalogue, you can search for existing Ingestions and Extractions within CLC+ Core (see [Figure 1‑8](#_Ref151467230)). + +**An Ingestion is the input dataset resampled / aggregated to 100 x 100 m spatial resolution**. + +Each Ingestion (section [3](#ingestions)) consists of one or more Land Cover and or Land Use classes. These classes, so called Input Classes (section [3.6](#input-classes)) in CLC+ Core will be used for Extractions (section [4](#extraction)). An Extraction can create independent data products for future Instances by selecting Input Classes, adding rules that extract the required information. More information about Ingestions and Extractions are given in sections [3](#ingestions) and [4](#extraction). + +By hovering your mouse cursor over the content, the table entries turn grey and three dots appear at the end of the line. By clicking on the 3 dots, you have different options. Ingestion/Extraction can be opened in detail view, or opened in new tab. Further an Ingestion or Extraction can be reused (e.g. see section [3.9](#reuse-ingestion)) or if it's the users own Ingestion/Extraction and it has been published but not yet used (see section [3.5](#status-of-an-ingestion) or [4.1](#status-of-an-extraction)) it can be unpublished again. Further a used Ingestion could be achieved. With a right click on an Extraction additional options appear (see lower image of [Figure 1‑8](#_Ref151467230)): the user can download Extraction dataset as GeoTIFF or the Extraction metadata as JSON file directly (further this data can also be downloaded in the Extraction detail view page see section [4.8](#publish-extraction-and-download-result). + +In addition to the functionalities mentioned above, the data catalogue is the starting point for adding new data to the system (**Add Ingestions**) (see [Figure 1‑8](#_Ref151467230) [Figure 1‑9](#_Ref151467380)), + +or to start an Extraction configuration (**Add Extractions**) (see [Figure 1‑8](#_Ref151467230) [Figure 1‑9](#_Ref151467380)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image16.png){width="6.925196850393701in" height="3.811023622047244in"} + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image17.png){width="6.925in" height="2.086956474190726in"} + +[]{#_Ref151467230 .anchor}**Figure 1‑8: Data Catalogue (Ingestions upper image, lower image Extractions view)** + +The Data Catalogue lists all Ingestions and Extractions available in the CLC+ Core system. It is subdivided in several **columns**: EAGLE Approval (for further details see section [2.5](#eagle-approval-stamp-for-ingestions)), Name (of the Ingestion/Extraction), Type (Ingestion or Extraction), Created at, Created by (user), Country, Region, Reference Year (od Ingestion/Extraction), Time range (of the original input data), Organisation, Contact Person, Status and INSPIRE Themes (see [Figure 1‑9](#_Ref151467380)). All columns can be sorted ascending or descending by clicking on the column heading (arrow symbol appears). Further columns can be hidden by deselecting them on the right side (symbol next to 'Add Extraction'). The specific column then won't be displayed in the overview table anymore, but can easily be shown again by activating it again. + +**Filter and Search** for Ingestions and Extractions (see [Figure 1‑9](#_Ref151467380)) is also possible. In order to find already existing Ingestions / Extractions within CLC+ Core, an option for searching and filtering the system is available. For more details see section [1.7.1](#search-and-filter). + +Further there are '**Quick Filters**" available. The user can quickly filter by "Ingestion", "Extraction", "My Organisation" or "My Data" (see [Figure 1‑9](#_Ref151467380)). By clicking on e.g. "My Data" symbol the filter for the table blow gets activated (check mark appears) and only shows then the Ingestions/Extractions = data the user added. Same applies for "My Organisation" only data shown ingested or extracted by the user's organisation are shown. By activating (clicking on the symbol) for example "Ingestions" only Ingestions are shown in the table. Each of these quick filter options can easily be deactivated again by clicking on it again (check mark will disappear) and no filters will be applied to the table below anymore. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image18.png){width="6.925in" height="1.6416666666666666in"} + +[]{#_Ref151467380 .anchor}**Figure 1‑9: Data Catalogue -- Main functionalities** + +## Auxiliary / Supporting functions + +**Breadcrumbs** appear on sub-pages to show their parent pages. This helps you to identify how you got to the page you are currently working on (see [Figure 1‑10](#_Ref151467456)). In addition, it provides you more information about the context. Breadcrumbs are not clickable. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image19.png){width="6.925in" height="3.828472222222222in"} + +[]{#_Ref151467456 .anchor}**Figure 1‑10: Breadcrumbs** + +**Pagination** is only available on the page if applicable to the content of the page, for example where tables / lists exist. With the pagination you can navigate through the different pages of a table (see [Figure 1‑11](#_Ref151467477)). On pages with a higher number, you can find previously ingested datasets. + +**Help function** by clicking on the "?" icon on the bottom right corner (see [Figure 1‑11](#_Ref151627187)) a separate Help window opens in which the use can report any issues or questions. The support contact form can be found here: [https://land.copernicus.eu/en/contact-service-helpdesk](https://land.copernicus.eu/en/contact-service-helpdesk). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image21.png){width="6.925in" height="3.828472222222222in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image20.png) + +**Figure 1‑11: Pagination and Help function** + +### Search and Filter + +In order to search for content within CLC+ Core, an option for **searching** the system is available (see [Figure 1‑12](#_Ref151467805)). This is the grey field / box allows you to enter text. After typing your search text into the search field, please press the enter key to start the search process. + +Besides the 'Quick Filters' (see section [1.6](#data-catalogue)) there are some more detailed **filter** options which make the search more user-friendly. You can filter all Ingestions and Extractions in a panel by: country (single countries or e.g. EEA38+ UK or EU27 etc.), region, reference year, time range, status or INSPIRE theme. It is also possible to clear all filters after applying them. Or by click on the Filter header to close the filter panel again. If the user navigates in the same tab the filters remain saved until they are cleared. + +By default, all archived data is not shown. By activating 'Show ARCHIVED data' also archived data is considered in the filtering process and results. Further the user can filter for Ingestions which have the EAGLE Approval stamp (see section [2.5](#eagle-approval-stamp-for-ingestions)) by activating 'Show only EAGLE approved Ingestions'. + +**Filtered results** will be shown then on the right. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image23.png){width="6.925in" height="3.7830194663167105in"} + +[]{#_Ref151467805 .anchor}**Figure 1‑12: Search and Filter function in the Data Catalogue** + +The search function can be found in several tabs in the CLC+ Core system. In the Data Catalogue you can search for Ingestions and Extractions (section [3](#ingestions) and [4](#extraction)). Here you are able to search for Information of each column (Name, Type, Created at, etc.). The function allows to search Input Classes to be used for an Extraction (section [4.4](#add-input-classes-to-extraction)) as well as for Users or Organisations of the CLC+ Core system (section [1.3](#webpage-elements)). + +### Pop-ups/Inline Notifications + +**Inline Notifications** are shown immediately after you have triggered an action for a process that runs in the background e.g. start a 'Preview' or 'Ingestion'. [Failed notifications]{.underline} are shown in red ([Figure 1‑13](#_Ref98847093)). They will disappear automatically after a while. These notifications provide support and information on how to solve the issue. + +In the example in [Figure 1‑13](#_Ref98847093), the EAGLE barcoding is missing and the Country / Region field has not been filled out -- therefore these fields are highlighted in red, and you get the hint with the notification to fill out all required fields. If not all required fields are filled the action/process cannot start. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image24.png){width="6.929391951006124in" height="3.858339895013123in"} + +[]{#_Ref98847093 .anchor}**Figure 1‑13: Add Ingestion -- Notification of a failed preview due to missing EAGLE barcoding and the Country/region field has not been filled out -- therefore these fields are highlighted in red, and you get the hint with the notification to fill out all required fields.** + +**Pop-up notifications** are messages shown on your desktop to grab your attention. The following figures show some examples for pop-up notifications (see [Figure 1‑14](#_Ref98938457), [Figure 1‑15](#_Ref98938435) and [Figure 1‑16](#_Ref98938437)). Pop-up notifications are also shown in case there is an invalid entry in the uploaded EAGLE barcoding file (see [Figure 1-17](#_Ref152831048)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image25.jpeg){width="6.925in" height="2.794145888013998in"} + +[]{#_Ref98938457 .anchor}**Figure 1‑14: Pop-up Notification about deleting Ingestion. If an Ingestion upload was not successful, you can either delete the Ingestion or retry with different datasets or input parameters.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image26.png){width="6.925in" height="3.0034722222222223in"} + +[]{#_Ref98938435 .anchor}**Figure 1‑15: Pop-up Notification about deleting Ingestion** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image27.png){width="6.925in" height="3.3541666666666665in"} + +[]{#_Ref98938437 .anchor}**Figure 1‑16: Pop-up Notification about uploading documents** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image28.png){width="6.3in" height="3.747916666666667in"} + +[]{#_Ref152831048 .anchor}**Figure 1-17: Pop-up Notification about errors in the uploaded EAGLE barcoding file and the hint in which columns in the Excel file there are some potential errors.** + +### Notifications messages + +The user gets notified whenever there is a change of status happening with the user's Ingestion or Extraction. Whenever a Ingestion or Extraction gets published, assuming it was published with public visibility (see section [3.8](#publish-ingestion) and [4.8](#publish-extraction-and-download-result)) all users get a notification about the new publication. + +The following events/status changes trigger a **notification message** (examples see [Figure 1‑19](#_Ref151471608)): + +- Ingestion Uploading Error + +- Ingestion Processing Error + +- Ingestion Processing Cancelled + +- Ingestion Processing Finished + +- Ingestion Ingesting Error + +- Ingestion Ingesting Cancelled + +- Ingestion Ingested + +- Ingestion Published + +- Extraction Extracting Error + +- Extraction Extracting Cancelled + +- Extraction Extracted + +- Extraction Published + +- Barcoding approved by EAGLE. + +- Barcoding approval revoked + +- New EAGLE ontology version published + +**Notifications** are shown in the header (see clock icon on the upper right corner next to the User profile/user name). Whenever there is a new notification available and unread a blue dot appears next to the clock icon (see [Figure 1‑18](#_Ref151468543)). + +By clicking on the **notification's icon**, a more detailed view of the notifications opens which includes all notifications (see [Figure 1‑18](#_Ref151468543)). By clicking on the notification or by clicking "Mark all as read" (all) notifications get read and the blue dot disappears. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image30.png){width="6.925196850393701in" height="2.751733847759086in"} + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image29.png){width="6.925196850393701in" height="1.330708661417323in"} + +[]{#_Toc154044680 .anchor}**Figure 1‑18: Notifications at the header (blue dot if new/unread notifications is available), by clicking on the clock the notifications open up on the right.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image34.png){width="3.039200568678915in" height="1.3968996062992125in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image35.png){width="2.766547462817148in" height="1.4241305774278215in"} + +[]{#_Ref151471608 .anchor}**Figure 1‑19: Examples for notification of status changes.** + +Further if the users email address is added in the user profile an email with the notification will be send automatically if the notification is not read within 15 min (see below [Figure 1‑20](#_Ref151472379)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image36.png){width="5.388442694663167in" height="3.1378543307086613in"} + +[]{#_Ref151472379 .anchor}**Figure 1‑20: Notification email in case of an unread notification** + +## Projections (of national datasets) + +In general, datasets in national projections can be ingested into the CLC+ Core. Since there is such a large number of different **projections**, we ask for your understanding that the system cannot take all projections into account. We have therefore limited ourselves to the projections that are supported as national projections in the CLMS products and by GDAL (see Annex [Table 0‑4](#_Ref151967307)). + +## About [EAGLE](https://land.copernicus.eu/eagle) + +Within the Navigation Menu you can find the entry "**About EAGLE**" which brings you directly to the [homepage of the EAGLE group](https://land.copernicus.eu/en/eagle?tab=main) (see [Figure 1‑21](#_Ref151986403)) when clicking on it. On this page you can find additional information about EAGLE, documentations and tools and the context and background of the Pan-European Implementation of CLC+ based on the EAGLE concept. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image37.png){width="6.925in" height="3.823611111111111in"} + +[]{#_Ref151986403 .anchor}**Figure 1‑21: Homepage of the EAGLE group on land.copernicus.eu** + +[]{#_Toc65609501 .anchor} + +# [[]{#_Toc154044849 .anchor}EAGLE](https://land.copernicus.eu/eagle)[^2] + +Since 2008, the **EAGLE** Group has been developing a solution and proof of concept to support the semantic and technical framework of a European harmonised information capacity for land monitoring. The EAGLE Group is a self-initiated and open group of land monitoring experts from different European Environment Agency (EEA) member countries, mostly -- but not only -- in their roles as EIONET members. Thus, the EAGLE Group brings together knowledge and experiences from existing land cover (LC) and land use (LU) classification approaches and initiatives in a bottom-up approach. + +Meanwhile, EAGLE barcoding is acknowledged by the Copernicus Land Monitoring Service (CLMS) as an instrumental and crucial component to support a general shift of focus from classification to characterisation, and EAGLE compliance is enforced in all newer CLMS products. + +In the "**EAGLE Ontology**" tab you can inspect the current and older EAGLE ontologies. You can download the EAGLE barcoding file template you will need for the EAGLE barcoding (section [2.3](#_Ref153949431)). Additionally, expert users have the possibility to add new EAGLE ontologies (section 6.3 in separate Annex). The most current version of the EAGLE matrix is v3.2[^3] which is also implemented already in the current version of the CLC+ Core system. In the current EAGLE matrix version some elements have been deleted and the barcoding values were reduced to X-5 instead of before X,0-6. + +In this section, you will be further given a general overview of the EAGLE concept and the approach and implementation the CLC+ consortium used for the EAGLE barcoding for the CLMS products ingested in the CLC+ Core system. To prove the concept also two national datasets for the Netherlands and Spain were EAGLE barcoded and uploaded to the system. + +## General overview of the EAGLE concept + +The EAGLE concept[^4] is explicitly mentioned in the Copernicus Work Programmes as an essential pillar to support the challenging new use cases of the 2nd generation CORINE Land Cover (CLC), also known as CLC+. The EAGLE concept is now operationally implemented as a central component of the CLC+ implementation, to guarantee a standardized integration approach of different LC/LU products. + +The EAGLE concept has been established to ease the collection of data of different classification systems and nomenclatures, with the aim to make them comparable. The concept is based on a set of attributes that allow the description of landscape objects. The EAGLE matrix itself is presented in the form of an Excel cross table and is subdivided into three main blocks. The matrix elements represent atomic landscape descriptors of: + +I. LAND COVER Components -- LCC, + +II. LAND USE Attributes -- LUA, + +III. LAND CHARACTERISTICS -- LCH + +In the CLMS products, such as the HRLs, each class in the nomenclature is coded by a specific number and definition. Compliance with the EAGLE data model is ensured by switching to an object-based approach, providing an INSPIRE-compatible distinction between LCC, LUA and complementary object characteristics (CH). The connection and compliance of the hierarchical CLC-driven and CODE level-based nomenclature to the EAGLE data model is established via the EAGLE barcoding file. The EAGLE barcoding values (see Annex Table 0-1) provide a semantic translation of class definitions into the EAGLE matrix elements[^5]. + +[Figure 2‑1](#_Ref98942013) shows HRL IMD as example: Barcode of value 5 means that the input class directly relates to the EAGLE element (*LCC_1_1_1* *Sealed Artificial Surfaces and Constructions*) and therefore the spatial coverage of the class can be considered the spatial coverage of the EAGLE element. A pure exclusive solitary element and nothing else besides the 5-coded element is contained. Additionally, a factor defines the coverage of the EAGLE element for the Input Class. Value range is from 0.0 to 1.0. Together with the percentage coverage of the Input Class for each cell it defines the coverage of the EAGLE element for each cell. For example, if an Input Class has got a percentage coverage of 80% for the specific cell and a factor of 0.5 is applied to the specific EAGLE element, the coverage of the EAGLE element for this cell is 40%. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image38.png){width="3.9963746719160107in" height="2.9793580489938756in"} + +[]{#_Ref98942013 .anchor}**Figure 2‑1: The EAGLE matrix for HRL Imperviousness degree (excerpt).** + +## Approach and implementation used by the CLC+ CORE Consortium + +It should be mentioned that the EAGLE barcoding was performed to the best of the CLC+ Core consortiums' knowledge and belief using a 'simplified' approach. The aim of this approach was not to describe the Ingestion in the best and most extensive way, it is more to have the best basis for the planed Extraction. + +Therefore, we established several rules (section [2.2.1](#mapping-approach-of-the-consortium)), which we followed performing the EAGLE barcoding and might help other users creating their own barcoding. With this approach the available CLMS datasets have been ingested (see in Annex [Table 0‑2](#_Ref151628372)). They are detectable as they were created exclusively by the „User Admin /Support CLC+ Core" User. + +### Mapping Approach of the Consortium + +a. **Stick to the guidelines / nomenclature** + +- Go through the guidelines document, check the definition chapter, and identify land cover, land use and characteristics aspects. Also keep in mind the list of included categories. + +b. **Reduce complexity** + +- Limit the complexity and simplify the barcoding (example see [Figure 2‑2](#_Ref151986473)). Focus on the most useful codes and highest possible hierarchy levels, considering the future Extractions. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image39.png){width="6.268055555555556in" height="2.5555555555555554in"} + +[]{#_Ref151986473 .anchor}**Figure 2‑2: Comparison simplified or more explicit barcoding** + +c. **Try to not interpret** + +- Open sea is 100% marine water and therefore mapped with value of 5. It likely includes fishing but has not been mentioned in the guidelines thus, this LCC was not mapped ([Figure 2‑3](#_Ref100052219)). + +- On the other hand, sometimes the Land Use is absolutely clear from the nomenclature. The Netherlands BBG dataset describes on class: \"Inland water for mineral extraction", which can be mapped as displayed in [Figure 2‑4](#_Ref100052208). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image40.png){width="6.268055555555556in" height="5.131944444444445in"} + +[]{#_Ref100052219 .anchor}**Figure 2‑3: Coastal Zones - \"Open Sea\" land cover components, land use attributes** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image41.png){width="6.268055555555556in" height="4.072916666666667in"} + +[]{#_Ref100052208 .anchor}**Figure 2‑4: NL BBG - \"Inland water for mineral extraction\"** + + +d. **Interpretation might be necessary for differentiation** + +- Even if we stated under d. that interpretation should be avoided, sometimes the barcoding will need a little "interpretation" to differentiate classes or their use. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image42.png){width="6.268055555555556in" height="4.33125in"} + +[]{#_Toc137576632 .anchor}**Figure 2‑5: Natura 2000 - \"(Semi-)Natural Forest\" vs \"Plantations\" land use attribute mapping** + +e. **Consider Land Cover and Land Use separately** + +- Not always both land cover and land use will be useful for Extractions. Sometimes we have a very heterogeneous land cover setting but clear land use, and vice-versa. Some classes will not offer much insight due to a (potential) combination of abiotic, biotic and water land cover components. For such classes, the land use section might be more useful. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image43.png){width="6.268055555555556in" height="6.988194444444445in"} + +[]{#_Toc137576633 .anchor}**Figure 2‑6: NL BBG - \"Sports Area\" which includes land cover component ice rinks** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image44.png){width="6.268055555555556in" height="3.713888888888889in"} + +[]{#_Toc137576634 .anchor}**Figure 2‑7: NL BBG - \"Sports Area\" has a clear land use barcoding** + +For a better understanding of the data and to describe the parent classes content wise in more detail, the Level 1 classes are differentiated into subtypes of these LULUCF parent classes. The Level 2 and 3 classes are no official classes, and each country may define the classes in the way that best suits the country's specific characteristics. This concrete subdivision is based on the examples mentioned in the official class definitions or auxiliary subdivision done by the EAGLE group and adapted by the CLC+ Core consortium \[AD11\] ([Table 0‑3](#_Ref149045139) see Annex). It is recommended to involve specific experts to support the subclass definitions to best meet the reporting requirements. + +Further, the consortium recommends assigning the EAGLE elements to the respective (sub)classes. In a first round, select all the required EAGLE elements that should describe the subclass as best as possible. In [Table 0‑3](#_Ref149045139) (see Annex), an example is shown of the category "Grassland" with its subclasses and the identified EGLE elements relevant for Extraction. The procedure has to be done for all the remaining categories as well. In a second round check the availability of the EAGLE element in the input classes together with the barcoding value. This second round is very important to ensure that the rule will have an output. If the rule is not true, the outcome will be empty. I.e. forest class "clear cuts" can be described best with the following EAGLE elements: LCC "bushes/shrubs and herbaceous vegetation", LUA "forestry" and LCH "clear cut" besides other elements. In this case the LCH attribute is not barcoded in any of the CLC input classes although it would be very well describing this subclass. Due to this fact it cannot be used in the rule or if used, the output would be empty. + +## [[]{#_Toc154044853 .anchor}EAGLE Ontology](https://land.copernicus.eu/eagle/work-results-documentation-and-tools) overview + +After you have clicked on "**EAGLE Ontology**", you will see the EAGLE Ontology overview (see [Figure 2‑9](#_Ref151986517)), which shows you a list of the EAGLE Ontology (EAGLE barcoding file) versions within CLC+ Core. You can see detailed information about the version, creation date (created on), creator (created by) and description of the respective EAGLE version. + +Users with the role "EAGLE maintenance" have the possibility to add a new version to the system. This is described in more detail at section 63. In separate Annex for Admin Users. Once a new EAGLE ontology version is published all users get a notification (see section [1.7.3](#notifications-messages)). + +Users are also able to **download the EAGLE barcoding template using this button. Additionally, the EAGLE templates and other tools can be accessed [here](https://land.copernicus.eu/en/eagle?tab=document_archive)**. You can use this template to map/translate your dataset and upload your data together with the EAGLE barcoding. This is the recommended way performing the EAGLE barcoding -- alternatively, the data can be mapped while editing the Ingestion. + +**Note: In general, you need to barcode all classes. There is a possibility to re-structure / aggregate your classes to a less detailed level** **in an external GIS [BEFORE]{.underline} uploading them to the system. This is recommended if your national dataset is very detailed which does not provide more value to the Extraction but to reduce the amount of input classes and the effort of the EAGLE barcoding.** In [Figure 2‑8](#_Ref99878072) below, the original 337 classes (GEWASCODE) from the Dutch LPIS dataset were reduced /aggregated to 16 classes (LGN). To do this: + +- Add a new column (enter name and select datatype integer) + +- Select all polygons with value i.e. 372 (select by attributes) + +- Open the filed calculator and add value 1 for all selected entries + +- Repeat until all values have a new class code assigned + +- **Now, that you have everything reclassified, you can start the EAGLE barcoding** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image45.png){width="3.620683508311461in" height="3.2496117672790903in"} ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image46.png){width="2.416116579177603in" height="3.2214873140857394in"} + +[]{#_Ref99878072 .anchor}**Figure 2‑8: The original 337 classes (GEWASCODE) from the Dutch LPIS dataset were reduced /aggregated to 16 classes (LGN).** + +You are also able to have a look at the details of each EAGLE Ontology version by clicking on "open" within the context menu of each EAGLE Ontology version from the table. The detail page is described in section [2.4](#view-details-of-eagle-ontology). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image51.png){width="6.925in" height="1.7451388888888888in"} + +[]{#_Ref151986517 .anchor}**Figure 2‑9: EAGLE Ontology overview** + +## View details of EAGLE Ontology + +After clicking on "Open" for the specific EAGLE Ontology version (see section 7.1) you will find yourself within the EAGLE Ontology detail view (see [Figure 2‑10](#_Ref151986549)). + +Within the detail view you can find the details and structure of the specific EAGLE Ontology version and its elements. By collapsing/expanding the sections you can dig deeper into the structure of the ontology. + +Via the search field you can easily find specific EAGLE elements. + +Additionally, you can open the details of each EAGLE element by a right-click and select "show details" or alternatively, by using the action "show details" within the context menu of the EAGLE element. + +After you clicked on "show details" a dialog will pop up to show you all relevant information for the specific EAGLE element (see [Figure 2‑11](#_Ref151986570)). You can see in which version (Version), when (created at) and by whom (created by) it was created, since (since version) and until (to version) which version it was active in the ontology, when (changed at) and by whom it has been changed (changed by) and a description. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image53.png){width="6.925in" height="3.8180555555555555in"} + +[]{#_Ref151986549 .anchor}**Figure 2‑10: View details of EAGLE Ontology** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image54.png){width="6.925in" height="3.817361111111111in"} + +[]{#_Ref151986570 .anchor}**Figure 2‑11: View details of EAGLE element** + +In addition, the EAGLE mapping barcoding file of a published Ingestion can be downloaded on the detail view page of the Ingestion. Either at the bottom left of the page under "Additional Documents" by clicking on the file or by using the "Download EAGLE Barcoding" button below the map view (see [Figure 2-12](#_Ref152831592)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image55.png){width="6.925in" height="3.81875in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image56.png){width="6.925in" height="1.073611111111111in"} + +[]{#_Ref152831592 .anchor}**Figure 2-12: Options for downloading the EAGLE barcoding file of a published Ingestion.** + +## EAGLE approval stamp for Ingestions + +The EAGLE barcoding of an Ingestion can be approved for being EAGLE compliant by any user with the additional role of being an "EAGLE Maintainer/Approver". This approval process can only be initiated by users with this role and is for now only planned for the CLMS products. If you are an Admin User, please refer to section 6.4 in separate Annex. + +The Ingestions gets then a quality stamp/icon in the Data Catalogue (first column 'EAGLE approved'). By hovering over it with the mouse an explanation appears in the grey box: "The EAGLE mapping was reviewed and approved by the EAGLE Group". Further when opening the Ingestion itself the approval appears next to the status (see [Figure 2‑13](#_Ref151645180)). Moreover, when selecting Input classes for an Extraction (see section [4.4](#add-input-classes-to-extraction)) there is also the possibility in the 'add input class' view to filter by 'show only EAGLE approved Input classes'. The EAGLE approval for an Ingestion can also be revoked again by the EAGLE Maintainer. Each approval change is saved and displayed in the history of an Ingestion. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image57.png){width="6.925in" height="1.4673611111111111in"} + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image58.png){width="6.925in" height="3.2222222222222223in"} + +[]{#_Ref151645180 .anchor}**Figure 2‑13: EAGLE Approval stamp in the Data Catalogue (upper image) and Ingestion view (lower image).** + +## Lessons learned for the EAGLE barcoding approach + +In the meanwhile, the consortium gained valuable experience about the EAGLE barcoding approach in regard to ingesting and extracting datasets into and from the CLC+ Core System. As the EAGLE barcoding approach is not trivial, the following lessons learned can be summarized by the consortium: + +- The EAGLE model must be studied in depth along with the dataset/nomenclature to be barcoded, which must be divided into its fractions. Due to the number of EAGLE elements and possibilities for the barcode value, the process of barcoding must be done thoughtfully. After an initial version is produced, it may need to be revised and discussed several times until it leads to a \'final\' version. + +- Understanding the nomenclatures are crucial. If the nomenclatures do not contain detailed descriptions of the respective classes, barcoding is all the more difficult. Often the class definitions leave much room for interpretation or even contradict each other. The point is to clearly express what characterises the individual class and not to try to describe everything that exists or that one could think of as well as possible. + +- In most hierarchical nomenclatures, level 1 classes are already described, which are then further stratified and specified by the next level, which can make barcoding difficult. + +- Expert knowledge of the datasets is therefore extremely valuable for meaningful barcoding. Nevertheless, the determination of the barcode value will be subjective depending on the responsible performing the barcoding. + +- Since Extractions are highly dependent on both the selected input classes and the barcoding, a comprehensive knowledge of them is essential. + +- In general, the more heterogeneous the classes are, the more difficult and elaborative the barcoding will become. + +- In the best case, you already have a concept in mind of what you want to extract, but this is not obligatory. In the case, the barcoding has to be reworked and adapted if no optimal results can be achieved. + +- The required LCC, LUA and LCH attributes are primarily determined by the requirements of the instance classes. + +- Changes in the EAGLE barcoding template are covered with the CLC+ System. The system is always updated to the latest version of the template. Older versions are stored in the system and Ingestions and Extractions based on the older versions remain valid. Only if the EAGLE barcoding is performed on an older version, it will not be possible to upload this older template but rather needs to be updated/transferred to the latest version. + +# Ingestions + +As mentioned in the introduction, users are able to add already existing datasets to the CLC+ Core, such as products of the Copernicus CLMS portfolio as well as national datasets by performing an **Ingestion**. Ingestion means to upload datasets to the system and make it available and usable for all users, a selected user group or only for the organization of the ingesting user. [Figure 3‑1](#_Ref100264360) provides a simplified overview of the Ingestion process. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image59.png){width="5.909722222222222in" height="5.972541557305337in"} + +[]{#_Ref100264360 .anchor}**Figure 3‑1: Simplified Ingestion workflow** + + +Dataset to be uploaded can be common **raster and vector file formats**: + +- Shapefile (shp as zip) + +- Geopackage (gpkg) + +- File geodatabases (gdb) + +- Hierarchical Data Format (HDF5) + +- GeoTiff (tif/tiff) + +Several additional documents can accompany the dataset, such as a metadata file, a legend / style file (section [3.2.1](#raster-dataset) and [3.2.2](#vector-dataset)) and the EAGLE barcoding files (section [2.3](#_Ref105145961)). By adding them at Ingestion creation, the information is extracted automatically, otherwise the user need to add this information manually at a later stage. An Ingestion has been successfully processed, once it is in the status draft. + +An Ingestion comprises the following steps, which are described in more detail in this section below: + +a) Upload the data (either by attaching a local dataset directly within the \"Upload Dataset\" field or by providing a dataset download URL) and configure its settings (section [3.2](#add-ingestion)) + +b) Map the Input Classes to the respective EAGLE[^6] barcoding using the EAGLE barcoding template (section [2.3](#_Ref99728447)). Alternatively, the mapping can be performed in the system itself (section [3.7](#edit-ingestion)) + +c) Edit, preview, start Ingestion and publish the Ingestion + +**Please consider that the Ingestion will be resampled**[^7] **and aggregated to 100 x 100 m. This reduced spatial resolution needs to be taken into account while setting up the Extraction rules (section [4.5.1](#some-definitions-for-a-better-understanding-also-see-glossary)).** + +## Generic workflow + +The key steps required in the development of an Ingestion and Extraction are (see [Figure 3‑2](#_Ref151987137)): + +1. Knowledge of Reporting or Extraction requirements + +2. Development of an Extraction concept + +3. Identification and selection of relevant and required datasets + +4. Performing an EAGLE barcoding suitable for the Extractions + +5. Ingest dataset into the CLC+ Core System + +6. (Optional) Adaption of EAGLE barcoding and re-ingestion + +7. Publish Ingestion + +8. Selection of Input Classes + +9. Definition of Output Classes including Extraction rulesets + +10. Perform an Extraction + +11. Publish Extraction + + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image60.png){width="6.607769028871391in" height="3.0520833333333335in"} + + []{#_Ref151987137 .anchor}**Figure 3‑2: Generic workflow for the creation of an Ingestion and Extraction.** + +## Add Ingestion + +### Raster dataset + +Clicking the '**Add Ingestion**' button (section [1.6](#data-catalogue) [Figure 1‑9](#_Ref151467380)) opens the 'Add Ingestion' dialog (see [Figure 3‑3](#_Ref151987176)) where you can define the data format of your dataset (step 1). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image61.png){width="6.925in" height="3.852777777777778in"} + +[]{#_Ref151987176 .anchor}**Figure 3‑3: Add Ingestion - Step 1 (Data format) - here raster file** + +In a second step, further information, such as name and country / region that describe the data can be entered (step 2 see [Figure 3‑4](#_Ref151987203)). All **mandatory fields** are marked with a \*. In this example, we will upload the HRL Imperviousness (IMD) for Albania. Since we want to ingest the whole country, we do not specify a region. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image62.png){width="4.93673665791776in" height="3.1693733595800526in"} + +[]{#_Ref151987203 .anchor}**Figure 3‑4: Add Ingestion - Step 2 (Parameter)** + +The data can be uploaded directly from a computer (file upload or per \`drag and drop\`) or by entering an URL where the data shall be collected from (step 3 see [Figure 3‑5](#_Ref151987252)). Please also refer to section [3.3 Remarks on the Ingestion process](#_Ref99729782). The supported file formats for raster files are: + +- Hierarchical Data Format (HDF5) + +- GeoTiff (tif/tiff) + +In this example below, we chose the file upload from a local computer. By doing this, an attachment is added to the dialog. **In case the file size is larger than 5 GB, a warning appears recommending using an URL upload as the file upload might take a long time.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image64.png){width="4.338582677165355in" height="4.519685039370079in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image63.png){width="3.5188681102362205in" height="2.1646161417322833in"} + +[]{#_Ref151987252 .anchor}**Figure 3‑5: Add Ingestion - Step 3 (Data upload via local computer)** + +In another example below (see [Figure 3‑7](#_Ref151987383)), we chose the URL upload from the [CLMS portal](https://land.copernicus.eu/en/dataset-catalog). Select the required files on the download page (put them in the shopping cart) (see [Figure 3‑8](#_Ref151987407)). After sending the order, you will retrieve a download link via the CLMS portal (depending on the processing time) and per email. Note that these download links expire after a while. + +**Note: please use a direct download URL (a link that automatically starts the download immediately). Consider that the system can only process links which do not require a user login.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image65.png){width="5.291666666666667in" height="5.9375in"} + +[]{#_Ref151987332 .anchor}**Figure 3‑6: Add Ingestion - Step 3 (Data upload via URL)** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image66.png){width="5.926814304461942in" height="4.801718066491689in"} + +[]{#_Ref151987383 .anchor}**Figure 3‑7: Add Ingestion -Step 3 (Get download link via CLMS portal)** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image67.JPG){width="4.811321084864392in" height="3.5814720034995626in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image68.JPG){width="4.792452974628172in" height="2.9253576115485562in"} + +[]{#_Ref151987407 .anchor}**Figure 3‑8: Add Ingestion - Step 3 (Get download link via the portal and via email)** + +After selecting the dataset, you need to define if the dataset has discrete or continuous values[^8] (see [Figure 3‑5](#_Ref151987252) and [Figure 3‑6](#_Ref151987332)). For example, the HRL WAW and all local components consists of discrete objects, which have known and definable boundaries. A lake is a discrete object within the surrounding landscape. The HRL TCD and IMD however, represent continuous values, as their values range from 0-100 %, indicating the degree of their respective characteristic. + +In step 4, you have the possibility to **exclude a class code** from being processed (see [Figure 3‑9](#_Ref151987363)). It excludes all class codes which stand for an unknown classification (i.e. NoData values). If a TIF dataset specifies a NoData value in its metadata the corresponding class is excluded automatically. This is recommended if you don't want to have specific values in the statistics/being processed and for all unclassified/unknown values (i.e. NoData) (step 4). All pixels in the ingested dataset with an excluded class code will then appear as NoData pixel in the final Ingestion. If you do not enter a excluded class code value and the NoData value does not appear in the TIF metadata, then all classes are "0" in the ingestion, where the original data always displayed the no-data class. + +For **Continuous values** (datasets with continues values/ranges like e.g. tree cover density values between 0 and 100%) all **values** which do not represent thematic values in the input dataset will be **excluded**. Pixels with one of the given values will be counted as NoData in the ingestion. If a TIF dataset specifies a NoData value in its metadata the corresponding value is excluded automatically. + +For **Discrete values** (datasets with concret, mulitple claseses like e.g. HRL Forest class 0,1,2) all **class codes** which do not represent thematic values in the input dataset will be **excluded**. For example, unclassifiable (254) and outside area (255) pixels should be excluded. Pixels of the given classes will be counted as NoData in the ingestion. If a TIF dataset specifies a NoData value in its metadata the corresponding class is excluded automatically. + +In the example, we want to exclude 255 and 254 from being ingested. Please press enter after entering the value. Alternatively, for discrete datasets, you are able to hide the values when editing the data (section [3.7](#edit-ingestion) [Figure 3‑35](#_Ref100162670)) by disabling single classes with the "eye" symbol before ingesting and publishing an Ingestion. + +Additionally, you can **enter a layer name** which shall be used to generate input classes if there are [more than one layers per]{.underline} dataset (if several layers are stored in a .gdb for example). If nothing is defined, the first layer will be selected. In this case, this field can be omitted. + +**Please make sure to avoid special characters, otherwise an error will occur.** Please also refer to section [3.3](#_Ref99729782) to learn about the **limitations of data uploads**. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image69.png){width="4.147503280839895in" height="2.177729658792651in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image70.png){width="3.9302241907261593in" height="2.6924595363079615in"} + +[]{#_Ref151987363 .anchor}**Figure 3‑9: Add Ingestion - Step 4 (exclude values and enter layer name)** + +The fifth step is optional and provides you with the possibility to upload **additional, supporting files** that help to understand the content (see [Figure 3‑10](#_Ref151987450)), such as: + +- Metadata files, + +- Legend files (QGIS layer style file (.qml) or SLD (Styled Layer Descriptor) file (.sld); ArcGIS Layer Files (.lyr) are not supported), + +- EAGLE Barcoding files. + +Files can be uploaded via the explorer or per "drag and drop". These additional files will be used to prefill the data descriptions and define the EAGLE barcodes as well as the style for the Ingestion Classes (step 5). The upload of these documents can also be performed at a later stage (section [3.7](#edit-ingestion)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image73.JPG){width="3.2547167541557305in" height="3.5280533683289588in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image72.png){width="3.7945319335083116in" height="1.746836176727909in"} + +[]{#_Ref151987450 .anchor}**Figure 3‑10: Add Ingestion - Step 5 (upload additional datasets (i.e. EAGLE barcoding file))** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image73.JPG){width="3.6037740594925634in" height="3.906424978127734in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image74.png){width="2.991311242344707in" height="1.537652012248469in"} + +[]{#_Toc137576649 .anchor}**Figure 3‑11: Add Ingestion - Step 5 (upload additional datasets (i.e. Metadata file))** + +The last option allows you to specify whether the **raw data** (original/initial uploaded dataset) can be retained in the system after processing (see [Figure 3‑12](#_Ref151987498)). The "Delete raw data" tick box is not ticked by default. If the "delete raw data" is ticked the initial dataset will be automatically deleted after the creation of the Ingestion from the CLC+ Core storage. The raw data will only usable for users of the same organization and the admin user - and only if the Ingestion processing fails and the failed Ingestion needs to be processed (retry) again. Otherwise retrying a failed Ingestion processing step will not be possible and a completely new Ingestion would need to be initiated. After an Ingestion was successful the raw dataset is not needed anymore. Note that no user can access the raw data in the CLC+ Cores data storage. + +As soon as the processing step is finished, the raw data cannot be downloaded or reused anymore by anyone. Finally, if you have defined all upload parameters, the dataset can be added by pressing the 'ADD' button (see [Figure 3‑12](#_Ref151987498)). While the upload is performed, please do not leave the page (see [Figure 3‑13](#_Ref151987519)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image76.png){width="4.0806277340332455in" height="4.182929790026247in"} + +[]{#_Ref151987519 .anchor}**Figure 3‑12: Add Ingestion - Step 6 (start the upload)** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image77.png){ width="3.573008530183727in" height="2.584806430446194in"} + +[]{#_Ref151987498 .anchor}**Figure 3‑13: Add Ingestion - Step 6 (stay on page)** + +### Vector dataset + +Clicking the '**Add Ingestion**' button (see section [1.6](#data-catalogue) [Figure 1‑9](#_Ref151467380)) opens the 'Add Ingestion' dialog (see [Figure 3‑14](#_Ref151987694)) where you can define the data format of your dataset (step 1). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image78.png){width="6.925in" height="3.8180555555555555in"} + +[]{#_Ref151987694 .anchor}**Figure 3‑14: Add Ingestion - Step 1 (Data format) - here vector file** + +In a second step, further information, such as name and country / region that describes the data can be entered (step 2 see [Figure 3‑15](#_Ref151987707)). All **mandatory fields** are marked with a \*. In this example, we will upload the Urban Atlas 2018 for Innsbruck. As we want to ingest the area of Innsbruck only in this example, we do specify Tyrol as region. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image79.png){width="4.013493000874891in" height="3.144948600174978in"} + +[]{#_Ref151987707 .anchor}**Figure 3‑15: Add Ingestion - Step 2 (Parameter)** + +The data can be uploaded directly from your computer (file upload or per \`drag and drop\`) or by entering an URL where the data shall be collected from (step 3 see [Figure 3‑16](#_Ref151987739)). Please also refer to section [3.3](#_Ref99729782) [Remarks on the Ingestion process](#_Ref99729782). The supported file formats for vector files: + +- shapefile - When uploading a shapefile (shp), its elements need to be zipped + +- geopackage (gpkg) + +- file geodatabases (gdb) + +- Hierarchical Data Format (HDF5) + +In this example below (see [Figure 3‑16](#_Ref151987739)), we chose the file upload from a local computer. If successfully defined, an attachment is added to the dialog. **If the file size is larger than 5 GB, a warning appears recommending using an URL upload as the file upload might take a long time.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image80.png){width="4.726548556430446in" height="3.3500721784776903in"} + +[]{#_Ref151987739 .anchor}**Figure 3‑16: Add Ingestion - Step 3 (Data upload via local computer)** + +In this example below (see [Figure 3‑17](#_Ref151987899)), we chose the URL upload from the [CLMS portal](https://land.copernicus.eu/). Select the required files on the download page (put them in the shopping cart) (see [Figure 3‑18](#_Ref151987915)). After sending the order, you will retrieve a download link via this page (depending on the processing time) and per email. Copy the link and enter the URL in the dialog. + +**Note: please use a direct download URL (link that automatically starts the download immediately). Consider that the system can only process links which do not require a user login.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image81.png){width="5.412512029746281in" height="3.109834864391951in"} + +[]{#_Ref151987899 .anchor}**Figure 3‑17: Add Ingestion - Step 3 (Data upload via URL)** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image82.jpeg){width="5.6799289151356085in" height="3.3181813210848645in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image83.jpeg){width="4.80394028871391in" height="4.340909886264217in"} + +[]{#_Ref151987915 .anchor}**Figure 3‑18: Add Ingestion - Step 3 (Get download link via the portal and via email)** + +For the vector file, the Attribute Name from the dataset (column from the attribute table) which shall be used as Input Parameter for the Class Code needs to be entered (see [Figure 3‑16](#_Ref151987739) and [Figure 3‑17](#_Ref151987899)), for the raster dataset this is not required as raster dataset usually consists of one band only. Please select an integer field (the code and not its description). In general, strings also work as long as they do not have any special characters. Allowed: digits, upper-lower case, hyphen, underscore. In this case (see [Figure 3‑19](#_Ref151987951)), we chose 'code_2018'. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image84.png){ width="5.619794400699912in" height="3.06462489063867in"} + + +[]{#_Ref151987951 .anchor}**Figure 3‑19: Add Ingestion - Step 3 (Enter Attribute Name from the dataset (column from the attribute table) which shall be used as Input Parameter for the Class Code needs to be entered). Here: code_2018** + +After selecting the dataset, you need to define if the dataset has discrete or continuous values[^9]. F**or vector data currently only discrete values are specified**. In this case, the Urban Atlas consists of discrete values indicating the degree of its according characteristic. + +In step 4, you have the possibility to **exclude a class code** from being processed (see [Figure 3‑20](#_Ref151988050)). It excludes all class codes which stand for an unknown classification (i.e. NoData values). If a TIF dataset specifies a NoData value in its metadata the corresponding class is excluded automatically. This is recommended if you don't want to have specific values in the statistics/being processed and for all unclassified/unknown values (i.e. NoData) (step 4). All pixels in the ingested dataset with an excluded class code will then appear as NoData pixel in the final Ingestion. If you do not enter a excluded class code value and the NoData value does not appear in the TIF metadata, then all classes are "0" in the ingestion, where the original data always displayed the no-data class. + +Please press enter after entering the value. Alternatively, for discrete datasets, you are able to hide the values when editing the data (section [3.7](#edit-ingestion) [Figure 3‑35](#_Ref100162670)) by disabling single classes with the "eye" symbol before ingesting and publishing an Ingestion. + +Additionally, you can **enter a layer name** (see [Figure 3‑20](#_Ref151988050)) which shall be used to generate input classes if there are [more than one layers per]{.underline} dataset (if several layers are stored in a .gdb for example). If nothing is defined, the first layer will be selected. In this case, we have three layers and we need the first one. We write 'AT005L3_INNSBRUCK_UA2018' but the first layer would be selected by default anyways. + +**Please make sure to avoid special characters, otherwise an error will occur.** Please also refer to section [3.3](#_Ref99729782) to learn about the **limitations of data uploads**. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image86.JPG){width="3.486956474190726in" height="3.637884951881015in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image85.png){width="3.513888888888889in" height="1.1036406386701663in"} + +[]{#_Ref151988050 .anchor}**Figure 3‑20: Add Ingestion - Step 4 (exclude values and enter layer name)** + +The fifth step provides the possibility to upload **additional, supporting files** that help to understand the content, such as the metadata files (see [Figure 3‑22](#_Ref151988218)), legend files (see [Figure 3‑21](#_Ref151988076)) QGIS layer style file (.qml) or SLD (Styled Layer Descriptor) file (.sld); ArcGIS Layer Files (.lyr) are not supported), EAGLE Barcoding files (see [Figure 3‑23](#_Ref151988308)). These additional files will be used prefill the data descriptions and define the EAGLE barcodes and the style to the Ingestion Classes (step 5). The upload of these documents can also be performed at a later stage (section [3.7](#edit-ingestion)) and is possible via the explorer or per "drag and drop". + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image88.JPG){width="3.991304680664917in" height="4.169222440944882in"} +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image87.png){width="3.777292213473316in" height="1.6791666666666667in"} + +[]{#_Ref151988076 .anchor}**Figure 3‑21: Add Ingestion - Step 5 (upload additional datasets (i.e. legend / style file))** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image88.JPG){width="3.965217629046369in" height="4.141973972003499in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image89.png){width="3.2582983377077865in" height="1.4520833333333334in"} + +[]{#_Ref151988218 .anchor}**Figure 3‑22: Add Ingestion - Step 5 (upload additional datasets (i.e. Metadata file))** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image88.JPG){width="4.311319991251094in" height="4.503503937007874in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image90.png){width="3.2121391076115486in" height="1.4in"} + +[]{#_Ref151988308 .anchor}**Figure 3‑23: Add Ingestion - Step 5 (upload additional datasets (i.e. EAGLE barcoding file))** + +The last option allows you to specify whether the **raw data** (original uploaded dataset) can be retained in the system after processing (see [Figure 3‑24](#_Ref151988324)). The "Delete raw data" tick box is not ticked by default. If the "delete raw data" is ticked the initial dataset will be deleted after the creation of the Ingestion from the CLC+ Core storage. The raw data will only usable for users of the same organization and the admin user - and only if the Ingestion processing fails and the failed Ingestion needs to be processed (retry) again. Otherwise retrying a failed Ingestion processing step will not be possible and a completely new Ingestion would need to be initiated. After an Ingestion was successful the raw dataset is not needed anymore. Note that no user can access the raw data in the CLC+ Cores data storage. + +As soon as the processing step is finished, the raw data cannot be downloaded or reused anymore by anyone. Finally, if you have everything defined, the dataset can be added by pressing the 'ADD' button (see [Figure 3‑24](#_Ref151988324)). While the upload is performed, please do not leave the page. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image91.png){width="4.204266185476816in" height="3.214753937007874in"} + +[]{#_Ref151988324 .anchor}**Figure 3‑24: Add Ingestion - Step 6 (start the upload)** + +## Remarks on the Ingestion process + +Usually, a dataset consists of one file / layer. There is no problem in uploading a single dataset to the system. However, currently there is no option to upload more than one file from a common folder, a gdb or gpkg). In such a case, either you indicate the desired file in the dialogue under 'layer name' or the first file in the folder will be selected automatically for the Ingestion. + +In case your data is split into several sub-tiles, such as Urban Atlas or Riparian Zones, you have 3 possibilities to upload your data in the system: + +- Use the direct download URL from the CLMS portal -- **recommended** + +- Extract the required layer from GDB / GPKG and merge data into one dataset in a GIS software **outside the system** (might not be possible due to the size) + +- Ingest single datasets (i.e. start the Ingestion process for each single file) + +For datasets (i.e. gdb, gpkg) that consist of more than one layer (per file), you need to specify the layer name which shall be used to generate input classes in the field 'layer name'. If no specific file is defined, the first layer will be selected. In the example below we have three layers in the dataset we want to ingest. For selecting the first one, we can define 'AT005L3_INNSBRUCK_UA2018' under 'layer name' or we skip it as the first layer would be selected by default anyways. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image85.png){width="3.513888888888889in" height="1.1034722222222222in"} + +If your required layer is not on the first position of your folder/gdb/gpkg and in addition the layers of different regions are named differently (SAR_13_T_USOS vs. SAR_15_T_USOS), you have 2 possibilities to upload your data in the system: + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image92.png){width="2.9251498250218724in" height="1.568176946631671in"} ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image93.png){width="2.801619641294838in" height="1.5401607611548556in"} + +- Extract the required layer from GDB / GPKG and merge data into one dataset in a GIS software **outside the system** (might be not possible due to the size) + +- Ingest single datasets (means several single files in the system) + +## Retry or Delete + +If for some reason the upload was not successful, you have the option of uploading the data set again (retry). For your convenience, all fields remain filled in and the data (if the checkbox \'delete raw data\' has not been ticked) is retained. There is also the option to change data or fields, e.g. if you have found an error. + +If you have tried to upload the dataset by mistake, you can delete the entry. + +Both options can be initiated by right clicking on the Ingestion for which the upload failed (see [Figure 3‑25](#_Ref151988719)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image95.png){width="6.925in" height="3.245138888888889in"} + +[]{#_Ref151988719 .anchor}**Figure 3‑25: Add Ingestion -- Retry or delete dataset** + +Further there is also the possibility to 'cancel' and Ingestion while its uploading or processing (right click on the processing Ingestion see [Figure 3‑26](#_Ref151988796)), it will then run into an 'Uploading Error' or 'Processing Error' (see section [3.5](#status-of-an-ingestion)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image96.png){width="6.925in" height="3.251388888888889in"}[]{#_Ref151988796 .anchor} + +**Figure 3‑26:Cancel Ingestion while uploading or processing** + +## Status of an Ingestion + +The **status** indicates the current process of the Ingestion or Extraction in the system. The status is displayed in the Data Catalogue for each Ingestion and Extraction in the column 'Status' (see [Figure 3‑27](#_Ref151989171)). [Table 3‑1](#_Ref98940657) provides a detailed description of possible status messages. Sections [3.7 Edit Ingestion](#edit-ingestion) and [4.3 Edit Extraction](#edit-extraction) go into more detail on how Ingestion- and Extraction-states are changed. For any change of the status of the users own Ingestion the user gets a notification (see section [1.7.3](#notifications-messages)) as well as an email notification. Further all users get notified in whenever a new Ingestion is published (assuming the Ingestion was published publicly). + +In the example below, you can see the different states of Ingestions in the Data Catalogue view (see [Figure 3‑27](#_Ref151989171)). Several are Used, one Published, one Draft, one Processing and four Ingestions are in status Ingested_Preview. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image97.png){width="6.925in" height="2.9854166666666666in"}[]{#_Ref151989171 .anchor} + +**Figure 3‑27: Example of different status of datasets in the CLC+ system** + ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Status** | **Description** | ++:==================+:===================================================================================================================================================================================================================================================================================================================================+ +| Uploading | Process, where all relevant information and their datasets are uploaded to the system. | +| | | +| | **Note: During this phase it is necessary to have a stable internet connection and to keep the webpage open.** As soon as the status changes to "PROCESSING" the webpage can be left/closed. | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Uploading_Error | An error occurred while uploading the dataset. By clicking on the data catalogue entry, a pop-up window will help indicating the error. | +| | | +| | ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image98.png){width="5.570138888888889in" height="2.6083333333333334in"} | +| | | +| | - When ingesting a vector file, please check if the correct attribute value is selected | +| | | +| | - Check if the provided upload link is valid. In case the link is valid, a download should start by clicking on it. If not, the download link might be expired (i.e. CLMS links expire after 24h) | +| | | +| | - Retry or delete Ingestion | +| | | +| | Contact the [CLC+ Core support team](https://clcplus-core.land.copernicus.eu/) | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Processing | The dataset is processed in the system (rasterized, reprojected and aggregated, merged and their layers extracted into Input Classes). As soon as an Ingestion is successfully processed, the status changes to "DRAFT". | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Processing_Error | An error occurred while processing the dataset. By clicking on the data catalogue entry, a pop-up window will help indicating the error. | +| | | +| | ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image99.png){width="5.570138888888889in" height="2.6625in"} | +| | | +| | - Check if the provided upload link is valid. In case the link is valid, a download should start by clicking on it. If not, the download link might be expired (i.e. CLMS links expire after 24h) | +| | | +| | - Retry or delete Ingestion | +| | | +| | Contact the [CLC+ Core support team](https://clcplus-core.land.copernicus.eu/) | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Draft | Either the dataset was processed successfully and is newly ingested in the system or changes were made to an existing Ingestion. The Ingestion can now be edited by performing an EAGLE barcoding, changing some of its ingesting information and many more. | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Ingesting_Preview | The preview is executed for a smaller area in the map. | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Ingesting | Ingestion is executed for the whole area | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Ingesting_Error | An Error occurred during the INGESTING or INGESTING_PREVIEW step. When opening the detail page of the Ingestion an error message with more details is displayed. Do the required changes to resolve the error and start the Ingestion again? | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Ingested | Ingestion execution is finished for the whole area. | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Published | If the Ingestion is published, **it can be made available to other users and can thus be used for Extractions.** | +| | | +| | The user has several possibilities to publish the Ingestion. Depending on what kind of visibility (private, public or national) you have chosen, the Ingestion will then be available to either all users (public), to all countries of the selected organisation (national), or only to users within your organisation (private). | +| | | +| | **Note: Once the Ingestion is published, other users can perform Extractions with the Ingestion, which changes the status to \"used\". In status USED, you can no longer make changes to the Ingestion.** | +| | | +| | ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image100.png){width="2.5629604111986in" height="1.423902012248469in"} | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Used | The dataset is already used in an Extraction. **Now it is no longer possible to delete the dataset. The only further option is to archive the dataset.** | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Archived | The dataset is archived and thus **no longer available / usable for Extractions**. Additionally, it is unpublished from the geoserver, which means it cannot be viewed in the preview anymore. | ++-------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +: []{#_Ref98940657 .anchor}Table 3‑1: Status of ingested datasets + +The status of an Ingestion is also displayed in the detail view next to the Ingestion Name in the upper left corner (see [Figure 3‑28](#_Ref151989420)). The status of an Ingestion can be changed by triggering some actions. E.g. by adding the EAGLE barcodes and pressing preview for a small area, the status converts from 'draft' (see [Figure 3‑28](#_Ref151989420)) to 'ingested_preview'. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image101.png){width="6.925in" height="3.8201388888888888in"} + +[]{#_Ref151989420 .anchor}**Figure 3‑28: From draft to ingested_preview (by adding EAGLE barcodes, Region and general information like reference year, time range and INSPIRE theme)** + +## Input Classes + +**Input Classes** are representing detailed information about the Ingestion and originating from the uploaded dataset for each Ingestion. This also means that every Input Class is connected to an Ingestion. Input Classes contain the information on how to interpret the class code within the raster file and how they are mapped to the specific EAGLE barcodes (compliance to EAGLE, factor of EAGLE barcode value). Input Classes from the dataset layers are generated when adding a new Ingestion to the system (see section[3.23.2](#add-ingestion)). Furthermore, they are used when adding a new Extraction to the system in case they are selected (see section [4.2](#add-extraction)). In the example below (see [Figure 3‑29](#_Ref151640298)) the Ingestion 'HRL Forest Type' has three input classes. Besides the class code the class name and the EAGLE barcodes per class are shown, as well as the colour code per class. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image102.png){width="6.925in" height="3.801388888888889in"} + +[]{#_Ref151640298 .anchor}**Figure 3‑29: Example of Input Classes of the HRL Forest Type Ingestion** + +## Edit Ingestion + +To finally ingest your data to be able to use it, click on the required Ingestion in the data catalogue table. You will be forwarded to a more detailed view of the same Ingestion. + +**Before an Ingestion can be previewed or published, you need to review the Ingestion settings and map all Input Classes to EAGLE elements.** To avoid mistakes, you can preview your Input Classes in the map. **Note: The EAGLE barcoding is a mandatory task.** + +You can **edit your Ingestion** as often as you like, also after the status has change to Ingested or Published. If published, clicking unpublish will set the status back to ingested and you are able to edit your Ingestion again. + +**Be aware that once the Ingestion is published and has been used for an Extraction, it cannot be edited anymore**. + +In the left section (**General Information**), you can review all Ingestion information and edit them by clicking on the "**Edit**" button. Reference year, time range and [INSPIRE Themes](https://inspire.ec.europa.eu/Themes/Data-Specifications/2892) are mandatory fields. In case a metadata file has been uploaded during the Ingestion and the necessary data is available, this section will be prefilled already. Save the changes by clicking on the "Save" button. Before leaving the page without saving your edits the user will be reminded to save the edits, otherwise all edits will not be saved when returning to the page. Below the General Information the user can add **additional documents** like the EAGLE barcoding file per drag and drop or via uploading. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image103.png){width="3.4196456692913384in" height="6.002495625546807in"} + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image104.png){width="4.19990157480315in" height="2.5390004374453192in"} + +[]{#_Toc137576666 .anchor}**Figure 3‑30: Edit Ingestion -- Ingestion settings and possibility to add additional documents** + +**Note: Changes can only be done for unpublished datasets. As soon as a dataset has been used in an Extraction, changes can no longer be made while in use (by you or any other user).** + +It is obligatory to map all ingested classes as **EAGLE elements** in order to publish an Ingestion. It is recommended to upload the EAGLE barcoding file (a detailed description is provided in section [2.3](#_Ref100162317)) together with the data. You can do this already when defining the settings for the Ingestion (see section [3.2](#add-ingestion)) or by clicking on the EAGLE element picker. In case you use the picker, continue with step 3 below, otherwise you can skip this and continue with step 4. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image106.png){width="6.925in" height="3.8125in"} + +[]{#_Ref98941497 .anchor}**Figure 3‑31: Edit Ingestion (step 3 is in [**Figure 3‑33**](#_Ref98941415))** + +Further if the EAGLE barcoding was already uploaded or done manually the number of used EAGLE elements per Input class is shown in the EAGLE elements column. For example, + 10 for class 11100 in the example below (see [Figure 3‑32](#_Ref152070629)) indicated that overall 11 EAGLE elements are barcoded for this Input class (first element is written in the column, the other 10 EAGLE elements are summarized as '+10'). By hovering over the EAGLE element column for an input class all EAGLE elements of this class including the applied barcoding is shown in the dark grey box (see [Figure 3‑32](#_Ref152070629)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image107.png){width="6.925in" height="5.73125in"} + +[]{#_Ref152070629 .anchor}**Figure 3‑32: Summary of EAGLE elements per Input class** + +Even if it is recommended to upload the EAGLE barcoding file, the CLC+ Core system provides you with the EAGLE Picker](see [Figure 3‑33](#_Ref98941415) and [Figure 3‑34](#_Ref98941416)) that allows you to align the EAGLE elements with the Input Classes from an Ingestion. By clicking on the EAGLE elements of one Input class a new window for the EAGLE barcoding opens (see [Figure 3‑33](#_Ref98941415)). The picker allows you to multi-select EAGLE elements that match the Input Classes, select an EAGLE barcode (X-5 including a label, for a detailed description of each barcode see the help function ([Figure 3‑34](#_Ref98941416)) or Annex [Table 0‑1](#_Ref152071020)) and set a factor that defines the coverage of the EAGLE element on the specific input class once an EAGLE element has been added to an Input Class. Finally, you need to check the checkbox whether it is 100% EAGLE compliant or not. The '100% EAGLE compliant' tick box is a flag indicating if the mapping to the EAGLE language for one Input class is fully compliant or only partially compliant. If it is only partially compliant it needs to be evaluated within an Extraction then if the given gap causes issues in the specific use case. Note that this tick box is not connected to the "Approved by EAGLE" stamp for complete Ingestions. + +Concerning the Help function, in the "Help- EAGLE Barcoding Manual" there is also a direct link (see [Figure 3‑34](#_Ref98941416)) to the [EAGLE homepage](https://land.copernicus.eu/en/eagle?tab=bar_coding), which opens then in a separate tab. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image108.png){width="6.925in" height="3.797222222222222in"}[]{#_Ref98941415 .anchor} + +**Figure 3‑33: Mapping Input Classes to EAGLE elements - Select EAGLE elements** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image109.png){width="3.876061898512686in" height="2.059691601049869in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image110.png){width="3.1216032370953632in" height="1.6599825021872265in"} + +[]{#_Ref98941416 .anchor}**Figure 3‑34: Mapping Input Classes to EAGLE elements -- Help windows for barcoding and factor** + +Classes that have been already excluded from the dataset (e.g. NoData) in the relevant steps before, will not be shown in the Input Classes section anymore (see section [3.2](#add-ingestion) "exclude class codes"). In case this has not been done yet, there is still the opportunity to hide (not exclude!!!) specified/single classes before finally ingesting the data. Therefore, just uncheck the 'eye' symbol at the end of the row of the respective class ([Figure 3‑35](#_Ref100162670)). Note that the hidden classes will appear as "0" in the Ingestion and not as NoData pixels. Hidden classes can be shown again even after publishing the Ingestion by unpublishing the Ingestion but only if the Ingestion is not in status "Used" yet. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image111.png){width="3.987040682414698in" height="2.0510750218722658in"} + +[]{#_Ref100162670 .anchor}**Figure 3‑35: Uncheck 'eye' to prevent values / classes to be ingested.** + +Once all settings and Input Classes have been reviewed, you can start the Ingestion for a small area / region that lies within the boundary of the processed dataset by clicking on '**preview**' (see [Figure 3‑36](#_Ref152070767)). If the preview was successful, you can now inspect your Ingestion in the map and continue with step 6. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image112.png){ width="4.84594706911636in" height="1.9885094050743657in"} + +[]{#_Ref152070767 .anchor}**Figure 3‑36: Map preview** + +Now, you can '**Start the Ingestion**' for the full extent of your Ingestion (see [Figure 3‑31](#_Ref98941497)). Afterwards you have the choice to 'Publish' to use it for Extractions and to make it available for other users (see [Figure 3‑39](#_Ref151639942)). + +The clock symbol allows to view the **Ingestion history** (see [Figure 3‑37](#_Ref98877006)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image115.png){width="6.925in" height="3.183333333333333in"} + +[]{#_Ref98877006 .anchor}**Figure 3‑37: History of Ingestion for one layer** + +Once an Ingestion is published (see next chapter) Input classes can either be shown all in the map preview by activating the "Show in Map" or be toggled on and off individually by selectin on Input class. Only the selected Input class will then be shown in the map preview like for example class "11210" in the example below (see [Figure 3‑38](#_Ref152248025)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image116.png){width="6.925in" height="5.055555555555555in"} + +[]{#_Ref152248025 .anchor}**Figure 3‑38: Show selected Input classes in the map of published Ingestions.** + +## Publish Ingestion + +You can **publish an Ingestion** by clicking on the button 'publish' in the Ingestion view (see at section [3.7](#edit-ingestion) and [Figure 3‑39](#_Ref151639942) below). + +**Note: Depending on what kind of visibility (private, public or national) you have chosen, the ingested data will then be available to either all users (public), to the country of the selected organisation (national), or only to users within your organisation (private). Consider, that other users might use your data for Extractions. As mentioned before, once your data has been used, it can no longer be deleted or edited while in use by either you or other users.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image117.png){width="6.925in" height="3.1277777777777778in"} + +[]{#_Ref151639942 .anchor}**Figure 3‑39: Publish Ingestion -- Select visibility (public or limited)** + +## Reuse Ingestion + +Further, you can **reuse** an Ingestion by right clicking on the Ingestion in the Data Catalogue a small windowsdialog with several options opens (see [Figure 3‑40](#_Ref151639877)). Here, the Add Ingestion dialog opens again (see [Figure 3‑41](#_Ref151639902)), with all the fields containing the previous information entered such as name, region, excluded values (section[3.2](#add-ingestion)). Please note that by reusing an Ingestion the original raw data will not be available anymore. Also, in case the "delete raw data" was not ticked for the reused Ingestion the raw data is not accessible and reusable anymore. The data needs to be uploaded as a file or via ULR again. Only the information entered to the Ingestion before will be already filled in when reusing an Ingestion. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image118.png){width="0.4618055555555556in" height="0.5277777777777778in"} + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image119.png){width="6.925in" height="3.1083333333333334in"}[]{#_Ref151639877 .anchor} + +**Figure 3‑40: Reuse Ingestion** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image120.png){width="6.925in" height="3.379166666666667in"}[]{#_Ref151639902 .anchor} + +**Figure 3‑41: Reuse Ingestion -- detailed view** + +# Extraction + +An **Extraction** will create new and independent data products that can be used to generate Extractions for future CLC+ instances by selecting Input Classes from available Ingestions in the CLC+ Core (section [3.6](#input-classes)), define Class Conditions (section [4.5.1](#some-definitions-for-a-better-understanding-also-see-glossary)) extracting the required information and thus, create new Output Classes (section [4.5](#output-classes)), reuse an already available Extraction (section [4.9](#reuse-extraction)) or delete an Extraction (section [4.10](#delete-extraction)). To make the new Extraction available for all or selected users in CLC+ Core, execute the Extraction, review and validate the Extraction results and publish it (section [4.8](#publish-extraction-and-download-result)). [Figure 4‑1](#_Ref100264486) provides a simplified overview of the Extraction process. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image121.png){width="5.734752843394576in" height="4.506944444444445in"} + +[]{#_Ref100264486 .anchor}**Figure 4‑1: Simplified Extraction workflow.** + +Before starting with an Extraction, **it is recommended to already have a concept in mind**. First of all, you need the **requirements** what the Extraction is supposed to deliver (i.e. CLC+ legacy, LULUCF instance, etc.). With this knowledge, the Data acquisition can start. Before ingesting the data, the EAGLE barcoding needs to be performed, also considering the planned Extraction output. As soon as the data is ingested, the **selection of required input classes** can be done. Afterwards the **definition of Output Classes including their Class Condition** is conducted. + +As a consequence of the aggregation to 100 m, **several thematic classes share one 100 m pixel**. In an Extraction, this pixel is assigned to a single class. This is accomplished by an algorithm which assigns the class of a pixel by checking on Class Condition after the other. Pixels that are shared by several thematic classes **are assigned to the first output class that exceeds the threshold** and the pixel is no longer available to any other class. The hierarchical processing of the Extraction favours thus classes that are extracted early. Therefore, it is immensely important to know the requirements you want to extract as **the order of the Output classes is decisive**. Currently, this might lead to a bias of the statistical estimates which could be avoided by adapting the Extraction method such that it is insensitive to the hierarchical order, for example by extracting the class with highest fraction with highest priority. Another option could be to extract all classes separately or by implementing a future update so that a multiband raster Extraction can be the output. + +## Status of an Extraction + +The **status** indicates the current process of the Ingestion or Extraction in the system. The status is displayed in the Data Catalogue for each Ingestion and Extraction in the column 'Status' (see [Figure 3‑27](#_Ref151989171)). [Table 4‑1](#_Ref153954038) provides a detailed description of possible status messages. + ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Status** | **Description** | ++:==================+:==================================================================================================================================================================================================================================================================================================================================================================================================================+ +| Cancel | If you want to stop or cancel an extracted that you started, right click on the associated extraction in the Data Catalogue and click cancel. | +| | | +| | ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image122.png){width="4.576922572178478in" height="1.0229855643044619in"} | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Draft | Either the Extraction was newly created in the system or changes were made to an existing Extraction. The Extraction can now be edited by adding input- or output classes or changing some metadata fields. | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Extracting | If an extraction has been started and the dataset is processing, the status is set to extracting. While extracting the data the dataset cannot be viewed. | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Extracted_Preview | The preview is executed for smaller area in the map. | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Extracted | The performed Extraction was successful and can now be published. | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Extracting_Error | An error occurred while performing an Extraction. By clicking on the data catalogue entry, a pop-up window will help indicating the error. | +| | | +| | ![Graphical user interface, website Description automatically generated](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image123.png){width="5.554351487314086in" height="2.6134186351706035in"} | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Published | If the Extraction is published, **it can be made available to other users.** The user has several possibilities to publish the Extraction. Depending on what kind of visibility (private, public or national) you have chosen, the Extraction will then be available to either all users (public), to all countries of the selected organisation (national), or only to users within your organisation (private). | +| | | +| | **Note: Once the Extraction is published, it cannot be changed anymore!** | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Archived | The Extraction is archived and thus it is unpublished from the geoserver, which means it cannot be viewed in the preview anymore. | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +: []{#_Ref153954038 .anchor}Table 4‑1: Status of Extraction datasets + +## Add Extraction + +Clicking the '**Add Extraction'** button (section [4.2](#add-extraction)) opens the 'Add Extraction' dialog where you have to enter a name and define a country. Optional you can also enter a region. In the following example, an Extraction for the LULUCF case in the Netherlands will be done ([Figure 4‑2](#_Ref100140157)). + +By clicking on 'ADD', you will be forwarded to the 'Edit Extraction' view ([Figure 4‑3](#_Ref153438205), section [4.3](#edit-extraction)). Further, a new entry in the Data Catalogue table was created with status 'Draft' ([Figure 4‑4](#_Ref100140139)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image124.png){width="6.925in" height="3.3465277777777778in"} + +[]{#_Ref153438205 .anchor}**Figure 4‑2: Add Extraction -- Add Extraction Dialog.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image125.png){width="6.925in" height="3.2958333333333334in"} + +[]{#_Ref100140157 .anchor}**Figure 4‑3: Add Extraction -- Edit Extraction View.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image126.png){width="6.925in" height="1.4375in"} + +[]{#_Ref100140139 .anchor}**Figure 4‑4: Add Extraction -- A new entry in the table was created with status 'draft'.** + + +## Edit Extraction + +Before an Extraction can be published you need to set the Extraction settings, select the specific Input Classes and create Output Classes with the help of Extraction rules. To prevent mistakes, you can preview your results within a specific NUTS region in a Map Viewer. This view is very similar to the Edit Ingestion (section [3.7](#edit-ingestion)) one. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image127.png){width="6.925in" height="3.2715277777777776in"} + +[]{#_Ref153953950 .anchor}**Figure 4‑5: Edit Extraction.** + +In the left section (**General Information**) (see [Figure 4‑5](#_Ref153953950) and [Figure 4‑6](#_Ref153953951)) you can review all Extraction settings and update them if necessary. Reference year, Time range and [INSPIRE Themes](https://inspire.ec.europa.eu/Themes/Data-Specifications/2892) are mandatory. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image128.png){width="2.9580260279965005in" height="4.066681977252843in"} ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image129.png){width="2.9644499125109363in" height="4.034543963254593in"} + +[]{#_Ref153953951 .anchor}**Figure 4‑6: Edit Extraction - Review all Extraction settings and update them if necessary. Reference year, Time range and INSPIRE Themes are mandatory.** + +Further, users are able to upload additional (already existing) datasets such as EAGLE matrix or style files (CLR, QML) or metadata information (txt, xml) ([Figure 4‑7](#_Ref153644917)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image130.png){width="3.4574409448818897in" height="1.8518011811023622in"} + +[]{#_Ref153644917 .anchor}**Figure 4‑7: Upload of additional datasets such as EAGLE matrix or style files.** + +In the next step, you need to **define the Input Classes** you want to use for your Extraction. By clicking on the ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image131.png){width="0.16875in" height="0.16875in"} icon, in the area "**Input Classes**" you can **add Input Classes** which are already ingested into CLC+ Core (see [Figure 4‑8](#_Ref153954099)). The **"Select Input Classes"** menu opens and the dataset can be selected by checking the tick box. By clicking on the **"Confirm Selection"** button, the data will be taken into the Extraction view. Details about this step can be found at section [4.4 Add Input Classes to Extraction](#add-input-classes-to-extraction). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image132.png){width="6.1026388888888885in" height="1.69875in"} + +[]{#_Ref153954099 .anchor}**Figure 4‑8: Add or delete Input Classes.** + +As a next step you need to create Output Classes and define Class Conditions for them. Creating new Output Classes is possible by clicking on in the ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image131.png){width="0.16875in" height="0.16875in"} icon in the area "**Output Classes**" (see [Figure 4‑9](#_Ref105168124)). Once you have triggered this action, a new and Output Class will be added and you have to define the specific attributes such as the class code, name and the Class Condition (ruleset) ([Figure 4‑9](#_Ref105168124)). Further, you can specify a class colour and if you want to have this Extraction displayed in the Map preview or not. The class code is the value you assign to an Output Class, the name should be class descriptive (i.e. class 1 -- woodland stands, 2 -- unmanaged woodland, etc.). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image133.png){width="6.355581802274716in" height="1.7584284776902888in"} + +[]{#_Ref105168124 .anchor}**Figure 4‑9: Add or delete Output Classes.** + +Once you have defined the specific attributes for the Output Classes, you need to **add Class Conditions** to the Output Classes. You can do that by clicking directly on the Class Condition (Rule) field at each Output Classes row ([Figure 4‑9](#_Ref105168124)). Details about how to create Class Conditions can be found at section [4.5.1](#some-definitions-for-a-better-understanding-also-see-glossary). + +Optionally, create a preliminary view of the Extraction by selecting a certain NUTS region in the map and clicking the "**Preview**" button (see [Figure 4‑10](#_Ref153954681) and section [4.7](#preview-extraction-and-download-result)). Further, you are able to download the result. + +Once all settings and the test result have been reviewed you can start the Extraction process by clicking on the "**start Extraction**" button ([Figure 4‑5](#_Ref153953950) and [Figure 4‑11](#_Ref153651792)). Once the Extraction has already been processed, you can publish the Extraction to make it available for other users. See also at section **[4.8](#publish-extraction-and-download-result) [Publish Extraction](#publish-extraction-and-download-result)**. Further, you are able to download the result. + +**After starting the Extraction, a pop-up window will appear asking if you really want to proceed as the Extraction may take a while. Further, it is indicating that EAGLE elements are used within the rules that are not corresponding to the available Input Classes. Please check if the correct EAGLE element and the correct barcode value is applied! The warning can be ignored but may affect the result!** (see [Figure 4‑10](#_Ref153954681)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image134.png){width="6.565197944006999in" height="3.266139545056868in"} + +[]{#_Ref153954681 .anchor}**Figure 4‑10: Pop up window asking to proceed. Indicating that EAGLE elements are used within the rules that are not corresponding to the available Input Classes.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image135.png){ width="6.925in" height="3.286111111111111in"} + +[]{#_Ref153651792 .anchor}**Figure 4‑11: After starting the Extraction process.** + +## Add Input Classes to Extraction + +After you clicked on the ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image131.png){width="0.16875in" height="0.16875in"} icon within the area "**Input Classes**" the **"Select Input Classes"** menu opens. You can select which are already ingested into CLC+ Core and that you want to use for your Extraction by checking the tick box. You can multi-select (more than one possible) Input Classes and also see information about them within the table. Use the ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image136.png){width="0.4027777777777778in" height="0.17844597550306213in"} icon to add or remove columns for data information such as Name, Created at/by, Reference Year, EAGLE comliance, etc ([Figure 4‑12](#_Ref153650700)). + +Additionally, you have the possibility to **search** for specific Input Classes using the search field and the filter panel. In the filter panel ([Figure 4‑13](#_Ref153649503)) you can sear for data matching your criteria. Further, there is an option to toggle on/off "100 EAGLE compliant" or "EAGLE approved". The list on the right is updated accordingly. + +Further, you can reduce the list of data to data, ingested only by your or your organisation ([Figure 4‑12](#_Ref153650700)). + +By hovering the mouse over the EAGLE elements column, a tooltip dialog opens, displaying all barcoded EAGLE elements for this Input Class ([Figure 4‑14](#_Ref153650770)). The EAGLE barcoding can be opened in a new tab to be inspected in more detail by clicking on the ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image137icon.png){width="0.1736111111111111in" height="0.1736111111111111in"} icon ([Figure 4‑15](#_Ref153650763)). + +In the last step you click on the **"Confirm Selection"** button in order to apply them. The data will be taken into the Extraction view ([Figure 4‑12](#_Ref153650700)). + +Back in the Extraction view, the selected data can be seen ([Figure 4‑16](#_Ref105172435)). By clicking on the ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image131.png){width="0.16875in" height="0.16875in"} icon at the end of the Input Classes, you are able to add more classes and of course you can delete classes from your current selection by clicking on the delete symbol ([Figure 4‑17](#_Ref105172428)). Same as in the "Select Input Classes" View, hovering your mouse over the EAGLE elements column, a tooltip dialog opens, displaying all barcoded EAGLE elements for this Input Class ([Figure 4‑17](#_Ref105172428)). The EAGLE barcoding can be opened in a new tab to be inspected in more detail by clicking on the ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image137icon.png){width="0.1736111111111111in" height="0.1736111111111111in"} icon. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image138.png){width="6.925in" height="3.285416666666667in"} + +[]{#_Ref153650700 .anchor}**Figure 4‑12: Add Input Classes to Extraction -- selection of classes.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image139.png){width="6.925in" height="3.451388888888889in"} + +[]{#_Ref153649503 .anchor}**Figure 4‑13: Add Input Classes to Extraction -- filter panel.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image137.png){width="6.729166666666667in" height="3.2083333333333335in"} + +[]{#_Ref153650770 .anchor}**Figure 4‑14: Add Input Classes to Extraction - EAGLE elements with tooltip dialog.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image140.png){ width="6.925in" height="3.327777777777778in"} + +[]{#_Ref153650763 .anchor}**Figure 4‑15: Add Input Classes to Extraction - EAGLE barcoding opened in new window (here for Input Class "dry pulses").** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image141.png){ width="6.925in" height="2.9402777777777778in"} + +[]{#_Ref105172435 .anchor}**Figure 4‑16: Add Input Classes to Extraction -- back in Edit Extraction view with the newly added Input Classes.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image142.png){width="6.715277777777778in" height="3.2222222222222223in"} + +[]{#_Ref105172428 .anchor}**Figure 4‑17: Add or delete Input Classes in the Extraction view and the EAGLE elements shown in the tooltip dialog.** + +**The Input Classes are following a hierarchical processing (from first to last). But depending on the chosen Coverage Function, the order is more or less important. First coverage function i.e. examines the Input Classes from top to bottom until the first one is found that has a valid value. Using the highest cov function, the order of the Classes is not important.** + +**There is also the possibility to change the order per 'Drag & Drop'.** + +## Output Classes + +An **Output Class** represent detailed information about one classification option of an Extraction (section [4](#extraction)). Together with the class code and the name, it also contains the Class Condition that specifies when the output class should be applied. Output Classes can be found within the specific Extraction itself but are not displayed separately within the Data Catalogue. Details about that can be found at section [4.3 Edit Extraction](#edit-extraction). + +### Some definitions for a better understanding (also see [Glossary](#glossary)) + +A **Rule** is a textual format of the specified Extraction syntax and is displayed in the user interface as a structured expression. You can relate EAGLE elements to other EAGLE elements, values (numbers) or percentages, in order to define how a new Output Class should be created. In other words, a **Rule** is simple comparison of a **Coverage Function** against another coverage value. For example: + +*The coverage of LCC-Water with barcode 5 must be greater than 50%. cov("LCC-Water", 5) \> 50* + +A **Ruleset** is a combination of **Rules or Rulesets** using Boolean operators. Depending on the type of linking operator, the compound expression is only true if both linked expressions are true (AND-linkage) or if at least one of the linked expressions is true (OR-linkage). For example: + +*The coverage of LCC-Water/5 or LCC-Trees/5 must be greater than 50%. cov("LCC-Water", 5) \> 50 **OR** cov("LCC-Trees", 5) \> 50* + +The **Class Condition** specifies whether the Extraction Output Class to which it belongs should be applied to a given pixel, given the coverage values of Extraction Input Classes. Technically speaking, a Class Condition is a Ruleset. + +**Note: Currently it is not possible to save the rulesets outside of the CLC+ Core System to reuse them for other Extractions. There is a workaround, you can copy the rules (CTRL+C) from an existing rule and paste it into another Extraction rule (CTRL+V) by using the text-field for Extraction rules.** + +### Create Output Classes + +After you clicked on the ![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image131.png){width="0.16875in" height="0.16875in"} icon within the area "**Output Classes**" a new entry will be added. First, you have to define a name (here: FL Transitional woodland) and Rule Class Code (here: 1) for the new Output Class. The Class Code is automatically filled by the system, starting at 1, but could be adapted to your needs ([Figure 4‑18](#_Ref153806764)). + +The Output Classes are ranked according to their order. So, it is following hierarchical processing (from first to last). That means that the CLC+ Core System always favours the classes with a smaller order number. If a pixel is then assigned to an Output Class, it cannot be assigned to another class even if the coverage for this other class is higher. There is also the possibility to change the order of the Output Classes by Drag & Drop. + +Furthermore, you can select a colour for your Output Class. And toggle the visibility of this Output Class in the map. **Checking the eye icon disables this Output Class from being extracted** ([Figure 4‑18](#_Ref153806764)). + +Same as for the Input Classes, you are able to add further Output Classes or delete the entry ([Figure 4‑18](#_Ref153806764)). + +After you have clicked on the Class Condition of a specific Output Class ([Figure 4‑18](#_Ref153806764)), a new window opens (Query Builder, [Figure 4‑19](#_Ref153808348)) and you can start creating or editing it (see section [4.5.3 Create Class Conditions/Rulesets](#create-class-conditionsrulesets)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image143.png){width="6.228293963254593in" height="1.449423665791776in"} + +[]{#_Ref153806764 .anchor}**Figure 4‑18: Create new Output Class and other options.** + +### Create Class Conditions/Rulesets + +[Figure 4‑19](#_Ref153808348) shows an overview of the Query Builder with all its options and functions which are explained in more details in this section. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image147.png){width="6.925in" height="3.3368055555555554in"} + +[]{#_Ref153808348 .anchor}**Figure 4‑19: Query Builder with all its options and functions.** + +Starting with a blank **Query Builder**, you are able to build up the Class Condition by using single **Rules** or **Rulesets** (nested set of rules). To decide between **Rule** and **Ruleset** you need to know how the EAGLE elements you need for the **Extraction** relate to each other. The relation is defined by **logical expressions (Boolean).** **Depending on the type of linking operator, the compound expression is only true, if both linked expressions are true (AND-linkage) or if at least one of the linked expressions is true (OR-linkage).** You can add as many **Rules** or **Rulesets** as needed. Of course, you can also delete previously created Rule(sets). + +So, in a first step decide on the structure you need and add Rules or Rulesets according to your requirements as can be seen in [Figure 4‑20](#_Ref153873991). If you add a Ruleset, you need to add Rules to it. + +Example: For the Extraction of the deciduous forest class, I add two Rulesets, one with two and one with three Rules, connected via an AND operator. I want to make sure to only extract pixel that are covered in all datasets ([Figure 4‑21](#_Ref153875245)). Once I have the structure, I can start with entering the content. + +Of course, there is the possibility to delete Rules or Rulesets. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image148.png){width="6.484667541557306in" height="3.1480424321959757in"} + +[]{#_Ref153873991 .anchor}**Figure 4‑20: Create new Rule for an Output Class -- Query Builder** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image149.png){width="6.562167541557305in" height="3.1435487751531057in"} + +[]{#_Ref153875245 .anchor}**Figure 4‑21: Create new Class Condition for Output Class "Deciduous Forest".** + +In the next steps, select the required EAGLE elements from the Query Builder ([Figure 4‑22](#_Ref153876094)). The prefered option is to select elements from the drop down menu but you can also write in the text box. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image150.png){width="6.533227252843394in" height="3.158512685914261in"} + +[]{#_Ref153876094 .anchor}**Figure 4‑22: Select EAGLE elements in the Query Builder.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image151.png){width="6.580074365704287in" height="3.1653248031496064in"} + +[]{#_Ref153881096 .anchor}**Figure 4‑23: Select EAGLE elements in the Query Builder. Information that LCH-8_1_3 is in the list of EAGLE elements but does not occur in one of the Input Classes.** + +Next, select the barcode value from a drop-down list. There is also the option to multiselect barcode values to cover more than one Input Class having different barcodes mapped ([Figure 4‑24](#_Ref153876076)). + +**Multi-selected barcodes are OR-connected. That means, that a rule with multiple barcodes can be written as well as an OR-connected ruleset containing an individual rule for each of the barcodes. The multi-selection is only possible if an EAGLE Element is compared to a value but not if two EAGLE Elements are compared (icon-toggle on the right).** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image152.png){width="6.580279965004374in" height="3.1680621172353454in"} + +[]{#_Ref153876076 .anchor}**Figure 4‑24: Select the barcode value from a drop-down list in the Query Builder.** + +Then the comparison operators need to be selected from a drop-down list ([Figure 4‑25](#_Ref153876064)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image153.png){width="6.5305369641294835in" height="3.1611417322834647in"} + +[]{#_Ref153876064 .anchor}**Figure 4‑25: Select the comparison operators in the Query Builder.** + +The last step is setting the percentage coverage of the aggregated value. + +**Note: Aggregated means that for the i.e. 100 underlying 10 m pixel values the arithmetic mean is calculated. As a consequence, several thematic classes share one 100 m pixel and the coverage value indicates the percentage of a pixel's area that is covered by a barcoded EAGLE element. In an Extraction, this pixel is assigned to a single class by evaluating the Class Conditions of all Output Classes until one is found whose ruleset matches.** + +Subsequently, add other EAGLE elements to complete the Ruleset. Clicking on "**ADD**" will save the Class Condition (see [Figure 4‑26](#_Ref153876041)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image155.png){width="6.5090485564304466in" height="3.1657524059492563in"} + +[]{#_Ref153876041 .anchor}**Figure 4‑26: Class Condition for Output Class "Deciduous Forest" set up in the Query Builder.** + +You also have the option to add comments to your Class Conditions (see [Figure 4‑27](#_Ref153958528)). Especially, if the Rulesets are getting more complex, the commenting function might be very helpful. You can use it to document your intentions because due to the usage of the EAGLE elements, the connection to the Ingestions and/or Input Classes gets lost or difficult to keep track. There is of course also the possibility to delete the comments. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image156.png){width="6.506107830271216in" height="3.1349628171478567in"} + +[]{#_Ref153958528 .anchor}**Figure 4‑27: Add comments to the Rulesets.** + +If you are familiar with query language, you are also able to use the "Text field". In [Figure 4‑28](#_Ref105174879), you can see the Class Condition and its rules in an **expression language** in the Text tab. If you have added a comment, this is also shown here. If you want to reuse a created Class Condition or parts of it in a different class, copy the respective text and paste it in a different Output Classes Class Condition text editor. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image157.png){width="6.461420603674541in" height="1.7926017060367454in"} + +[]{#_Ref105174879 .anchor}**Figure 4‑28: Class Condition in expression language.** + +Further, there are two information boxes at the top right. By clicking on "Computational Manual", a window next to the Query Builder appears ([Figure 4‑29](#_Ref153880313)). It explains how the Extraction result is computes by explaining the details about which Input Classes' coverages are considered during the calculation of Coverage Functions. In section [4.6](#how-is-the-extraction-result-computed), the whole process and the single Coverage Functions are described in more detail. + +You need to select either of the three options which might fit best to your requirements. Highest Coverage is the default and is recommended. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image158.png){width="6.565692257217847in" height="3.150505249343832in"} + +[]{#_Ref153880313 .anchor}**Figure 4‑29: Computational Manual.** + +## How is the extraction result computed? + +Each pixel of the output raster is assigned to the first output class whose **Class Condition** is fulfilled. If none of the class conditions are fulfilled for a given pixel, it remains unclassified (i.e. its value is *No-Data)*. This computation is done independently for each pixel, which means that a pixel is never influenced by its neighbors. + +**Class Conditions** consist at the core of **Rules,** which perform a comparison of the **Coverage** value of a barcoded EAGLE elements against a threshold. The coverage value of a barcoded EAGLE element is computed with a **Coverage Function.** This computation works by: + +1. Selecting the **Input Classes** that were explicitly mapped with the given EAGLE element and barcode during the ingestion process or that are mapped with a direct child in the EAGLE ontology (aggregation rule 5), + +2. Further restricting this selection based on the type of **Coverage Function** (aggregation rule 3) + +3. Calculating the **Coverage** sum of all selected **Input Classes** (aggregation rule 2). + +You can choose between three types of **Coverage Function** in your rules. They differ only in which of the matching input classes are chosen and aggregated (i.e. step 2). The selection of matching input classes (step 1) and the final aggregation (step 3) are always the same. In the following the different **Coverage Functions** are described in more detail: + +**Highest Coverage / maxCov(\...)** + +This function groups the matching **Input Classes** by **Ingestion**, selects the group that has the highest **Coverage** sum for the current pixel, and returns that coverage sum. If no **Input Class** has a value, the result is NO DATA. + +This choice of **Coverage Function** makes sense if you want to know whether at least one of your chosen **Ingestions** reaches a given minimum **Coverage** for a certain EAGLE-element-barcode-combination. + +**First Coverage / firstCov(\...)** + +This function examines the **Input Classes** from top to bottom until the first one is found that has a value (not *NO DATA*) for the current pixel. It selects this class and all the other matching **Input Classes** of the same **Ingestion** and returns their sum of **Coverages**. If none of the classes have a value, it returns *NO DATA*. + +For this function the ordering of **Input Classes** is relevant for the result, so make sure that they are sorted by their priority. + +This choice of **Coverage Function** makes sense when aggregating datasets that describe the same features but have different quality and spatial extent. The first **Coverage Function** allows you to prioritize the high-quality **Ingestion** wherever it's available and fall back to the low-quality one otherwise. + +**Total Coverage / sumCov(...)** + +This function selects all the matching **Input Classes** independent of which **Ingestion** they belong to and returns their coverage sum, or NO-DATA if none of them has a value. + +This choice of **Coverage Function** can make sense if you need to sum up coverages of **Input Classes** that belong to different Ingestions, which is not possible with the two other function types. However, sumCov comes with the risk of producing **Coverage** values bigger than a hundred percent if Input Classes are summed up which are not semantically disjunct. + +**Examples** + +Consider the following ranked **Input Classes** that have a matching EAGLE barcoding of LCC-Water with barcode 5. + + ------------------------------------------------------------------------------ + **Extraction Input Class** **Ingestion** **Mapping** **Value** + ---------------------------- --------------- ------------------- ------------- + **A1** **A** **LCC-Water / 5** **NO-DATA** + + B1 B LCC-Trees / 5 80 % + + **B2** **B** **LCC-Water / 5** **15 %** + + **B3** **B** **LCC-Water / 5** **5 %** + + **C1** **C** **LCC-Water / 5** **40%** + + C2 C LCC-Trees / 5 60 % + ------------------------------------------------------------------------------ + +Assume a rule that checks that the coverage value of *LCC-Water* with Barcode 5 is greater or equals 50. Let's look at the results of the different **Coverage Functions** in this case: + +- **maxCov("LCC-Water", 5)** returns the highest coverage sum of matching **Input Classes** within any **Ingestion**, which is in this case the **Coverage** of C1 (40%). That's smaller than 50 % so the rule is *false*. + +- **firstCov("LCC-Water", 5)** looks for the first matching **Input Class** with a value (B2) and returns all the matching classes of that **Ingestion** (B2 + B3 = 20%). 20 % is smaller than 50 %, so the rule is *false*. + +- **sumCov("LCC-Water", 5)** returns the **Coverage** sum of all matching **Input Classes** independent of which **Ingestion** they belong to (B2 + B3 + C1 = 60%). That's bigger than 50 %, so the rule is *true.* + +Using the EAGLE elements information box will list all the relevant EAGLE elements and show the Input Classes, Ingestions and the barcode value ([Figure 4‑30](#_Ref153880277)). So, in this example: EAGLE element "Trees" with barcode 5 is included in the following Information: i.e. Broadleaved class from DLT 2018, broadleaved, deciduous trees from CLC+ BB 2018, etc. By clicking on the Ingestion link, you will be transferred to the Ingestion view of this dataset. + +This will help users to avoid errors and get a better overview and understanding of the used EAGLE elements. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image159.png){width="6.520193569553806in" height="3.1430577427821524in"} + +[]{#_Ref153880277 .anchor}**Figure 4‑30: EAGLE elements.** + +[Table 0‑5](#_Ref105175205) in the Annex shows as an example of LC category "Forest" with its sublevels and the applied rulesets. + +## Preview Extraction and download result + +Analog to the Ingestion section, you can run a preview of your Extraction for a small extent by clicking **Preview** in the Map Viewer. By doing so, your Extraction result can be visually inspected in the map. If the preview was successful and the result satisfying, continue with 'Start Extraction' to apply the ruleset for the full extent ([Figure 4‑31](#_Ref153652241)). + +By inspecting the data in the map and clicking on the classification/pixel, a tooltip dialog opens. Under Output Class the assigned Output Class (here Grassland) is indicated ([Figure 4‑31](#_Ref153652241)). By clicking on the Output Class in the window the Class unfolds and the result of all the rules of the selected output class is shown. Here you find the information which rule was true and which rules was false and the reason why ([Figure 4‑32](#_Ref153972958)). By checking the show all box, all Output Classes are shown, even the ones that have been ignored because a True condition was found ([Figure 4‑32](#_Ref153972958)). + +The used Input Classes in the section below ([Figure 4‑31](#_Ref153652241)). Further, the coverage of each individual class is shown. By clicking on the Input Class in the window the Class unfolds and further information is shown in [Figure 4‑32](#_Ref153972958). Per default, all Input Classes covering 0% are not shown but this feature can be enabled by checking the tick box. + +Further, you can **download** the dataset (geotiff) and the metadata (geojson) to be able to inspect and validate your data in more detail in a GIS program on your local computer ([Figure 4‑31](#_Ref153652241)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image160.png){width="6.504597550306212in" height="3.1074912510936135in"} + +[]{#_Ref153652241 .anchor}**Figure 4‑31: Preview Extraction and download result.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image161.png){width="6.247557961504812in" height="2.868162729658793in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image162.png){width="6.318649387576553in" height="2.8615146544181975in"}![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image163.png){width="6.576442475940508in" height="3.0006824146981628in"}[]{#_Ref153972958 .anchor} + +**Figure 4‑32: Output Class extraction information.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image164.png){width="6.636077209098863in" height="3.007263779527559in"}[]{#_Ref153972533 .anchor} + +**Figure 4‑33: Input Class extraction information.** + +## Publish Extraction and download result + +You can publish an Extraction by clicking on the '**publish**' button in the detail view. Similar to the IngestionI, you can choose the Visibility of your Extraction (public/private/national) ([Figure 4‑34](#_Ref153652068)). + +Further, you can download the dataset (geotiff) and the metadata (geojson) to be able to inspect your data in more detail in a GIS program on your local computer ([Figure 4‑34](#_Ref153652068)). + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image166.png){width="6.779166666666667in" height="3.2291666666666665in"} + +[]{#_Ref153652068 .anchor}**Figure 4‑34: Publish Extraction and download result.** + +## Reuse Extraction + +Further, you can **reuse** an Extraction. By right clicking on the Extraction in the Data Catalogue, a small window with several options opens (see [Figure 4‑35](#_Ref153652480)). Here, the Add Extraction dialog opens again, with all the fields containing the previous information entered such as name, country, region (see [Figure 4‑36](#_Ref153652678)). This is only true, if the user does share the same organisation with the entry or is a USER_ADMIN. Otherwise, the entry will either way is not visible to the user. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image167.png){width="6.729166666666667in" height="3.201388888888889in"} + +[]{#_Ref153652480 .anchor}**Figure 4‑35: Reuse Extraction.** + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image168.png){width="6.925in" height="3.872916666666667in"} + +[]{#_Ref153652678 .anchor}**Figure 4‑36: Reuse Extraction -- detailed view.** + +## Delete Extraction + +Further, you can **delete** an Extraction. By right clicking on the Extraction in the Data Catalogue, a small window with several options opens (see [Figure 4‑35](#_Ref153652480)). By clicking on "**Delete**", a pop-up window prevents you from accidentally deleting a dataset (see [Figure 4‑37](#_Ref153956701)). By clicking Delete in the window, the dataset will be ultimately removed from the data catalogue. This is only true, if the user does share the same organisation with the entry or is a USER_ADMIN. Otherwise, the entry will either way is not visible to the user. + +![](./CLCplusCore_User_Manual_Issue_4.0_v1-media/image169.png){width="2.9652777777777777in" height="1.4246533245844268in"} + +[]{#_Ref153956701 .anchor}**Figure 4‑37: Delete Extraction** + +## Recommendations and lessons learned + +Since the creation of the rulesets is a very complex task that must be carried out with great attention and precision, it is advisable to add each rule individually, then execute it and examine the result in a GIS program. Especially when creating the Extraction rules (wrong barcode value or wrong logical operator) an error can occur very quickly and debugging in the CLC+ Core System is sometimes difficult. Please consider that that step will take quite some time. With the implementation of the new map pop up described in section [4.7](#preview-extraction-and-download-result) it becomes easier for the user to debug and find out why a certain Output Class are extracted like that a s all the background information why a Class Condition was applied or not becomes visible in the map pop up. + +Furthermore, it should be noted that due to some additional rules/Aggregation rules (see Annex) implemented in the system, the creation of Extraction rules and understanding their output is further complicated. + +# FAQ (Frequently Asked Questions) + +In this section you can find the most frequently asked questions about CLC+ Core. Of course, this section will be extended on demand. + +**Where can I find more information about CLMS products?** + +In general, you can find more about CLMS products on EEAs official homepage . + +**Where can I find more information About EAGLE?** + +Within CLC+ Core we have directly linked the EAGLE homepage in our Navigation Menu at "About EAGLE" (see also section 9 - About EAGLE within this documentation). There you can find additional material About EAGLE. There is also a FAQ section and the possibility to get in touch with the EAGLE group. + +**Where can I download the latest EAGLE barcoding template?** + +You can download the matrix under menu item "EAGLE ontology" and then click on "Download barcoding template" + +**Can I find word definitions of CLC+ Core System?** + +Yes, you can find them in the [Glossary](#glossary). + +**Where do I get user credentials for using the system?** + +If you do not have an EIONET account yet, please contact the [Eionet Helpdesk](https://www.eionet.europa.eu/about/helpdesk?msclkid=265000d2aa8b11ec89be0ad26fcd73b0) and create one. + +**What to do if my Ingestion / Extraction fails?** + +a. If ingesting a vector file, please check if the correct attribute value is selected + +b. Check if the provided upload link is valid. It is valid if a file download is automatically started immediately after clicking on the link. If not, the download link might be expired (i.e. CLMS links expire after 24h) + +c. Retry or delete Ingestion + +d. Contact the [CLC+ Core support team](https://clcplus-core.land.copernicus.eu/) (us the help function '?' on the webpage or [https://land.copernicus.eu/en/contact-service-helpdesk](https://land.copernicus.eu/en/contact-service-helpdesk)) + +**Is it possible to upload data from my local premises?** + +Yes, you are able to upload your locally stored data but due to performance issues, especially for large datasets, it is recommended to upload the data using an URL. + +**What if my dataset has more than \>100 classes -- do I need to perform the EAGLE barcoding for all classes?** + +In general yes, you need to map all classes if you want to use them within the system. But you could consider the possibility to re-structure / aggregate your classes to a less detailed level before uploading them to the system. + +**Will my dataset automatically be reprojected, rasterized (for vector datasets) and aggregated to 100 m or do I have to pre-process anything?** + +No, everything will be performed automatically. + +**Can I always make changes to my ingested dataset?** + +Most of the times - yes. However, if your dataset is published and used, no more changes can be made while in use (by you or another user). + +**How can I prevent my data from being seen by all users?** + +Depending on what kind of visibility (private or public) you have chosen, the ingested data will then be available to either all users (public), to the country of the selected organisation (national), or only to users within your organisation (private). So, to prevent your data to be seen by others choose the private option. + +**I uploaded an ArcGIS Layer (.lyr) file for the symbology of my vector dataset but it is not working?** + +The CLC+ Core system only recognizes and supports the following legend/symbology files: QGIS layer style file (.qml) or SLD (Styled Layer Descriptor) file (.sld). Text files and ArcGIS Layer Files (.lyr) are not supported. + +**Which raster and vector file formats are supported by CLC+ Core to ingest data?** + +- shapefile (shp as zip) + +- geopackage (gpkg) + +- file geodatabases (gdb) + +- Hierarchical Data Format (HDF5) + +- Geotiff (tif/tiff) + +**What if there is a new version of the EAGLE barcoding file, is it necessary to update all my datasets? And what if an Extraction was already used?** + +If the new version of the EAGLE barcoding file only contains new EAGLE elements or has some updates on existing ones, no Extractions need to be update (unless you want to also add the newly created EAGLE elements in you EAGLE mapping). + +If EAGLE elements do no longer exist in the newer version of the EAGLE barcoding file, please check all your Ingestions and Extractions which are not published yet. For these Ingestions and Extractions please update the EAGLE barcoding. + +For all published Ingestions and Extractions, the EAGLE barcoding cannot be changed anymore. + +**I have trouble with the EAGLE mapping of my dataset, where can I get support?** + +Relevant contact details are provided in the portal. + +# Admin User only - see separate Annex + +# Glossary + +**Ingestion**\ +An Ingestion is the original input dataset uploaded to the CLC+ Core system. Each uploaded dataset gets resampled / aggregated to 100 x 100 m spatial resolution. Each Ingestion consists of one or more classes. These classes, so called **Input Classes** in CLC+ Core, can then be used as input for **Extractions**. CLC+ Core supports the following raster and vector file formats to ingest data: shapefile (shp as zip), geopackage (gpkg), file geodatabases (gdb), Hierarchical Data Format (HDF5) or Geotiff (tif/tiff). + +**Extraction**\ +An Extraction will create new and independent data products (100x100m raster) by combining data from several **Extraction Input Classes.** Every pixel of the raster is classified as one **Extraction Output Class**, based on its **Class Condition**, or remains unclassified, if none of the conditions apply. + +**Extraction Input Class**\ +Extraction Input classes are **Input classes** of **Ingestions** used in an **Extraction**. They are selected by the user from all published **Ingestions** in the CLC+ Core system. They need to be selected for each Extraction because they define the input data which is needed to evaluate the **Class Condition** of each **Extraction Output Class**. + +**Coverage**\ +The percentage of the area of a given pixel that an **Input Class** covers is called the coverage. Pixel values are not binary because the raw input data is reprojected to the EPSG:3035 coordinate reference system and resampled to a 100m x 100m pixel size if they are not given in this format already. Therefore, it can happen that multiple **Input Classes** from the same **Ingestion** apply to the same raster pixel, but don't cover the full extent of the pixel. + +A coverage can also be *No-Data* if the whole area of the pixel is unclassified in the **Ingestion**. + +**Extraction Output Class**\ +Represents one classification option of an **Extraction**. It has a name, an identifying class code and a C**lass Condition** that specifies when the output class should be applied. + +**Class Condition**\ +Specifies whether the **Extraction Output Class** to which it belongs should be applied to a given pixel, given the **coverage** values of **Extraction Input Classes**. Technically speaking, a class condition is a **Ruleset** (consisting of nested **Rules** and **Rulesets).** + +**Ruleset** \ +A combination of **Rules** *or* **Rulesets** using Boolean operators[^10]. Depending on the type of linking operator, the compound expression is only true if both linked expressions are true (AND-linkage) or if at least one of the linked expressions is true (OR-linkage). Consequently, the result of a ruleset is also always *true* or *false.* For example: + +> *The coverage of LCC-Water/5 or LCC-Trees/5 must be greater than 50%. \ +> **cov("LCC-Water", 5) \> 50*** ***   OR*** ***  cov("LCC-Trees", 5) \> 50** * + +The top-level ruleset of an output class is called the **Class Condition.**  + +**Rule**\ +A simple comparison of a **Coverage Function** (i.e. the coverage of a barcoded EAGLE element) against another coverage value. For example:  + +> *The coverage of LCC-Water with barcode 5 must be greater than 50%. \ +> **cov("LCC-Water", 5) \> 50** * + +When evaluating a **rule** on a given pixel, the result is always either *true* or *false.* Comparing a *No-Data* value against any other value produces the result *false.* + +**Coverage Function**\ +A function that computes the **Coverage** of a barcoded EAGLE element for the selected **Extraction Input Classes** for a given pixel. This computation works by: + +1. Selecting the **Extraction Input Classes** that were explicitly mapped with the given EAGLE element and barcode during the Ingestion process or that are mapped with a direct child in the EAGLE ontology (aggregation rule 5), + +2. Further restricting this selection based on the type of Coverage Function (aggregation rule 3) + +3. Calculating the **Coverage** sum of all selected **Extraction Input Classes** (aggregation rule 2). + + +# List of abbreviations + + ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + Abbreviation Name Reference + ----------------------- ---------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- + **ADs** Applicable Documents + + **AI** Action Item + + **API** Application Programming Interface + + **CLC** CORINE Land Cover + + **CLC+** CORINE Land Cover + + + **CLMS** Copernicus Land Monitoring Service + + **COG** Cloud-optimized GIF + + **CORINE** Coordination of information on the environment + + **CZ** Coastal Zones + + **DB** Database + + **DIAS** Copernicus Data and Information Access Services + + **EAGLE** Eionet Action Group on Land monitoring in Europe + + **EC** European Commission + + **EEA** European Environment Agency + + **EEA39** The 33 member and 6 cooperating countries of the EEA + + **EEA38+UK** The 32 member and 6 cooperating countries of the EEA + United Kingdom + + **EO** Earth Observation + + **ESA** European Space Agency + + **ETC** European Topic Centre + + **EU** European Union + + **EU27** The 27 Member States of the European Union + + **FM** Final Meeting + + **FWC** Framework Contract + + **GDAL** Geospatial Data Abstraction Library + + **GDB** Geodatabase + + **GIO** GMES Initial Operations + + **GPKG** GeoPackage + + **HDF5** Hierarchical Data Format + + **HRL / HRLs** High Resolution Layer / High Resolution Layers + + **IaaS** Infrastructure-as-a-Service + + **ID** Identification Number + + **INSPIRE** Infrastructure for Spatial Information in Europe + + **ISO** International Organisation for Standardization + + **ITT** Invitation to Tender + + **JDBC** Java Database Connectivity + + **JWT** JSON Web Token + + **KOM** Kick-Off Meeting + + **LC** Land Cover + + **LCC** Land Cover Component + + **LCH** Land Characteristics + + **LC/LU** Land Cover / Land Use + + **LCC** Land Cover Component + + **LU** Land Use + + **LUA** Land Use Attribute + + **LULUCF** Land Use, Land Use Change and Forestry + + **LYR** ArcGIS Layer File + + **MMU** Minimum Mapping Unit + + **MS** Member States + + **NFRs** Non-Functional-Requirements + + **NRC** National Reference Centre + + **NUTS** Nomenclature of Territorial Units for Statistics + + **N2K** Natura 2000 + + **OBDC** Open Database Connectivity + + **PDF** Portable Document Format + + **PM** Progress Meeting + + **PMP** Project Management Plan + + **PoC** Proof of Concept + + **QA** Quality Assurance + + **QC** Quality Control + + **QM** Quality Management + + **QML** QGIS Style file + + **REST** Representational State Transfer + + **RZ** Riparian Zones + + **SC** Specific Contract + + **SHP** ESRI Shapefile + + **SLD** Styled Layer Descriptor + + **SQL** Structured Query Language + + **UA** Urban Atlas + + **UI** User Interface + + **URI** Uniform Resource Identifier + + **URL** Uniform Resource Locator + + **UUID** Universally Unique Identifier + + **VM** Virtual Machine + + **WBS** Work Breakdown Structure + + **WEkEO** Copernicus DIAS reference service for environmental data, virtual environments for data processing + + **WP** Work Package + + **ZIP** ZIP Format + ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +# Annex + +**Barcoding** + +The 'barcoding' method is referring to the process of selecting and assigning a value to relevant LCC, LUA and LCH elements from the matrix to describe a class. The aim of bar-coding is to create a standardized and concise representation of the class using a sequence of numerical codes. + +The EAGLE matrix elements initially have no specific bar code value (BCV) and are considered neutral. During the bar-coding exercise for a targeted class or landscape situation, these elements get assigned a certain BCV (Table 1) according to their importance and logic relationship within a given class definition. The resulting sequence of numerical codes assigned to the matrix elements serves as a descriptive summary of the class. + +This bar-coding approach streamlines the process of representing complex information about different classes, making it easier to handle and to compare among them and with other classification systems. When working with the barcoding exercise, different classes require the EAGLE elements to take different roles, according to the targeted definitions. Similar class definitions should reflect in also similar barcoding results.[^11]. + + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + **Barcode Value** **Definition** + ------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + X Element is excluded by definition + + 1 An optional element, it can occur as typical but not necessarily as mandatory + + 2 Selective mandatory element, EITHER-AND/OR logic, at least two or more of all elements with assigned BCV 2 must be present + + 3 Cumulative mandatory element, AND-logic, all elements with assigned BCV 3 must be present + + 4 Paired mandatory element, two of all elements with assigned BCV 4 must be present + + 5 Exclusive mandatory element, NOTHING-BUT-logic, practically allows only the one element with assigned BCV 5 and excludes any other element from its parent matrix block + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + : []{#_Ref152071020 .anchor}Table 0‑1: List of Bar-code value meanings. The BCVs define the role of EAGLE elements to fulfil a given mapping rule, class definition or landscape situation. + +**Aggregation Rules** + +In the **current version of the CLC+ Core system**, for the creation of an Extraction, the **following rules** were applied: + +1. Apply the coverage of the Input Class multiplied by the specified factor to the specified barcoded EAGLE element. + +2. If there is more than one coverage information for a certain barcoded EAGLE element originating from different Input Classes of the same Ingestion the coverage values are added up. + +3. If there is more than one coverage information for a certain EAGLE element originating from different data sets, the result depends on the choice of Coverage Function: + + a. For *maxCov* the highest coverage sum of matching Input Classes within any Ingestion in the list of inputs is chosen. + + b. For *firstCov* the first matching Input Class in the list of inputs has priority - so the order of the Input Classes is relevant here. More important classes should be ranked first. + + c. For *sumCov* the coverages of all matching Input Classes are summed up, even if they belong to different Ingestions. + +4. Coverage values do NOT propagate to child elements of the EAGLE hierarchy. If an Input Class maps to EAGLE "buildings" the system does not give any information about "Specific buildings". + +5. Coverage values are propagated to its parent elements by default. + +6. If several values must be combined (several contributions are coming from children) they are NOT added up if they originate from the same Input Class. + +\ + ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| **Product Category** | **Product Name (long)** | **Product Name (short)** | **Reference year** | **Data format** | **comments** | ++:=====================+:=============================================================+:=========================+:===================+:================+:=========================================+ +| HRLs | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Imperviousness | Built up | IBU_010m_18 | HRL 2018 | Raster |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Imperviousness | Degree of Imperviousness | IMD_010m_18 | HRL 2018 | Raster | | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Forest | Tree Cover Density | TCD_010m_18 | HRL 2018 | Raster | | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Forest | Forest Type | FTY_010m_18 | HRL 2018 | Raster |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Forest | Dominant Leaf Type | DLT_010m_18 | HRL 2018 | Raster |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Grassland | Grassland | GRA_010m_18 | HRL 2018 | Raster |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Water and Wetness | Water and Wetness | WAW_010m_18 | HRL 2018 | Raster |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Small Woody Feature | Small Woody Feature | SWF_005m_15 | HRL 2015 | Raster | | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Small Woody Feature | Small Woody Feature | SWF_005m_18 | HRL 2018 | Raster | | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| CLC / CLC+ Backbone | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| CLC raster | Corine Land Cover | CLC_100m_18 | CLC 2018 | Raster |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| CLC+ Backbone | Corine Land Cover Plus Backbone | CLC+BB_010m_18 | CLC+ BB 2018 | Raster |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Priority Area Monitoring | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Urban Atlas | Urban Atlas LC/LU | UA LC/LU 18 | Hotspot 2018 | Vector |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Urban Atlas | Urban Atlas LC/LU | UA LC/LU 12 | Hotspot 2012 | Vector |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Riparian Zones | Riparian Zones LC/LU | RZ LC/LU 18 | Hotspot 2018 | Vector |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Riparian Zones | Riparian Zones LC/LU | RZ LC/LU 12 | Hotspot 2012 | Vector |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Natura 2000 | Natura 2000 LC/LU | N2K LC/LU 18 | Hotspot 2018 | Vector |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Natura 2000 | Natura 2000 LC/LU | N2K LC/LU 12 | Hotspot 2012 | Vector |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Coastal Zones | Coastal Zones LC/LU | CZ LC/LU 18 | Hotspot 2018 | Vector |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| Coastal Zones | Coastal Zones LC/LU | CZ LC/LU 12 | Hotspot 2012 | Vector |   | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| National Datasets | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| National dataset NL | Bestand Bodemgebruik | BBG 15 | 2015 | Vector | Aggregated to less classes by consortium | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| National dataset NL | BRP Agricultural Parcels (Gewasparcelen) | BRP 18 | 2018 | Vector | Aggregated to less classes by consortium | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| National dataset ES | National Land Cover and Land Use System (SIOSE) - Land Cover | SIOSE - Land Cover | 2017 | Vector | | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ +| National dataset ES | National Land Cover and Land Use System (SIOSE) - Land Use | SIOSE - Land Use | 2017 | Vector | | ++----------------------+--------------------------------------------------------------+--------------------------+--------------------+-----------------+------------------------------------------+ + +: []{#_Ref151628372 .anchor}Table 0‑2: Datasets used for Ingestion into the CLC+ Core System by the CLC+ Core Consortium. + +Source: and national authorities + ++---------------+---------------------+--------------------------------+----------+----------------------------------------------+---------------------------------------------+-------------------------------------+-------------------------------------------------------------+-------------------------------------------------------+-------------------------------------------------------------+ +| Level 1 | Level 2 | Level 3 | dataset | **LCC** | **LUA** | **LCH** | **code CLMS** | **code ES** | **code NL** | ++:=============:+:===================:+:==============================:+:=========+:=============================================+:============================================+:====================================+:============================================================+:======================================================+:============================================================+ +| **Grassland** | Agriculture Use | Pasture Use | CLC | | 1_1_1 commercial crop production | 5_1_2_2 no crop rotation\ | *(* | *(* | *(* | +| | | | | | | 5_1_6_2 Pasture-meadow | | | | +| | | | | | | | *cov(\"LCC-graminoids\", 5)\>=50&&* | *cov(\"LCC-graminoids\", 5)\>=30\|\|* | *cov(\"LCC-graminoids\", 5)\>=30&&* | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCC-herbaceous-vegetation\", 5)\>=30* | *cov(\"LCC-graminoids\", 3)\>=30* | *cov(\"LCC-herbaceous-vegetation\", 2)\>=30* | +| | | | | | | | | | | +| | | | | | | | *)&&* | *)&&* | *)&&* | +| | | | | | | | | | | +| | | | | | | | *(* | *(* | *(* | +| | | | | | | | | | | +| | | | | | | | *cov(\"LUA-commercial-crop-production\", 5)\>=30* | *cov(\"LUA-other-primary-production\", 3)\>=30* | *cov(\"LUA-commercial-crop-production\", 5)\>=30* | +| | | | | | | | | | | +| | | | | | | | *)&&* | *)* | *)* | +| | | | | | | | | | | +| | | | | | | | *(* | | | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-no-crop-rotation\", 5)\>=30\|\|* | | | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-pasture-meadow\", 5)\>=30* | | | +| | | | | | | | | | | +| | | | | | | | *)* | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | SIOSE LU |   | 1_5 other primary production | | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | SIOSE LC | 2_2_1 graminiods | | | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | BRP | 2_2_1 graminiods | 1_1_1 commercial crop production | | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | BBG | 2_2 herbaceous_vegetation | | | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | CLC+ | 2_2 herbaceous_vegetation |   |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | GRA | 2_2_1 graminiods | | | | | | +| | +--------------------------------+----------+----------------------------------------------+---------------------------------------------+-------------------------------------+-------------------------------------------------------------+-------------------------------------------------------+-------------------------------------------------------------+ +| | | Managed Grassland | CLC | 2_2_1_1 grasses |   | 5_1_2_2 no crop rotation\ | *(* | *(* | *(* | +| | | | | | | 5_1_1_2 managed grassland | | | | +| | | | | | | | *cov(\"LCC-graminoids\", 5)\>=50&&* | *cov(\"LCC-graminoids\", 5)\>=30\|\|* | *cov(\"LCC-graminoids\", 5)\>=30&&* | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCC-herbaceous-vegetation\", 5)\>=50* | *cov(\"LCC-graminoids\", 3)\>=30* | *cov(\"LCC-herbaceous-vegetation\", 2)\>=30* | +| | | | | | | | | | | +| | | | | | | | *)&&* | *)&&* | *)&&* | +| | | | | | | | | | | +| | | | | | | | *(* | *(* | *(* | +| | | | | | | | | | | +| | | | | | | | *cov(\"LUA-commercial-crop-production\", 5)\>=30* | *cov(\"LUA-commercial-crop-production\", 5)\>=30* | *cov(\"LUA-commercial-crop-production\", 5)\>=30* | +| | | | | | | | | | | +| | | | | | | | *)&&* | *)* | *)&&* | +| | | | | | | | | | | +| | | | | | | | *(* | | *(* | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-no-crop-rotation\", 5)\>=30&&* | | *cov(\"LCH-managed-permanent-grassland\", 5)\>=30* | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-pasture-meadow\", 5)\>=30&&* | | *)* | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-managed-permanent-grassland\", 5)\>=30* | | | +| | | | | | | | | | | +| | | | | | | | *)* | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | SIOSE LU |   |  1_1_1 commercial crop production |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | SIOSE LC |  2_2_1 graminiods, 2_2 herbaceous_vegetation |   |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | BRP | 2_2_1 graminiods | 1_1_1 commercial crop production | 5_1_1_2 managed permanent grassland | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | BBG |   |   |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | CLC+ | 2_2 herbaceous_vegetation |   |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | GRA | 2_2_1 graminiods |   |   | | | | +| +---------------------+--------------------------------+----------+----------------------------------------------+---------------------------------------------+-------------------------------------+-------------------------------------------------------------+-------------------------------------------------------+-------------------------------------------------------------+ +| | Non Agriculture Use | Natural/Semi-natural grassland | CLC | | 6_3_1 Land areas not in other economic use | 5_1_4_1_1 no ploughing\ | *(* | *(* | *(* | +| | | | | | | 5_1_4_5_1 no irrigation\ | | | | +| | | | | | | 5_1_4_2_1 no fertilizing\ | *cov(\"LCC-graminoids\", 5)\>=50&&* | *cov(\"LCC-graminoids\", 5)\>=50\|\|* | *cov(\"LCC-graminoids\", 5)\>=30* | +| | | | | | | 5_1_4_3_1 no weed control\ | | | | +| | | | | | | 5_1_4_4_1 no pest control\ | *cov(\"LCC-herbaceous-vegetation\", 5)\>=50* | *cov(\"LCC-grasses_sedges_rushes_cereals \", 3)\>=50* | *)&&* | +| | | | | | | 5_1_4_7_1 no drainage | | | | +| | | | | | | | *)&&* | *)* | *(* | +| | | | | | | | | | | +| | | | | | | | *(* | | *cov(\"LUA-land-areas-not-in-other-economic-use\", 5)\>=30* | +| | | | | | | | | | | +| | | | | | | | *cov(\"LUA-land-areas-not-in-other-economic-use\", 2)\>=30* | | *)* | +| | | | | | | | | | | +| | | | | | | | *)&&* | | | +| | | | | | | | | | | +| | | | | | | | *(* | | | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-no-ploughing\", 5)\>=30\|\|* | | | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-no-irrigation\", 5)\>=30\|\|* | | | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-no-fertilizing\", 5)\>=30\|\|* | | | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-no-weed-control\", 5)\>=30\|\|* | | | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-no-pest-control\", 5)\>=30\|\|* | | | +| | | | | | | | | | | +| | | | | | | | *cov(\"LCH-no-drainage\", 5)\>=30* | | | +| | | | | | | | | | | +| | | | | | | | *)* | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | SIOSE LU |   |   |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | SIOSE LC |  2_2_1_1 Grasses, Sedges, Rushes, Cereals |   |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | BRP | 2_2_1 graminiods |  6_3_1 Land areas not in other economic use |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | BBG | |   |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | CLC+ | 2_2 herbaceous_vegetation |   |   | | | | +| | | +----------+----------------------------------------------+---------------------------------------------+-------------------------------------+ | | | +| | | | GRA | 2_2_1 graminiods |   |   | | | | ++---------------+---------------------+--------------------------------+----------+----------------------------------------------+---------------------------------------------+-------------------------------------+-------------------------------------------------------------+-------------------------------------------------------+-------------------------------------------------------------+ + +: []{#_Ref149045139 .anchor}Table 0‑3: Excerpt of the LC/LU classes (here Grassland) with sub stratification and corresponding EAGLE elements relevant for Extraction. Proposal EAGLE Group \[AD11\] supplemented by consortium. The procedure must be done for all the remaining classes as well. + + -------------- + 2056 5015 + ------ ------- + 2059 5016 + + 2100 5325 + + 2154 5514 + + 2157 5514 + + 2169 6204 + + 2180 23033 + + 2462 23700 + + 3006 25830 + + 3059 25832 + + 3067 25833 + + 3301 25834 + + 3346 25834 + + 3763 28992 + + 3765 31287 + + 3812 32628 + + 3844 32632 + + 3909 32632 + + 3912 32635 + + 5014 32636 + -------------- + + : []{#_Ref151967307 .anchor}Table 0‑4: supported national EPSG codes in the CLC+ Core system + +[]{#_Ref105175205 .anchor} + ++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Output Classes | Input Classes | CLC+ Core Ruleset | ++------------+------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Class code | Output classes | Output Class description | Input classes | Reference year | Temp resolution | Spatial resolution | MMU | Class description | CLC+ Core Ruleset | CLC+ Core Ruleset Intention | ++:==========:+:============================:+:=================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================:+:====================================================+:==============:+:===============:+:==================:+:========:+:===============================================================================================================================================================================================================================================================================================================+:============================================================+:===============================================================================================================================================================================================+ +| **21** | **FL Burnt areas** | The Burnt Area products map burn scars, surfaces which have been sufficiently affected by fire to display significant changes in the vegetation cover (destruction of dry material, reduction or loss of green material) and in the ground surface (temporarily darker because of ash, destroyed buildings). In this case it maps burnt forest areas and woody plants such as coniferous and broad-leaved trees; etc | EFFIS for year 2018 | 2018 | 1 | 4 | n/a | [[https://effis-gwis-cms.s3-eu-west-1.amazonaws.com/effis/reports-and-publications/effis-related-publications/eudb_tech_spec_final_2register.pdf]{.underline}](https://effis-gwis-cms.s3-eu-west-1.amazonaws.com/effis/reports-and-publications/effis-related-publications/eudb_tech_spec_final_2register.pdf) | cov(\"LCC-trees\", 5)\>=30&&\ | Effis dataset (2018) is combined with all forest classes that are mapped with the EAGLE element \"trees\"==5 (HRL TCD, DLT, CLC+ BB) via an AND operator | +| | | | | | | | | | cov(\"LCH-forest-fire-wildfire\", 5)\>=30 | | +| | | +-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | +| | | | All HRLs/CLC+BB forest classes mapped with trees==5 | 2018 | 2/3 | 10 | 0.01ha | [[https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras]{.underline}](https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras) | | | ++------------+------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **22** | **FL Transitional woodland** | Transitional bushy and herbaceous vegetation with occasional scattered trees. Can represent woodland degradation, forest regeneration / recolonization or natural succession. Areas representing natural development of forest formations, consisting of young plants of broad--leaved and coniferous species, with herbaceous vegetation and dispersed solitary adult trees. Transitional process can be for instance natural succession on abandoned agricultural land, regeneration of forest after damages of various origin (e.g. storm, avalanche), stages of forest degeneration caused by natural or anthropogenic stress factors (e.g. drought, pollution), reforestation after clearcutting, afforestation on formerly non-forested natural or semi-natural areas etc.\ | CLC 324 Transitional woodland/shrub | 2018 | 6 | 100 | 25ha | [[https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-324.html]{.underline}](https://land.copernicus.eu/user-corner/technical-library/corine-land-cover-nomenclature-guidelines/html/index-clc-324.html) | (\ | All forest classes that are mapped with the EAGLE element \"trees\"==5 (HRL TCD, DLT, CLC+ BB) are combined with CLC trans wood class via an AND operator | +| | | **Includes:**\ | | | | | | | cov(\"LCC-regular-bushes\", 2)\>=30&&\ | | +| | | - young broad-leaved and/or coniferous trees;\ | | | | | | | cov(\"LUA-forestry\", 2)\>=30&&\ | | +| | | - damaged or dead trees and shrubs;\ | | | | | | | cov(\"LCH-abandoned\", 2)\>=30&&\ | | +| | | - fully grown trees, covering \< 30% of area;\ | | | | | | | cov(\"LCH-clear-cut\", 2)\>=30&&\ | | +| | | shrubs;\ | | | | | | | cov(\"LCH-collapsed-destroyed-damaged\", 2)\>=30&&\ | | +| | | - herbaceous vegetation (grasses and herbs);\ | | | | | | | cov(\"LCH-woodland-forest-and-other-wooded-land\", 5)\>=30\ | | +| | | - bare soil or natural bare surfaces. | | | | | | | )&&\ | | +| | | | | | | | | | cov(\"LCC-trees\", 5)\>=30 | | +| | | +-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | +| | | | All HRLs/CLC+BB forest classes mapped with trees==5 | 2018 | 2/3 | 10 | 0.01ha | [[https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras]{.underline}](https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras) | | | ++------------+------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **23** | **FL Deciduous** | Perennial woody plants with single, self-supporting main stem or trunk, containing woody tissue and branching into smaller branches and shoots.\ | HRL Forest TCD | 2018 | 3 | 10 | / | [[Forest 2018 user manual (copernicus.eu)]{.underline}](https://land.copernicus.eu/user-corner/technical-library/forest-2018-user-manual.pdf) | (\ | Combination of the broadleaved/deciduous forest classes via an AND operator | +| | | **Includes:**\ | | | | | | | cov(\"LCC-trees\", 5)\>=30&&\ | | +| | | - referring to trees of the botanical group Angiospermae, with the exception of ginkgo (Ginkgo biloba), which belongs to the Gymnospermae taxonomically.\ | | | | | | | cov(\"LCH-broad-leaved\", 2)\>=30\ | | +| | | - trees which are leafless for a certain period during the year\ | | | | | | | )&&\ | | +| | | **Excludes:**\ | | | | | | | (\ | | +| | | - Pinus mugo and Alnus vidris\ | | | | | | | cov(\"LCC-trees\", 5)\>=30&&\ | | +| | | - Ephedra\ | | | | | | | cov(\"LCH-deciduous\", 5)\>=30&&\ | | +| | | - Shrub forms of Taxus, Juniperus and Betula\ | | | | | | | cov(\"LCH-broad-leaved\", 5)\>=30\ | | +| | | - Musa | | | | | | | ) | | +| | | +-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | +| | | | HRL Forest DLT broadleaved | 2018 | 3 | 10 | / | [[Forest 2018 user manual (copernicus.eu)]{.underline}](https://land.copernicus.eu/user-corner/technical-library/forest-2018-user-manual.pdf) | | | +| | | +-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | +| | | | CLC+BB Broadl deciduous | 2018 | 2 | 10 | 0.01ha | [[https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras]{.underline}](https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras) | | | ++------------+------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **24** | **FL Coniferous/Evergreen** | Perennial woody plants with single, self-supporting main stem or trunk, containing woody tissue and branching into smaller branches and shoots.\ | HRL Forest TCD | 2018 | 3 | 10 | / | [[Forest 2018 user manual (copernicus.eu)]{.underline}](https://land.copernicus.eu/user-corner/technical-library/forest-2018-user-manual.pdf) | (\ | Combination of theHRL TCD via an AND operator,with the other needle/coniferous/evergreen classes. These are connected via an OR operator as evergreen class is only common in southern Europe. | +| | | **Includes:\** | | | | | | | cov(\"LCC-trees\", 5)\>=30&&\ | | +| | | - Needle leaved trees: referring to trees of the botanical group Gymnospermae (Ford-Robertson, 1971) carrying typical needle-shaped leaves. An exception is Ginkgo biloba which belongs to the Gymnospermae but is considered here as Broadleaved deciduous tree.\ | | | | | | | (\ | | +| | | - trees that are never entirely without green foliage (includes palm-leaved species) | | | | | | | cov(\"LCH-needle-leaved\", 5)\>=30\|\|\ | | +| | | | | | | | | | cov(\"LCH-evergreen\", 5)\>=30\ | | +| | | | | | | | | | )\ | | +| | | | | | | | | | ) | | +| | | +-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | +| | | | HRL Forest DLT coniferous | 2018 | 3 | 10 | / | [[Forest 2018 user manual (copernicus.eu)]{.underline}](https://land.copernicus.eu/user-corner/technical-library/forest-2018-user-manual.pdf) | | | +| | | +-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | +| | | | CLC+BB needle leaved | 2018 | 2 | 10 | 0.01ha | [[https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras]{.underline}](https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras) | | | +| | | +-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | +| | | | CLC+BB Broadl evergreen | 2018 | 2 | 10 | 0.01ha | [[https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras]{.underline}](https://land.copernicus.eu/user-corner/technical-library/clc-bb_user_manual_ras) | | | ++------------+------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+----------------+-----------------+--------------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +: []{#_Toc154038182 .anchor}Table 0‑5: Excerpt of the LC/LU classes (here Forest) with sub stratification and applied rulesets done by the CLC+ Instances consortium. + +[^1]: [clcplus-core.land.copernicus.eu](https://urldefense.com/v3/__https:/eur02.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2Feur02.safelinks.protection.outlook.com*2F*3Furl*3Dhttps*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Feur02.safelinks.protection.outlook.com*2F*3Furl*3Dhttps*3A*2F*2Furldefense.com*2Fv3*2F__http*3A*2Fclcplus-core.land.copernicus.eu__*3B!!OepYZ6Q!vOjXaYPuONheDubX7TP8vlAB4HsNJN6FhNzsvqHkg48gGOpCiRnh1azddHGtV3Q8bU1s*24*26data*3D04*7C01*7CEugenija.Schuren*40eea.europa.eu*7C6f421a51adb245e0345308da11596ea5*7Cbe2e7beab4934de5bbc58b4a6a235600*7C1*7C0*7C637841373076254170*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000*26sdata*3Df*2By2Icsr881iMH4*2Fy4XqZL21MYo1U6rS*2FCjZy5q*2FpGQ*3D*26reserved*3D0__*3BJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSU!!OepYZ6Q!u-9fn2l19QpUDeQxuJjOpS3JsdMpopBHv_AL7TvwMKWhE5kg4Acj4zHlXO1YGA_Uya9h*24*26data*3D04*7C01*7CEugenija.Schuren*40eea.europa.eu*7C032e79d3f38e4414f98208da116dcd40*7Cbe2e7beab4934de5bbc58b4a6a235600*7C1*7C0*7C637841460556907216*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000*26sdata*3DvbJoKgAIl4Eavm8tJQxNqg03N4OUVcsiyGGM7EEFBeU*3D*26reserved*3D0__*3BJSUlJSUlJSUlJSUqKioqKioqKiolJSoqKioqKioqKioqKiUlKioqKiolJSUlJSUlJSUlJSUlJSUlJQ!!OepYZ6Q!q5qrniOv8p1iIfZjis3w329hIAadz9WRg40QUHKftwrQTJmA9rOYSiJwW14coqosJtkr*24&data=04*7C01*7CEugenija.Schuren*40eea.europa.eu*7Ced4a17eba3f84c759e1f08da1602dbae*7Cbe2e7beab4934de5bbc58b4a6a235600*7C1*7C0*7C637846498797154873*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000&sdata=OnVb26TUT97Ab*2BT4tcGZJLsOyrS1tZFQaunm67nD7D0*3D&reserved=0__;JSUlJSUlJSUlJSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiUlKioqKioqKioqKioqJSUqJSUlJSUlJSUlJSUlJSUlJSUl!!OepYZ6Q!40atOGXaqdeEoJ_GcIGYMO63a2RM3Pvq1R4AZoytOQKlw-W_0eTXi0SexpK7ZkDuC3Tnf1gCekFB7R2NH6xjfl7QsBXT23nxVQFp$) + +[^2]: + +[^3]: + +[^4]: [https://land.copernicus.eu/en/technical-library/explanatory-documentation-of-the-eagle-concept-3_2/%40%40download/file](https://land.copernicus.eu/en/eagle?tab=introduction_and_context) (Version 3.2, 2023) + +[^5]: (Version 3.2, 2023) + +[^6]: https://land.copernicus.eu/eagle/files/explanatory-documentation/eagle-docu (Version 3.1.2, 2021) + +[^7]: Rasterization to 10 m resolution for [vector]{.underline} products first + +[^8]: + +[^9]: + +[^10]: + +[^11]: diff --git a/DOCS/filenaming/clms-filenaming_design-principles_v1.qmd b/DOCS/filenaming/clms-filenaming_design-principles_v1.qmd new file mode 100644 index 00000000..a5cb968b --- /dev/null +++ b/DOCS/filenaming/clms-filenaming_design-principles_v1.qmd @@ -0,0 +1,348 @@ +--- +author: European Environment Agency (EEA) +category: guidelines +date: '2026-07-24' +subtitle: Copernicus Land Monitoring Service - Technical Library +title: CLMS Product Filenaming - Design Principles +--- + +# CLMS Product Filenaming - Design Principles + +*Grounded in the parsEO schema registry, CDSE product catalogue, and current filenaming conventions.* + +--- + +## Purpose and Scope + +These principles govern the filenaming of **all new CLMS product deliveries** - new products, reprocessings, and new versions of existing products. They describe the target convention; existing files on CDSE under legacy names remain as-is but are non-compliant. + +--- + +## Principle 1 - Filename Structure: fields, delimiter, extension + +**Rule:** A CLMS filename consists of a stem (base name) and if required (e.g. not folder names) an extension, separated by a period `.`: + +``` +{stem}.{extension} +``` + +The stem is composed of **fields** - descriptive elements separated by underscore `_`. Each field carries a specific meaning: + +``` +field1_field2_field3_…_fieldN.ext +``` + +Fields may not be empty. A field delimiter may not appear at the beginning or end of a filename, nor twice in a row. + +**Extension:** The file extension (.tif, .gpkg, .xml) indicates the file format and is not part of the naming convention. + +**Compliant:** `CLMS_VLCC-GRA_S2021_R10m_E27N48_3035_V01-R00.tif` + +**Non-compliant:** `_CLMS_VLCC-GRA_…` (leading delimiter), `CLMS_VLCC-GRA__S2021_…` (double delimiter) + +--- + +## Principle 2 - Allowed Characters: uppercase, digits, underscore, hyphen + +**Rule:** Filenames MUST use only the following ASCII characters: + +| Character | ASCII | Usage | +|-----------|-------|---------------------------------------| +| `A–Z` | 65–90 | Uppercase letters only (no lowercase) | +| `0–9` | 48–57 | Digits | +| `_` | 95 | Field delimiter | +| `-` | 45 | Within-field separator | + +The period `.` (ASCII 46) is reserved exclusively for the file extension separator. Spaces, lowercase letters, and all other special characters are NOT permitted. + +**Rationale:** A restricted character set enables deterministic, case-insensitive parsing across all platforms. Uppercase-only avoids case-sensitivity issues between Linux (case-sensitive) and Windows/macOS (case-insensitive). + +**Compliant:** `CLMS`, `V01-R00`, `054-0154-IW1`, `R20-5m`, `VLCC-GRA` + +**Non-compliant:** `clms_EGMS`, `V01_r00`, `P20x5m`, `data file.tif` + +--- + +## Principle 3 - Maximum Filename Length + +**Rule:** The complete filename (stem + extension) MUST NOT exceed 255 characters. The fully qualified file name (including path) SHOULD NOT exceed 260 characters. + +**Recommendation:** Keep filenames under 100 characters to safely accommodate both file name and storage path across all platforms. + +**Rationale:** The 255-character limit is the smallest common denominator across Windows (260 char FQFN), macOS (1024), and Linux (4096). The 100-character recommendation preserves room for deep directory structures. + +--- + +## Principle 4 - Delimiter: Underscore `_` between fields, hyphen `-` within fields + +**Rule:** Use `_` to separate all top-level fields. The hyphen `-` is the **within-field separator**: it joins the variable (and sub-variables) to the product code (`VLCC-GRA`, `WSI-SP-SCD`), joins version to revision (`V01-R00`), and appears where a notation itself requires it (e.g., `054-0154-IW1` for IW burst tile identifiers, `C2018-2021` for change periods). It is never a cross-field delimiter. + +**Rationale:** Consistent underscore delimiters make tokenisation deterministic across all product families. The hyphen carries all intra-field structure, so splitting on `_` always yields the same field count within a product family. + +**Compliant:** + +- `CLMS_VLCC-GRA_S2021_R10m_E27N48_3035_V01-R00.tif` +- `CLMS_EGMS-L2a-A_T20190101P5Y_R20-5m_054-0154-IW1_V01-R00.tif` (hyphens inside `EGMS-L2a-A` and `054-0154-IW1` are semantic) +- `CLMS_CLCPLUS-LCU_S2023_R10m_E48N37_3035_V01-R00.tif` + +**Edge case:** Hyphenated geographic names (e.g., "Bourg-en-Bresse") is a single token; the hyphen is part of the name, not a delimiter. + +--- + +## Principle 5 - Field Order: Variable hyphen-appended to the product code, token count invariant + +**Rule:** Fields appear in a fixed order per product family. The variable is **not a standalone field**: it is hyphen-appended to the product code in position 2 (`{CODE}-{VARIABLE}[-{SUBVARIABLE}]`). Underscore-separated token count is invariant across a product family - a sub-product identifier is never a separate positional field; it is encoded within the code-variable compound: + +> **Canonical template:** +> +> ``` +> CLMS_{CODE}-{VARIABLE}[-{SUBVARIABLE}]_{TEMPORAL}_{RES}_{EXTENT}_{EPSG}_{VERSION}-{REVISION} +> ``` + +Sub-products within a family (e.g., SP, SWS, WDS within WSI) extend the compound with a further hyphen (`WSI-SP-SCD`, `WSI-WDS-SSC`). This keeps the underscore token count identical for every file in the family. + +**Rationale:** Code and variable together identify **what** the file is; the remaining fields identify **when**, **where**, and **which version**. Placing the full product identity at position 2 groups all files of a product and its layers together in directory listings, and a parser always knows which position holds which field - no branching logic based on which sub-product happens to be present. + +**Compliant:** + +- `CLMS_VPP2-ST-PPI_A20240101P10D_R10m_T33UVS_V01-R00.tif` +- `CLMS_WSI-SP-SCD_A20200901P1Y_R20m_T38TKL_V01-R00.tif` +- `CLMS_WSI-WDS-SSC_20210217T053159_R60m_T32TNS_S1B_V01-R00.tif` (sensing datetime, sub-product in the code-variable compound) + +--- + +## Principle 6 - Programme Prefix: `CLMS_` mandatory, no exceptions + +**Rule:** Every CLMS product filename MUST begin with `CLMS_`. No exceptions. No product is exempt. This applies to all new deliveries, reprocessings, and new product versions across the entire CLMS portfolio (EEA, JRC, contractors). + +**Rationale:** The prefix makes programme identity parseable from the filename alone. Any file without `CLMS_` is immediately identifiable as non-conformant. + +**Compliant:** + +- `CLMS_VLCC-GRA_S2021_R10m_E27N48_3035_V01-R00.tif` +- `CLMS_VPP2-ST-PPI_A20240101P10D_R10m_T33UVS_V01-R00.tif` +- `CLMS_UA-LCU_S2021_V025ha_DK004L3_3035_V01-R00.gpkg` +- `CLMS_CLCPLUS-LCU_S2018_R10m_EUROPE_3035_V01-R00.tif` +- `CLMS_CLC-LCU_S2018_V25ha_EUROPE_3035_V01-R00.gpkg` +- `CLMS_EGMS-L3-U_T20190101P5Y_R100m_E28N49_3035_V01-R00.tif` + +--- + +## Principle 7 - Product Code: Short, uppercase, registered + +**Rule:** Product codes must be registered in the CLMS product code registry before schema authoring. Uppercase alphanumeric only. Prefer 4–7 characters. Retain the `HR` prefix only when it is part of the established acronym. + +**Compliant:** `VLCC`, `VPP2`, `WSI`, `EUHYDRO`, `CLCPLUS`, `UA` + +**Non-compliant:** `HRVPP2` (redundant HR), `VPP-2` (hyphen in code), any unregistered code + +--- + +## Principle 8 - Temporal Coverage: Format matches product type + +**Rule:** + +| Situation | Format | Examples | Definition | +|-----------------|--------------------------|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Sensing instant | `{YYYYMMDD}T{HHMMSS}` | `20210217T053159` | Single acquisition at a specific date+time (e.g. satellite scene). Zero-duration temporal instant. Uses bare ISO 8601 `dateTime` lexical form - the `T` separator and fixed-width format make it self-identifying, so no semantic prefix is needed. | +| Aggregated | `A{YYYYMMDD}P{duration}` | `A20240101P10D`, `A20240101P1M`, `A20240101P1Y` | A 2D snapshot where pixel values are derived by **compositing, averaging, or selecting** from multiple observations over time using a defined algorithm. The temporal dimension is **collapsed** to a single representative value per pixel; the file is not designed for temporal querying. | +| Status | `S{YYYY}` | `S2021` | A static thematic map or interpreted classification representing a single reference year. The product does **not** represent a statistical aggregate of repeated measurements; it is the result of a single survey, interpretation, or classification exercise. | +| Change | `C{YYYY}-{YYYY}` | `C2018-2021` | A map of transitions or differences between two Status reference years. The two years are the start and end of the change period. The output is a 2D change layer (not a time-series stack). | +| Timeseries | `T{YYYYMMDD}P{duration}` | `T20190101P5Y` | A single file containing **preserved multi-temporal measurements** where the temporal dimension is queryable (e.g. as internal bands, layers, or a time-enabled data cube). Designed for temporal analysis, not as a collapsed 2D snapshot. | +| Forecast | `F{YYYYMMDD}P{duration}` | *(Reserved)* | **Reserved/Proposed.** For future forecast/modelled products. Not currently in use. | + +**Temporal reference standard:** All temporal formats follow **ISO 8601-1:2019** (Date and time - Representations for information interchange). The `P{duration}` suffix uses the ISO 8601 duration format (`P10D`, `P1M`, `P1Y`). Reference: https://www.iso.org/standard/70907.html + +**Edge case:** Multi-seasonal products encode the season in the code-variable compound (`-S1`, `-S2`), not in the temporal field. This is consistent with external standards (CF Conventions, NASA EOSDIS) which treat season as a data attribute, not a temporal primitive. + +**Compliant examples:** + +- `CLMS_VPP2-ST-PPI_A20240101P10D_…` (aggregated, dekadal) +- `CLMS_VLCC-GRA_S2021_…` (annual status) +- `CLMS_UA-LCU_C2018-2021_…` (change between two Status years) +- `CLMS_WSI-WDS-SSC_20210217T053159_R60m_T32TNS_S1B_V01-R00.tif` (sensing datetime) +- `CLMS_EGMS-L3-U_T20190101P5Y_R100m_E28N49_3035_V01-R00.tif` (timeseries, multi-year) + +--- + +## Principle 9 - Resolution: `R{value}[unit]` for raster, `V{value}[unit]` for vector and point grid + +**Rule:** Raster and gridded products use `R{value}[unit]` with no zero-padding: `R10m`, `R1km`, `R100m`. The value is the integer pixel/grid spacing in metres. Irregular grid spacings join both values with a hyphen within the field: `R20-5m` (e.g., EGMS L2 20×5 m posting). + +The `V` prefix covers two cases: + +- **Vector minimum mapping units** - `V{value}ha` (e.g., `V025ha` for Urban Atlas 0.25 ha, `V25ha` for CLC 25 ha). Sub-1 ha values use a leading zero with no decimal point. +- **Point grid posting spacing** - `V{value}m` for regular grids (e.g., `V100m` for EGMS L3) or `V{value}-{value}m` for irregular grids (e.g., `V20-5m` for EGMS L2 point data) + +Only `R` and `V` exist - there is no separate point-grid prefix. + +**Compliant:** `R10m`, `R1km`, `R100m`, `R20-5m`, `V025ha`, `V25ha`, `V100m`, `V20-5m` + +**Edge case:** Products with no meaningful spatial resolution (e.g., nation-level statistical vector layer) omit the resolution token. + +--- + +## Principle 10 - Spatial Extent: Identifies the area covered by this specific file + +**Rule:** This field identifies the spatial extent of the individual file - not the overall product coverage. It can be a grid tile, a satellite scene, an administrative boundary, or a continental code: + +| Extent type | Description | Examples | +|---------------|----------------------------------------------------|--------------------------------------------| +| MGRS | Sentinel-2 raster tile | `T33UVS` | +| LAEA 100km | Pan-European composite on INSPIRE/ETRS89-LAEA grid | `E27N48` | +| IW burst | Sentinel-1 swath (burst-level) | `054-0154-IW1` | +| FUA code | Functional Urban Area, city-level vector | `DK004L3` | +| Country code | Nation-level vector | `DE`, `IT` | +| Delivery Unit | Tiling system for large-area products | `DU001` | +| Continental | Full European continent coverage | `EUROPE` | +| Hemispherical | Global product subset for one hemisphere | `NORTHERNHEMISPHERE`, `SOUTHERNHEMISPHERE` | +| Global | Full global coverage | `GLOBAL` | + +Spatial extent identifiers are `_`-separated from adjacent tokens. Never fuse them with EPSG or resolution. + +> **Note:** This field describes the extent of the **file**, not the product. A pan-European product may be delivered as individual MGRS tiles, each with a different spatial extent. Likewise, `EUROPE` means this specific file covers the entire continent - it does not mean the product is "pan-European" by design. + +**Compliant:** + +- `CLMS_VPP2-ST-PPI_…_T33UVS_…` (MGRS tile) +- `CLMS_VLCC-GRA_S2021_R10m_E27N48_…` (LAEA tile) +- `CLMS_CLCPLUS-LCU_S2023_R10m_E48N37_…` (LAEA tile) +- `CLMS_UA-LCU_S2021_V025ha_DK004L3_…` (FUA code) +- `CLMS_EGMS-L2a-A_…_054-0154-IW1_…` (IW burst) +- `CLMS_EUHYDRO-NET-LINE_EUROPE_…` (continental coverage) +- `CLMS_WSI-WDS-SSC_20210217T053159_R60m_T32TNS_S1B_V01-R00.tif` (MGRS, SAR sensor) + +--- + +## Principle 11 - EPSG Code: Bare code, required for projected CRS, omit when CRS is implicit + +**Rule:** Standalone `_`-separated token containing the bare EPSG code with **no zero-padding** (`3035`). Required for products with a projected CRS (e.g., LAEA 100km extents). Omit when the CRS is implicit in the spatial extent system (e.g., MGRS tiles imply UTM, so EPSG is redundant). Also omit for CRS-independent files (metadata XML, archive containers). + +**Rationale:** The bare code is the EPSG identifier exactly as registered (https://epsg.org) - `3035`, `4326`, `32633` - so the token matches the authority and needs no transformation for lookups. EPSG codes are 4–5 digits; the field is bounded, and the surrounding fixed field order keeps parsing deterministic without artificial padding. + +**Compliant:** + +- `CLMS_VLCC-GRA_S2021_R10m_E27N48_3035_V01-R00.tif` (LAEA tile, EPSG 3035 required) +- `CLMS_CLCPLUS-LCU_S2023_R10m_E48N37_3035_V01-R00.tif` +- `CLMS_VPP2-ST-PPI_A20240101P10D_R10m_T33UVS_V01-R00.tif` (MGRS tile - EPSG omitted, CRS implicit) + +**Non-compliant:** `03035` (zero-padded), `EPSG3035` (prefixed) + +--- + +## Principle 12 - Version: `V{XX}-R{YY}` single hyphenated field + +**Rule:** A single compound token: `V{XX}` (major, 2-digit zero-padded), hyphen, `R{YY}` (revision, 2-digit zero-padded). Never use packed `V{XXX}`. + +**Compliant:** `V01-R00`, `V01-R01`, `V02-R00` + +--- + +## Principle 13 - Variable: Hyphenated composite appended to the product code + +**Rule:** The variable identifies the measured or mapped quantity. It is hyphen-appended to the product code at position 2, forming the product identity compound: + +``` +{CODE}-{PRODUCT_TYPE}[-{PARAMETER}][-{SEASON}][-QFLAG] +``` + +- `PRODUCT_TYPE`: layer type code (`ST`, `VPP`, `GPP`, `SP`, `LCU`) +- `PARAMETER`: specific measurement (`PPI`, `SOSD`, `TOTAL`, `SCD`) +- `SEASON`: `S1` or `S2` for multi-seasonal products +- `QFLAG`: literal suffix for quality flag layers - always last + +`LCU` (Land Cover / Land Use) is the shared variable for all status and change land cover/use products (UA, CLC, CLCPLUS, RZ, …); status vs change is expressed by the temporal field (`S{YYYY}` vs `C{YYYY}-{YYYY}`), not by the variable. + +**Compliant:** + +``` +VPP2-ST-PPI → VPP2-ST-PPI-QFLAG +VPP2-VPP-SOSD-S1 → VPP2-VPP-SOSD-S1-QFLAG +VPP2-GPP-TOTAL → VPP2-GPP-TOTAL-QFLAG +WSI-SP-SCD → WSI-SP-SCD-QFLAG +UA-LCU / CLC-LCU / CLCPLUS-LCU +``` + +--- + +## Principle 14 - Production Date: Metadata-only unless operationally required + +**Rule:** Omit production date from filenames. Include it only when multiple production runs for the same temporal period coexist in the same distribution channel. When present: `{YYYYMMDD}` as the last token before the extension. + +**Compliant:** `CLMS_EUHYDRO-NET-LINE_EUROPE_3035_V02-R00_20261015.gpkg` + +--- + +## Principle 15 - Sensor Token: Omit unless multi-sensor discrimination is required + +**Rule:** No standalone sensor token in the filename. The sensor is implicit in the product code. Include a sensor token only when the product supports multiple sensor sources distinguishable at file level (e.g., SAR platform identity `_S1B_`). + +**Compliant:** + +- `CLMS_WSI-SP-SCD_A20200901P1Y_R20m_T38TKL_V01-R00.tif` +- `CLMS_WSI-WDS-SSC_20210217T053159_R60m_T32TNS_S1B_V01-R00.tif` (S1B sensor token required for SAR discrimination) + +--- + +## Principle 16 - Quality Layers: Separate file, hierarchical `-QFLAG` suffix + +**Rule:** Quality layers are separate files. Same stem as the data layer, with `-QFLAG` appended to the appropriate hierarchical level of the code-variable compound. No other field may differ between a data file and its quality file. + +The `-QFLAG` suffix attaches at the level it applies to: + +- `VPP2-VPP-SOSD-QFLAG` - quality applies to the VPP-SOSD product only +- `VPP2-VPP-QFLAG` - quality applies to all VPP sub-products (SOSD, TOTAL, SEASONAL, etc.) +- `VPP2-ST-PPI-QFLAG` - quality applies to the PPI measurement only + +**Compliant:** + +``` +CLMS_VPP2-ST-PPI_A20240101P10D_R10m_T33UVS_V01-R00.tif ← data +CLMS_VPP2-ST-PPI-QFLAG_A20240101P10D_R10m_T33UVS_V01-R00.tif ← quality +``` + +--- + +## Principle 17 - Schema Registration: parsEO schema BEFORE CDSE onboarding + +**Rule:** Every new CLMS product must have a registered product code, a parsEO schema with `status: current`, and a naming crosswalk before the first CDSE delivery. The schema defines the filename; CDSE filenames are not reverse-engineered into schemas after the fact. + +--- + +## What Cannot Be Standardised + +Some aspects genuinely differ between product families and should not be forced into a single mould: + +1. **Raster vs. vector/point-grid resolution** - `R10m` and `V25ha` are different physical quantities; `V` covers both vector MMU (`V{value}ha`) and point grids (`V{value}m`) +2. **Pan-European vs. local tile encoding** - LAEA grid tiles (`E27N48`) for pan-European products, FUA codes (`DK004L3`) for city-level vector - these are incompatible spatial encodings, both valid +3. **Annual status vs. scene-level temporal format** - `S{YYYY}` for static maps, `{YYYYMMDD}T{HHMMSS}` for single acquisitions - the right format depends on the product's temporal nature +4. **Multi-resolution families** - the set of valid resolution values varies per product; each schema enumerates its own +5. **Production date inclusion** - reflects operational policy; included when corrections under the same version are expected + +--- + +## Principles Summary + +| # | Principle | Rule | +|----|---------------------|---------------------------------------------------------------------------------------------------------------------------| +| 1 | Filename structure | Fields separated by `_`, stem.extension | +| 2 | Allowed characters | `A–Z`, `0–9`, `_`, `-` only; no lowercase, no spaces | +| 3 | Max filename length | ≤255 chars stem+extension, recommend ≤100 | +| 4 | Delimiter | `_` between fields; `-` within fields (code-variable compound, version-revision, notations) | +| 5 | Field order | Variable hyphen-appended to product code at position 2; canonical template defines field sequence | +| 6 | Prefix | `CLMS_` mandatory for all products, no exceptions | +| 7 | Product code | Short, uppercase, registered in code registry | +| 8 | Temporal | `A{start}P{duration}` (aggregated), `S{YYYY}` (status), `C{YYYY}-{YYYY}` (change), `T{start}P{duration}` (timeseries) | +| 9 | Resolution | `R{XX}m` (raster/grid), `V{value}ha` (vector MMU), `V{value}m` (point grid) - hyphen for irregular grids | +| 10 | Spatial extent | MGRS / LAEA / IW burst / FUA / country / DU / EUROPE - identifies the area of the specific file, not the product coverage | +| 11 | EPSG | Bare EPSG code, no zero-padding (`3035`); required for projected CRS, omit when CRS is implicit in the spatial extent | +| 12 | Version | `V{XX}-R{YY}` single hyphenated field; no packed `V{XXX}` | +| 13 | Variable | `{CODE}-{TYPE}[-{PARAM}][-{SEASON}][-QFLAG]` compound at position 2 | +| 14 | Production date | Metadata-only unless operationally required | +| 15 | Sensor | Omit unless multi-sensor discrimination needed | +| 16 | Quality | Separate file, hierarchical `-QFLAG` suffix, identical stem | +| 17 | Registration | parsEO schema before CDSE onboarding | + +--- + +*Document status: Draft for review. Grounded in the parsEO schema registry and VPP2 naming crosswalk.* \ No newline at end of file diff --git a/DOCS/filenaming/clms-filenaming_filename-tree_v1.qmd b/DOCS/filenaming/clms-filenaming_filename-tree_v1.qmd new file mode 100644 index 00000000..d184e860 --- /dev/null +++ b/DOCS/filenaming/clms-filenaming_filename-tree_v1.qmd @@ -0,0 +1,204 @@ +--- +author: European Environment Agency (EEA) +category: guidelines +date: '2026-07-24' +subtitle: Copernicus Land Monitoring Service - Technical Library +title: CLMS Product Filenaming - Filename Tree +--- + +# CLMS Product Filenaming - Filename Tree + +*A visual navigation of all possible CLMS filename variants. Each level shows the options for that field. All structural variants are shown, but the lists of variables, tiles, dates & values are exemplary - not exhaustive.* + +--- + +``` +CLMS_{CODE}-{VARIABLE}[-{SUBVARIABLE}]_{TEMPORAL}_{RES}_{EXTENT}_{EPSG}_{VERSION}-{REVISION}.ext +``` + +## By Product Code + +``` +CLMS_ +├── VLCC- Vegetated Land Cover Characteristics (upgraded HRL) +│ ├── GRA_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ ├── DLT_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ └── CTY_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ +├── HRL- High Resolution Layers (legacy, not yet upgraded) +│ ├── TCD_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ ├── FTY_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ ├── IMD_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ ├── IBU_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ ├── WAW_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ ├── SWF_S{YYYY}_R5m_E{XXX}N{YYY}_3035_V01-R00.tif +│ ├── TCD_C{YYYY}-{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ └── IMD_C{YYYY}-{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ +├── NVLCC- Non-Vegetated Land Cover Characteristics +│ └── IMCCS_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ +├── SLF- Small Landscape Features +│ └── SFW_S{YYYY}_R5m_E{XXX}N{YYY}_3035_V01-R01.tif +│ +├── WSI- Water & Snow/Ice +│ ├── SP-SCD_A{YYYYMMDD}P1Y_R20m_T{ZZ}{GZD}{AA}_V01-R00.tif +│ ├── SWS-WSM_{YYYYMMDD}T{HHMMSS}_R60m_T{ZZ}{GZD}{AA}_S1B_V01-R00.tif +│ └── WDS-SSC_{YYYYMMDD}T{HHMMSS}_R60m_T{ZZ}{GZD}{AA}_S1B_V01-R00.tif +│ +├── EUHYDRO- EU Hydro +│ └── NET_S{YYYY}_R10m_EUROPE_3035_V02-R00.gpkg +│ +├── UA- Urban Atlas +│ ├── LCU_S{YYYY}_V025ha_{FUA}_3035_V01-R00.gpkg +│ └── LCU_C{YYYY}-{YYYY}_V025ha_{FUA}_3035_V01-R00.gpkg +│ +├── CLCPLUS- CLC+ Raster +│ └── LCU_S{YYYY}_R10m_E{XXX}N{YYY}_3035_V01-R00.tif +│ +├── VPP2- Vegetation Phenology & Productivity v2 +│ ├── ST-PPI_A{YYYYMMDD}P10D_R10m_T{ZZ}{GZD}{AA}_V01-R00.tif +│ ├── VPP-SOSD-S1_A{YYYYMMDD}P1Y_R10m_T{ZZ}{GZD}{AA}_V01-R00.tif +│ ├── GPP-TOTAL_A{YYYYMMDD}P1Y_R10m_T{ZZ}{GZD}{AA}_V01-R00.tif +│ └── GPP-TOTAL-QFLAG_A{YYYYMMDD}P1Y_R10m_T{ZZ}{GZD}{AA}_V01-R00.tif +│ +├── CLC- Corine Land Cover +│ └── LCU_S{YYYY}_V25ha_EUROPE_3035_V01-R00.gpkg +│ +└── EGMS- European Ground Motion Service + ├── L3-U_T{YYYYMMDD}P{duration}_V100m_E{XXX}N{YYY}_3035_V01-R00.csv + ├── L3-EW_T{YYYYMMDD}P{duration}_R100m_E{XXX}N{YYY}_3035_V01-R00.tif + ├── L2a-A_T{YYYYMMDD}P{duration}_V20-5m_{Orbit}-{BurstID}-{SubSwath}_V01-R00.csv + └── L2b-D_T{YYYYMMDD}P{duration}_V20-5m_{Orbit}-{BurstID}-{SubSwath}_V01-R00.csv +``` + +## By Temporal Situation + +``` +{TEMPORAL}_ +├── {YYYYMMDD}T{HHMMSS}_ Sensing instant (satellite scene) +│ └── e.g. 20210217T053159_ +│ +├── A{YYYYMMDD}P{duration}_ Aggregated (sub-annual composite) +│ ├── A20240101P10D_ dekadal +│ ├── A20240101P1M_ monthly +│ └── A20240101P1Y_ annual NRT +│ +├── S{YYYY}_ Status (single reference year) +│ └── S2021_ +│ +├── C{YYYY}-{YYYY}_ Change (change between two Status years) +│ └── C2018-2021_ 3-year change +│ +└── T{YYYYMMDD}P{duration}_ Timeseries (multi-year aggregate) + └── T20190101P5Y_ 5-year timeseries +``` + +## By Resolution + +``` +{RES}_ +├── R{value}[unit]_ Raster (pixel spacing) +│ ├── R1m +│ ├── R5m +│ ├── R10m +│ ├── R20m +│ ├── R60m +│ ├── R100m +│ ├── R300m +│ ├── R1km +│ └── R20-5m irregular grid +│ +└── V{value}[unit]_ Vector MMU / point grid + ├── V025ha vector MMU 0.25ha + ├── V25ha vector MMU 25ha + ├── V100m point grid (regular) + └── V20-5m point grid (irregular) +``` + +## By Spatial Extent + +``` +{EXTENT}_ +├── T{ZZ}{GZD}{AA}_ MGRS (S2 raster tile) +│ └── T33UVS_ +│ +├── E{XXX}N{YYY}_ LAEA 100km (pan-European grid) +│ └── E27N48_ +│ +├── {Orbit}-{BurstID}-{SubSwath}_ IW burst (Sentinel-1 swath) +│ └── 054-0154-IW1_ +│ +├── {NNN}{CC}C{L}_ FUA code (Functional Urban Area) +│ └── DK004L3_ +│ +├── {CC}_ Country code (nation-level vector) +│ ├── DE_ +│ └── IT_ +│ +├── DU{NNN}_ Delivery Unit (large-area tiling) +│ └── DU001_ +│ +├── EUROPE_ Continental (entire European continent) +│ +├── NORTHERNHEMISPHERE_ Hemispherical (Northern Hemisphere) +│ +├── SOUTHERNHEMISPHERE_ Hemispherical (Southern Hemisphere) +│ +└── GLOBAL_ Global (full Earth coverage) +``` + +## By Variable (Sub-product) + +*The variable is hyphen-appended to the product code at position 2:* `CLMS_{CODE}-{VARIABLE}[-{SUBVARIABLE}]_…` + +``` +{CODE}-{VARIABLE}_ +├── {PARAM} Single token (VLCC, NVLCC, SLF, HRL) +│ ├── GRA, DLT, CTY (VLCC) +│ ├── IMCCS, SBCC, SFW, CM (NVLCC, SLF) +│ ├── TCD, FTY, IMD, IBU, WAW (HRL - 10m) +│ └── SWF (HRL - 5m) +│ +├── {SUB}-{PARAM} Two-level (WSI, VPP2) +│ ├── SP-SCD +│ ├── SWS-WSM, WDS-SSC +│ └── ST-PPI, VPP-SOSD, GPP-TOTAL +│ +├── {SUB}-{PARAM}-{SEASON} With season (VPP2) +│ ├── VPP-SOSD-S1 +│ └── GPP-SEASONAL-S1 +│ +├── {SUB}[-{PARAM}]-QFLAG Quality flag (all products) +│ ├── ST-PPI-QFLAG (leaf-level) +│ ├── VPP-SOSD-QFLAG (product-level) +│ └── VPP-QFLAG (family-level) +│ +├── LCU Land Cover Land Use status/change (UA, CLC, CLCPLUS, RZ, …) +│ +├── L3-U, L3-EW EGMS velocity components (EGMS Ortho – L3) +│ +└── L2a-A, L2a-D, L2b-A, L2b-D EGMS calibrated (EGMS L2) +``` + +## Full Example Walkthrough + +``` +CLMS_ + ├── WSI-SP-SCD_ Water & Snow/Ice - Snow Cover Duration + │ └── A20240101P1Y_ annual composite + │ └── R20m_ raster 20m + │ └── T38TKL_ MGRS tile + │ └── 3035_ EPSG 3035 + │ └── V01-R00.tif version 1, revision 0 + │ + └── EGMS-L2a-A_ European Ground Motion - L2a ascending + └── T20190101P5Y_ 5-year timeseries + └── R20-5m_ irregular grid 20x5m + └── 054-0154-IW1_ IW burst + └── V01-R00.tif version 1, revision 0 +``` + +--- + +*Tree version: draft. Each branch represents a valid structural variant of the CLMS filename convention. See CLMS_Filenaming_Design_Principles.md for the full rules.* diff --git a/DOCS/guidelines/editor-manual_v1.qmd b/DOCS/guidelines/editor-manual_v1.qmd index 17904bbc..528d573d 100644 --- a/DOCS/guidelines/editor-manual_v1.qmd +++ b/DOCS/guidelines/editor-manual_v1.qmd @@ -2,9 +2,6 @@ author: European Environment Agency (EEA) category: guidelines date: '2026-05-26' -description: A practical guide for editors creating and publishing technical documentation - in the CLMS Technical Library using Quarto. Covers file naming, YAML headers, writing, - local preview, and the publishing workflow. subtitle: Copernicus Land Monitoring Service - Technical Library template-version: 1.0 title: Editor Guide @@ -79,18 +76,20 @@ If you copied a template, the header is pre-filled - just update `title`, `subti --- title: "HRL Forest" subtitle: "High Resolution Layer - Forest Type" +category: products date: "2026-01-27" -product-name: "HRL Forest" --- ``` - `title` - short product name, appears as the document title - `subtitle` - full product name or document type description +- `category` - one of `products`, `guidelines`, `reports`, `uncategorized`, `non-browsable` - `date` - publication or last-updated date in ISO format -- `product-name` - used internally for metadata and indexing ## Optional fields +- `type` - how the document is built. Leave it out for ordinary documents. Set `type: dashboard` for an interactive page: it renders to HTML only - no PDF, no table of contents, no version or changelog. New types are added by a Technical Library owner. +- `product-name` - used internally for metadata and indexing - `template-version` - records which template version was used as the starting point. Set automatically when copying a template; don't edit it manually. ## System-managed fields diff --git a/DOCS/tools/parseo-dashboard/index.qmd b/DOCS/tools/parseo-dashboard/index.qmd new file mode 100644 index 00000000..f781b994 --- /dev/null +++ b/DOCS/tools/parseo-dashboard/index.qmd @@ -0,0 +1,280 @@ +--- +title: "parsEO — CLMS Filename Builder" +subtitle: "Assemble, parse & validate CLMS filenames" +author: "European Environment Agency (EEA)" +date: 2026-07-29 +category: non-browsable +type: dashboard +--- + +```{ojs} +parseoApp = { + // parsEO API base. Absolute because the technical library and the API are + // served from different hosts; set to "" if they ever share an origin. + const API = "https://parseo.mattiuzzi.com"; + + const state = {family: "", version: "", schema: null, values: {}}; + + async function getJSON(path, opts) { + const r = await fetch(API + path, opts); + if (!r.ok) throw new Error("HTTP " + r.status); + return r.json(); + } + + function el(tag, style, text) { + const n = document.createElement(tag); + if (style) n.style.cssText = style; + if (text != null) n.textContent = text; + return n; + } + + const CARD = "background:var(--bg2,#1a1d27);border:1px solid var(--border,#2e3148);border-radius:8px;padding:16px"; + const LABEL = "font-size:11px;color:var(--muted,#8b8fa3);text-transform:uppercase;letter-spacing:.3px"; + const FIELD = "width:100%;padding:6px 10px;background:var(--bg,#0f1117);border:1px solid var(--border,#2e3148);border-radius:6px;color:var(--text,#e4e6f0);font-size:13px;font-family:inherit"; + const BTN = "padding:6px 16px;background:var(--theme-primary,#5b8def);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px"; + const MONO = "font-family:var(--mono,ui-monospace,monospace)"; + const ERR = "color:#e74c3c;font-size:13px"; + + const fail = (target, e) => + target.replaceChildren(el("div", ERR, "Could not reach the parsEO API (" + e.message + ").")); + + // ── layout ── + const root = el("div", "display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start"); + const left = el("div", "flex:1 1 300px;min-width:280px;" + CARD); + const right = el("div", "flex:2 1 420px;min-width:320px;display:flex;flex-direction:column;gap:16px"); + root.append(left, right); + + const familySel = el("select", FIELD + ";margin-bottom:10px"); + const versionSel = el("select", FIELD + ";margin-bottom:10px"); + const fields = el("div"); + left.append( + el("div", LABEL + ";margin-bottom:3px", "Family"), familySel, + el("div", LABEL + ";margin-bottom:3px", "Version"), versionSel, + el("hr", "border:0;border-top:1px solid var(--border,#2e3148);margin:12px 0"), + fields + ); + + const previewCard = el("div", CARD); + const preview = el("div", MONO + ";font-size:15px;word-break:break-all;color:var(--text,#e4e6f0);min-height:24px", "—"); + const examples = el("div"); + previewCard.append(el("div", LABEL + ";margin-bottom:6px", "Assembled filename"), preview, examples); + + const parseCard = el("div", CARD + ";flex:1 1 300px"); + const parseIn = el("input", FIELD + ";" + MONO + ";font-size:12px;margin-bottom:8px"); + const parseBtn = el("button", BTN, "Parse"); + const parseOut = el("div", "margin-top:8px"); + parseIn.placeholder = "VPP_2017_S2_T32TPR-03035-010m_V101_s1_AMPL.tif"; + parseBtn.type = "button"; + parseCard.append(el("div", LABEL + ";margin-bottom:8px", "Parse a filename"), parseIn, parseBtn, parseOut); + + const validCard = el("div", CARD + ";flex:1 1 300px"); + const validIn = el("textarea", FIELD + ";" + MONO + ";font-size:11px;min-height:120px;resize:vertical;margin-bottom:8px"); + const validBtn = el("button", BTN, "Validate"); + const validOut = el("div", "margin-top:8px"); + validIn.placeholder = '{"$schema":"...","schema_id":"copernicus:clms:...", ...}'; + validBtn.type = "button"; + validCard.append(el("div", LABEL + ";margin-bottom:8px", "Validate a schema"), validIn, validBtn, validOut); + + const tools = el("div", "display:flex;gap:16px;flex-wrap:wrap"); + tools.append(parseCard, validCard); + right.append(previewCard, tools); + + // ── field editors ── + // A field is either a short enum (chips) or free text (input). `oneOf` fields + // carry their patterns in the branches rather than at the top level. + const hintFor = (def) => + def.description ? def.description + : def.pattern ? "regex: " + def.pattern + : def.oneOf ? def.oneOf.map(o => o.pattern).filter(Boolean).join(" | ") + : ""; + + function renderFields() { + fields.replaceChildren(); + if (!state.schema) { + fields.append(el("div", "color:var(--muted,#8b8fa3);font-size:13px", "Select a family first.")); + return; + } + for (const [name, def] of Object.entries(state.schema.fields || {})) { + const cur = state.values[name] || ""; + const row = el("div", "margin:8px 0"); + const head = el("div", LABEL + ";margin-bottom:3px"); + head.append(name.replace(/_/g, " ")); + if (cur) head.append(el("span", "color:var(--theme-primary,#5b8def);font-weight:600", " · " + cur)); + row.append(head); + + if (def.enum && def.enum.length <= 30) { + const wrap = el("div", "display:flex;flex-wrap:wrap;gap:4px"); + for (const v of def.enum) { + const on = v === cur; + const b = el("button", + "padding:3px 10px;border-radius:14px;cursor:pointer;font-size:12px;font-family:inherit;" + + "border:1px solid var(--border,#2e3148);" + + "background:" + (on ? "var(--theme-primary,#5b8def)" : "var(--bg2,#242736)") + ";" + + "color:" + (on ? "#fff" : "var(--text,#e4e6f0)"), v); + b.type = "button"; + b.onclick = () => setValue(name, on ? "" : v); // clicking the active chip clears it + wrap.append(b); + } + row.append(wrap); + } else { + const i = el("input", FIELD); + i.value = cur; + i.placeholder = hintFor(def); + // Re-rendering on every keystroke would steal focus, so text fields + // update the preview only. + i.oninput = () => setValue(name, i.value, false); + row.append(i); + } + fields.append(row); + } + } + + function setValue(name, v, rerender = true) { + if (v === "") delete state.values[name]; + else state.values[name] = v; + if (rerender) renderFields(); + refreshPreview(); + } + + // ── preview ── + // Typing races the network, so a stale response must not overwrite a newer one. + let previewSeq = 0; + async function refreshPreview() { + const mine = ++previewSeq; + if (!state.family || !state.version || Object.keys(state.values).length === 0) { + preview.textContent = "—"; + return; + } + let name = "—"; + try { + const d = await getJSON("/api/assemble", { + method: "POST", + headers: {"Content-Type": "application/json"}, + body: JSON.stringify({family: state.family, version: state.version, fields: state.values}) + }); + name = d.filename || "—"; + } catch (e) { + // A half-filled form is the normal state while building and the API + // rejects it — that is a prompt to keep going, not an error to shout about. + } + if (mine === previewSeq) preview.textContent = name; + } + + function renderExamples() { + examples.replaceChildren(); + const ex = (state.schema && state.schema.examples) || []; + if (!ex.length) return; + examples.append(el("div", LABEL + ";margin:12px 0 4px", "Examples")); + for (const x of ex.slice(0, 3)) { + examples.append(el("div", MONO + ";font-size:12px;color:var(--muted,#8b8fa3);padding:2px 0", x)); + } + } + + // ── loaders ── + async function loadSchema() { + state.schema = null; + state.values = {}; + renderFields(); + renderExamples(); + preview.textContent = "—"; + if (!state.family || !state.version) return; + try { + state.schema = await getJSON( + "/api/families/" + encodeURIComponent(state.family) + + "/schemas/" + encodeURIComponent(state.version)); + } catch (e) { + fail(fields, e); + return; + } + // A single-value enum is fixed by the schema, so prefill it. + for (const [name, def] of Object.entries(state.schema.fields || {})) { + if (def.enum && def.enum.length === 1) state.values[name] = def.enum[0]; + } + renderFields(); + renderExamples(); + refreshPreview(); + } + + async function loadVersions() { + versionSel.replaceChildren(); + state.version = ""; + if (!state.family) return loadSchema(); + let d; + try { + d = await getJSON("/api/families/" + encodeURIComponent(state.family) + "/versions"); + } catch (e) { + fail(fields, e); + return; + } + // The API returns objects ({version, status, file}), not bare strings. + const vs = (d.versions || []).map(v => (typeof v === "string" ? v : v.version)); + for (const v of vs) versionSel.append(new Option(v, v)); + state.version = vs.length ? vs[vs.length - 1] : ""; + versionSel.value = state.version; + await loadSchema(); + } + + familySel.onchange = () => { state.family = familySel.value; loadVersions(); }; + versionSel.onchange = () => { state.version = versionSel.value; loadSchema(); }; + + parseBtn.onclick = async () => { + const fn = parseIn.value.trim(); + if (!fn) { + parseOut.replaceChildren(el("div", "color:var(--muted,#8b8fa3);font-size:13px", "Enter a filename.")); + return; + } + try { + const d = await getJSON("/api/parse", { + method: "POST", + headers: {"Content-Type": "application/json"}, + body: JSON.stringify({filename: fn}) + }); + parseOut.replaceChildren( + el("pre", "font-size:12px;line-height:1.5;white-space:pre-wrap;margin:0", JSON.stringify(d.parsed, null, 2))); + } catch (e) { + parseOut.replaceChildren(el("div", ERR, "Parse failed (" + e.message + ").")); + } + }; + parseIn.onkeydown = (ev) => { if (ev.key === "Enter") parseBtn.click(); }; + + validBtn.onclick = async () => { + let schema; + try { + schema = JSON.parse(validIn.value); + } catch (e) { + validOut.replaceChildren(el("div", ERR, "Invalid JSON: " + e.message)); + return; + } + let d; + try { + d = await getJSON("/api/validate", { + method: "POST", + headers: {"Content-Type": "application/json"}, + body: JSON.stringify({schema}) + }); + } catch (e) { + validOut.replaceChildren(el("div", ERR, "Validation failed (" + e.message + ").")); + return; + } + const errors = d.errors || [], warnings = d.warnings || []; + const out = el("div"); + out.append(d.valid + ? el("div", "color:#00aa00;font-weight:600", "✓ Valid (" + errors.length + " errors, " + warnings.length + " warnings)") + : el("div", ERR + ";font-weight:600", "✗ Invalid")); + for (const e of errors) out.append(el("div", ERR + ";padding:4px 0", "· " + e)); + for (const w of warnings) out.append(el("div", "color:#e67e22;font-size:12px;padding:4px 0", "· " + w)); + validOut.replaceChildren(out); + }; + + // ── boot ── + renderFields(); + familySel.append(new Option("— select —", "")); + getJSON("/api/families") + .then(d => { + for (const f of (d.families || []).slice().sort()) familySel.append(new Option(f, f)); + }) + .catch(e => fail(left, e)); + + return root; +} +```