[general]
name=GeoBridge
qgisMinimumVersion=3.28
description=Discover, semantically search, and preview Copernicus climate data (ERA5, CAMS, CEMS) as WMTS layers directly in QGIS, powered by the geobridge Python library.
version=0.1.17
author=GeoBridge contributors
email=iliasmachairas@outlook.com

about=GeoBridge_Plugin wraps the geobridge library to bring Copernicus Data Store (C3S/CAMS/CEMS) dataset discovery, plain-language semantic search, and time-stepped WMTS raster preview layers (with a play/pause slider) into QGIS. Enter your CDS API key once, search for a use case ("urban heat island", "PM2.5 exposure"), and add the recommended layer straight to the map. A later phase adds GeoTIFF export via ARCO Zarr or the CDS API job queue.

license=MIT
homepage=https://github.com/ECMWFCode4Earth/geobridge-qgis
repository=https://github.com/ECMWFCode4Earth/geobridge-qgis
tracker=https://github.com/ECMWFCode4Earth/geobridge-qgis/issues

hasProcessingProvider=no
changelog=0.1.17 Fix "Draw on map" for area of interest: completing a rectangle no longer depends on a second signal round-trip to bring the dialog back (it could stay hidden indefinitely), and the crosshair map tool no longer gets stuck active on the canvas (including after closing the plugin) when no previous tool existed to restore. Area-of-interest warning label is no longer clipped for long "too large" messages, and now shows a positive confirmation when the area size is fine instead of just going blank. Search tab: warns before building WMTS layers for a monthly/yearly-native dataset whose start date doesn't land on the expected calendar boundary (a frequent cause of every tile failing identically), and now shows the actual data-coverage range for the selected variable next to Start/End, warning (default: no) if the requested range falls entirely outside it. Bumped the minimum installed geobridge version to 0.1.12.
    0.1.16 README: add a Mermaid workflow diagram, a Mermaid module diagram in Architecture, and emoji markers on every section heading.
    0.1.15 README: add an Authors section (Mentors, Participants).
    0.1.14 README: add a centered logo/title header, License/QGIS-version/docs/last-commit/issues badges, and an up-to-date Search tab screenshot; refresh the same screenshot on Read the Docs.
    0.1.13 Docs: replace the large Read the Docs sidebar logo with a small icon on the home page only; favicon unchanged.
    0.1.12 Docs: close out the CDS API key walkthrough with a reminder to accept the licence and to paste only the raw token (not the .cdsapirc url:/key: lines) into this plugin's API key field; add the plugin's own icon as the Read the Docs site favicon/logo.
    0.1.11 Search tab: add a per-variable color-scale legend and a Help button linking to the documentation site; Step and Aggregation dropdowns now grey out choices finer than a dataset's native time resolution (not just flag the exact match); Time Series Y-axis now shows units; area of interest gets independent Draw-on-map/From-layer controls (polygon layers only), a source-tagged bbox display, and info icons clarifying it's a bounding box (not a polygon clip) that only scopes Export to GeoTIFF, not the WMTS preview. Browse by Variable tab: auto-fill dataset-specific required CDS fields (e.g. reference_dataset/version) that the fixed field cascade doesn't cover, fixing CDS 400 rejections on datasets like derived-near-surface-meteorological-variables; same area-of-interest controls as the Search tab. Export to GeoTIFF aggregation now offers daily/monthly/annual max and min alongside mean. Docs: add a full illustrated walkthrough for creating a CDS API key.
    0.1.10 Add a show/hide eye icon inside the API Key field (masked by default) so you can check what you typed before saving.
    0.1.9 Browse by Variable tab now lists only datasets present in geobridge's cds_snapshot.yaml catalogue, dropping ARCO-only entries with no CDS catalogue backing (142 -> 136 datasets on the current geobridge version).
    0.1.8 Add Sphinx documentation (docs/, ready for Read the Docs) covering installation and each tab, with screenshots. Docs source is excluded from the shipped plugin zip, same as build_plugin.sh and test/.
    0.1.7 Fix area-of-interest bleed-through between the Search tab and Browse-by-Variable tab: they shared a single bbox, so drawing/selecting an area in one tab silently overwrote what the other tab would export/download. Each tab now keeps its own independent area of interest.
    0.1.6 Fix "No module named 'netCDF4'" when exporting/downloading CDS-API-path datasets not in the ARCO Zarr lake (e.g. ERA5-Land via the Browse tab): netcdf4 is now installed alongside geobridge[zarr], and the dependency-availability check catches its absence instead of reporting everything as installed.
    0.1.5 Silence harmless "AttributeError: 'NoneType' object has no attribute 'write'" log spam from numpy/scikit-learn (a geobridge dependency) writing deprecation notices to sys.stderr, which QGIS leaves as None until its Python Console has been opened once.
    0.1.4 Qt6 compatibility: fully qualified 33 unscoped enum references (Qt.AlignLeft -> Qt.AlignmentFlag.AlignLeft, QMessageBox.Yes -> QMessageBox.StandardButton.Yes, etc.) across timeseries_task.py, export_task.py, ts_plot_widget.py, browse_tab.py, geobridge_plugin_dialog.py.
    0.1.3 Stopped shipping .gitignore in the release zip — a hidden file inside the plugin tripped the plugin repo's suspicious-file scan.
    0.1.2 Stopped shipping build_plugin.sh in the release zip — a .sh file inside the plugin tripped the plugin repo's suspicious-file-type scan.
    0.1.1 Security-scan fixes: narrowed broad except/pass blocks flagged by Bandit, renamed a settings-key constant that false-positived as a hardcoded secret, annotated the one legitimate subprocess call, and stopped shipping the test/ folder in the release zip.
    0.1.0 First release: API key tab, semantic search tab, WMTS time-slider viewer (ERA5/CAMS/CEMS via ECMWF WMTS).

tags=copernicus,climate,era5,cams,cems,wmts,raster,web,api,geobridge,ecmwf,c3s

category=Web
icon=icon.png
experimental=True
deprecated=False
server=False
