[general]
name=Waveshed
qgisMinimumVersion=3.28
qgisMaximumVersion=4.99
version=0.4.2
author=Gian-Andrea Heinrich
email=info@waveshed.io
description=RF propagation and viewshed/LOS analysis (coverage, point-to-point) powered by the Aether GPU engine.
about=Waveshed computes viewsheds, radio coverage and point-to-point links in QGIS. What can be seen from this hilltop, and from where is this mast visible? How high must an aircraft fly to stay in sight of the site? How much signal reaches which valley? Does the link between two towers hold? Visibility is computed as a line-of-sight viewshed and as an LOS Floor, the lowest altitude at which each place first sees your site. Radio coverage uses the ITM (Longley-Rice) propagation model. Point-to-point analysis gives you the terrain profile and the link budget of a path. All of it runs on the Aether GPU engine, so a 300 km ITM coverage at 30 m or a 2 m viewshed over a whole region finishes in seconds. Results come as rasters that you style in QGIS and export as GeoTIFF. The built-in Map Converter prepares terrain from your own GeoTIFFs, from national elevation models such as swisstopo or from free global elevation tiles, and adds buildings from OpenStreetMap. The engine is a separate download for Windows x64, Linux x64 and macOS arm64. The plugin installs it with one click from https://waveshed.io, where you also get a free key for non-commercial use. Commercial licences are available on request. Results are model predictions, not measurements, so verify them before you rely on them.
tracker=https://github.com/gian1312/waveshed-qgis/issues
repository=https://github.com/gian1312/waveshed-qgis
homepage=https://waveshed.io
license=GPL-2.0-or-later
tags=rf,propagation,radio,coverage,p2p,gpu,terrain,ITM,LOS,line of sight,viewshed,waveshed
category=Analysis
icon=resources/icon.png
changelog=0.4.2
    - Needs Aether engine 0.4.3 or newer; the Map Converter's seam filter and
      fast building preparation need the converter of engine 0.5.0.
    - New plugin description for the plugin repositories.
    0.4.1
    - Needs Aether engine 0.4.3 or newer; the Map Converter's seam filter and
      fast building preparation need the converter of engine 0.5.0.
    - Code hygiene for the plugins.qgis.org security scan; deprecated
      supportsQt6 flag removed (QGIS 4 support comes from qgisMaximumVersion).
    0.4.0
    - Map Converter: XYZ terrain downloads through one shared pool in 1°
      bands with two lanes, a repair pass for failed tiles, local files
      converted while the download runs; OpenFreeMap buildings fetched beside
      the terrain (building prep under a second instead of ~25 s); background
      size estimate, "Auto" resolutions (finest source + 30 m / 90 m rings),
      tiles outside every layer skipped, Terrarium seam at 10°E repaired;
      folder index for GeoTIFF folders, whole-run progress bar, shared
      extents, add folder / all layers.
    - Site Analysis and Point-to-Point: "Folder…" picks a terrain folder;
      engine diagnostics go to a daily log file in the terrain cache, the QGIS
      log keeps the key lines; remembered output folders; per-band buildings
      for adaptive and custom range profiles; plots drawn by the plugin.
    - Data sources credited in Settings and Help (Terrarium via AWS,
      OpenFreeMap); waveshed.io links work before and after the public launch.
    0.3.3
    - Minor fixes. (New Icon and proper Metadata)
    0.3.2
    - Settings no longer shows "Installed engine: unknown" right after a
      successful download when the new engine is slow to answer its first
      version check; probe failures are now written to the QGIS log.
    - Plugin repository tags include line of sight and viewshed.
    0.3.1
    - Automatic release deployment.
    0.3.0
    - Engine downloads are verified end to end: the release manifest must
      carry a valid signature from the Waveshed release key (releases up to
      engine 0.4.7 predate signing and are still accepted), and engine
      archives are only accepted from releases.waveshed.io.
    - Engine updates are all-or-nothing: the new engine is unpacked and
      test-started next to the old one and only then swapped in. A failed or
      interrupted update leaves the previous engine working; on Windows an
      engine that is still running is detected and the update is refused.
    - First start without an engine shows a notice with a button to Settings.
      Once per QGIS session the plugin checks for a newer engine and shows a
      notice (once per release) with an "Update" button; the check can be
      switched off in Settings. Settings shows the installed and the latest
      engine version and has a "Check for updates" button.
    - An analysis that fails because the engine is too old or missing now
      offers "Update engine" / "Open Settings" right in the error message.
    - macOS: engine folders chosen with Browse or Auto-detect (for example a
      browser download) are made executable and cleared of the download
      quarantine, as on every plugin start; if macOS still blocks the engine,
      the error names the one Terminal command that fixes it.
    - The plugin is no longer marked experimental.
    - "Minimum LOS Altitude" is now "LOS Floor" everywhere in the UI. The
      Processing wire value stays MIN_ALT, so saved models keep working.
    - Built-in Help: a searchable Help tab (last tab of the dialog), a
      "Waveshed Help" menu entry and a "?" next to the model choice. Covers
      every control, terrain sources and the no-data contract, LOS Floor and
      the Altitude Explorer, the Processing algorithms, earth-curvature and
      ITM notes, troubleshooting and a glossary.
    - Altitude Explorer: each altitude band has its own AGL/AMSL reference,
      so "100 m AGL" and "2500 m AMSL" can be shown together. "Measured
      from" applies to the selected band and the next one added; sea-level
      bands render on the cached terrain twin, built on first use.
    - Engine failures now carry an actionable hint. An engine that rejects
      90 m / 250 m ("Unsupported resolution ... Allowed: [2, 5, 10, 30]")
      is an older build: update it via Settings, or pick 2/5/10/30 m.
    - Requires Aether engine 0.4.3 or newer for 90 m and 250 m coverage and
      for correct ITM results with AMSL antenna heights on the GPU.
    0.2.0
    - Runs on QGIS 4 (Qt6/PyQt6) as well as QGIS 3.28+ (Qt5): every Qt and
      QGIS enum is now spelled with its scope, QAction is imported from
      whichever module the binding keeps it in, and exec_() became exec().
    - Terrain tiles are pooled and reused across sites, so overlapping runs no
      longer re-download shared tiles. Existing caches are rebuilt once.
    - Building tiles (OpenFreeMap) pool alongside terrain and are reused too.
    - Removed SIMPLE_LOSS as a selectable propagation model; use ITM. Results
      already computed with it still load. NOTE: the Processing "Propagation
      Model" dropdown is index-based, so saved Processing models that selected
      ITM or MIN_ALT must be re-picked.
    - Data-source attribution for every fetched dataset, shown in Settings.
    - Settings can clear the terrain cache and reports its size.
    - Fixed: a failed building download no longer silently caches
      building-free terrain under a buildings-keyed entry.
    - Fixed: partial caches from an interrupted run are no longer reused as
      complete, which produced coverage with silent gaps.
    0.1.0
    - Initial experimental release.
experimental=False
deprecated=False
hasProcessingProvider=yes
