diff --git a/.github/runners/Dockerfile.llm-doc-annotator b/.github/runners/Dockerfile.llm-doc-annotator new file mode 100644 index 00000000..d6916738 --- /dev/null +++ b/.github/runners/Dockerfile.llm-doc-annotator @@ -0,0 +1,19 @@ +FROM python:3.11-slim + +# Set working directory +WORKDIR /app + +# Install required system packages +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + build-essential \ + curl \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Install Python dependencies +RUN pip install --no-cache-dir \ + google-generativeai==0.8.5 \ + tiktoken==0.9.0 \ + PyYAML==6.0.2 \ + json5 \ No newline at end of file diff --git a/.github/runners/Dockerfile.quarto-doc-builder b/.github/runners/Dockerfile.quarto-doc-builder new file mode 100644 index 00000000..07b2b514 --- /dev/null +++ b/.github/runners/Dockerfile.quarto-doc-builder @@ -0,0 +1,55 @@ +FROM debian:bookworm-slim + +ENV DEBIAN_FRONTEND=noninteractive + +# Install system dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + wget \ + curl \ + sudo \ + git \ + bash \ + rsync \ + ca-certificates \ + python3 \ + python3-pip \ + fonts-dejavu \ + coreutils \ + procps \ + chromium \ + libreoffice-core \ + libreoffice-writer \ + libreoffice-java-common \ + default-jre-headless + + +# Install Quarto CLI +RUN arch=$(dpkg --print-architecture) && \ + case "$arch" in \ + amd64) deb=quarto-1.7.30-linux-amd64.deb ;; \ + arm64) deb=quarto-1.7.30-linux-arm64.deb ;; \ + *) echo "Unsupported architecture: $arch" && exit 1 ;; \ + esac && \ + wget https://github.com/quarto-dev/quarto-cli/releases/download/v1.7.30/$deb && \ + dpkg -i $deb && \ + rm $deb + +# Install Node.js (for GitHub Actions written in Node) +RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \ + apt-get install -y nodejs + +# Clean up apt, pip, Python, and docs +RUN apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ + python3 -m pip cache purge && \ + find /usr/local/lib/python3.*/ -name '__pycache__' -exec rm -r {} + && \ + find /usr/local/lib/python3.*/ -name '*.pyc' -delete && \ + rm -rf /root/.cache/pip /root/.cache/fontconfig && \ + rm -rf $HF_HOME/hub/tmp-* $HF_HOME/hub/*.lock $HF_HOME/hub/models--*/blobs &&\ + rm -rf /usr/share/doc /usr/share/man /usr/share/locale /var/cache/* /tmp/* /var/tmp/* + + +# Entrypoint script +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] diff --git a/.github/scripts/generate_intros_and_keywords.py b/.github/scripts/generate_intros_and_keywords.py index c7546af1..aa04a7a3 100644 --- a/.github/scripts/generate_intros_and_keywords.py +++ b/.github/scripts/generate_intros_and_keywords.py @@ -1,13 +1,14 @@ from pathlib import Path import json -import time import re import google.generativeai as genai import tiktoken import yaml -from io import StringIO import os from pathlib import Path +import sys +import json5 +import hashlib # Configuration API_KEY = os.getenv("GEMINI_API_KEY") @@ -18,13 +19,18 @@ SCRIPT_DIR = Path(__file__).resolve().parent INPUT_DIR = (SCRIPT_DIR / "../../DOCS").resolve() +ROOT_DIR = (SCRIPT_DIR / "../../").resolve() +CACHE_DIR = (SCRIPT_DIR / "../../.llm_cache").resolve() +CACHE_DIR.mkdir(exist_ok=True) +BLACKLISTED_DIRS = {"templates", "includes", "theme"} -PROMPT = """You are an AI assistant helping to enrich a Quarto Markdown (.qmd) technical document prepared for the European Environment Agency (EEA). +PROMPT = """You are an AI assistant helping to enrich technical documents for the Copernicus Land Monitoring Service (CLMS). Your tasks: -1. Read and understand the entire attached document. +1. Read and understand the entire attached document. Ignore yml metadata and focus on the main content. 2. Generate a professional, engaging **Introduction** (max 1 paragraph) that clearly explains the document’s purpose, scope, and technical focus. 3. Extract exactly 10 **precise and conceptually meaningful keywords or key phrases** that reflect the core scientific or technical content of the document. +4. Use British English spelling and terminology. Keyword guidance: - Do **not** use general terms like \"Urban Atlas\", \"metadata\", \"documentation\", \"nomenclature\", or \"report\". @@ -38,6 +44,8 @@ \"introduction\": \"...\", \"keywords\": [\"keyword1\", \"keyword2\", ..., \"keyword10\"] } + +Avoid trailing commas in the JSON output. """ # Setup Gemini @@ -48,15 +56,15 @@ # Function to update YAML frontmatter using PyYAML -def update_yaml_header(content: str, description: str, keywords_list: list): - lines = content.splitlines() +def update_qmd_file(doc_path, description: str, keywords_list: list): + lines = doc_path.read_text(encoding="utf-8").splitlines() if lines[0].strip() != "---": - return content + return try: end_idx = lines[1:].index("---") + 1 except ValueError: - return content + return yaml_block = "\n".join(lines[1:end_idx]) yaml_data = yaml.safe_load(yaml_block) or {} @@ -65,16 +73,17 @@ def update_yaml_header(content: str, description: str, keywords_list: list): new_yaml_block = yaml.dump(yaml_data, sort_keys=False, allow_unicode=True).strip() new_lines = ["---"] + new_yaml_block.splitlines() + ["---"] + lines[end_idx + 1 :] - return "\n".join(new_lines) + + doc_path.write_text("\n".join(new_lines), encoding="utf-8") # Function to process one document with Gemini def process_document_with_llm(doc_path: Path): - print("Processing ", doc_path) global total_tokens_sent file_contents = doc_path.read_text(encoding="utf-8") input_tokens = len(encoding.encode(file_contents)) + print(f"[LLM] Processing: {doc_path} ({input_tokens} input tokens)") if total_tokens_sent + input_tokens > TOKEN_LIMIT_PER_MINUTE: print( f"[SKIPPED] {doc_path} would exceed token budget. Estimated at {input_tokens} tokens." @@ -106,27 +115,71 @@ def process_document_with_llm(doc_path: Path): raw_text = re.sub(r"\s*```$", "", raw_text) try: - parsed_output = json.loads(raw_text) - introduction = parsed_output["introduction"] - keywords_list = parsed_output["keywords"] - keywords = ", ".join(keywords_list) + parsed_output = json5.loads(raw_text) + return { + "introduction": parsed_output["introduction"], + "keywords": parsed_output["keywords"], + } except (json.JSONDecodeError, KeyError) as e: print(f"[ERROR] Invalid response for {doc_path}:", raw_text) - return + return None - updated_content = update_yaml_header(file_contents, introduction, keywords_list) - output_file = doc_path.with_name(doc_path.stem + ".qmd") - output_file.write_text(updated_content, encoding="utf-8") - print("Estimated input tokens:", input_tokens) +# Function to read paths of modified documents (.qmd) from a file. The file is provided by github actions as an input. +def read_paths_from_filename(): + input_file = sys.argv[1] + try: + with open(input_file, "r") as f: + return [line.strip() for line in f if line.strip()] + except FileNotFoundError: + raise FileNotFoundError(f"File not found: {input_file}") + except Exception as e: + raise RuntimeError(f"Error reading file: {e}") -# Process all .qmd files -BLACKLISTED_DIRS = {"templates", "includes", "theme"} +# Cache-related functions +def file_hash(path): + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def get_cache_path(qmd_path): + safe_path = "__".join(qmd_path.parts) + return CACHE_DIR / f"{safe_path}.json" + + +def load_cached_result(cache_path): + if cache_path.exists(): + with cache_path.open() as f: + return json.load(f) + return {} + + +def save_cached_result(cache_path, data): + with cache_path.open("w") as f: + json.dump(data, f, indent=2) + + +if __name__ == "__main__": + modified_paths = set(Path(p) for p in read_paths_from_filename()) + + for full_doc_path in INPUT_DIR.rglob("*.qmd"): + doc_path = full_doc_path.relative_to(ROOT_DIR) + if any(part in BLACKLISTED_DIRS for part in doc_path.parts): + continue + + cache_path = get_cache_path(doc_path) + current_hash = file_hash(doc_path) + cache = load_cached_result(cache_path) + + if doc_path in modified_paths or cache.get("hash") != current_hash: + result = process_document_with_llm(doc_path) + cache = { + "hash": current_hash, + "intro": result["introduction"], + "keywords": result["keywords"], + } + save_cached_result(cache_path, cache) -for doc_path in INPUT_DIR.rglob("*.qmd"): - if any(part in BLACKLISTED_DIRS for part in doc_path.parts): - continue - process_document_with_llm(doc_path) + update_qmd_file(doc_path, cache["intro"], cache["keywords"]) -print("Total tokens sent:", total_tokens_sent) + print("Total tokens sent:", total_tokens_sent) diff --git a/.github/scripts/generate_keywords.py b/.github/scripts/generate_keywords.py deleted file mode 100644 index 42ed2d11..00000000 --- a/.github/scripts/generate_keywords.py +++ /dev/null @@ -1,75 +0,0 @@ -import yaml -import re -import glob -from pathlib import Path -from keybert import KeyBERT -from io import StringIO -from ruamel.yaml import YAML -from ruamel.yaml.comments import CommentedSeq -from ruamel.yaml.scalarstring import DoubleQuotedScalarString - - -QUARTO_CONFIG = "../../_quarto.yaml" - -kw_model = KeyBERT("paraphrase-mpnet-base-v2") - - -def get_render_files(quarto_yml_path=QUARTO_CONFIG): - with open(quarto_yml_path, "r") as f: - config = yaml.safe_load(f) - - render_list = config.get("project", {}).get("render", []) - matched_files = [] - - for pattern in render_list: - matched = glob.glob(pattern, recursive=True) - matched_files.extend([Path(f) for f in matched if f.endswith(".qmd")]) - - # Exclude files named 'index.qmd' - return [f for f in matched_files if f.name.lower() != "index.qmd"] - - -def inject_keywords(file_path: Path): - with open(file_path, "r", encoding="utf-8") as f: - content = f.read() - - parts = re.split(r"^---\s*$", content, maxsplit=2, flags=re.MULTILINE) - if len(parts) < 3: - return - - _, yaml_block, body = parts - - yaml = YAML() - yaml.preserve_quotes = True - yaml_data = yaml.load(StringIO(yaml_block)) - - keywords = kw_model.extract_keywords( - body, - keyphrase_ngram_range=(1, 2), - stop_words="english", - use_mmr=True, - diversity=0.2, - top_n=10, - ) - - # Update keywords field - keywords_list = CommentedSeq([DoubleQuotedScalarString(kw) for kw, _ in keywords]) - keywords_list.fa.set_flow_style() - yaml_data["keywords"] = keywords_list - - # Reconstruct YAML as string - yaml_out = StringIO() - yaml.dump(yaml_data, yaml_out) - final_yaml = yaml_out.getvalue().strip() - - # Combine back - updated_content = f"---\n{final_yaml}\n---\n{body}" - - with open(file_path, "w", encoding="utf-8") as f: - f.write(updated_content) - - -if __name__ == "__main__": - files = get_render_files() - for file in files: - inject_keywords(file) diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index bc65abce..044bb6a1 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -19,7 +19,40 @@ jobs: - name: Checkout code uses: actions/checkout@v4 with: - fetch-depth: 0 + fetch-depth: 2 + + - name: Mark repo as safe for Git + run: git config --global --add safe.directory "$GITHUB_WORKSPACE" + + - name: Show commit history + run: git log --oneline -n 5 + + - name: Get changed .qmd files on current branch + run: | + (git diff --name-only HEAD^ HEAD | grep -E '\.qmd$' || true) > modified_docs_list.txt + echo "Modified .qmd files:" + cat modified_docs_list.txt + + - name: Generate intros and keywords + uses: addnab/docker-run-action@v3 + with: + image: mckeea/llm-doc-annotator:latest + options: -e GEMINI_API_KEY=${{ secrets.GEMINI_API_KEY }} -v ${{ github.workspace }}:/app + run: python .github/scripts/generate_intros_and_keywords.py modified_docs_list.txt + + - name: Commit updated LLM cache + run: | + git config user.name "GitHub Actions" + git config user.email "actions@github.com" + + git add .llm_cache + + if git diff --cached --quiet; then + echo "No changes to commit." + else + git commit -m "Update LLM cache [skip ci]" + git push origin HEAD + fi - name: Generate intros and keywords uses: addnab/docker-run-action@v3 diff --git a/.llm_cache/DOCS__guidelines__IT_Architecture_Principles_and_Implementation_Guidelines.qmd.json b/.llm_cache/DOCS__guidelines__IT_Architecture_Principles_and_Implementation_Guidelines.qmd.json new file mode 100644 index 00000000..03d80932 --- /dev/null +++ b/.llm_cache/DOCS__guidelines__IT_Architecture_Principles_and_Implementation_Guidelines.qmd.json @@ -0,0 +1,16 @@ +{ + "hash": "6c2405be4e8491221a1444f66040b7dfa982e079673ff790b6d64a756a545499", + "intro": "This document outlines the IT architecture principles and implementation guidelines for the Copernicus Land Monitoring Service (CLMS), managed by the European Environment Agency (EEA). It establishes a framework for developing consistent, scalable, and secure IT solutions within the CLMS programme. Emphasising key aspects like modularity, reproducibility, transparency, maintainability, observability, security and resilience, these guidelines ensure that all IT solutions are coherent, adaptable, and efficiently operated, contributing to the overarching goals of the CLMS.", + "keywords": [ + "IT solution reproducibility", + "REST API service", + "Continuous Integration and Continuous Deployment", + "Client specific software modularity", + "Infrastructure-as-a-code", + "Role-based access control", + "Disaster recovery plan", + "IT solution cloud agnosticism", + "Source code inline documentation", + "Automated metric monitoring" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__guidelines__editor-manual.qmd.json b/.llm_cache/DOCS__guidelines__editor-manual.qmd.json new file mode 100644 index 00000000..9cd120fd --- /dev/null +++ b/.llm_cache/DOCS__guidelines__editor-manual.qmd.json @@ -0,0 +1,16 @@ +{ + "hash": "252bffaf11b973862ef7388d7e9829e5435decc35c56cd645624e192c0722946", + "intro": "This comprehensive guide serves as a practical resource for creating technical documentation tailored for the Copernicus Land Monitoring Service (CLMS). It focuses on leveraging Quarto, a versatile tool that simplifies the process of writing in Markdown and generating HTML and PDF outputs. The guide covers essential aspects such as Markdown syntax, document structure, template utilisation, and rendering techniques, ensuring CLMS documentation adheres to consistent formatting and style guidelines. It also outlines the review and publication workflows, equipping users with the necessary knowledge to contribute effectively to the CLMS Technical Library.", + "keywords": [ + "Quarto document rendering", + "Markdown syntax", + "Algorithm Theoretical Basis Document", + "Product User Manual", + "DOCX template customisation", + "Technical Library publication", + "Git subtree integration", + "YAML header configuration", + "Pandoc document conversion", + "Automated keyword generation" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__guidelines__technical_overview.qmd.json b/.llm_cache/DOCS__guidelines__technical_overview.qmd.json new file mode 100644 index 00000000..8c3ce0c6 --- /dev/null +++ b/.llm_cache/DOCS__guidelines__technical_overview.qmd.json @@ -0,0 +1,16 @@ +{ + "hash": "8687a7edaeeb856e2cb3a43cd46883816c6ba63163b710c005f717eb479001ac", + "intro": "This document provides a technical overview of the Quarto document management workflow implemented within the Copernicus Land Monitoring Service (CLMS) project. It details the branching strategy, automated publishing processes using GitHub Actions, and the automatic semantic version tagging system. Furthermore, it provides recommendations for optimisation of resource usage and workflow simplicity to ensure efficient content management and deployment.", + "keywords": [ + "Quarto document rendering", + "GitHub Actions automation", + "Semantic version tagging", + "Branching strategy", + "Continuous integration/continuous deployment (CI/CD)", + "LibreOffice DOCX to PDF conversion", + "GitHub Pages deployment", + "Automated workflow orchestration", + "Resource optimisation", + "Shared test environment" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__guidelines__user_guidelines.qmd.json b/.llm_cache/DOCS__guidelines__user_guidelines.qmd.json new file mode 100644 index 00000000..6df7ef7a --- /dev/null +++ b/.llm_cache/DOCS__guidelines__user_guidelines.qmd.json @@ -0,0 +1,16 @@ +{ + "hash": "68f9ce15e5b0e4ef1190ee0df7866fdf5b3b8199450f259c390363789ec62e1d", + "intro": "This user guide outlines the workflow for contributing to and publishing documents within the Copernicus Land Monitoring Service (CLMS) documentation repository, focusing on the technical steps involved in creating, editing, reviewing, and deploying content using Git, GitHub, and GitHub Pages. It provides instructions for managing feature branches, creating pull requests, utilising suggested editors, and version control, ensuring a consistent and collaborative documentation process.", + "keywords": [ + "GitHub Pages deployment", + "Git feature branching", + "Pull request workflow", + "Document version control", + "Quarto document editing", + "Test environment publishing", + "Main branch merging", + "Code commit process", + "Repository tagging", + "Version reversion" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__products__N2K_Product_User_Manual.qmd.json b/.llm_cache/DOCS__products__N2K_Product_User_Manual.qmd.json new file mode 100644 index 00000000..3be791a4 --- /dev/null +++ b/.llm_cache/DOCS__products__N2K_Product_User_Manual.qmd.json @@ -0,0 +1,16 @@ +{ + "hash": "8157f13b25b73565e3f8781d4acd1573f3e4ffd002f16930d621126bf0e6b427", + "intro": "This document serves as the Product User Manual (PUM) for the Copernicus Land Monitoring Service (CLMS) N2K product. The N2K product provides detailed land cover and land use (LC/LU) data for grassland-rich Natura 2000 sites across Europe, specifically for the reference years 2006, 2012, and 2018. It aims to support the monitoring and assessment of habitat conservation status by offering high-resolution satellite-based status and change maps, all classified according to a harmonised nomenclature.", + "keywords": [ + "Natura 2000 sites", + "Land Cover / Land Use mapping", + "Grassland habitat types", + "Very High Resolution imagery", + "Minimum Mapping Unit", + "Habitat conservation status", + "Land Cover Change Groups", + "Thematic accuracy assessment", + "ETRS89 Lambert Azimuthal Equal Area", + "Mapping and Assessment of Ecosystems and their Services (MAES)" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__products__Riparian_Zones_Nomenclature_Guideline.qmd.json b/.llm_cache/DOCS__products__Riparian_Zones_Nomenclature_Guideline.qmd.json new file mode 100644 index 00000000..2023a473 --- /dev/null +++ b/.llm_cache/DOCS__products__Riparian_Zones_Nomenclature_Guideline.qmd.json @@ -0,0 +1,16 @@ +{ + "hash": "460387395e5c89804a5d1237afd1fe76ff7b34fc7ee1b01b051dbe0a858a219d", + "intro": "This document serves as a comprehensive nomenclature guideline for the Copernicus Land Monitoring Service\u2019s Riparian Zones (RZ) product, a key component of the Priority Area Monitoring programme. It provides detailed Land Cover/Land Use (LC/LU) class descriptions, elucidating their geographic characteristics, appropriate input datasets, and interpretation methodologies. The nomenclature, revised in 2017 and 2020, aims to harmonise local component products while meeting specific user requirements, encompassing 55 thematic classes at a 1:10,000 equivalent scale.", + "keywords": [ + "Riparian Zones", + "Land Cover/Land Use classification", + "MAES typology of ecosystems", + "Very-high resolution satellite imagery", + "Semi-automatic LC/LU classification", + "Minimum Mapping Unit exceptions", + "Object delineation rules", + "Priority rules", + "HR Layers Imperviousness Degree", + "Strahler river levels" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__products__Urban_Altlas_Building_Block_Height_Model_2012_PUM.qmd.json b/.llm_cache/DOCS__products__Urban_Altlas_Building_Block_Height_Model_2012_PUM.qmd.json new file mode 100644 index 00000000..82d5001e --- /dev/null +++ b/.llm_cache/DOCS__products__Urban_Altlas_Building_Block_Height_Model_2012_PUM.qmd.json @@ -0,0 +1,16 @@ +{ + "hash": "8960a566dbf83ba7fe3464e7925f50f7bc760e939d37df8d2361200bbede655f", + "intro": "This Product User Manual (PUM) serves as a comprehensive guide for users of the Copernicus Land Monitoring Service (CLMS) Urban Atlas Building Block Height Model (UA BBHM). It provides detailed information regarding the product\u2019s scope, methodology, and potential applications, enabling users to effectively utilise harmonised building height data across 870 cities and urban centres within the EEA38 region. The manual elucidates the dataset's characteristics, quality assessment procedures, and illustrative use cases for urban analysis and policy development, facilitating informed decision-making and research.", + "keywords": [ + "Building Block Height Model", + "Functional Urban Area", + "Digital Surface Model", + "Digital Terrain Model", + "Very High-Resolution Imagery", + "False Stereo Pair Images", + "Urban Heat Island Effect", + "Building Footprints Extraction", + "Area of Interest Refinement", + "Quality Control Assessment" + ] +} \ No newline at end of file diff --git a/.llm_cache/DOCS__products__Urban_Atlas_Mapping_Guide_V6.3.qmd.json b/.llm_cache/DOCS__products__Urban_Atlas_Mapping_Guide_V6.3.qmd.json new file mode 100644 index 00000000..d73244a9 --- /dev/null +++ b/.llm_cache/DOCS__products__Urban_Atlas_Mapping_Guide_V6.3.qmd.json @@ -0,0 +1,16 @@ +{ + "hash": "fdb102501f48773a9e6c7f982a822e5ed5623f7d17be60c68866b34ed05d6906", + "intro": "This Product User Manual (PUM) serves as a comprehensive guide for service providers involved in generating standardised land use and land cover (LU/LC) maps within the Copernicus Urban Atlas programme. It details the methodology for mapping and updating the Urban Atlas for the reference years 2012 and 2018, encompassing over 800 Functional Urban Areas (FUAs) across Europe and neighbouring countries. The manual provides specifications for data formats, nomenclature, mapping guidelines, and quality control procedures to ensure congruent, comparable, and high-quality Urban Atlas products.", + "keywords": [ + "Functional Urban Area (FUA)", + "Land Use/Land Cover (LU/LC)", + "Minimum Mapping Unit (MMU)", + "Imperviousness Degree (IMD)", + "Street Tree Layer (STL)", + "Digital Height Model (DHM)", + "Change detection methodology", + "Geometric adaptation", + "Thematic accuracy assessment", + "Reference year data" + ] +} \ No newline at end of file diff --git a/CLMS_documents.Rproj b/CLMS_documents.Rproj new file mode 100644 index 00000000..b25d9fe3 --- /dev/null +++ b/CLMS_documents.Rproj @@ -0,0 +1,14 @@ +Version: 1.0 +ProjectId: 066b6385-1b05-40b4-b491-b65eafde0c13 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX diff --git a/DOCS/guidelines/editor-manual.qmd b/DOCS/guidelines/editor-manual.qmd index 3b8bb42a..7b1b2c02 100644 --- a/DOCS/guidelines/editor-manual.qmd +++ b/DOCS/guidelines/editor-manual.qmd @@ -1167,10 +1167,14 @@ After running this, your project will include a `DOCS/` directory containing all ### Step 3: Set Up Git Shortcuts -To simplify documentation management, run the setup script: +To simplify documentation management, run the appropriate setup script based on your operating system: ```bash -./DOCS/_meta/scripts/setup-docs-aliases.sh +# On macOS or Linux: +./DOCS/_meta/scripts/linux/setup-docs-aliases.sh + +# On Windows (PowerShell): +./DOCS/_meta/scripts/win/setup-docs-aliases.ps1 ``` This will configure convenient Git aliases for working with the documentation. diff --git a/DOCS/guidelines/technical_overview.qmd b/DOCS/guidelines/technical_overview.qmd deleted file mode 100644 index e11629cb..00000000 --- a/DOCS/guidelines/technical_overview.qmd +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: "Technical Implementation Overview: Quarto Docs Workflow with GitHub Actions" ---- - -## Overview - -This document covers the technical details and strategy used to manage Quarto (.qmd) documents within our project. It describes the workflow, publishing steps, automatic version tagging, and includes optimization tips. - -## Branches & Workflow - -We have three main branches: - -- **main:** Stable, production-ready content. -- **test:** A shared environment for testing and reviewing changes. -- **Feature branches:** Individual branches based on `test` for user-specific changes. - -### Branching Strategy - -- Users create feature branches from the `test` branch for independent work. -- Changes are reviewed and merged first into `test`, then after approval, merged into `main`. - -## Publishing via GitHub Actions - -### Implementation Details - -GitHub Actions automates the workflow: - -- **Rendering:** Documents are rendered from `.qmd` files to HTML and DOCX format using Quarto. -- **Conversion:** LibreOffice macros automatically convert DOCX files into PDFs. -- **Deployment:** -Rendered PDFs and HTML files are deployed to github-pages. The `main` and `test` branches each have their own GitHub Pages environments—the official pages (from `main`) and a separate environment for testing (`test`). - -## Automatic Tagging (Versioning) - -### How It's Done - -Automatic tagging occurs on each merge to the `main` branch. The GitHub Action (`mathieudutour/github-tag-action`) creates semantic tags automatically. - -Configuration: - -```yaml -- name: Auto Tagging - uses: mathieudutour/github-tag-action@v6.2 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} -``` - -### Benefits - -- Removes the need for manual tagging. -- Provides clear, consistent versioning. -- Makes reverting or referencing historical versions straightforward. - -## Optimization Recommendations - -### Resource Optimization - -- Maintain one common test environment rather than multiple per-branch environments to minimize complexity and costs. - -### Workflow Simplicity - -- Simple branching strategy (just `main`, `test`, and feature branches) to avoid confusion and ease maintenance. diff --git a/DOCS/guidelines/user_guidelines.qmd b/DOCS/guidelines/user_guidelines.qmd deleted file mode 100644 index 94cdded2..00000000 --- a/DOCS/guidelines/user_guidelines.qmd +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "User Guide: Working with Documents and Publishing to GitHub Pages" ---- - -## Step 1: Create Your Feature Branch - -You can do this either through GitHub's website or using Git commands in your terminal: - -### Using GitHub (Easy Option): -1. Open GitHub and navigate to your repository. -2. Select the **test** branch from the dropdown menu at the top left. -3. Click the button labeled **New branch** and name it clearly, for example, `feature/new-document`. - -### Using Command Line (Recommended for frequent users): -- Open your terminal or command prompt. -- Navigate to your local repository using: - -```bash -cd path/to/your/repository -``` - -- Make sure your repository is updated: - -```bash -git checkout test -git pull -``` - -- Create and switch to your new feature branch: - -```bash -git checkout -b feature/new-document -``` - -## Working on Documents - -### Suggested Editors: -- **RStudio:** Easy integration with Quarto and Git. -- **Visual Studio Code:** Great support for Quarto documents. -- **Any plain text editor** you prefer. - -### Create or Edit Documents: -- Add new documents by creating `.qmd` files. -- Edit existing `.qmd` files directly in your chosen editor. - -### Commit Your Changes (Command Line): -- Stage your changes: - -```bash -git add . -``` - -- Commit your changes with a clear message: - -```bash -git commit -m "Added introduction to the Privacy Guide" -``` - -- Push your changes to GitHub: - -```bash -git push origin feature/new-document -``` - -## Publishing for Review (Test Environment) - -### Create a Pull Request (PR): -1. Go to your feature branch in GitHub. -2. Click on **Compare & pull request**. -3. Set the pull request destination to the `test` branch. -4. Provide a simple description of your changes and click **Create pull request**. - -### Review and Publish: -- Once your pull request is reviewed and approved by the team, it will be merged into the `test` branch. -- The merged content will automatically be published to the **test GitHub Pages**. -- View and review your documents by visiting the test pages link provided by your team. - -## Final Publishing to Main Environment - -After reviewing and ensuring your documents are correct: - -### Merge to Main: -1. Create another pull request from the `test` branch to the `main` branch. -2. Clearly mention that the content is ready for final publishing. - -### Final Review and Approval: -- Your team reviews and approves the pull request. -- Once merged, the documents are automatically published to the main GitHub Pages for everyone to access. - -## Versioning - -Every time new changes are published to the main branch, a version number is automatically assigned. You don't need to do anything—this happens behind the scenes to help track document versions clearly. - -## How to Revert to a Previous Version - -If you need to go back to an earlier version: - -1. Go to your repository on GitHub and click on **Tags**. -2. Find the version (tag) you want to revert to. -3. To revert locally using command line: - -```bash -git checkout tags/v1.0 -``` - -Replace `v1.0` with your desired version. - -4. If you want to make the reverted version the new main version again, create a new feature branch from this tag and follow the usual pull request workflow described above. - ---- diff --git a/DOCS/products/N2K_Product_User_Manual.qmd b/DOCS/products/N2K_Product_User_Manual.qmd index d17f7b2a..bdb0b760 100644 --- a/DOCS/products/N2K_Product_User_Manual.qmd +++ b/DOCS/products/N2K_Product_User_Manual.qmd @@ -20,26 +20,7 @@ Denmark\ [**https://land.copernicus.eu/**](https://land.copernicus.eu/) ::: -**Consortium partners** - -- EFTAS Fernerkundung GmbH, 48155 Münster, Germany (Lead) - -- GAF AG, Arnulfstraße 199, 80634 München, Germany - -- GeoVille Information Systems and Data Processing GmbH, Sparkassenpl. 2, 6020 Innsbruck, Austria - -**User Manual prepared by:** - -Oliver Buck (EFTAS GmbH) and Ana Sousa (EEA) - -**Disclaimer:** - -+-------------------------------------------------------------------------------------------------------------------------------+ -| © European Union, Copernicus Land Monitoring Service 2021, European Environment Agency (EEA) -| -| All Rights Reserved. No parts of this document may be photocopied, reproduced, stored in a retrieval system, or transmitted, in any form or by any means whether electronic, mechanical, or otherwise without the prior written permission of the European Environment Agency. | -+-------------------------------------------------------------------------------------------------------------------------------+ - +{{< pagebreak >}} # Executive summary diff --git a/DOCS/products/Riparian_Zones_Nomenclature_Guideline.qmd b/DOCS/products/Riparian_Zones_Nomenclature_Guideline.qmd index 5d5949b6..9d057df0 100644 --- a/DOCS/products/Riparian_Zones_Nomenclature_Guideline.qmd +++ b/DOCS/products/Riparian_Zones_Nomenclature_Guideline.qmd @@ -23,150 +23,6 @@ Denmark\ [**https://land.copernicus.eu/**](https://land.copernicus.eu/) ::: -**Contractors' Contact:** - -::: {custom-style="LeftAlign"} -GAF AG\ -Arnulfstrasse 199, 80634 Munich, Germany\ -Phone: +49 89 121528-0 Fax: +49 89 121528-79\ -E-mail: copernicus@gaf.de\ -Internet: www.gaf.de -::: - -**Disclaimer:** - -+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -|The contents of this document are the copyright of GAF and its partners. It is released by GAF on the condition that it will not be copied in whole, in sections or otherwise reproduced (whether by photographic, reprographic or any | -|other method) and that the contents thereof shall not be divulged to any other person other than of the addressed (save to the other authorised officers of their organisation having a need to know such contents, for the purpose of | -|which disclosure is made by GAF) without prior consent of GAF and its partners. | -+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - - -**Document Control Information:** - -+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **Settings** | **Value** | -+======================+============================================================================================================================================================================================+ -| Document Title: | Riparian Zones Nomenclature Guideline | -+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Document Main Authors| Maria Tamame, Alberto Lorenzo (Indra); Amelie Lindmayer (GAF) | -+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Document Co-Authors | Regine Richter, Gernot Ramminger, Wiebke Köpp (GAF); Karin Larsson, Charlotta Cristvall, Eva Ahlkrona (Metria); Carmen Martin, Tamara Risquez, Francisco Cano, Almudena Martinez (Indra) | -+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Project Owner: | Hans Dufourmont (EEA) | -+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Project Manager: | Ana Maria Ribeiro de Sousa (EEA) | -+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Document Version: | 1.5 | -+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Sensitivity: | Basic | -+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Date: | 14/12/2021 | -+----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - -**Document Approver(s) and Reviewer(s):** - -+--------------------+-----------------+--------------------+---------------+ -| **Name** | **Role** | **Action** | **Date** | -+====================+=================+====================+===============+ -| Johannes Heymann | CPM (GAF) | Approval | 19/10/2018 | -+--------------------+-----------------+--------------------+---------------+ - -**Document History:** - -+-------------+------------+----------------+-----------------------------------------------------------------------------------------------------+ -| **Version** | **Date** | **Created by** | **Short description of changes** | -+=============+============+================+=====================================================================================================+ -| 1.5 | 14/12/2021 | EEA | Update to reflect updated class definitions. | -+-------------+------------+----------------+-----------------------------------------------------------------------------------------------------+ -| 1.4 | 19/10/2018 | GAF | Update to reflect administrative/formal changes; class definitions unchanged. | -+-------------+------------+----------------+-----------------------------------------------------------------------------------------------------+ -| 1.3 | 25/05/2018 | GAF, Indra | Harmonisation of Nomenclatures of common LC/LU classes between Lot2 (RZ) and Lot3 (N2K). | -+-------------+------------+----------------+-----------------------------------------------------------------------------------------------------+ -| 1.2 | 23/03/2018 | GAF, Indra | Update to reflect Nomenclature changes for adapting to new class definition introduced 12/06/17. | -+-------------+------------+----------------+-----------------------------------------------------------------------------------------------------+ -| 1.1 | 21/09/2015 | GAF, Indra | Final Nomenclature Guideline Version 1.1 (Copernicus Initial Operations 2011-2013. Riparian Zones). | -| | | | | -| | | Metria | | -+-------------+------------+----------------+-----------------------------------------------------------------------------------------------------+ - - -**Abbreviations & Acronyms:** - -+-----------+-------------------------------------------------------------------------------------------------------+ -| AOI | Area of Interest | -+-----------+-------------------------------------------------------------------------------------------------------+ -| CLC | CORINE Land Cover | -+-----------+-------------------------------------------------------------------------------------------------------+ -| C.C.D. | Crown Cover Density | -+-----------+-------------------------------------------------------------------------------------------------------+ -| CNES | Centre National d\'Études Spatiales (National Center for Space Studies) | -+-----------+-------------------------------------------------------------------------------------------------------+ -| DEM | Digital Elevation Model | -+-----------+-------------------------------------------------------------------------------------------------------+ -| DWH | Data Warehouse of the European Space Agency | -+-----------+-------------------------------------------------------------------------------------------------------+ -| EC | European Commission | -+-----------+-------------------------------------------------------------------------------------------------------+ -| EEA | European Environment Agency | -+-----------+-------------------------------------------------------------------------------------------------------+ -| EO | Earth Observation | -+-----------+-------------------------------------------------------------------------------------------------------+ -| ESA | European Space Agency | -+-----------+-------------------------------------------------------------------------------------------------------+ -| EU | European Union | -+-----------+-------------------------------------------------------------------------------------------------------+ -| EU-DEM | European Digital Elevation Model | -+-----------+-------------------------------------------------------------------------------------------------------+ -| EU-HYDRO | European Hydrography Layer | -+-----------+-------------------------------------------------------------------------------------------------------+ -| EUNIS | European Natural Information System | -+-----------+-------------------------------------------------------------------------------------------------------+ -| GIO | GMES Initial Operations | -+-----------+-------------------------------------------------------------------------------------------------------+ -| HR | High Resolution | -+-----------+-------------------------------------------------------------------------------------------------------+ -| HRL | High Resolution Layer | -+-----------+-------------------------------------------------------------------------------------------------------+ -| IGN | Instituto Geografico Nacional (National Geography Institute) | -+-----------+-------------------------------------------------------------------------------------------------------+ -| IR | Infra-Red | -+-----------+-------------------------------------------------------------------------------------------------------+ -| IM.D | Imperviousness Density | -+-----------+-------------------------------------------------------------------------------------------------------+ -| LC/LU | Land Cover/Land Use | -+-----------+-------------------------------------------------------------------------------------------------------+ -| LPIS | Land Parcel Identification System | -+-----------+-------------------------------------------------------------------------------------------------------+ -| LUCAS | Land Use/Cover area Frame Statistical Survey | -+-----------+-------------------------------------------------------------------------------------------------------+ -| MAES | Mapping and Assessment of Ecosystems and their Services | -+-----------+-------------------------------------------------------------------------------------------------------+ -| MMU | Minimum Mapping Unit | -+-----------+-------------------------------------------------------------------------------------------------------+ -| MMW | Minimum Mapping Width(s) | -+-----------+-------------------------------------------------------------------------------------------------------+ -| N/A | Not Applicable | -+-----------+-------------------------------------------------------------------------------------------------------+ -| NIR | Near Infra-Red | -+-----------+-------------------------------------------------------------------------------------------------------+ -| OSM | Open Street Map | -+-----------+-------------------------------------------------------------------------------------------------------+ -| RZ | Riparian Zones | -+-----------+-------------------------------------------------------------------------------------------------------+ -| SPOT | Satellite Pour l´Observation de la Terre | -+-----------+-------------------------------------------------------------------------------------------------------+ -| SIOSE | Sistema de Información sobre Ocupación del Suelo de España (Information System on Land Use-Spain) | -+-----------+-------------------------------------------------------------------------------------------------------+ -| T.C.D./TCD| Tree Cover Density | -+-----------+-------------------------------------------------------------------------------------------------------+ -| UA | Urban Atlas | -+-----------+-------------------------------------------------------------------------------------------------------+ -| VHR | Very High Resolution | -+-----------+-------------------------------------------------------------------------------------------------------+ -| WMS | Web Map Service | -+-----------+-------------------------------------------------------------------------------------------------------+ - {{< pagebreak >}} # Introduction @@ -5638,3 +5494,125 @@ During the 2018 Riparian Zones mapping some Level 4 classes have been merged to [^32]: [^33]: Bossard, M., Feranec, and J. Otahel, J. (2000): CORINE land cover technical guide -- Addendum 2000, Technical report No 40, European Environment Agency. + +{{< pagebreak >}} + +# Abbreviations & Acronyms: + ++-----------+-------------------------------------------------------------------------------------------------------+ +| AOI | Area of Interest | ++-----------+-------------------------------------------------------------------------------------------------------+ +| CLC | CORINE Land Cover | ++-----------+-------------------------------------------------------------------------------------------------------+ +| C.C.D. | Crown Cover Density | ++-----------+-------------------------------------------------------------------------------------------------------+ +| CNES | Centre National d\'Études Spatiales (National Center for Space Studies) | ++-----------+-------------------------------------------------------------------------------------------------------+ +| DEM | Digital Elevation Model | ++-----------+-------------------------------------------------------------------------------------------------------+ +| DWH | Data Warehouse of the European Space Agency | ++-----------+-------------------------------------------------------------------------------------------------------+ +| EC | European Commission | ++-----------+-------------------------------------------------------------------------------------------------------+ +| EEA | European Environment Agency | ++-----------+-------------------------------------------------------------------------------------------------------+ +| EO | Earth Observation | ++-----------+-------------------------------------------------------------------------------------------------------+ +| ESA | European Space Agency | ++-----------+-------------------------------------------------------------------------------------------------------+ +| EU | European Union | ++-----------+-------------------------------------------------------------------------------------------------------+ +| EU-DEM | European Digital Elevation Model | ++-----------+-------------------------------------------------------------------------------------------------------+ +| EU-HYDRO | European Hydrography Layer | ++-----------+-------------------------------------------------------------------------------------------------------+ +| EUNIS | European Natural Information System | ++-----------+-------------------------------------------------------------------------------------------------------+ +| GIO | GMES Initial Operations | ++-----------+-------------------------------------------------------------------------------------------------------+ +| HR | High Resolution | ++-----------+-------------------------------------------------------------------------------------------------------+ +| HRL | High Resolution Layer | ++-----------+-------------------------------------------------------------------------------------------------------+ +| IGN | Instituto Geografico Nacional (National Geography Institute) | ++-----------+-------------------------------------------------------------------------------------------------------+ +| IR | Infra-Red | ++-----------+-------------------------------------------------------------------------------------------------------+ +| IM.D | Imperviousness Density | ++-----------+-------------------------------------------------------------------------------------------------------+ +| LC/LU | Land Cover/Land Use | ++-----------+-------------------------------------------------------------------------------------------------------+ +| LPIS | Land Parcel Identification System | ++-----------+-------------------------------------------------------------------------------------------------------+ +| LUCAS | Land Use/Cover area Frame Statistical Survey | ++-----------+-------------------------------------------------------------------------------------------------------+ +| MAES | Mapping and Assessment of Ecosystems and their Services | ++-----------+-------------------------------------------------------------------------------------------------------+ +| MMU | Minimum Mapping Unit | ++-----------+-------------------------------------------------------------------------------------------------------+ +| MMW | Minimum Mapping Width(s) | ++-----------+-------------------------------------------------------------------------------------------------------+ +| N/A | Not Applicable | ++-----------+-------------------------------------------------------------------------------------------------------+ +| NIR | Near Infra-Red | ++-----------+-------------------------------------------------------------------------------------------------------+ +| OSM | Open Street Map | ++-----------+-------------------------------------------------------------------------------------------------------+ +| RZ | Riparian Zones | ++-----------+-------------------------------------------------------------------------------------------------------+ +| SPOT | Satellite Pour l´Observation de la Terre | ++-----------+-------------------------------------------------------------------------------------------------------+ +| SIOSE | Sistema de Información sobre Ocupación del Suelo de España (Information System on Land Use-Spain) | ++-----------+-------------------------------------------------------------------------------------------------------+ +| T.C.D./TCD| Tree Cover Density | ++-----------+-------------------------------------------------------------------------------------------------------+ +| UA | Urban Atlas | ++-----------+-------------------------------------------------------------------------------------------------------+ +| VHR | Very High Resolution | ++-----------+-------------------------------------------------------------------------------------------------------+ +| WMS | Web Map Service | ++-----------+-------------------------------------------------------------------------------------------------------+ + +{{< pagebreak >}} + +# Document controll information + ++----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Settings** | **Value** | ++======================+============================================================================================================================================================================================+ +| Document Title: | Riparian Zones Nomenclature Guideline | ++----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Project Owner: | Hans Dufourmont (EEA) | ++----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Project Manager: | Ana Maria Ribeiro de Sousa (EEA) | ++----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Document Version: | 1.5 | ++----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Sensitivity: | Basic | ++----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Date: | 14/12/2021 | ++----------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +**Document Approver(s) and Reviewer(s):** + ++--------------------+--------------------+---------------+ +| **Name** | **Action** | **Date** | ++====================+====================+===============+ +| Johannes Heymann | Approval | 19/10/2018 | ++--------------------+--------------------+---------------+ + +**Document History:** + ++-------------+------------+-----------------------------------------------------------------------------------------------------+ +| **Version** | **Date** | **Short description of changes** | ++=============+============+=====================================================================================================+ +| 1.5 | 14/12/2021 | Update to reflect updated class definitions. | ++-------------+------------+-----------------------------------------------------------------------------------------------------+ +| 1.4 | 19/10/2018 | Update to reflect administrative/formal changes; class definitions unchanged. | ++-------------+------------+-----------------------------------------------------------------------------------------------------+ +| 1.3 | 25/05/2018 | Harmonisation of Nomenclatures of common LC/LU classes between Lot2 (RZ) and Lot3 (N2K). | ++-------------+------------+-----------------------------------------------------------------------------------------------------+ +| 1.2 | 23/03/2018 | Update to reflect Nomenclature changes for adapting to new class definition introduced 12/06/17. | ++-------------+------------+-----------------------------------------------------------------------------------------------------+ +| 1.1 | 21/09/2015 | Final Nomenclature Guideline Version 1.1 (Copernicus Initial Operations 2011-2013. Riparian Zones). | ++-------------+------------+-----------------------------------------------------------------------------------------------------+ diff --git a/DOCS/products/Urban_Altlas_Building_Block_Height_Model_2012_PUM.qmd b/DOCS/products/Urban_Altlas_Building_Block_Height_Model_2012_PUM.qmd index 87168dfc..8b2c3050 100644 --- a/DOCS/products/Urban_Altlas_Building_Block_Height_Model_2012_PUM.qmd +++ b/DOCS/products/Urban_Altlas_Building_Block_Height_Model_2012_PUM.qmd @@ -22,78 +22,7 @@ Denmark\ [**https://land.copernicus.eu/**](https://land.copernicus.eu/) ::: -This work was carried out with funding by the European Union. - -+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -|Disclaimer: | -| | -|© European Union, Copernicus Land Monitoring Service 2022, European Environment Agency (EEA) | -| | -|All Rights Reserved. No parts of this document may be photocopied, reproduced, stored in retrieval systems, or transmitted, in any form or by any means whether electronic, mechanical, or otherwise without the prior written permission | -|of the European Environment Agency. | -+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - -**Abbreviations & acronyms** - -+-------------+---------------------------------------------------------------------+ -| AoI | Area of Interest | -+-------------+---------------------------------------------------------------------+ -| BBHM | Building Block height Model | -+-------------+---------------------------------------------------------------------+ -| BIE | Bisector Elevation Angle | -+-------------+---------------------------------------------------------------------+ -| CLMS | Copernicus Land Monitoring Service | -+-------------+---------------------------------------------------------------------+ -| CNN | Convolutional Neural Networks | -+-------------+---------------------------------------------------------------------+ -| CZ | Coastal Zones | -+-------------+---------------------------------------------------------------------+ -| DHM | Digital Height Model | -+-------------+---------------------------------------------------------------------+ -| DSM | Digital Surface Model | -+-------------+---------------------------------------------------------------------+ -| DTM | Digital Terrain Model | -+-------------+---------------------------------------------------------------------+ -| EEA | European Environment Agency | -+-------------+---------------------------------------------------------------------+ -| EEA38 | EU27, UK, EFTA, West Balkan, and Turkey | -+-------------+---------------------------------------------------------------------+ -| EFTA | Iceland, Liechtenstein, Norway and Switzerland | -+-------------+---------------------------------------------------------------------+ -| EPSG | European Petroleum Survey Group Geodesy | -+-------------+---------------------------------------------------------------------+ -| ESA | European Space Agency | -+-------------+---------------------------------------------------------------------+ -| EU27 | European Union Countries | -+-------------+---------------------------------------------------------------------+ -| FUA | Functional Urban Area | -+-------------+---------------------------------------------------------------------+ -| GDAL | Geospatial Data Abstraction Library | -+-------------+---------------------------------------------------------------------+ -| GEOSS | Global Earth Observation System of Systems | -+-------------+---------------------------------------------------------------------+ -| INSPIRE | Infrastructure for Spatial Information in Europe | -+-------------+---------------------------------------------------------------------+ -| JRC | European Commission DG Joint Research Centre | -+-------------+---------------------------------------------------------------------+ -| LC/LU | Land Cover / Land Use | -+-------------+---------------------------------------------------------------------+ -| LiDAR | Light Detection and Ranging, or Laser Imaging Detection and Ranging | -+-------------+---------------------------------------------------------------------+ -| LZW | Lempel--Ziv--Welch (universal lossless data compression algorithm) | -+-------------+---------------------------------------------------------------------+ -| N2K | Natura 2000 | -+-------------+---------------------------------------------------------------------+ -| RPC | Rational Polynomial Correspondence | -+-------------+---------------------------------------------------------------------+ -| RZ | Riparian Zones | -+-------------+---------------------------------------------------------------------+ -| SEIS | Shared Environmental Information System | -+-------------+---------------------------------------------------------------------+ -| UA | Urban Atlas | -+-------------+---------------------------------------------------------------------+ -| VHR | Very High-Resolution | -+-------------+---------------------------------------------------------------------+ +{{< pagebreak >}} # Executive summary {#executive-summary} @@ -845,6 +774,68 @@ In cases of re-dissemination of the product(s) described in this document or whe Product technical support is provided by the product custodian through Copernicus Land Monitoring Service helpdesk at [copernicus\@eea.europa.eu](mailto:copernicus@eea.europa.eu){.email}. Product technical support doesn't include software specific user support or general GIS or remote sensing support. +# Abbreviations & acronyms + ++-------------+---------------------------------------------------------------------+ +| AoI | Area of Interest | ++-------------+---------------------------------------------------------------------+ +| BBHM | Building Block height Model | ++-------------+---------------------------------------------------------------------+ +| BIE | Bisector Elevation Angle | ++-------------+---------------------------------------------------------------------+ +| CLMS | Copernicus Land Monitoring Service | ++-------------+---------------------------------------------------------------------+ +| CNN | Convolutional Neural Networks | ++-------------+---------------------------------------------------------------------+ +| CZ | Coastal Zones | ++-------------+---------------------------------------------------------------------+ +| DHM | Digital Height Model | ++-------------+---------------------------------------------------------------------+ +| DSM | Digital Surface Model | ++-------------+---------------------------------------------------------------------+ +| DTM | Digital Terrain Model | ++-------------+---------------------------------------------------------------------+ +| EEA | European Environment Agency | ++-------------+---------------------------------------------------------------------+ +| EEA38 | EU27, UK, EFTA, West Balkan, and Turkey | ++-------------+---------------------------------------------------------------------+ +| EFTA | Iceland, Liechtenstein, Norway and Switzerland | ++-------------+---------------------------------------------------------------------+ +| EPSG | European Petroleum Survey Group Geodesy | ++-------------+---------------------------------------------------------------------+ +| ESA | European Space Agency | ++-------------+---------------------------------------------------------------------+ +| EU27 | European Union Countries | ++-------------+---------------------------------------------------------------------+ +| FUA | Functional Urban Area | ++-------------+---------------------------------------------------------------------+ +| GDAL | Geospatial Data Abstraction Library | ++-------------+---------------------------------------------------------------------+ +| GEOSS | Global Earth Observation System of Systems | ++-------------+---------------------------------------------------------------------+ +| INSPIRE | Infrastructure for Spatial Information in Europe | ++-------------+---------------------------------------------------------------------+ +| JRC | European Commission DG Joint Research Centre | ++-------------+---------------------------------------------------------------------+ +| LC/LU | Land Cover / Land Use | ++-------------+---------------------------------------------------------------------+ +| LiDAR | Light Detection and Ranging, or Laser Imaging Detection and Ranging | ++-------------+---------------------------------------------------------------------+ +| LZW | Lempel--Ziv--Welch (universal lossless data compression algorithm) | ++-------------+---------------------------------------------------------------------+ +| N2K | Natura 2000 | ++-------------+---------------------------------------------------------------------+ +| RPC | Rational Polynomial Correspondence | ++-------------+---------------------------------------------------------------------+ +| RZ | Riparian Zones | ++-------------+---------------------------------------------------------------------+ +| SEIS | Shared Environmental Information System | ++-------------+---------------------------------------------------------------------+ +| UA | Urban Atlas | ++-------------+---------------------------------------------------------------------+ +| VHR | Very High-Resolution | ++-------------+---------------------------------------------------------------------+ + # References Alexander, C. (2021). Influence of the proportion, height and proximity of vegetation and buildings on urban land surface temperature. *International Journal of Applied Earth Observation and Geoinformation, 95*, 102265. doi:https://doi.org/10.1016/j.jag.2020.102265 diff --git a/DOCS/products/Urban_Atlas_Mapping_Guide_V6.3.qmd b/DOCS/products/Urban_Atlas_Mapping_Guide_V6.3.qmd index 2c4be742..c34608b5 100644 --- a/DOCS/products/Urban_Atlas_Mapping_Guide_V6.3.qmd +++ b/DOCS/products/Urban_Atlas_Mapping_Guide_V6.3.qmd @@ -19,16 +19,7 @@ Denmark\ [**https://land.copernicus.eu/**](https://land.copernicus.eu/) ::: -**Disclaimer:** - -+--------------------------------------------------------------------+ -| **Source of photos:** | -| © Spot Image S.A, provided under EC/ESA GSC-DA; includes material | -| © CNES, Distribution Spot Image S.A., all rights reserved | -| © European Union, 2020 | -| | -| Reproduction is authorized provided the source is acknowledged. | -+--------------------------------------------------------------------+ +{{< pagebreak >}} # Executive summary diff --git a/_quarto-index.yml b/_quarto-index.yml index 1747da11..a727ca8b 100644 --- a/_quarto-index.yml +++ b/_quarto-index.yml @@ -8,7 +8,7 @@ resources: website: title: "Technical Library" - site-url: "https://eea.github.io/CLMS_documents" + site-url: "https://eea.github.io/CLMS_documents/main" page-navigation: true back-to-top-navigation: true bread-crumbs: true diff --git a/_quarto.yml b/_quarto.yml index 5c2d5739..1882d663 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -13,7 +13,7 @@ resources: website: title: "Technical Library" - site-url: "https://eea.github.io/CLMS_documents" + site-url: "https://eea.github.io/CLMS_documents/main" page-navigation: true back-to-top-navigation: true bread-crumbs: true