{"name": "RasterViz", "package_name": "qrviz", "version": "1.4.5", "experimental": false, "qgis_min": "3.0.0", "qgis_max": "3.99.0", "downloads": 125, "uploaded_by": "defani.arman", "upload_datetime": "2026-08-16T03:34:12.252969", "changelog": "Version 1.4.5 (2026): Fixed the 10 \"Try, Except, Pass\"/\"Try, Except, Continue\" findings (Bandit B110/B112) that were blocking the QGIS Plugin Repository's automated security scan. Every bare `except Exception: pass`/`continue` across basemap_io.py, dialog.py, raster_io.py, and vector_io.py \u2014 all guarding genuinely optional/non-fatal fallback paths (older PyQGIS API without a given setter, a rendering-speed optimisation that can't be applied, a single feature that fails to reproject, etc.) \u2014 now logs the caught exception via QgsMessageLog instead of silently discarding it, so failures are visible in the QGIS log panel without changing any runtime behaviour.\nVersion 1.4.4 (2026): Fixed a basemap/overlay misalignment (basemap looked \"shifted\" a little compared to the raster/vector layers on top of it, or compared to the same layer in QGIS's own canvas). basemap_io.py's render told matplotlib the basemap image covered the raw requested extent, but QgsMapSettings actually renders a slightly different, aspect-corrected extent (QgsMapSettings.visibleExtent()) whenever the output pixel size's aspect ratio doesn't exactly match the requested extent's aspect ratio \u2014 which is almost always the case. The basemap now uses that actually-rendered extent for imshow(), so it lines up exactly with the raster/vector data drawn on top, matching QGIS's own canvas.\nVersion 1.4.3 (2026): The right-hand panel (Data/Layers/Display/Basemap/Title & Font/Geometry/Colorbar tabs) had a hard `setMaximumWidth(300)` that stopped the splitter handle from being dragged wider \u2014 removed that cap, so the panel can now be resized to whatever width the user wants. Note: individual fields inside the panel (combo boxes, line edits, spin boxes) are still capped at 185px wide by design so they don't stretch oddly; dragging the panel wider just gives them more breathing room, it doesn't stretch the fields themselves.\nVersion 1.4.2 (2026): Performance \u2014 the per-pixel no-data mask loop in raster_io.py's block decoder now checks the block's own `hasNoData()` flag first and skips the O(width x height) Python loop entirely when the block has no no-data pixels at all (the common case for most rendered previews), instead of always looping over every pixel. This is a CPU-side fix, not GPU/OpenCL: RasterViz's pixel reading, stretching, and rendering are plain NumPy/QGIS-native/Matplotlib and were never on a code path QGIS's own OpenCL acceleration setting (used only by a handful of Processing algorithms like Hillshade/Slope/Viewshed) would touch.\nVersion 1.4.1 (2026): UI overhaul \u2014 every control panel (Data Source, Vector Symbology, Display, Title & Font, Geometry, Colorbar) is now organised into clearly labelled group boxes by function (e.g. \"North Arrow\", \"Scale Bar\", \"Map Frame\", \"Legend \u2014 Position & Size\") instead of one long mixed list per tab. Removed every in-app UI icon (toolbar/tab/list-item icons and the icons.py glyph module); buttons, tabs, and the layers list now use plain text/labels only, with a \"[Raster]\"/\"[Vector]\" text tag replacing the old layer-type icon. Standardised control heights/padding across combo boxes, spin boxes, line edits, and buttons for a more comfortable, consistent click/tap target size.\nVersion 1.4.0 (2026): Replaced the contextily-based web basemap engine with a 100% QGIS-native one \u2014 basemaps are now fetched, stitched, and reprojected by QGIS itself via a native QgsRasterLayer XYZ connection (the same URI scheme QuickMapServices uses) rendered through QgsMapRendererCustomPainterJob, instead of the contextily pip package. RasterViz now has ZERO third-party Python dependencies; the \"Install Dependencies\" button/dialog and one-time first-run notice have been removed since there is nothing left to install. All basemaps from 1.3.1 are still available with the same names, and the per-(provider, CRS, view) basemap cache still works the same way.\nVersion 1.3.1 (2026): Fixed a layout bug that left a large empty gap above \"Legend Layout Settings\" in the Colorbar tab (Qt was sizing that area to its tallest sub-tab even while the shorter one was showing); narrowed the right-hand settings panel further. The \"Install Dependencies\" dialog now falls back automatically to installing into the plugin's own folder when a Python build has user site-packages disabled (previously failed outright with \"User site-packages are disabled for this Python\"). Basemap tiles are now cached per (provider, CRS, view) so re-rendering after an unrelated control change (title, font, decimals, ...) reuses the already-fetched/stitched/warped basemap image instead of re-fetching it from the network every time.\nVersion 1.3.0 (2026): Raster and vector engines are now 100% QGIS-native \u2014 rasterio, geopandas, and fiona are no longer needed at all (raster via QgsRasterLayer/dataProvider().block(), vector via QgsVectorLayer/OGR). Vector rendering now goes through QGIS's own QgsFeatureRequest pipeline (destination-CRS reprojection, view-extent spatial filtering, and on-the-fly simplification), fixing slow/heavy redraws with large nationwide vector files. Added a working in-app \"Install Dependencies\" dialog (Plugins > RasterViz > Install Dependencies, plus a header button and a one-time first-run notice) that installs contextily directly into QGIS's own Python with a background worker thread, progress bar, and clear error messages \u2014 no terminal/OSGeo4W Shell needed. Removed the qtawesome dependency entirely, replaced by a small built-in SVG icon set. Removed the custom dark-mode toggle and forced font/stylesheet; the UI now follows QGIS's own active theme and font. Narrowed the right-hand vertical tab strip (Display / Title & Font / Geometry / Colorbar) to fit its icon+label instead of the style's default wide padding.\nVersion 1.2.0 (2026): Rebuilt on the multi-layer engine from the standalone RasterViz edition. Adds a unified raster+vector layer panel, vector overlay support (Shapefile, GeoPackage, GeoJSON, KML/KMZ) with single/categorized symbology, web basemap layer (Esri, OSM, CartoDB, OpenTopoMap, NASA GIBS, and more) via contextily, an expanded colormap library, north arrow and scale bar, and a raster backend switched to rasterio for consistent multi-format reading (GeoTIFF, IMG, VRT, NetCDF, HDF). Optional dependencies (rasterio, geopandas, fiona, contextily, qtawesome) degrade gracefully with an in-app notice if missing.\nVersion 1.1.0 (2026): Initial public release. Includes single-band continuous rendering, discrete/classified rendering, RGB composite, customizable pointed colorbar, coordinate tick formatting (DMS, DM, DD, UTM), and live preview via cached NumPy array. Export to PNG, SVG, TIFF, PDF supported.", "external_deps": null, "download_url": "https://plugins.qgis.org/plugins/qrviz/version/1.4.5/download/"}