QGIS Desktop 3.16 User Guide QGIS Project 02.04.2022 Obsah 1 Úvod 1 1.1 What is new in QGIS 3.16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Předmluva 3 3 Konvence 5 3.1 GUI konvence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Textové nebo klávesové konvence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 Platformy – pokyny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 Funkce 7 4.1 Prohlížení dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 Prozkoumávání dat a vytváření map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.3 Tvorba, editace, správa a export dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.4 Analýza dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.5 Publikování map na internetu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.6 Rozšíření QGIS funkcí prostřednictvím pluginů (zásuvných modulů) . . . . . . . . . . . . . . . . 9 4.6.1 Základní Pluginy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.6.2 Externí Python zásuvné moduly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.7 Konzole Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.8 Známé problémy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.8.1 Omezení počtu otevřených souborů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5 Začínáme 11 5.1 Installing QGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.1.1 Installing from binaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.1.2 Installing from source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.1.3 Installing on external media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.1.4 Downloading sample data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.2 Starting and stopping QGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.3 Sample Session: Loading raster and vector layers . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6 Working with Project Files 19 6.1 Introducing QGIS projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.2 Handling broken file paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.3 Generating output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 7 QGIS GUI 23 7.1 Menu lišta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 7.1.1 Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 7.1.2 Editovat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 i 7.1.3 Zobrazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7.1.4 Vrstva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.1.5 Nastavení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.1.6 Zásuvné moduly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.1.7 Vektor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.1.8 Rastr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7.1.9 Databáze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 7.1.10 Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.1.11 Mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.1.12 Zpracování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.1.13 Nápověda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 7.1.14 QGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 7.2 Panely a nástrojové lišty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 7.2.1 Nástrojové lišty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 7.2.2 Panely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.3 Zobrazení mapy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.3.1 Exploring the map view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.3.2 Setting additional map views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 7.3.3 Exporting the map view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.4 3D Map View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.4.1 Navigation options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.4.2 Creating an animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.4.3 Scene Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.4.4 3D vector layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.5 Stavová lišta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.5.1 Locator bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.5.2 Reporting actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.5.3 Control the map canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.5.4 Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8 The Browser panel 55 8.1 Resources that can be opened / run from the Browser . . . . . . . . . . . . . . . . . . . . . . . . 57 8.2 Browser panel top-level entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.2.1 Favorites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.2.2 Prostorové záložky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.2.3 Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.2.4 / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.2.5 Geopackage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.2.6 SpatiaLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 8.2.7 PostGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 8.2.8 MSSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 8.2.9 DB2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.2.10 WMS/WMTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.2.11 Vector Tiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.2.12 XYZ Tiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.2.13 WCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.2.14 WFS / OGC API - Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.2.15 OWS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.2.16 ArcGIS Map Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.2.17 ArcGIS Features Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.2.18 GeoNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.3 Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 9 QGIS Konfigurace 63 9.1 Možnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 9.1.1 General Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 9.1.2 System Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 9.1.3 CRS Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 ii 9.1.4 Transformations Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 9.1.5 Data Sources Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 9.1.6 Rendering Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 9.1.7 Canvas and Legend Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 9.1.8 Map tools Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 9.1.9 Colors Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 9.1.10 Digitizing Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 9.1.11 Layouts Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.1.12 GDAL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.1.13 Variables Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 9.1.14 Authentication Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 9.1.15 Network Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 9.1.16 Locator Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.1.17 Advanced Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 9.1.18 Acceleration Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 9.1.19 Processing Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 9.1.20 Python Console Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9.1.21 Code Editor Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.2 Working with User Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.3 Vlastnosti projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9.3.1 General Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9.3.2 Metadata Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 9.3.3 CRS Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.3.4 Transformations Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.3.5 Default Styles Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.3.6 Data Sources Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.3.7 Relations Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 9.3.8 Variables Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 9.3.9 Macros Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 9.3.10 QGIS Server Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 9.3.11 Temporal Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 9.4 Přizpůsobení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 9.5 Keyboard shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 9.6 Running QGIS with advanced settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.6.1 Command line and environment variables . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.6.2 Deploying QGIS within an organization . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 10 Práce s projekcemi 111 10.1 Přehled projekční podpory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10.2 Layer Coordinate Reference Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10.3 Project Coordinate Reference Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 10.4 Coordinate Reference System Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.5 Vlastní souřadnicový referenční systém . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 10.5.1 Integrate an NTv2-transformation in QGIS . . . . . . . . . . . . . . . . . . . . . . . . . 116 10.6 Datum Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 11 Obecné nástroje 119 11.1 Kontextová nápověda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 11.2 Panely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 11.2.1 Layers Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 11.2.2 Layer Styling Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 11.2.3 Layer Order Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 11.2.4 Overview Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 11.2.5 Log Messages Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.2.6 Undo/Redo Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.2.7 Statistical Summary Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 11.3 Vnořování projektů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 11.4 Working with the map canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 iii 11.4.1 Vykreslování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 11.4.2 Zooming and Panning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 11.4.3 Prostorové záložky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 11.4.4 Dekorace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 11.4.5 Anotační nástroje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 11.4.6 Měření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 11.5 Interacting with features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 11.5.1 Selecting features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 11.5.2 Identifying Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 11.6 Save and Share Layer Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 11.6.1 Managing Custom Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 11.6.2 Storing Styles in a File or a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 11.6.3 Layer definition file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 11.7 Storing values in Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 11.8 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 11.9 Common widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 11.9.1 Výběr barvy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 11.9.2 Symbol Widget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 11.9.3 Font Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 11.9.4 Unit Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 11.9.5 Number Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 11.9.6 Režim míchání . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 11.9.7 Data defined override setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 12 The Style Library 169 12.1 The Style Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 12.1.1 The Style Manager dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 12.1.2 Setting a Color Ramp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 12.2 The Symbol Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 12.2.1 The symbol layer tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 12.2.2 Configuring a symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 12.3 Setting a label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 12.3.1 Formatting the label text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 12.3.2 Configuring interaction with labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 12.4 Creating 3D Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 12.4.1 Point Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 12.4.2 Line layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 12.4.3 Polygon Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 12.4.4 Application example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 13 Managing Data Source 207 13.1 Opening Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 13.1.1 The Browser Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 13.1.2 The DB Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 13.1.3 Provider-based loading tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 13.1.4 QGIS Custom formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 13.1.5 QLR - QGIS Layer Definition File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 13.1.6 Connecting to web services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 13.2 Creating Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 13.2.1 Creating new vector layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 13.2.2 Creating new layers from an existing layer . . . . . . . . . . . . . . . . . . . . . . . . . 238 13.2.3 Creating new DXF files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 13.2.4 Creating new layers from the clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 13.2.5 Creating virtual layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 13.3 Exploring Data Formats and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 13.3.1 Raster data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 13.3.2 Vektorová data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 iv 14 Working with Vector Data 255 14.1 The Vector Properties Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 14.1.1 Information Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 14.1.2 Source Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 14.1.3 Symbology Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 14.1.4 Labels Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 14.1.5 Diagrams Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 14.1.6 Masks Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 14.1.7 3D View Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 14.1.8 Fields Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 14.1.9 Attributes Form Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 14.1.10 Joins Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 14.1.11 Auxiliary Storage Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 14.1.12 Actions Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 14.1.13 Display Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 14.1.14 Rendering Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 14.1.15 Variables Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 14.1.16 Metadata Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 14.1.17 Dependencies Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 14.1.18 Legend Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 14.1.19 QGIS Server Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 14.1.20 Digitizing Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 14.2 Výrazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 14.2.1 The Expression string builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 14.2.2 Function Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 14.3 List of functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 14.3.1 Aggregates Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 14.3.2 Array Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 14.3.3 Funkce barev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 14.3.4 Conditional Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 14.3.5 Conversions Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 14.3.6 Custom Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 14.3.7 Funkce dat a časů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 14.3.8 Pole a hodnoty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 14.3.9 Files and Paths Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 14.3.10 Form Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 14.3.11 Fuzzy Matching Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 14.3.12 General Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 14.3.13 Funkce geometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 14.3.14 Layout Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 14.3.15 Map Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 14.3.16 Maps Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 14.3.17 Matematické funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 14.3.18 Operátory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 14.3.19 Processing Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 14.3.20 Rasters Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 14.3.21 Record and Attributes Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 14.3.22 Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 14.3.23 Funkce řetězců . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 14.3.24 User Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 14.3.25 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 14.3.26 Recent Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 14.4 Working with the Attribute Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 14.4.1 Foreword: Spatial and non-spatial tables . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 14.4.2 Introducing the attribute table interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 14.4.3 Interacting with features in an attribute table . . . . . . . . . . . . . . . . . . . . . . . . 478 14.4.4 Using action on features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 14.4.5 Editing attribute values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 v 14.4.6 Creating one or many to many relations . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 14.5 Editování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 14.5.1 Nastavení přichytávací tolerance a vyhledání poloměru . . . . . . . . . . . . . . . . . . . 494 14.5.2 Topologická editace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 14.5.3 Digitizing an existing layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 14.5.4 Advanced digitizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 14.5.5 Shape digitizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 14.5.6 The Advanced Digitizing panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 14.5.7 The Processing in-place layer modifier . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 15 Working with Raster Data 525 15.1 Raster Properties Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 15.1.1 Information Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 15.1.2 Source Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 15.1.3 Symbology Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 15.1.4 Transparency Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 15.1.5 Histogram Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 15.1.6 Rendering Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 15.1.7 Pyramids Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 15.1.8 Metadata Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 15.1.9 Legend Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 15.1.10 QGIS Server Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 15.2 Raster Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 15.2.1 Raster Calculator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 15.2.2 Raster Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 15.3 Georeferencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 15.3.1 Usual procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 16 Working with Mesh Data 551 16.1 What’s a mesh? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 16.2 Supported formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 16.3 Mesh Dataset Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 16.3.1 Information Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 16.3.2 Source Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 16.3.3 Symbology Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 17 Working with Vector Tiles 561 17.1 What are Vector Tiles? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561 17.2 Supported Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 18 Laying out the maps 563 18.1 Overview of the Print Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 18.1.1 Sample Session for beginners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 18.1.2 The Layout Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 18.1.3 Menus, tools and panels of the print layout . . . . . . . . . . . . . . . . . . . . . . . . . 565 18.2 Layout Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 18.2.1 Layout Items Common Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 18.2.2 The Map Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 18.2.3 The 3D Map Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 18.2.4 The Label Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 18.2.5 The Legend Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 18.2.6 The Scale Bar Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 18.2.7 Položky tabulky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 18.2.8 The Picture and the North Arrow Items . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 18.2.9 The HTML Frame Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 18.2.10 The Shape Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 18.3 Creating an Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 18.3.1 Export settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 18.3.2 Export as Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 vi 18.3.3 Export as SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 18.3.4 Export as PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 18.3.5 Generate an Atlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 18.4 Creating a Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 18.4.1 What is it? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 18.4.2 Get started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 18.4.3 Layout Report Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 18.4.4 Export settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 19 Working with OGC / ISO protocols 651 19.1 WMS/WMTS Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 19.1.1 Overview of WMS Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 19.1.2 Overview of WMTS Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 19.1.3 Selecting WMS/WMTS Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 19.1.4 Loading WMS/WMTS Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655 19.1.5 Sady dlaždic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 19.1.6 Using the Identify Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 19.1.7 Show WMS legend graphic in table of contents and layout . . . . . . . . . . . . . . . . . 659 19.1.8 WMS Client Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 19.2 WCS Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 19.3 WFS and WFS-T Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 20 Working with GPS Data 663 20.1 GPS Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 20.1.1 What is GPS? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 20.1.2 Loading GPS data from a file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 20.1.3 GPSBabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664 20.1.4 Importing GPS data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664 20.1.5 Downloading GPS data from a device . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 20.1.6 Uploading GPS data to a device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 20.1.7 Defining new device types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 20.1.8 Download of points/tracks from GPS units . . . . . . . . . . . . . . . . . . . . . . . . . 666 20.2 Live GPS tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 20.2.1 Position and additional attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 20.2.2 GPS signal strength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 20.2.3 GPS options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 20.2.4 Connect to a Bluetooth GPS for live tracking . . . . . . . . . . . . . . . . . . . . . . . . 671 20.2.5 Using GPSMAP 60cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671 20.2.6 Using BTGP-38KM datalogger (only Bluetooth) . . . . . . . . . . . . . . . . . . . . . . 672 20.2.7 Using BlueMax GPS-4044 datalogger (both BT and USB) . . . . . . . . . . . . . . . . . 672 21 Ověřovací systém 673 21.1 Authentication System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 21.1.1 Authentication database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 21.1.2 Master password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674 21.1.3 Authentication Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675 21.1.4 Authentication Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 21.1.5 Master Password and Auth Config Utilities . . . . . . . . . . . . . . . . . . . . . . . . . 681 21.1.6 Using authentication configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 21.1.7 Python bindings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 21.2 User Authentication Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683 21.2.1 HTTP(S) authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683 21.2.2 Database authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 21.2.3 PKI authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685 21.2.4 Handling bad layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692 21.2.5 Changing authentication config ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693 21.2.6 QGIS Server support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 21.2.7 SSL server exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 21.3 Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697 vii 21.3.1 Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698 22 GRASS GIS Integration 699 22.1 Demo dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 22.2 Loading GRASS raster and vector layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699 22.3 Importing data into a GRASS LOCATION via drag and drop . . . . . . . . . . . . . . . . . . . . 700 22.4 Managing GRASS data in QGIS Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700 22.5 GRASS Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700 22.6 Starting the GRASS plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700 22.7 Opening GRASS mapset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701 22.8 GRASS LOCATION and MAPSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701 22.9 Importing data into a GRASS LOCATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701 22.9.1 Creating a new GRASS LOCATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702 22.9.2 Adding a new MAPSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 22.10 The GRASS vector data model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 22.11 Creating a new GRASS vector layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704 22.12 Digitizing and editing a GRASS vector layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705 22.13 The GRASS region tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707 22.14 The GRASS Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707 22.14.1 Working with GRASS modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708 22.14.2 GRASS module examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711 22.14.3 Customizing the GRASS Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714 23 QGIS processing framework 717 23.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717 23.2 Configuring the Processing Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719 23.3 The Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721 23.3.1 The algorithm dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722 23.3.2 Data objects generated by algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727 23.4 The history manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728 23.4.1 The processing history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728 23.4.2 The processing log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729 23.5 The graphical modeler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729 23.5.1 Definition of inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 23.5.2 Definition of the workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733 23.5.3 Interacting with the canvas and elements . . . . . . . . . . . . . . . . . . . . . . . . . . 736 23.5.4 Saving and loading models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738 23.5.5 Editing a model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739 23.5.6 Editing model help files and meta-information . . . . . . . . . . . . . . . . . . . . . . . 740 23.5.7 Exporting a model as a Python script . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742 23.5.8 About available algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742 23.6 The batch processing interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742 23.6.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742 23.6.2 The parameters table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743 23.6.3 Filling the parameters table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744 23.6.4 Executing the batch process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745 23.7 Using processing algorithms from the console . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745 23.7.1 Calling algorithms from the Python console . . . . . . . . . . . . . . . . . . . . . . . . . 745 23.7.2 Creating scripts and running them from the toolbox . . . . . . . . . . . . . . . . . . . . 750 23.7.3 Pre- and post-execution script hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753 23.8 Using processing from the command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753 23.9 Writing new Processing algorithms as Python scripts . . . . . . . . . . . . . . . . . . . . . . . . . 754 23.9.1 Extending QgsProcessingAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755 23.9.2 The @alg decorator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759 23.9.3 Input and output types for Processing Algorithms . . . . . . . . . . . . . . . . . . . . . . 760 23.9.4 Handing algorithm output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762 23.9.5 Communicating with the user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762 23.9.6 Documenting your scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 viii 23.9.7 Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 23.9.8 Best practices for writing script algorithms . . . . . . . . . . . . . . . . . . . . . . . . . 763 23.10 Configuring external applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 23.10.1 A note for Windows users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764 23.10.2 A note on file formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764 23.10.3 A note on vector layer selections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764 23.10.4 SAGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764 23.10.5 R scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765 23.10.6 R libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773 23.10.7 GRASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773 23.10.8 LAStools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774 23.10.9 OTB Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774 24 Processing providers and algorithms 777 24.1 QGIS algorithm provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777 24.1.1 Cartography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777 24.1.2 Databáze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792 24.1.3 File tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798 24.1.4 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799 24.1.5 Layer tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 24.1.6 Modeler tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810 24.1.7 Network analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815 24.1.8 Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826 24.1.9 Rastrová analýza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832 24.1.10 Raster Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870 24.1.11 Raster terrain analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883 24.1.12 Raster tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894 24.1.13 Vector analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899 24.1.14 Vector creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 917 24.1.15 Vector general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940 24.1.16 Vector geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 970 24.1.17 Vector overlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1082 24.1.18 Vector selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095 24.1.19 Vector table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108 24.1.20 Vector Tiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121 24.2 GDAL algorithm provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124 24.2.1 Rastrová analýza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124 24.2.2 Raster conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147 24.2.3 Raster extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153 24.2.4 Raster miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159 24.2.5 Raster projections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176 24.2.6 Vector conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1180 24.2.7 Vector geoprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1185 24.2.8 Vector miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191 24.3 LAStools algorithm provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200 24.3.1 blast2dem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200 24.3.2 blast2iso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202 24.3.3 las2dem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203 24.3.4 las2iso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205 24.3.5 las2las_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207 24.3.6 las2las_project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211 24.3.7 las2las_transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1217 24.3.8 las2txt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 24.3.9 lasindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221 24.3.10 lasgrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222 24.3.11 lasinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224 24.3.12 lasmerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227 24.3.13 lasprecision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228 ix 24.3.14 lasquery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 24.3.15 lasvalidate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230 24.3.16 laszip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1230 24.3.17 txt2las . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231 24.4 TauDEM algorithm provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235 24.4.1 Basic Grid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236 24.4.2 Specialized Grid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248 24.4.3 Stream Network Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1273 24.5 OTB applications provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291 25 Zásuvné moduly 1293 25.1 QGIS Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293 25.1.1 Core and External plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1293 25.1.2 The Plugins Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294 25.2 Using QGIS Core Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 25.2.1 DB Manager Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 25.2.2 Geometry Checker Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1302 25.2.3 MetaSearch Catalog Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1306 25.2.4 Offline Editing Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1313 25.2.5 Topology Checker Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1315 25.3 QGIS Python console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317 25.3.1 The Interactive Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317 25.3.2 The Code Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1318 26 Pomoc a podpora 1321 26.1 Mailing list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321 26.1.1 Uživatelé QGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321 26.1.2 Vývojáři QGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321 26.1.3 Komunitní tým QGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321 26.1.4 Překlady QGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322 26.1.5 Řídící výbor projektu QGIS (PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322 26.1.6 Uživatelské skupiny QGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322 26.2 IRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322 26.3 Commercial support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322 26.4 BugTracker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322 26.5 Blog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323 26.6 Zásuvné moduly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323 26.7 Wiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1323 27 Contributors 1325 27.1 Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1325 27.2 Translators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326 27.3 Statistics of translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1327 28 Dodatky 1329 28.1 Appendix A: GNU General Public License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1329 28.2 Appendix B: GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332 28.3 Appendix C: QGIS File Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1337 28.3.1 QGS/QGZ - The QGIS Project File Format . . . . . . . . . . . . . . . . . . . . . . . . 1337 28.3.2 QLR - The QGIS Layer Definition file . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339 28.3.3 QML - The QGIS Style File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1340 28.4 Appendix D: QGIS R script syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1341 28.4.1 Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 28.4.2 Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 28.4.3 Syntax Summary for QGIS R scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 28.4.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1344 29 Literature and Web References 1347 x KAPITOLA 1 Úvod This is the user guide for the geographical information system (GIS) software QGIS. QGIS is subject to the GNU General Public License. More information is available on the QGIS homepage, https://www.qgis.org. The contents of this document have been written and verified to the best of the knowledge of the authors and editors. Nevertheless, mistakes are possible. Therefore, the authors, editors and publishers do not take any responsibility or liability for errors in this document and their possible consequences. We encourage you to report possible mistakes. This document has been typeset with reStructuredText. It is available as reST source code on github, and online as HTML and PDF via https://www.qgis.org/en/docs/. Translated versions of this document can be browsed and downloaded via the documentation area of the QGIS project as well. For more information about contributing to this document and about translation, please visit https://qgis.org/en/site/ getinvolved/index.html. Odkazy v tomto dokumentu This document contains internal and external links. Clicking on an internal link moves within the document, while clicking on an external link opens an internet address. Documentation Authors and Editors The list of the persons who have contributed with writing, reviewing and translating the following documentation is available at Contributors. Copyright (c) 2004 - 2020 QGIS Development Team Internet: https://www.qgis.org Licence tohoto dokumentu Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU Free Documentation License, verze 1.3 nebo jakýchkoliv pozdějších verzí publikovaných nadací Free Software Foundation; bez Invariant Sections, bez úvodních a závěrečných textů. Kopie této licence je zahrnuta v dodatku Appendix B: GNU Free Documentation License. 1 QGIS Desktop 3.16 User Guide 1.1 What is new in QGIS 3.16 This release of QGIS includes hundreds of bug fixes and many new features and enhancements, compared to QGIS 3.10. We recommend that you use this version over previous releases. For a list of new features, visit the visual changelogs at https://qgis.org/en/site/forusers/visualchangelogs.html. 2 Kapitola 1. Úvod KAPITOLA 2 Předmluva Vítejte v báječném světě geografických informačních systémů (GIS)! QGIS is an Open Source Geographic Information System. The project was born in May 2002 and was established as a project on SourceForge in June the same year. We have worked hard to make GIS software (which is traditionally expensive proprietary software) available to anyone with access to a personal computer. QGIS currently runs on most Unix platforms, Windows, and macOS. QGIS is developed using the Qt toolkit (https://www.qt.io) and C++. This means that QGIS feels snappy and has a pleasing, easy-to-use graphical user interface (GUI). QGIS aims to be a user-friendly GIS, providing common functions and features. The initial goal of the project was to provide a GIS data viewer. QGIS has reached the point in its evolution where it is being used for daily GIS data-viewing needs, for data capture, for advanced GIS analysis, and for presentations in the form of sophisticated maps, atlases and reports. QGIS supports a wealth of raster and vector data formats, with new format support easily added using the plugin architecture. QGIS is released under the GNU General Public License (GPL). Developing QGIS under this license means that you can inspect and modify the source code, and guarantees that you, our happy user, will always have access to a GIS program that is free of cost and can be freely modified. You should have received a full copy of the license with your copy of QGIS, and you can also find it in Appendix Appendix A: GNU General Public License. Tip: Aktuální dokumentace The latest version of this document can always be found in the documentation area of the QGIS website at https: //www.qgis.org/en/docs/. 3 QGIS Desktop 3.16 User Guide 4 Kapitola 2. Předmluva KAPITOLA 3 Konvence Tato část popisuje jednotné styly, které budou použity v této příručce. 3.1 GUI konvence GUI konvenční styly jsou určeny k napodobení vzhledu grafického uživatelského rozhraní. Obecně platí, že styl bude odrážet non-hover vzhled, takže uživateli stačí zběžně prohlédnout uživatelské rozhraní, aby našel něco, co vypadá jako instruktáž v návodu. • Menu Možnosti: Vrstva ► Přidat vektorovou vrstvu or Nastavení ► Nástrojové lišty ► Digitalizace • Nástroj: Přidat rastrovou vrstvu • Button : Save as Default • Dialogové okno Název: Vlastnosti vrstvy • Záložka: Obecné • Zaškrtávací pole: Render • Přepínač: Postgis SRID EPSG ID • Zvolit číslo: • Zvolit řetězec: • Browse for a file: … • Zvolit barvu: • Posuvník: • Vložit text: Stín označuje klikací GUI komponenty. 5 QGIS Desktop 3.16 User Guide 3.2 Textové nebo klávesové konvence Příručka též obsahuje styly vztahující se k textu, klávesovým zkratkám a kódování k označení různých subjektů, jako jsou třídy nebo metody. Tyto styly neodpovídají skutečnému vzhledu jakéhokoli textu či kódování v QGIS. • Hyperlinks: https://qgis.org • Kombinace kláves: Stisknout Ctrl+B, myšleno stisknout a držet klávesu Ctrl a poté stisknout klávesu B • Název souboru: jezera.shp • Název třídy: Nová Vrstva • Metoda: classFactory • Server: myhost.de • Návod: qgis --Nápověda Řádky kódu jsou označeny pevnou šířkou písma: PROJCS["NAD_1927_Albers", GEOGCS["GCS_North_American_1927", 3.3 Platformy – pokyny GUI sekvence a malá množství textu mohou být formátovány v řadě za sebou: klikněte na File QGIS ► Quit to close QGIS. To znamená, že v operačních systémech Linux, Unix a Windows, byste měli nejprve kliknout na nabídku Soubor a poté Zavřít, zatímco u macOS systému, byste měli nejprve kliknout na nabídku QGIS, pak Zavřít. Větší množství textu může být formátováno jako seznam: • Udělej tohle • Udělej tamto • Iosxl Nebo udělej tamto nebo jako odstavce: Udělej tohle a tohle a tohle. Pak udělej tohle a tohle a tohle, a tohle a tohle a tohle, a tohle a tohle a tohle. Udělej tamto. Pak udělej tamto a tamto a tamto, a tamto a tamto a tamto, tamto a tamto a tamto, a tamto a tamto. Screenshots that appear throughout the user guide have been created on different platforms. 6 Kapitola 3. Konvence KAPITOLA 4 Funkce QGIS offers a wealth of GIS functions, provided by core features and plugins. The locator bar makes it easy to search for functions, datasets and more. A short summary of six general categories of features and plugins is presented below, followed by first insights into the integrated Python console. 4.1 Prohlížení dat You can view combinations of vector and raster data (in 2D or 3D) in different formats and projections without conversion to an internal or common format. Supported formats include: • Spatially-enabled tables and views using PostGIS, SpatiaLite and MS SQL Spatial, Oracle Spatial, vector formats supported by the installed OGR library, including GeoPackage, ESRI Shapefile, MapInfo, SDTS, GML and many more. See section Working with Vector Data. • Rastrové a obrazové formáty podporované nainstalovanou knihovnou GDAL (Geospatial Data Abstraction Library), jako je GeoTIFF, Erdas IMG, ArcInfo ASCII GRID, JPEG, PNG a mnoho dalších. Viz část Working with Raster Data. • Mesh data (TINs and regular grids are supported). See Working with Mesh Data. • Vector tiles • GRASS rastrová a vektorová data z GRASS databází (location/mapset). Viz část GRASS GIS Integration. • Online spatial data served as OGC Web Services, including WMS, WMTS, WCS, WFS, and WFS-T. See section Working with OGC / ISO protocols. The QGIS authentication infrastructure helps you manage user/password, certificates and keys for web services and other resources. • Spreadsheets (ODS / XLSX) Temporal data are supported. 7 QGIS Desktop 3.16 User Guide 4.2 Prozkoumávání dat a vytváření map Můžete vytvářet mapy a interaktivně prozkoumávat prostorová data s přátelským grafickým uživatelským rozhraním. Mezi mnohé užitečné nástroje, které jsou k dispozici v GUI, patří: • QGIS prohlížeč • Reprojekce • Správce databází • Print layout • Report • Přehled panelů • Prostorové záložky • Vysvětlivky k nástrojům • Identifikace/výběr prvků • Editace/zobrazení/vyhledávání vlastností • Data-defined feature labeling • Symbolika vektorových a rastrových nástrojů • Mapové kompozice s vrstvami souřadnicových sítí • North arrow, scale bar and copyright label for maps • Podpora pro ukládání a obnovování projektů 4.3 Tvorba, editace, správa a export dat Můžete vytvářet, upravovat, spravovat a exportovat vektorové a rastrové vrstvy v několika formátech. QGIS nabízí následující: • Vector digitizing tools • Ability to create and edit multiple file formats and GRASS vector layers • Georeferenční zásuvný modul pro geokódování obrázků • GPS tools to import and export GPX format, and convert other GPS formats to GPX or down/upload directly to a GPS unit (on Linux, usb: has been added to list of GPS devices) • Podpora pro vizualizaci a editaci dat OpenStreetMap • Ability to create spatial database tables from files with the DB Manager plugin • Vylepšená manipulace s tabulkami geodatabáze • Nástroje pro správu vektorových atributových tabulek • Možnost uložení screenshotů jako georeferencované obrázky • Nástroj DXF-Export s rozšířenými možnostmi pro export stylů a zásuvných modulů pro provádění CADovských funkcí 8 Kapitola 4. Funkce QGIS Desktop 3.16 User Guide 4.4 Analýza dat You can perform spatial data analysis on spatial databases and other OGR-supported formats. QGIS currently offers vector analysis, raster analysis, sampling, geoprocessing, geometry and database management tools. You can also use the integrated GRASS tools, which include the complete GRASS functionality of more than 400 modules (see section GRASS GIS Integration). Or, you can work with the Processing plugin, which provides a powerful geospatial analysis framework to call native and third-party algorithms from QGIS, such as GDAL, SAGA, GRASS, R, and more (see section Úvod). All analysis functions are run in the background, allowing you to continue your work before the processing has finished. The graphical modeller allows you to combine / chain functions into a complete workflow in an intuitive graphical environment. 4.5 Publikování map na internetu QGIS can be used as a WMS, WMTS, WMS-C or WFS and WFS-T client (see section Working with OGC / ISO protocols), and QGIS Server (see the QGIS-Server-manual) allows you to publish your data through the WMS, WCS and WFS protocols on the Internet using a webserver. 4.6 Rozšíření QGIS funkcí prostřednictvím pluginů (zásuvných modulů) QGIS lze přizpůsobit vašim speciálním potřebám díky rozšiřitelné plugin struktuře a knihovnám, které mohou být použity k vytvoření pluginů. Můžete dokonce vytvářet nové aplikace pomocí C ++ nebo Python! 4.6.1 Základní Pluginy Základní pluginy zahrnují: 1. DB Manager (exchange, edit and view layers and tables from/to databases; execute SQL queries) 2. Geometry Checker (check geometries for errors) 3. Georeferencer GDAL (add projection information to rasters using GDAL) 4. GPS Tools (load and import GPS data) 5. GRASS 7 (integrate GRASS GIS) 6. MetaSearch Catalogue Client (interacting with metadata catalog services supporting the OGC Catalog Service for the Web (CSW) standard) 7. Offline Editing (allow offline editing and synchronizing with databases) 8. Processing (the spatial data processing framework for QGIS) 9. Topology Checker (find topological errors in vector layers) 4.4. Analýza dat 9 QGIS Desktop 3.16 User Guide 4.6.2 Externí Python zásuvné moduly QGIS nabízí rostoucí počet externích Pythonu pluginů, které jsou poskytovány komunitou. Tyto zásuvné moduly jsou umístěny v oficiálním archivu zásuvných modulů a mohou být snadno nainstalovány pomocí Python Plugin Installeru. Viz oddíl The Plugins Dialog. 4.7 Konzole Python For scripting, it is possible to take advantage of an integrated Python console, which can be opened with: Plugins ► Python Console. The console opens as a non-modal utility window. For interaction with the QGIS environment, there is the qgis.utils.iface variable, which is an instance of QgisInterface. This interface provides access to the map canvas, menus, toolbars and other parts of the QGIS application. You can create a script, then drag and drop it into the QGIS window and it will be executed automatically. For further information about working with the Python console and programming QGIS plugins and applications, please refer to QGIS Python console and PyQGIS-Developer-Cookbook. 4.8 Známé problémy 4.8.1 Omezení počtu otevřených souborů Pokud otevíráte rozsáhlý QGIS projekt, a jste si jisti, že všechny vrstvy jsou validní, ale některé vrstvy jsou označeny jako špatné, pravděpodobně se potýkáte s tímto problémem. Linux (a jiné OS rovněž) má limit otevřených souborů během procesu. Zdrojové limity jsou od výrobce a dědičné. Příkaz ulimit, který je vestavěný, mění limity pouze pro aktuální proces. Nový limit bude zděděn každým odvozeným procesem. Můžete vidět všechny aktuální informace o ulimit zadáním : $ ulimit -aS Můžete vidět aktuální povolený počet otevřených souborů od výrobce pomocí následujícího příkazu v konzoli : $ ulimit -Sn Chcete-li změnit limity pro existující relaci, budete moci použít něco jako : $ ulimit -Sn #number_of_allowed_open_files $ ulimit -Sn $ qgis Chcete-li je zafixovat navždy Ve většině linuxových systémů, jsou zdrojové limity nastaveny na přihlášení modulem pam_limits podle nastavení obsažených v /etc/security/limits.conf nebo /etc/security/limits.d/*.conf. Pokud máte kořenové oprávnění (root privilege, též via sudo), měli byste být schopni upravit tyto soubory, ale, aby změny vstoupily v platnost, budete se muset znovu přihlásit. Více informací: https://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/ https://linuxaria.com/article/ open-files-in-linux 10 Kapitola 4. Funkce KAPITOLA 5 Začínáme This chapter provides a quick overview of installing QGIS, downloading QGIS sample data, and running a first simple session visualizing raster and vector data. 5.1 Installing QGIS QGIS project provides different ways to install QGIS depending on your platform. 5.1.1 Installing from binaries Standard installers are available for MS Windows and macOS. Binary packages (rpm and deb) or software repositories are provided for many flavors of GNU/Linux . For more information and instructions for your operating system check https://download.qgis.org. 5.1.2 Installing from source If you need to build QGIS from source, please refer to the installation instructions. They are distributed with the QGIS source code in a file called INSTALL. You can also find them online at https://github.com/qgis/QGIS/blob/ master/INSTALL.md. If you want to build a particular release and not the version in development, you should replace master with the release branch (commonly in the release-X_Y form) in the above-mentioned link (installation instructions may differ). 11 QGIS Desktop 3.16 User Guide 5.1.3 Installing on external media It is possible to install QGIS (with all plugins and settings) on a flash drive. This is achieved by defining a –profiles-path option that overrides the default user profile path and forces QSettings to use this directory, too. See section System Settings for additional information. 5.1.4 Downloading sample data This user guide contains examples based on the QGIS sample dataset (also called the Alaska dataset). Download the sample data from https://github.com/qgis/QGIS-Sample-Data/archive/master.zip and unzip the archive on any convenient location on your system. The Alaska dataset includes all GIS data that are used for the examples and screenshots in this user guide; it also includes a small GRASS database. The projection for the QGIS sample datasets is Alaska Albers Equal Area with units feet. The EPSG code is 2964. PROJCS["Albers Equal Area", GEOGCS["NAD27", DATUM["North_American_Datum_1927", SPHEROID["Clarke 1866",6378206.4,294.978698213898, AUTHORITY["EPSG","7008"]], TOWGS84[-3,142,183,0,0,0,0], AUTHORITY["EPSG","6267"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.0174532925199433, AUTHORITY["EPSG","9108"]], AUTHORITY["EPSG","4267"]], PROJECTION["Albers_Conic_Equal_Area"], PARAMETER["standard_parallel_1",55], PARAMETER["standard_parallel_2",65], PARAMETER["latitude_of_center",50], PARAMETER["longitude_of_center",-154], PARAMETER["false_easting",0], PARAMETER["false_northing",0], UNIT["us_survey_feet",0.3048006096012192]] If you intend to use QGIS as a graphical front end for GRASS, you can find a selection of sample locations (e.g., Spearfish or South Dakota) at the official GRASS GIS website, https://grass.osgeo.org/download/sample-data/. 5.2 Starting and stopping QGIS QGIS can be started like any other application on your computer. This means that you can launch QGIS by: • using the Applications menu, the Start menu, or the Dock • Dvakrát klikněte na ikonu ve složce „Aplikace“ nebo plocha zástupce. • double clicking an existing QGIS project file (with .qgz or .qgs extension). Note that this will also open the project. • typing qgis in a command prompt (assuming that QGIS is added to your PATH or you are in its installation folder) To stop QGIS, use: • volba menu Project ► Exit QGIS nebo použijte klávesovou zkratku Ctrl+Q • :menuselection: QGIS –> Quit QGIS nebo použijte klávesovou zkratku Ctrl+Q • or use the red cross at the top-right corner of the main interface of the application. 12 Kapitola 5. Začínáme QGIS Desktop 3.16 User Guide 5.3 Sample Session: Loading raster and vector layers Now that you have QGIS installed and a sample dataset available, we will demonstrate a first sample session. In this example, we will visualize a raster and a vector layer. We will use: • the landcover raster layer (qgis_sample_data/raster/landcover.img) • and the lakes vector layer (qgis_sample_data/gml/lakes.gml) Where qgis_sample_data represents the path to the unzipped dataset. 1. Start QGIS as seen in Starting and stopping QGIS. 2. To load the files in QGIS: 1. Click on the Open Data Source Manager icon. The Data Source Manager should open in Browser mode. 2. Browse to the folder qgis_sample_data/raster/ 3. Select the ERDAS IMG file landcover.img and double-click it. The landcover layer is added in the background while the Data Source Manager window remains open. Obr. 5.1: Adding data to a new project in QGIS 4. To load the lakes data, browse to the folder qgis_sample_data/gml/, and double-click the lakes.gml file to open it. 5. A Coordinate Reference System Selector dialog opens. In the Filter menu, type 2964, filtering the list of Coordinate Reference Systems below. 5.3. Sample Session: Loading raster and vector layers 13 QGIS Desktop 3.16 User Guide Obr. 5.2: Select the Coordinate Reference System of data 6. Select the NAD27 / Alaska Albers entry 7. Click OK 8. Close the Data Source Manager window You now have the two layers available in your project in some random colours. Let’s do some customization on the lakes layer. 1. Select the Zoom In tool on the Navigation toolbar 2. Zoom to an area with some lakes 3. Double-click the lakes layer in the map legend to open the Properties dialog 4. To change the lakes color: 1. Click on the Symbology tab 2. Select blue as fill color. 14 Kapitola 5. Začínáme QGIS Desktop 3.16 User Guide Obr. 5.3: Selecting Lakes color 3. Press OK. Lakes are now displayed in blue in the map canvas. 5. To display the name of the lakes: 1. Reopen the lakes layer Properties dialog 2. Click on the Labels tab 3. Select Single labels in the drop-down menu to enable labeling. 4. From the Label with list, choose the NAMES field. 5.3. Sample Session: Loading raster and vector layers 15 QGIS Desktop 3.16 User Guide Obr. 5.4: Showing Lakes names 5. Press Apply. Names will now load over the boundaries. 6. You can improve readability of the labels by adding a white buffer around them: 1. Click the Buffer tab in the list on the left 2. Check Draw text buffer 3. Choose 3 as buffer size 4. Click Apply 5. Check if the result looks good, and update the value if needed. 6. Finally click OK to close the Layer Properties dialog and apply the changes. Let’s now add some decorations in order to shape the map and export it out of QGIS: 1. Select View ► Decorations ► Scale Bar menu 2. In the dialog that opens, check Enable Scale Bar option 3. Customize the options of the dialog as you want 4. Press Apply 5. Likewise, from the decorations menu, add more items (north arrow, copyright…) to the map canvas with custom properties. 6. Click Project ► Import/Export ► Export Map to Image… 7. Press Save in the opened dialog 8. Select a file location, a format and confirm by pressing Save again. 16 Kapitola 5. Začínáme QGIS Desktop 3.16 User Guide 9. Press Project ► Save… to store your changes as a .qgz project file. That’s it! You can see how easy it is to visualize raster and vector layers in QGIS, configure them and generate your map in an image format you can use in other softwares. Let’s move on to learn more about the available functionality, features and settings, and how to use them. Poznámka: To continue learning QGIS through step-by-step exercises, follow the Training manual. 5.3. Sample Session: Loading raster and vector layers 17 QGIS Desktop 3.16 User Guide 18 Kapitola 5. Začínáme KAPITOLA 6 Working with Project Files 6.1 Introducing QGIS projects The state of your QGIS session is called a project. QGIS works on one project at a time. A settings can be project-specific or an application-wide default for new projects (see section Možnosti). QGIS can save the state of your workspace into a QGIS project file using the menu options Project ► Save or Project ► Save As…. Poznámka: If the project has been modified the * symbol will appear in the title bar and QGIS will, by default, ask you if you would like to save the changes. This behavior is controlled by the Prompt to save project and data source changes when required setting under Settings ► Options ► General. You can load existing projects into QGIS from the Browser panel or by through Project ► Open…, Project ► New from template or Project ► Open Recent ►. At startup, a list of Project Templates and Recent Projects are displayed, including screenshots, names and file paths (for up to ten projects). The Recent Projects list is handy to access recently used projects. Double-click an entry to open the project or project template. You can also add a layer to create a new project automatically. The lists will then disappear, giving way to the map canvas. If you want to clear your session and start fresh, go to Project ► New. This will prompt you to save the existing project if changes have been made since it was opened or last saved. When you open a fresh project, the title bar will show Untitled Project until you save it. 19 QGIS Desktop 3.16 User Guide Obr. 6.1: Starting a new project in QGIS The information saved in a project file includes: • Layers added • Which layers can be queried • Layer properties, including symbolization and styles • Projection for the map view • Last viewed extent • Print layouts • Print layout elements with settings • Print layout atlas settings • Digitizing settings • Table Relations • Project Macros • Project default styles • Plugins settings • QGIS Server settings from the OWS settings tab in the Project properties • Queries stored in the DB Manager The project file is saved in XML format (see QGS/QGZ - The QGIS Project File Format). This means that it is possible to edit the file outside of QGIS if you know what you are doing. The project file format has been updated several times. Project files from older QGIS versions may not work properly any more. 20 Kapitola 6. Working with Project Files QGIS Desktop 3.16 User Guide Poznámka: By default, QGIS will warn you of version differences. This behavior is controlled in the General tab of Settings ► Options ( Warn when opening a project file saved with an older version of QGIS). Whenever you save a .qgs project file in QGIS, a backup of the file is created in the same directory as the project file, with the extension .qgs~. The extension for QGIS projects is .qgs but when saving from QGIS, the default is to save using a compressed format with the .qgz extension. The .qgs file is embedded in the .qgz file (a zip archive), together with its associated sqlite database (.qgd) for auxiliary data. You can get to these files by unzipping the .qgz file. Poznámka: The Auxiliary Storage Properties mechanism makes a zipped project particularly useful, since it embeds auxiliary data. Projects can also be saved/loaded to/from a PostgreSQL database using the following Project menu items: • Project ► Open from • Project ► Save to Both menu items have a sub-menu with a list of extra project storage implementations (PostgreSQL and GeoPackage). Clicking the action will open a dialog to pick a GeoPackage connection and project or a PostgreSQL connection, schema and project. Projects stored in Geopackage or PostgreSQL can also be loaded through the QGIS browser panel, either by double-clicking them or by dragging them to the map canvas. 6.2 Handling broken file paths When opening a project, QGIS may fail to reach some data sources due to unavailable service/database, or to a renamed or moved file. QGIS then opens the Handle Unavailable Layers dialog, referencing the unfound layers. You can: • Double-click in the Datasource field, adjust the path of each layer and click Apply changes; • Select a row, press Browse to indicate the correct location and click Apply changes; • Press Auto-Find to browse the folders and try to automatically fix all or selected broken path(s). Be aware that the browsing may take some time. • Ignore the message and open your project with the broken path(s) by clicking Keep Unavailable Layers. Your layer is then displayed in the Layers panel, but without any data until you fix the path using the Unavailable layer! icon next to it in the Layers panel, or Repair Data Source… in the layer contextual menu. With the Repair Data Source… tool, once a layer path has been fixed, QGIS scans through all other broken paths and tries to auto-fix those that have the same broken file path. • Remove Unavailable Layers from the project. 6.2. Handling broken file paths 21 QGIS Desktop 3.16 User Guide 6.3 Generating output There are several ways to generate output from your QGIS session. We have already discussed saving as a project file in Introducing QGIS projects. Other ways to produce output files are: • Creating images: Project ► Import/Export ► Export Map to Image… outputs the map canvas rendering to an image format (PNG, JPG, TIFF…) at custom scale, resolution, size, … Georeferencing the image is possible. See Exporting the map view for more details. • Exporting to PDF files: Project ► Import/Export ► Export Map to PDF… outputs the map canvas rendering to PDF at custom scale, resolution, and with some advanced settings (simplification, georeferencing, …). See Exporting the map view for more details. • Exporting to DXF files: Project ► Import/Export ► Export Project to DXF… opens a dialog where you can define the ‚Symbology mode‘, the ‚Symbology scale‘ and vector layers you want to export to DXF. Through the ‚Symbology mode‘, symbols from the original QGIS Symbology can be exported with high fidelity (see section Creating new DXF files). • Designing maps: Project ► New Print Layout… opens a dialog where you can layout and print the current map canvas (see section Laying out the maps). 22 Kapitola 6. Working with Project Files KAPITOLA 7 QGIS GUI The QGIS graphical user interface (GUI) is shown in the figure below (the numbers 1 through 5 in yellow circles indicate important elements of the QGIS GUI, and are discussed below). Obr. 7.1: QGIS uživatelské rozhraní se vzorovými daty Alaska Poznámka: Vzhled Vašeho okna (záhlaví atd.) se může lišit v závislosti na Vašem operačním systému a správci okna. The main QGIS GUI (Obr. 7.1) consists of five components / component types: 1. Menu Bar 2. Toolbars 3. Panels 4. Map View 23 QGIS Desktop 3.16 User Guide 5. Status Bar Scroll down for detailed explanations of these. 7.1 Menu lišta The Menu bar provides access to QGIS functions using standard hierarchical menus. The Menus, their options, associated icons and keyboard shortcuts are described below. The keyboard shortcuts can be reconfigured (Settings ► Keyboard Shortcuts). Most menu options have a corresponding tool and vice-versa. However, the Menus are not organized exactly like the toolbars. The locations of menu options in the toolbars are indicated below in the table. Plugins may add new options to Menus. For more information about tools and toolbars, see Nástrojové lišty. Poznámka: QGIS is a cross-platform application. Tools are generally available on all platforms, but they may be placed in different menus, depending on the operating systems. The lists below show the most common locations, including known variations. 7.1.1 Projekt The Project menu provides access and exit points for project files. It provides tools to: • Create a New project file from scratch or use another project file as a template (see Project files options for template configuration) • Open… a project from a file, a GeoPackage or a PostgreSQL database • Close a project or revert it to its last saved state • Save a project in .qgs or .qgz file format, either as a file or within a GeoPackage or PostgreSQL database • Export the map canvas to different formats or use a print layout for more complex output • Set project properties and snapping options for geometry editing. 24 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Menu Možnosti Zkratka Panel nástrojů Reference Nové Ctrl+N Projekt Introducing QGIS projects Nový ze šablony ► Introducing QGIS projects Open… Ctrl+O Projekt Introducing QGIS projects Open from ► ► GeoPackage… Introducing QGIS projects ► PostgreSQL… Introducing QGIS projects Otevřít nedávné ► Alt+J + R Introducing QGIS projects Close Introducing QGIS projects Uložit Ctrl+S Projekt Introducing QGIS projects Uložit jako… Ctrl+Shift+S Projekt Introducing QGIS projects Save to ► ► Templates… Introducing QGIS projects ► GeoPackage… Introducing QGIS projects ► PostgreSQL… Introducing QGIS projects Revert… Vlastnosti… Ctrl+Shift+P Vlastnosti projektu Možnosti přichytávání… Nastavení přichytávací tolerance a vyhledání poloměru Import/Export ► ► Export Map to Image… Exporting the map view ► Export Map to PDF… Exporting the map view ► Export Project to DXF… Creating new DXF files ► Import Layers from DWG/DXF… Importing a DXF or DWG file New Print Layout… Ctrl+P Projekt Laying out the maps New Report… Creating a Report Layout Manager… Projekt Laying out the maps Layouts ► Laying out the maps Ukončit QGIS Ctrl+Q Pod macOS, Ukončit QGIS příkaz odpovídá QGIS ► Ukončit QGIS (Cmd+Q). 7.1.2 Editovat The Edit menu provides most of the native tools needed to edit layer attributes or geometry (see Editování for details). Menu Možnosti Zkratka Panel nástrojů Reference Zpět Ctrl+Z Digitalizace Zpět a znovu Znovu Ctrl+Shift+Z Digitalizace Zpět a znovu Vyjmout prvky Ctrl+X Digitalizace Cutting, Copying and Pasting Features Kopírovat prvky Ctrl+C Digitalizace Cutting, Copying and Pasting Features continues on next page 7.1. Menu lišta 25 QGIS Desktop 3.16 User Guide Tabulka 7.1 – pokračujte na předchozí stránce Menu Možnosti Zkratka Panel nástrojů Reference Vložit prvky Ctrl+V Digitalizace Cutting, Copying and Pasting Features Paste Features as ► Working with the Attribute Table ► New Vector Layer… Working with the Attribute Table ► Temporary Scratch Layer… Ctrl+Alt+V Working with the Attribute Table Vybrat ► Selecting features ► Select Feature(s) Selection Selecting features ► Select Features by Polygon Selection Selecting features ► Select Features by Freehand Selection Selecting features ► Select Features by Radius Selection Selecting features ► Select Features by Value… F3 Selection Selecting features ► Select Features by Expression… Ctrl+F3 Selection Selecting features ► Deselect Features from All Layers Ctrl+Alt+A Selection Selecting features ► Deselect Features from the Current Active Layer Ctrl+Shift+A Selection Selecting features ► Reselect Features Selecting features ► Select All Features Ctrl+A Selection Selecting features ► Invert Feature Selection Selection Selecting features Add Record Ctrl+. Digitalizace Add Point Feature Ctrl+. Digitalizace Adding Features Add Line Feature Ctrl+. Digitalizace Adding Features Add Polygon Feature Ctrl+. Digitalizace Adding Features Přidat kruhový řetězec Shape Digitizing Add Circular string Přidat kruhový řeězec podle poloměru Shape Digitizing Add Circular string Add Circle ► Shape Digitizing Draw Circles ► Add Circle from 2 Points Shape Digitizing Draw Circles ► Add Circle from 3 Points Shape Digitizing Draw Circles ► Add Circle from 3 Tangents Shape Digitizing Draw Circles ► Add Circle from 2 Tangents and a Point Shape Digitizing Draw Circles ► Add Circle by a Center Point and Another Point Shape Digitizing Draw Circles continues on next page 26 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Tabulka 7.1 – pokračujte na předchozí stránce Menu Možnosti Zkratka Panel nástrojů Reference Add Rectangle ► Shape Digitizing Draw Rectangles ► Add Rectangle from Extent Shape Digitizing Draw Rectangles ► Add Rectangle from Center and a Point Shape Digitizing Draw Rectangles ► Add Rectangle from 3 Points (Distance from 2nd and 3rd point) Shape Digitizing Draw Rectangles ► Add Rectangle from 3 Points (Distance from projected point on segment p1 and p2) Shape Digitizing Draw Rectangles Add Regular Polygon ► Shape Digitizing Draw Regular Polygons ► Add Regular Polygon from Center and a Point Shape Digitizing Draw Regular Polygons ► Add Regular Polygon from Center and a Corner Shape Digitizing Draw Regular Polygons ► Add Regular Polygon from 2 Points Shape Digitizing Draw Regular Polygons Add Ellipse ► Shape Digitizing Draw Ellipses ► Add Ellipse from Center and 2 Points Shape Digitizing Draw Ellipses ► Add Ellipse from Center and a Point Shape Digitizing Draw Ellipses ► Add Ellipse from Extent Shape Digitizing Draw Ellipses ► Add Ellipse from Foci Shape Digitizing Draw Ellipses Add Annotation ► Anotační nástroje ► Text Annotation Atributy Anotační nástroje ► Form Annotation Atributy Anotační nástroje ► HTML Annotation Atributy Anotační nástroje ► SVG Annotation Atributy Anotační nástroje Přesunout prvek/(prvky) Advanced Digitizing Move Feature(s) Copy and Move Feature(s) Advanced Digitizing Move Feature(s) Delete Selected Digitalizace Deleting Selected Features Upravit atributy vybraných prvků Digitalizace Editing attribute values Rotovat prvek/(prvky) Advanced Digitizing Rotovat prvek(prvky) continues on next page 7.1. Menu lišta 27 QGIS Desktop 3.16 User Guide Tabulka 7.1 – pokračujte na předchozí stránce Menu Možnosti Zkratka Panel nástrojů Reference Zjednodušit prvek Advanced Digitizing Zjednodušit prvek Přidat prstenec Advanced Digitizing Přidat prstenec Přidat část Advanced Digitizing Přidat část Vyplnit prstenec Advanced Digitizing Fill Ring Smazat prstenec Advanced Digitizing Smazat prstenec Smazat část Advanced Digitizing Smazat část Změnit tvar prvků Advanced Digitizing Změnit tvar prvků Odsazení křivky Advanced Digitizing Odsazení křivek Rozdělit objekt Advanced Digitizing Rozdělit objekt Rozdělit části Advanced Digitizing Split parts Sloučit vybrané prvky Advanced Digitizing Sloučit vybrané prvky Merge Attributes of Selected Features Advanced Digitizing Sloučit atributy vybraných prvků Vertex Tool (All Layers) Digitalizace Vertex tool Vertex Tool (Current Layer) Digitalizace Vertex tool Rotovat symboly bodů Advanced Digitizing Rotovat symboly bodů Odsazení bodových symbolů Advanced Digitizing Offset Point Symbols Reverse Line Advanced Digitizing Reverse Line Trim/extend Feature Advanced Digitizing Trim/Extend Feature Tools that depend on the selected layer geometry type i.e. point, polyline or polygon, are activated accordingly: Menu Možnosti Bod Polyline Polygon Move Feature(s) Copy and Move Feature(s) 28 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide 7.1.3 Zobrazit The map is rendered in map views. You can interact with these views using the View tools (see Working with the map canvas for more information). For example, you can: • Create new 2D or 3D map views next to the main map canvas • Zoom or pan to any place • Query displayed features‘ attributes or geometry • Enhance the map view with preview modes, annotations or decorations • Access any panel or toolbar The menu also allows you to reorganize the QGIS interface itself using actions like: • Toggle Full Screen Mode: covers the whole screen while hiding the title bar • Toggle Panel Visibility: shows or hides enabled panels - useful when digitizing features (for maximum canvas visibility) as well as for (projected/recorded) presentations using QGIS‘ main canvas • Toggle Map Only: hides panels, toolbars, menus and status bar and only shows the map canvas. Combined with the full screen option, it makes your screen display only the map Menu Možnosti Zkratka Panel nástrojů Reference New Map View Ctrl+M Zobrazení mapy New 3D Map View Ctrl+Alt+M 3D Map View Posunout mapu Map Navigation Zooming and Panning Posunout mapu na výběr Map Navigation Přiblížit Ctrl+Alt++ Map Navigation Zooming and Panning Oddálit Ctrl+Alt+- Map Navigation Zooming and Panning Identifikovat prvky Ctrl+Shift+I Atributy Identifying Features Měřit ► Atributy Měření ► Measure Line Ctrl+Shift+M Atributy Měření ► Measure Area Ctrl+Shift+J Atributy Měření ► Measure Angle Atributy Měření Statistický souhrn Atributy Statistical Summary Panel Přiblížit na rozměry okna Ctrl+Shift+F Map Navigation Zooming and Panning Přiblížit na výběr Ctrl+J Map Navigation Zooming and Panning Přiblížit na vsrtvu Map Navigation Zooming and Panning Zoom To Native Resolution (100%) Map Navigation Zooming and Panning continues on next page 7.1. Menu lišta 29 QGIS Desktop 3.16 User Guide Tabulka 7.2 – pokračujte na předchozí stránce Menu Možnosti Zkratka Panel nástrojů Reference Zvětšit podle posledního výřezu Map Navigation Zooming and Panning Přiblížit na další Map Navigation Zooming and Panning Dekorace ► Alt+V + D Dekorace ► Grid… Mřížka ► Scale Bar… Měřítko ► Image… Image Decoration ► North Arrow… Směrová růžice ► Title Label… Title Label ► Copyright Label… Copyright Label ► Layout Extents… Layout Extents Režim náhledu ► ► Normal ► Simulate Photocopy (Grayscale) ► Simulate Fax (Mono) ► Simulate Color Blindness (Protanope) ► Simulate Color Blindness (Deuteronope) Show Map Tips Atributy Display Properties New Spatial Bookmark… Ctrl+B Map Navigation Prostorové záložky Show Spatial Bookmarks Ctrl+Shift+B Map Navigation Prostorové záložky Show Spatial Bookmark Manager Prostorové záložky Refresh F5 Map Navigation Zobrazit všechny vrstvy Ctrl+Shift+U Layers Panel Skrýt všechny vrstvy Ctrl+Shift+H Layers Panel Show Selected Layers Layers Panel Hide Selected Layers Layers Panel Toggle Selected Layers Layers Panel Toogle Selected Layers Independently Layers Panel Hide Deselected Layers Layers Panel Panely ► Panely a nástrojové lišty ► Advanced Digitizing The Advanced Digitizing panel ► Browser The Browser Panel ► Browser (2) The Browser Panel ► GPS Information Live GPS tracking ► GRASS Tools GRASS GIS Integration ► Layer Order Layer Order Panel ► Layer Styling Layer Styling Panel continues on next page 30 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Tabulka 7.2 – pokračujte na předchozí stránce Menu Možnosti Zkratka Panel nástrojů Reference ► Layers Layers Panel ► Log Messages Log Messages Panel ► Overview Overview Panel ► Processing Toolbox The Toolbox ► Results Viewer The Toolbox ► Snapping and Digitizing Options Nastavení přichytávací tolerance a vyhledání poloměru ► Spatial Bookmark Manager Prostorové záložky ► Statistics Statistical Summary Panel ► Tile Scale Sady dlaždic ► Undo/Redo Undo/Redo Panel Nástrojové lišty ► Panely a nástrojové lišty ► Advanced Digitizing Toolbar Advanced digitizing ► Attributes Toolbar ► Data Source Manager Toolbar Managing Data Source ► Database Toolbar ► Digitizing Toolbar Digitizing an existing layer ► Help Toolbar ► Label Toolbar The Label Toolbar ► Manage Layers Toolbar Managing Data Source ► Map Navigation Toolbar ► Plugins Toolbar Zásuvné moduly ► Project Toolbar ► Raster Toolbar ► Selection Toolbar Selecting features ► Shape Digitizing Toolbar Shape digitizing ► Snapping Toolbar Nastavení přichytávací tolerance a vyhledání poloměru ► Vector Toolbar ► Web Toolbar ► GRASS GRASS GIS Integration Přepnout režim celé obrazovky F11 Toggle Panel Visibility Ctrl+Tab Toggle Map Only Ctrl+Shift+Tab Under Linux KDE, Panels ►, Toolbars ► and Toggle Full Screen Mode are in the Settings menu. 7.1.4 Vrstva The Layer menu provides a large set of tools to create new data sources, add them to a project or save modifications to them. Using the same data sources, you can also: • Duplicate a layer to generate a copy where you can modify the name, style (symbology, labels, …), joins, … The copy uses the same data source as the original. • Copy and Paste layers or groups from one project to another as a new instance whose properties can be modified independently. As for Duplicate, the layers are still based on the same data source. • or Embed Layers and Groups… from another project, as read-only copies which you cannot modify (see Vnořování projektů) 7.1. Menu lišta 31 QGIS Desktop 3.16 User Guide The Layer menu also contains tools to configure, copy or paste layer properties (style, scale, CRS…). Menu Možnosti Zkratka Panel nástrojů Reference Data Source Manager Ctrl+L Data Source Manager Opening Data Vytvořit vrstvu ► Creating new vector layers ► New GeoPackage Layer… Ctrl+Shift+N Data Source Manager Creating a new GeoPackage layer ► New Shapefile Layer… Data Source Manager Creating a new Shapefile layer ► New SpatiaLite Layer… Data Source Manager Creating a new SpatiaLite layer ► New Temporary Scratch Layer… Data Source Manager Creating a new Temporary Scratch Layer ► New Virtual Layer… Data Source Manager Creating virtual layers Přidat vrstvu ► Opening Data ► Add Vector Layer…… Ctrl+Shift+V Manage Layers Loading a layer from a file ► Add Raster Layer… Ctrl+Shift+R Manage Layers Loading a layer from a file ► Add Mesh Layer… Manage Layers Loading a mesh layer ► Add Delimited Text Layer… Ctrl+Shift+T Manage Layers Importing a delimited text file ► Add PostGIS Layer… Ctrl+Shift+D Manage Layers Database related tools ► Add SpatiaLite Layer… Ctrl+Shift+L Manage Layers SpatiaLite Layers ► Add MSSQL Spatial Layer… Manage Layers Database related tools ► Add Oracle Spatial Layer… Manage Layers Database related tools ► Add DB2 Spatial Layer… Ctrl+Shift+2 Manage Layers Database related tools ► Add/Edit Virtual Layer… Manage Layers Creating virtual layers ► Add WMS/WMTS Layer… Ctrl+Shift+W Manage Layers Loading WMS/WMTS Layers ► Add XYZ Layer… Using XYZ Tile services ► Add ArcGIS Map Service Layer… Manage Layers ► Add WCS Layer… Manage Layers WCS Client ► Add WFS Layer… Manage Layers WFS and WFS-T Client ► Add ArcGIS Feature Service Layer… Manage Layers ► Add Vector Tile Layer… Přiložit vrstvy a skupiny… Vnořování projektů Přidat ze souboru definice vrstvy… Layer definition file Copy Style Save and Share Layer Properties continues on next page 32 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Tabulka 7.3 – pokračujte na předchozí stránce Menu Možnosti Zkratka Panel nástrojů Reference Paste Style Save and Share Layer Properties Copy Layer Paste Layer/Group Otevřít atributovou tabulku F6 Atributy Working with the Attribute Table Přepnout editaci Digitalizace Digitizing an existing layer Uložit změny vrstvy Digitalizace Saving Edited Layers Aktuální změny ► Digitalizace Saving Edited Layers ► Save for Selected Layer(s) Digitalizace Saving Edited Layers ► Rollback for Selected Layer(s) Digitalizace Saving Edited Layers ► Cancel for Selected Layer(s) Digitalizace Saving Edited Layers ► Save for all Layers Digitalizace Saving Edited Layers ► Rollback for all Layers Digitalizace Saving Edited Layers ► Cancel for all Layers Digitalizace Saving Edited Layers Save As… Creating new layers from an existing layer Save As Layer Definition File… Layer definition file Odstranit vrstvu/skupinu Ctrl+D Duplikovat vrstvu(vrstvy) Nastavit měřítko viditelnosti vrstvy(vrstev) Nastavit SRS vrstvy/(vrstev) Ctrl+Shift+C Layer Coordinate Reference Systems Nastavit projekt CRS z vrstvy Project Coordinate Reference Systems Layer Properties… The Vector Properties Dialog, Raster Properties Dialog, Mesh Dataset Properties Filtrovat… Ctrl+F Query Builder Tvorba popisků Labels Properties Show in Overview Overview Panel Show All in Overview Overview Panel Hide All from Overview Overview Panel 7.1. Menu lišta 33 QGIS Desktop 3.16 User Guide 7.1.5 Nastavení Menu Možnosti Reference User Profiles ► Working with User Profiles ► default Working with User Profiles ► Open Active Profile Folder Working with User Profiles ► New Profile… Working with User Profiles Style Manager… The Style Manager Custom Projections… Vlastní souřadnicový referenční systém Keyboard Shortcuts… Keyboard shortcuts Interface Customization… Přizpůsobení Možnosti… Možnosti Under Linux KDE, you’ll find more tools in the Settings menu such as Panels ►, Toolbars ► and Toggle Full Screen Mode. 7.1.6 Zásuvné moduly Menu Možnosti Zkratka Panel nástrojů Reference Spravovat a instalovat zásuvné moduly… The Plugins Dialog „ Python Console Ctrl+Alt+P Plugins QGIS Python console Při prvním spuštění QGIS nejsou načteny všechny základní zásuvný moduly. 7.1.7 Vektor This is what the Vector menu looks like if all core plugins are enabled. Menu Možnosti Zkratka Panel nástrojů Reference Check Geometries… Geometry Checker Plugin GPS Tools Alt+O + G Vector GPS Plugin Topology Checker Vector Topology Checker Plugin Geoprocessing Tools ► Alt+O + G ► Buffer… Buffer ► Clip… Clip ► Convex Hull… Convex hull ► Difference… Difference ► Dissolve… Dissolve ► Intersection… Intersection ► Symmetrical Difference… Symmetrical difference ► Union… Union ► Eliminate Selected Polygons… Eliminate selected polygons Geometry Tools ► Alt+O + E ► Centroids… Centroids ► Collect Geometries… Collect geometries continues on next page 34 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Tabulka 7.4 – pokračujte na předchozí stránce Menu Možnosti Zkratka Panel nástrojů Reference ► Extract Vertices… Extract vertices ► Multipart to Singleparts… Multipart to singleparts ► Polygons to Lines… Polygons to lines ► Simplify… Simplify ► Check Validity… Check validity ► Delaunay Triangulation… Delaunay triangulation ► Densify by Count… Densify by count ► Add Geometry Attributes… Add geometry attributes ► Lines to Polygons… Lines to polygons ► Voronoi Polygons… Voronoi polygons Analysis Tools ► Alt+O + A ► Line Intersection… Line intersections ► Mean Coordinate(s)… Mean coordinate(s) ► Basic Statistics for Fields… Basic statistics for fields ► Count Points in Polygon… Count points in polygon ► Distance Matrix… Distance matrix ► List Unique Values… List unique values ► Nearest Neighbour Analysis… Nearest neighbour analysis ► Sum Line Lengths… Sum line lengths Data Management Tools ► Alt+O + D ► Merge Vector Layers… Merge vector layers ► Reproject Layer… Reproject layer ► Create Spatial Index… Create spatial index ► Join Attributes by Location… Join attributes by location ► Split Vector Layer… Split vector layer Research Tools ► Alt+O + R ► Select by Location… Select by location ► Extract Layer Extent… Extract layer extent ► Random Points in Extent… Random points in extent ► Random Points in Layer Bounds… Random points in layer bounds ► Random Points Inside Polygons… Random points inside polygons ► Random Selection… Random selection ► Random Selection Within Subsets… Random selection within subsets ► Regular Points… Regular points By default, QGIS adds Processing algorithms to the Vector menu, grouped by sub-menus. This provides shortcuts for many common vector-based GIS tasks from different providers. If not all these sub-menus are available, enable the Processing plugin in Plugins ► Manage and Install Plugins…. Note that the list of the Vector menu tools can be extended with any Processing algorithms or some external plugins. 7.1.8 Rastr This is what the Raster menu looks like if all core plugins are enabled. Menu Možnosti Zkratka Panel nástrojů Reference Raster calculator… Raster Calculator Zarovnat rastry… Raster Alignment Georeferencer Alt+R + G Raster Georeferencer Analysis ► continues on next page 7.1. Menu lišta 35 QGIS Desktop 3.16 User Guide Tabulka 7.5 – pokračujte na předchozí stránce Menu Možnosti Zkratka Panel nástrojů Reference ► Aspect… Aspect ► Fill nodata… Fill nodata ► Grid (Moving Average)… Grid (Moving average) ► Grid (Data Metrics)… Grid (Data metrics) ► Grid (Inverse Distance to a Power)… Grid (Inverse distance to a power) ► Grid (Nearest Neighbor)… Grid (IDW with nearest neighbor searching) ► Hillshade… Hillshade ► Proximity (Raster Distance)… Proximity (raster distance) ► Roughness… Roughness ► Sieve… Sieve ► Slope… Slope ► Topographic Position Index (TPI)… Topographic Position Index (TPI) ► Terrain Ruggedness Index (TRI)… Terrain Ruggedness Index (TRI) Projections ► ► Assign Projection… Assign projection ► Extract Projection… Extract projection ► Warp (Reproject)… Warp (reproject) Miscellaneous ► ► Build Virtual Raster… Build virtual raster ► Raster Information… Raster information ► Merge… Merge ► Build Overviews (Pyramids)… Build overviews (pyramids) ► Tile Index… Tile index Extraction ► ► Clip Raster by Extent… Clip raster by extent ► Clip Raster by Mask Layer… Clip raster by mask layer ► Contour… Contour Conversion ► ► PCT to RGB… PCT to RGB ► Polygonize (Raster to Vector)… Polygonize (raster to vector) ► Rasterize (Vector to Raster)… Rasterize (vector to raster) ► RGB to PCT… RGB to PCT ► Translate (Convert Format)… Translate (convert format) By default, QGIS adds Processing algorithms to the Raster menu, grouped by sub-menus. This provides a shortcut for many common raster-based GIS tasks from different providers. If not all these sub-menus are available, enable the Processing plugin in Plugins ► Manage and Install Plugins…. Note that the list of the Raster menu tools can be extended with any Processing algorithms or some external plugins. 7.1.9 Databáze This is what the Database menu looks like if all the core plugins are enabled. If no database plugins are enabled, there will be no Database menu. Menu Možnosti Zkratka Panel nástrojů Reference Offline editing… Alt+D + O Offline Editing Plugin ► Convert to Offline Project… Databáze Offline Editing Plugin ► Synchronize Databáze Offline Editing Plugin DB Manager… Databáze DB Manager Plugin 36 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Při prvním spuštění QGIS nejsou načteny všechny základní zásuvný moduly. 7.1.10 Web This is what the Web menu looks like if all the core plugins are enabled. If no web plugins are enabled, there will be no Web menu. Menu Možnosti Zkratka Panel nástrojů Reference MetaSearch ► Alt+W + M MetaSearch Catalog Client ► Metasearch Web MetaSearch Catalog Client ► Help MetaSearch Catalog Client Při prvním spuštění QGIS nejsou načteny všechny základní zásuvný moduly. 7.1.11 Mesh The Mesh menu provides tools needed to manipulate mesh layers. Menu Možnosti Zkratka Panel nástrojů Reference Mesh Calculator… 7.1.12 Zpracování Menu Možnosti Zkratka Panel nástrojů Reference Toolbox Ctrl+Alt+T The Toolbox Grafický modelář… Ctrl+Alt+G The graphical modeler History… Ctrl+Alt+H The history manager Results Viewer Ctrl+Alt+R Configuring external applications Edit Features In-Place The Processing in-place layer modifier Při prvním spuštění QGIS nejsou načteny všechny základní zásuvný moduly. 7.1. Menu lišta 37 QGIS Desktop 3.16 User Guide 7.1.13 Nápověda Menu Možnosti Zkratka Panel nástrojů Reference Obsah nápovědy F1 Nápověda API dokumentace Plugins ► Nahlásit problém Potřebujete komerční podporu? QGIS domovská stránka Ctrl+H Check QGIS Version About QGIS Sustaining Members 7.1.14 QGIS Toto menu je přístupné pod macOS a obsahuje některé OS spojené příkazy. Menu Možnosti Zkratka Preference O QGIS Skrýt QGIS Ukázat vše Skrýt ostatní Ukončit QGIS Cmd+Q Preferences correspond to Settings ► Options, About QGIS corresponds to Help ► About and Quit QGIS corresponds to Project ► Exit QGIS for other platforms. 7.2 Panely a nástrojové lišty From the View menu (or Settings), you can switch QGIS widgets (Panels ►) and toolbars (Toolbars ►) on and off. To (de)activate any of them, right-click the menu bar or toolbar and choose the item you want. Panels and toolbars can be moved and placed wherever you like within the QGIS interface. The list can also be extended with the activation of Core or external plugins. 7.2.1 Nástrojové lišty The toolbars provide access to most of the functions in the menus, plus additional tools for interacting with the map. Each toolbar item has pop-up help available. Hover your mouse over the item and a short description of the tool’s purpose will be displayed. Každou nástrojovou lištou lze pohyboval podle vašich potřeb. Navíc každou lištu lze vypnout pomocí pravého tlačítka myši kontextového menu nebo podržením myši nad nástrojovou lištou. 38 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Obr. 7.2: Nástrojové lišty menu Tip: Obnovení panelu nástrojů If you have accidentally hidden a toolbar, you can get it back using View ► Toolbars ► (or Settings ► Toolbars ►). If, for some reason, a toolbar (or any other widget) totally disappears from the interface, you’ll find tips to get it back at restoring initial GUI. 7.2. Panely a nástrojové lišty 39 QGIS Desktop 3.16 User Guide 7.2.2 Panely QGIS provides many panels. Panels are special widgets that you can interact with (selecting options, checking boxes, filling values…) to perform more complex tasks. Obr. 7.3: Panelové menu Below is a list of the default panels provided by QGIS: • Výhodná digitalizace • the Browser Panel 40 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide • the GPS informační panel • the Identifikační panel • Panel pořadí vrstev • the Layer Styling Panel • the Layers Panel • the Log Messages Panel • the Overview Panel • the Toolbox zpracování • the Result Viewer Panel • the Spatial Bookmark Manager Panel • the Statistics Panel • the Měřítkový panel • the Undo/Redo Panel 7.3 Zobrazení mapy 7.3.1 Exploring the map view The map view (also called Map canvas) is the „business end“ of QGIS — maps are displayed in this area, in 2D. The map displayed in this window will reflect the rendering (symbology, labeling, visibilities…) you applied to the layers you have loaded. It also depends on the layers and the project’s Coordinate Reference System (CRS). When you add a layer (see e.g. Opening Data), QGIS automatically looks for its CRS. If a different CRS is set by default for the project (see Project Coordinate Reference Systems) then the layer extent is „on-the-fly“ translated to that CRS, and the map view is zoomed to that extent if you start with a blank QGIS project. If there are already layers in the project, no map canvas resize is performed, so only features falling within the current map canvas extent will be visible. Click on the map view and you should be able to interact with it: • it can be panned, shifting the display to another region of the map: this is performed using the Pan Map tool, the arrow keys, moving the mouse while any of the Space key, the middle mouse button or the mouse wheel is held down. • it can be zoomed in and out, with the dedicated Zoom In and Zoom Out tools. Hold the Alt key to switch from one tool to the other. Zooming is also performed by rolling the wheel forward to zoom in and backwards to zoom out. The zoom is centered on the mouse cursor position. You can customize the Zoom factor under the Settings ► Options ► Map tools menu. • it can be zoomed to the full extent of all loaded layers ( Zoom Full ), to a layer extent ( Zoom to Layer ) or to the extent of selected features ( Zoom to Selection ) • you can navigate back/forward through the canvas view history with the Zoom Last and Zoom Next buttons or using the back/forward mouse buttons. Right-click over the map and you should be able to Copy coordinates of the clicked point in the map CRS, in WGS84 or in a custom CRS. The copied information can then be pasted in an expression, a script, text editor or spreadsheet… By default, QGIS opens a single map view (called „main map“), which is tightly bound to the Layers panel; the main map automatically reflects the changes you do in the Layers panel area. But it is also possible to open additional map 7.3. Zobrazení mapy 41 QGIS Desktop 3.16 User Guide views whose content could diverge from the Layers panel current state. They can be of 2D or 3D type, show different scale or extent, or display a different set of the loaded layers thanks to map themes. 7.3.2 Setting additional map views To add a new map view, go to View ► New Map View. A new floating widget, mimicking the main map view’s rendering, is added to QGIS. You can add as many map views as you need. They can be kept floating, placed side by side or stacked on top of each other. Obr. 7.4: Multiple map views with different settings At the top of an additional map canvas, there’s a toolbar with the following capabilities: • Zoom Full , Zoom to Selection and Zoom to Layer to navigate within the view • Set View Theme to select the map theme to display in the map view. If set to (none), the view will follow the Layers panel changes. • View settings to configure the map view: – Synchronize view center with main map: syncs the center of the map views without changing the scale. This allows you to have an overview style or magnified map which follows the main canvas center. – Synchronize view to selection: same as zoom to selection – Scale – Rotation – Magnification – Synchronize scale with the main map scale. A Scale factor can then be applied, allowing you to have a view which is e.g. always 2x the scale of the main canvas. – Show annotations 42 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide – Show cursor position – Show main canvas extent – Show labels: allows to hide labels regardless they are set in the displayed layers‘ properties – Change map CRS… – Rename view… 7.3.3 Exporting the map view Maps you make can be layout and exported to various formats using the advanced capabilities of the print layout or report. It’s also possible to directly export the current rendering, without a layout. This quick „screenshot“ of the map view has some convenient features. To export the map canvas with the current rendering: 1. Go to Project ► Import/Export 2. Depending on your output format, select either • Export Map to Image… • or Export Map to PDF… The two tools provide you with a common set of options. In the dialog that opens: Obr. 7.5: The Save Map as Image dialog 1. Choose the Extent to export: it can be the current view extent (the default), the extent of a layer or a custom extent drawn over the map canvas. Coordinates of the selected area are displayed and manually editable. 2. Enter the Scale of the map or select it from the predefined scales: changing the scale will resize the extent to export (from the center). 3. Set the Resolution of the output 7.3. Zobrazení mapy 43 QGIS Desktop 3.16 User Guide 4. Control the Output width and Output height in pixels of the image: based by default on the current resolution and extent, they can be customized and will resize the map extent (from the center). The size ratio can be locked, which may be particularly convenient when drawing the extent on the canvas. 5. Draw active decorations: in use decorations (scale bar, title, grid, north arrow…) are exported with the map 6. Draw annotations to export any annotation 7. Append georeference information (embedded or via world file): depending on the output format, a world file of the same name (with extension PNGW for PNG images, JPGW for JPG, …) is saved in the same folder as your image. The PDF format embeds the information in the PDF file. 8. When exporting to PDF, more options are available in the Save map as PDF… dialog: Obr. 7.6: The Save Map as PDF dialog • Export RDF metadata of the document such as the title, author, date, description… • Create Geospatial PDF (GeoPDF): Generate a georeferenced PDF file (requires GDAL version 3 or later). You can: – Choose the GeoPDF Format – Include vector feature information in the GeoPDF file: will include all the geometry and attribute information from features visible within the map in the output GeoPDF file. 44 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Poznámka: Since QGIS 3.10, with GDAL 3 a GeoPDF file can also be used as a data source. For more on GeoPDF support in QGIS, see https://north-road.com/2019/09/03/qgis-3-10-loves-geopdf/. • Rasterize map • Simplify geometries to reduce output file size: Geometries will be simplified while exporting the map by removing vertices that are not discernably different at the export resolution (e.g. if the export resolution is 300 dpi, vertices that are less than 1/600 inch apart will be removed). This can reduce the size and complexity of the export file (very large files can fail to load in other applications). • Set the Text export: controls whether text labels are exported as proper text objects (Always export texts as text objects) or as paths only (Always export texts as paths). If they are exported as text objects then they can be edited in external applications (e.g. Inkscape) as normal text. BUT the side effect is that the rendering quality is decreased, AND there are issues with rendering when certain text settings like buffers are in place. That’s why exporting as paths is recommended. 9. Click Save to select file location, name and format. When exporting to image, it’s also possible to Copy to clipboard the expected result of the above settings and paste the map in another application such as LibreOffice, GIMP… 7.4 3D Map View 3D visualization support is offered through the 3D map view. You create and open a 3D map view via View ► New 3D Map View. A floating QGIS panel will appear. The panel can be docked. To begin with, the 3D map view has the same extent and view as the 2D main map canvas. A set of navigation tools are available to turn the view into 3D. 7.4. 3D Map View 45 QGIS Desktop 3.16 User Guide Obr. 7.7: The 3D Map View dialog The following tools are provided at the top of the 3D map view panel: • Camera control : moves the view, keeping the same angle and direction of the camera • Zoom Full : resizes the view to the whole layers‘ extent • Toggle on-screen notification : shows/hides the navigation widget (that is meant to ease controlling of the map view) • Identify : returns information on the clicked point of the terrain or the clicked 3D feature(s) – More details at Identifying Features • Measurement line : measures the horizontal distance between points • Animations : shows/hides the animation player widget • Save as image… : exports the current view to an image file format • Export 3D Scene… : exports the current view as a 3D scene (.obj file), allowing post-processing in applications like Blender… The terrain and vector features are exported as 3D objects. The export settings, overriding the layers properties or map view configuration, include: – Scene name and destination Folder – Terrain resolution – Terrain texture resolution – Model scale 46 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide – Smooth edges – Export normals – Export textures • Set View Theme : Allows you to select the set of layers to display in the map view from predefined map themes. • Configure the map view settings 7.4.1 Navigation options To explore the map view in 3D: • Tilt the terrain (rotating it around a horizontal axis that goes through the center of the window) – Press the Tilt up and Tilt down tools – Press Shift and use the up/down keys – Drag the mouse forward/backward with the middle mouse button pressed – Press Shift and drag the mouse forward/backward with the left mouse button pressed • Rotate the terrain (around a vertical axis that goes through the center of the window) – Turn the compass of the navigation widget to the watching direction – Press Shift and use the left/right keys – Drag the mouse right/left with the middle mouse button pressed – Press Shift and drag the mouse right/left with the left mouse button pressed • Change the camera position (and the view center), moving it around in a horizontal plan – Drag the mouse with the left mouse button pressed, and the Camera control button enabled – Press the directional arrows of the navigation widget – Use the up/down/left/right keys to move the camera forward, backward, right and left, respectively • Change the camera altitude: press the Page Up/Page Down keys • Change the camera orientation (the camera is kept at its position but the view center point moves) – Press Ctrl and use the arrow keys to turn the camera up, down, left and right – Press Ctrl and drag the mouse with the left mouse button pressed • Zoom in and out – Press the corresponding Zoom In and Zoom Out tools of the navigation widget – Scroll the mouse wheel (keep Ctrl pressed results in finer zooms) – Drag the mouse with the right mouse button pressed to zoom in (drag down) and out (drag up) To reset the camera view, click the Zoom Full button on the top of the 3D canvas panel. 7.4. 3D Map View 47 QGIS Desktop 3.16 User Guide 7.4.2 Creating an animation An animation is based on a set of keyframes - camera positions at particular times. To create an animation: 1. Toggle on the Animations tool, displaying the animation player widget 2. Click the Add keyframe button and enter a Keyframe time in seconds. The Keyframe combo box now displays the time set. 3. Using the navigation tools, move the camera to the position to associate with the current keyframe time. 4. Repeat the previous steps to add as many keyframes (with time and position) as necessary. 5. Click the button to preview the animation. QGIS will generate scenes using the camera positions/rotations at set times, and interpolating them in between these keyframes. Various Interpolation modes for animations are available (eg, linear, inQuad, outQuad, inCirc… – more details at https://doc.qt.io/qt-5/qeasingcurve.html# EasingFunction-typedef). The animation can also be previewed by moving the time slider. Keeping the Repeat button pressed will repeatedly run the animation while clicking stops a running animation. It is possible to browse the different views of the camera, using the Keyframe list. Whenever a time is active, changing the map view will automatically update the associated position. You can also Edit keyframe (time only) or Remove keyframe . Click Export animation frames to generate a series of images representing the scene. Other than the filename Template and the Output directory, you can set the number of Frames per second, the Output width and Output height. 7.4.3 Scene Configuration The 3D map view opens with some default settings you can customize. To do so, click the Configure… button at the top of the 3D canvas panel to open the 3D configuration window. Obr. 7.8: The 3D Map Configuration dialog 48 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide In the 3D Configuration window there are various options to fine-tune the 3D scene: Terrain • Terrain: Before diving into the details, it is worth noting that the terrain in a 3D view is represented by a hierarchy of terrain tiles and as the camera moves closer to the terrain, existing tiles that do not have sufficient details are replaced by smaller tiles with more details. Each tile has mesh geometry derived from the elevation raster layer and texture from 2D map layers. – The elevation terrain Type can be: ∗ a Flat terrain ∗ a loaded DEM (Raster Layer) ∗ an Online service, loading elevation tiles produced by Mapzen tools – more details at https://registry. opendata.aws/terrain-tiles/ ∗ a loaded Mesh dataset – Elevation: Raster or mesh layer to be used for generation of the terrain. The raster layer must contain a band that represents elevation. For a mesh layer, the Z values of the vertices are used. – Vertical scale: Scale factor for vertical axis. Increasing the scale will exaggerate the height of the landforms. – Tile resolution: How many samples from the terrain raster layer to use for each tile. A value of 16px means that the geometry of each tile will consist of 16x16 elevation samples. Higher numbers create more detailed terrain tiles at the expense of increased rendering complexity. – Skirt height: Sometimes it is possible to see small cracks between tiles of the terrain. Raising this value will add vertical walls („skirts“) around terrain tiles to hide the cracks. • When a mesh layer is used as terrain, you can configure the Triangles settings (wireframe display, smooth triangles) and the Rendering colors settings (as uniform or depending on terrain level). More details in the Mesh layer properties section. • Terrain shading: Allows you to choose how the terrain should be rendered: – Shading disabled - terrain color is determined only from map texture – Shading enabled - terrain color is determined using Phong’s shading model, taking into account map texture, the terrain normal vector, scene light(s) and the terrain material’s Ambient and Specular colors and Shininess Lights From the Lights tab, press the menu to add • up to eight Point lights: emits light in all directions, like a sphere of light filling an area. Objects closer to the light will be brighter, and objects further away will be darker. A point light has a set position (X, Y and Z), a Color, an Intensity and an Attenuation • up to four Directional lights: mimics the lighting that you would get from a giant flash light very far away from your objects, always centered and that never dies off (e.g. the sun). It emits parallel light rays in a single direction but the light reaches out into infinity. A directional light can be rotated given an Azimuth, have an Altitude, a Color and an Intensity. 7.4. 3D Map View 49 QGIS Desktop 3.16 User Guide Obr. 7.9: The 3D Map Lights Configuration dialog Shadow Check Show shadow to display shadow within your scene, given: • a Directional light • a Shadow rendering maximum distance: to avoid rendering shadow of too distant objects, particularly when the camera looks up along the horizon • a Shadow bias: to avoid self-shadowing effects that could make some areas darker than others, due to differences between map sizes. The lower the better • a Shadow map resolution: to make shadows look sharper. It may result in less performance if the resolution parameter is too high. Camera & Skybox • Camera’s Field of view: allowing to create panoramic scenes. Default value is 45°. • Check Show skybox to enable skybox rendering in the scene. The skybox type can be: – Panoramic texture, with a single file providing sight on 360° – Distinct faces, with a texture file for each of the six sides of a box containing the scene Texture files can be files on the disk, remote URLs or embedded in the project (more details). 50 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Advanced • Map tile resolution: Width and height of the 2D map images used as textures for the terrain tiles. 256px means that each tile will be rendered into an image of 256x256 pixels. Higher numbers create more detailed terrain tiles at the expense of increased rendering complexity. • Max. screen error: Determines the threshold for swapping terrain tiles with more detailed ones (and vice versa) - i.e. how soon the 3D view will use higher quality tiles. Lower numbers mean more details in the scene at the expense of increased rendering complexity. • Max. ground error: The resolution of the terrain tiles at which dividing tiles into more detailed ones will stop (splitting them would not introduce any extra detail anyway). This value limits the depth of the hierarchy of tiles: lower values make the hierarchy deep, increasing rendering complexity. • Zoom levels: Shows the number of zoom levels (depends on the map tile resolution and max. ground error). • Show labels: Toggles map labels on/off • Show map tile info: Include border and tile numbers for the terrain tiles (useful for troubleshooting terrain issues) • Show bounding boxes: Show 3D bounding boxes of the terrain tiles (useful for troubleshooting terrain issues) • Show camera’s view center • Show light sources: shows a sphere at light source origins, allowing easier repositioning and placement of light sources relative to the scene contents 7.4.4 3D vector layers A vector layer with elevation values can be shown in the 3D map view by checking Enable 3D Renderer in the 3D View section of the vector layer properties. A number of options are available for controlling the rendering of the 3D vector layer. 7.5 Stavová lišta The status bar provides you with general information about the map view and processed or available actions, and offers you tools to manage the map view. 7.5.1 Locator bar On the left side of the status bar, the locator bar, a quick search widget, helps you find and run any feature or options in QGIS: 1. Click in the text widget to activate the locator search bar or press Ctrl+K. 2. Type a text associated with the item you are looking for (name, tag, keyword, …). By default, results are returned for the enabled locator filters, but you can limit the search to a certain scope by prefixing your text with the locator filters prefix, ie. typing l cad will return only the layers whose name contains cad. The filter can also be selected with a double-click in the menu that shows when accessing the locator widget. 3. Click on a result to execute the corresponding action, depending on the type of item. Tip: Limit the lookup to one field of the active layer By default, a search with the „active layer features“ filter (f) runs through the whole attribute table of the layer. You can limit the search to a particular field using the @ prefix. E.g., f @name sal or @name sal returns only the 7.5. Stavová lišta 51 QGIS Desktop 3.16 User Guide features whose „name“ attribute contains ‚sal‘. Text autocompletion is active when writing and the suggestion can be applied using Tab key. Searching is handled using threads, so that results always become available as quickly as possible, even if slow search filters are installed. They also appear as soon as they are encountered by a filter, which means that e.g. a file search filter will show results one by one as the file tree is scanned. This ensures that the UI is always responsive, even if a very slow search filter is present (e.g. one which uses an online service). Tip: Quick access to the locator’s configurations Click on the icon inside the locator widget on the status bar to display the list of filters you can use and a Configure entry that opens the Locator tab of the Settings ► Options… menu. 7.5.2 Reporting actions In the area next to the locator bar, a summary of actions you’ve carried out will be shown when needed (such as selecting features in a layer, removing layer) or a long description of the tool you are hovering over (not available for all tools). In case of lengthy operations, such as gathering of statistics in raster layers, executing Processing algorithms or rendering several layers in the map view, a progress bar is displayed in the status bar. 7.5.3 Control the map canvas The Coordinate option shows the current position of the mouse, following it while moving across the map view. You can set the units (and precision) in the Project ► Properties… ► General tab. Click on the small button at the left of the textbox to toggle between the Coordinate option and the Extents option that displays the coordinates of the current bottom-left and top-right corners of the map view in map units. Next to the coordinate display you will find the Scale display. It shows the scale of the map view. There is a scale selector, which allows you to choose between predefined and custom scales. On the right side of the scale display, press the button to lock the scale to use the magnifier to zoom in or out. The magnifier allows you to zoom in to a map without altering the map scale, making it easier to tweak the positions of labels and symbols accurately. The magnification level is expressed as a percentage. If the Magnifier has a level of 100%, then the current map is not magnified. Additionally, a default magnification value can be defined within Settings ► Options ► Rendering ► Rendering behavior, which is very useful for high-resolution screens to enlarge small symbols. To the right of the magnifier tool you can define a current clockwise rotation for your map view in degrees. On the right side of the status bar, there is a small checkbox which can be used temporarily to prevent layers being rendered to the map view (see section Vykreslování). To the right of the render functions, you find the EPSG:code button showing the current project CRS. Clicking on this opens the Project Properties dialog and lets you apply another CRS to the map view. Tip: Výpočet správného měřítka vašeho mapového plátna When you start QGIS, the default CRS is WGS 84 (EPSG 4326) and units are degrees. This means that QGIS will interpret any coordinate in your layer as specified in degrees. To get correct scale values, you can either manually change this setting in the General tab under Project ► Properties… (e.g. to meters), or you can use the EPSG:code icon seen above. In the latter case, the units are set to what the project projection specifies (e.g., +units=us-ft). 52 Kapitola 7. QGIS GUI QGIS Desktop 3.16 User Guide Všimněte si, že volba CRS při spuštění může být nastavena v :menuselection: „Nastavení -> Volba -> CRS“. 7.5.4 Messaging The Messages button next to it opens the Log Messages Panel which has information on underlying processes (QGIS startup, plugins loading, processing tools…) Depending on the Plugin Manager settings, the status bar can sometimes show icons to the right to inform you about the availability of new ( ) or upgradeable ( ) plugins. Click the icon to open the Plugin Manager dialog. 7.5. Stavová lišta 53 QGIS Desktop 3.16 User Guide 54 Kapitola 7. QGIS GUI KAPITOLA 8 The Browser panel The QGIS Browser panel is a great tool for browsing, searching, inspecting, copying and loading QGIS resources. Only resources that QGIS knows how to handle are shown in the browser. Using the Browser panel you can locate, inspect and add data, as described in The Browser Panel. In addition, the Browser panel supports drag and drop of many QGIS resources, such as project files, Python scripts, Processing scripts and Processing models. Python scripts, Processing scripts and Processing models can also be opened for editing in an external editor and the graphical modeller. You can drag and drop layers from the Layers panel to the Browser panel, for instance into a GeoPackage or a PostGIS database. 55 QGIS Desktop 3.16 User Guide Obr. 8.1: The Browser panel The browser panel (Obr. 8.1) is organised as an expandable hierarchy with some fixed top-level entries that organise the resources handled by the browser. Node entries are expanded by clicking on to the left of the entry name. A branch is collapsed by clicking on . The Collapse All button collapses all top-level entries. In Settings ► Interface Customization it is possible to disable resources. If you, for instance, would not like to show Python scripts in the browser, you can uncheck the Browser ► py entry, and if you want to get rid of your home folder in the browser, you can uncheck the Browser ► special:Home entry. A filter ( Filter Browser ) can be used for searching based on entry names (both leaf entries and node entries in the hierarchy). Using the Options pull-down menu next to the filter text field, you can • toggle Case Sensitive search • set the Filter pattern syntax to one of – Normal – Wildcard(s) – Regular Expressions The Properties widget, showing useful information about some entries / resources, can be enabled / disabled using the Enable/disable properties widget button. When enabled, it opens at the bottom of the browser panel, as shown in Obr. 8.2. 56 Kapitola 8. The Browser panel QGIS Desktop 3.16 User Guide Obr. 8.2: The properties widget A second browser panel can be opened by activating the Browser (2) panel in View ► Panels. Having two browser panels can be useful when copying layers between resources that are locationed deep down in different branches of the browser hierarchy. 8.1 Resources that can be opened / run from the Browser A lot can be accomplished in the Browser panel • Add vector, raster and mesh layers to your map by double-clicking, dragging onto the map canvas or clicking the Add Selected Layers button (after selecting layers) • Run Python scripts (including Processing algorithms) by double-clicking or dragging onto the map canvas • Run models by double-clicking or dragging onto the map canvas • Extract Symbols… from QGIS Project files using the context menu • Open files with their default applications (Open Externally… in the context menu). Examples: HTML files, spreadsheets, images, PDFs, text files, … • Copy entries 8.1. Resources that can be opened / run from the Browser 57 QGIS Desktop 3.16 User Guide Resource specific actions are listed for the different resource groups sorted under the top-level entries listed below. 8.2 Browser panel top-level entries 8.2.1 Favorites Often used file system locations can be tagged as favorites. The ones you have tagged will appear here. In addition to the operations described under Home, the context menu allows you to Rename Favorite… and Remove Favorite. 8.2.2 Prostorové záložky This is where you will find your spatial bookmarks, organised into Project Bookmarks and User Bookmarks. From the top level context menu, you can create a bookmark (New Spatial Bookmark…), Show the Spatial Bookmark Manager, Import Spatial Bookmarks… and Export Spatial Bookmarks…. For bookmark entries you can Zoom to Bookmark, Edit Spatial Bookmark… and Delete Spatial Bookmark 8.2.3 Home Your file system home directory / folder. By right-clicking on an entry, and choosing Add as a Favorite, the location will be added to Favorites. From the context menu, you can also • add a directory, Geopackage or ESRI Shapefile format dataset (Add) • hide the directory (Hide from Browser) • toggle Fast Scan this Directory • open the directory in your file manager (Open Directory) • open the directory in a terminal window (Open in Terminal) • inspect properties (Properties…, Directory Properties…) 8.2.4 / Your file system root directory / folder. 8.2.5 Geopackage Geopackage files / databases. From the top level context menu, you can create a Geopackage file / database (Create Database…) or add an existing Geopackage file / database (New Connection…). The context menu of each Geopackage lets you remove it from the list (Remove connection…), add a new layer or table to the Geopackage (Create new Layer or Table…), delete the Geopackage (Delete ) and Compact Database (VACUUM). For layer/table entries you can • rename it (Rename Layer …) • export it (Export Layer ► To file) • add it to the project Add Layer to Project • delete it (Delete Layer) 58 Kapitola 8. The Browser panel QGIS Desktop 3.16 User Guide • inspect properties (Layer Properties…, File Properties…) 8.2.6 SpatiaLite SpatiaLite database connections. From the top level context menu, you can create a SpatiaLite file / database (Create Database…) or add an existing SpatiaLite file / database (New Connection…). The context menu of each SpatiaLite file lets you delete it (Delete). For layer/table entries you can • export it (Export Layer ► To file) • add it to the project Add Layer to Project • delete it (Delete Layer) • inspect properties (Layer Properties…) 8.2.7 PostGIS PostGIS database connections. From the top level context menu, you can add a new connection (New Connection…). The context menu of each connection lets you Refresh it, edit it Edit connection…, delete it (Delete connection) or Create Schema…. The context menu of each schema lets you Refresh, Rename Schema… or Delete Schema. For layers/tables you can • rename it (Rename Table…) • remove its contents (Truncate Table…) • export it (Export Layer ► To file) • add it to the project (Add Layer to Project) • delete it (Delete Layer) • inspect its properties (Layer Properties…) 8.2.8 MSSQL Microsoft SQL Server connections. From the top level context menu, you can add a new connection (New Connection…). The context menu of each connection lets you Refresh it, edit it Edit connection…, delete it (Delete connection) or Create Schema…. The context menu of each schema lets you Refresh, Rename Schema… or Delete Schema. For layers/tables you can • rename it (Rename Table…) • remove its contents (Truncate Table…) • export it (Export Layer ► To file) • add it to the project (Add Layer to Project) • delete it (Delete Layer) 8.2. Browser panel top-level entries 59 QGIS Desktop 3.16 User Guide • inspect its properties (Layer Properties…) 8.2.9 DB2 IBM DB2 database connections. From the top level context menu, you can add a new connection (New Connection…). The context menu of each connection lets you Refresh it, edit it Edit connection…, delete it (Delete connection) or Create Schema…. The context menu of each schema lets you Refresh, Rename Schema… or Delete Schema. For layers/tables you can • rename it (Rename Table…) • remove its contents (Truncate Table…) • export it (Export Layer ► To file) • add it to the project (Add Layer to Project) • delete it (Delete Layer) • inspect its properties (Layer Properties…) 8.2.10 WMS/WMTS Web Map Services (WMS) and Web Map Tile Services (WMTS) From the top level context menu, you can add a new connection (New Connection…). The context menu of each WSM/WMTS service lets you Refresh it, Edit… it and delete it (Delete). Group layers can be added by dragging them onto the map canvas. For WMS/WMTS layer entries you can • export it (Export Layer ► To file) • add it to the project (Add Layer to Project) • inspect properties (Layer Properties…) 8.2.11 Vector Tiles Vector tile services From the top level context menu, you add an existing service (New Connection…), and you can Save Connections… or Load Connections… to / from XML files. 8.2.12 XYZ Tiles XYZ tile services From the top level context menu, you add an existing service (New Connection…), and you can Save Connections… or Load Connections… to / from XML files. For the XYZ tile service entries you can • edit it (Edit…) • delete it (Delete) • export it (Export Layer ► To file) 60 Kapitola 8. The Browser panel QGIS Desktop 3.16 User Guide • add it to the project Add Layer to Project • inspect properties (Layer Properties…) 8.2.13 WCS Web Coverage Services From the top level context menu, you can add a new connection (New Connection…). The context menu of each WCS lets you Refresh it, Edit… it and delete it (Delete). For WCS layer entries you can • export it (Export Layer ► To file) • add it to the project (Add Layer to Project) • inspect properties (Layer Properties…) 8.2.14 WFS / OGC API - Features Web Feature Services (WFS) and OGC API - Features services (aka WFS3) From the top level context menu, you can add a new connection (New Connection…). The context menu of each WFS lets you Refresh it, Edit… it and delete it (Delete). For WFS layer entries you can • export it (Export Layer ► To file) • add it to the project (Add Layer to Project) • inspect properties (Layer Properties…) 8.2.15 OWS Here you will find a read-only list of all your Open Web Services (OWS) - WMS / WCS / WFS / … 8.2.16 ArcGIS Map Service 8.2.17 ArcGIS Features Service 8.2.18 GeoNode From the top level context menu, you can add a new connection (New Connection…). The context menu of each service lets you Refresh it, Edit… it and delete it (Delete). For the service layer entries you can • export it (Export Layer ► To file) • add it to the project (Add Layer to Project) • inspect properties (Layer Properties…) 8.2. Browser panel top-level entries 61 QGIS Desktop 3.16 User Guide 8.3 Resources • Project files. The context menu for QGIS project files allows you to: – open it (Open Project) – extract symbols (Extract Symbols…) - opens the style manager that allows you to export symbols to an XML file, add symbols to the default style or export as PNG or SVG. – inspect properties (File Properties…) You can expand the project file to see its layers. The context menu of a layer offers the same actions as elsewhere in the browser. • QGIS Layer Definition files (QLR). The following actions are available from the context menu: – export it (Export Layer ► To file) – add it to the project (Add Layer to Project) – inspect properties (Layer Properties…) • Processing models (.model3). The following actions are available from the context menu: – Run Model…) – Edit Model…) • QGIS print composer templates (QPT). The following action is available from the context menu: – (New Layout from Template) • Python scripts (.py). The following actions are available from the context menu: – (Run script…) – (Open in External Editor) • Recognized raster formats. The following actions are available from the context menu: – delete it (Delete File ) – export it (Export Layer ► To file) – add it to the project (Add Layer to Project) – inspect properties (Layer Properties…, File Properties…) For some formats you can also Open Externally… • Recognized vector formats. The following actions are available from the context menu: – delete it (Delete File ) – export it (Export Layer ► To file) – add it to the project (Add Layer to Project) – inspect properties (Layer Properties…, File Properties…) For some formats you can also Open Externally… 62 Kapitola 8. The Browser panel KAPITOLA 9 QGIS Konfigurace QGIS is highly configurable. Through the Settings menu, it provides different tools to: • Style Manager…: create and manage symbols, styles and color ramps. • Custom Projections…: create your own coordinate reference systems. • Keyboard Shortcuts…: define your own set of keyboard shortcuts. Also, they can be overridden during each QGIS session by the project properties (accessible under Project menu). • Interface Customization…: configure the application interface, hiding dialogs or tools you may not need. • Options…: set global options to apply in different areas of the software. These preferences are saved in the active User profile settings and applied by default whenever you open a new project with this profile. 9.1 Možnosti Some basic options for QGIS can be selected using the Options dialog. Select the menu option Settings ► Options. You can modify the options according to your needs. Some of the changes may require a restart of QGIS before they will be effective. The tabs where you can customize your options are described below. Poznámka: Plugins can embed their settings within the Options dialog While only Core settings are presented below, note that this list can be extended by installed plugins implementing their own options into the standard Options dialog. This avoids each plugin having their own config dialog with extra menu items just for them… 63 QGIS Desktop 3.16 User Guide 9.1.1 General Settings Override System Locale By default, QGIS relies on your Operating System configuration to set language and manipulate numerical values. Enabling this group allows you to customize the behavior. • Select from User interface translation the language to apply to the GUI • Select in Locale (number, date and currency formats) the system on which date and numeric values should be input and rendered • Show group (thousand) separator A summary of the selected settings and how they would be interpreted is displayed at the bottom of the frame. Aplikace • Select the Style (QGIS restart required) ie, the widgets look and placement in dialogs. Possible values depend on your Operating System. • Define the UI theme (QGIS restart required) . It can be ‚default‘, ‚Night Mapping‘, or ‚Blend of Gray‘ • Define the Icon size • Define the Font and its Size. The font can be Qt default or a user-defined one • Change the Timeout for timed messages or dialogs • Hide splash screen at startup • Show QGIS news feed on welcome page: displays a curated QGIS news feed on the welcome page, giving you a direct way to be aware of project news (user/developer meetings date and summary, community surveys, releases announcements, various tips…) • Check QGIS version at startup to keep you informed if a newer version is released • Use native color chooser dialogs (see Výběr barvy) • Modeless data source manager dialog to keep the data source manager dialog opened and allow interaction with QGIS interface while adding layers to project Soubory projektu • Open project on launch – ‚Welcome Page‘ (default): can display the „News“ feed, the project template(s) and the most recent projects (with thumbnails) of the user profile. No project is opened by default. – ‚New‘: opens a new project, based on the default template – ‚Most recent‘: reopens the last saved project – and ‚Specific‘: opens a particular project. Use the … button to define the project to use by default. • Vytvořit nový projekt z výchozího projektu. Máte možnost vybrat Nastavit aktuální projekt jako výchozí nebo Obnovit výchozí. Můžete procházet soubory a definovat adresář, kde najdete své uživatelsky definované šablony projektů. Ty budou přidávány z Projekt ► Nový ze šablony. V případě, že nejprve aktivujete Vytvořit nový projekt z výchozího projektu a poté uložíte projekt do složky šablon projektů. • Prompt to save project and data source changes when required to avoid losing changes you made. • Žádat o upozornění při odstraňování vrstvy 64 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide • Warn when opening a project file saved with an older version of QGIS. You can always open projects created with older version of QGIS but once the project is saved, trying to open with older release may fail because of features not available in that version. • Enable macros . This option was created to handle macros that are written to perform an action on project events. You can choose between ‚Never‘, ‚Ask‘, ‚For this session only‘ and ‚Always (not recommended)‘. • Default project file format – QGZ Archive file format, embeds auxiliary data (see auxiliary data) – QGS Project saved in a clear text, does not embed auxiliary data: the auxiliary data is stored in a separate .qgd file along with the project file. 9.1.2 System Settings SVG paths Add or Remove Path(s) to search for Scalable Vector Graphic (SVG) symbols. These SVG files are then available to symbolize or label the features or decorate your map composition. When using an SVG file in a symbol or a label, QGIS allows you to: • load the file from the file system: the file is identified through the file path and QGIS needs to resolve the path in order to display the corresponding image • load the file from a remote URL: as above, the image will only be loaded on successful retrieval of the remote resource • embed the SVG file into the item: the file is embedded inside the current project, style database, or print layout template. The SVG file is then always rendered as part of the item. This is a convenient way to create self-contained projects with custom SVG symbols which can be easily shared amongst different users and installations of QGIS. It is also possible to extract the embedded SVG file from a symbol or label and save it on disk. Poznámka: The above mentioned options for loading and storing an SVG file in a project are also applicable to raster images you may want to use for customizing symbols, labels or decorations. Cesty k zásuvným modulům Add or Remove Path(s) to search for additional C++ plugin libraries. Documentation paths Add or Remove Documentation Path(s) to use for QGIS help. By default, a link to the official online User Manual corresponding to the version being used is added. You can however add other links and prioritize them from top to bottom: each time you click on a Help button in a dialog, the topmost link is checked and if no corresponding page is found, the next one is tried, and so on. Poznámka: Documentation is versioned and translated only for QGIS Long Term Releases (LTR), meaning that if you are running a regular release (eg, QGIS 3.0), the help button will by default open the next LTR manual page (ie. 3.4 LTR), which may contain description of features in newer releases (3.2 and 3.4). If no LTR documentation is available then the testing doc, with features from newer and development versions, is used. Settings It helps you Reset user interface to default settings (restart required) if you made any customization. Prostředí 9.1. Možnosti 65 QGIS Desktop 3.16 User Guide Obr. 9.1: System environment variables in QGIS System environment variables can be viewed, and many configured, in the Environment group. This is useful for platforms, such as Mac, where a GUI application does not necessarily inherit the user’s shell environment. It’s also useful for setting and viewing environment variables for the external tool sets controlled by the Processing toolbox (e.g., SAGA, GRASS), and for turning on debugging output for specific sections of the source code. Use custom variables (restart required - include separators). You can Add and Remove variables. Already defined environment variables are displayed in Current environment variables, and it’s possible to filter them by activating Show only QGIS-specific variables. 66 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.1.3 CRS Settings Poznámka: For more information on how QGIS handles layer projection, please read the dedicated section at Práce s projekcemi. Obr. 9.2: CRS Settings in QGIS CRS for projects There is an option to automatically set new project’s CRS: • Use CRS from first layer added: the CRS of the project will be set to the CRS of the first layer loaded into it • Use a default CRS: a preselected CRS is applied by default to any new project and is left unchanged when adding layers to the project. The choice will be saved for use in subsequent QGIS sessions. The Coordinate Reference System of the project can still be overridden from the Project ► Properties… ► CRS tab. CRS for layers Default CRS for layers: select a default CRS to use when you create a layer You can also define the action to take when a new layer is created, or when a layer without a CRS is loaded. • Leave as unknown CRS (take no action) • Prompt for CRS • Použít CRS projektu • Use a default CRS Planimetric measurements: sets the default for the „planimetric measurements“ property for newly created projects. 9.1. Možnosti 67 QGIS Desktop 3.16 User Guide 9.1.4 Transformations Settings The Transformations tab helps you set coordinate transformations and operations to apply when loading a layer to a project or reprojecting a layer. Obr. 9.3: Transformations Settings Výchozí transformace souřadnic In this group, you can control whether reprojecting layers to another CRS should be: • automatically processed using QGIS default transformations settings; • and/or more controlled by you with custom preferences such as: – Ask for datum transformation if several are available – a predefined list of datum transformations to apply by default. See Datum Transformations for more details. 68 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.1.5 Data Sources Settings Obr. 9.4: Data Sources Settings in QGIS Atributy prvku a tabulka • Open new attribute tables as docked windows • Copy features as ‚Plain text, no geometry‘, ‚Plain text, WKT geometry‘, or ‚GeoJSON‘ when pasting features in other applications. • Attribute table behavior : set filter on the attribute table at the opening. There are three possibilities: ‚Show all features‘, ‚Show selected features‘ and ‚Show features visible on map‘. • Default view: define the view mode of the attribute table at every opening. It can be ‚Remember last view‘, ‚Table view‘ or ‚Form view‘. • Attribute table row cache . This row cache makes it possible to save the last loaded N attribute rows so that working with the attribute table will be quicker. The cache will be deleted when closing the attribute table. • Reprezentace pro NULL hodnoty. Zde můžete definovat hodnotu datových polí, které obsahují NULL hodnotu. Tip: Improve opening of big data attribute table 9.1. Možnosti 69 QGIS Desktop 3.16 User Guide When working with layers with big amount of records, opening the attribute table may be slow as the dialog request all the rows in the layer. Setting the Attribute table behavior to Show features visible on map will make QGIS request only the features in the current map canvas when opening the table, allowing a quick data loading. Note that data in this attribute table instance will be always tied to the canvas extent it was opened with, meaning that selecting Show All Features within such a table will not display new features. You can however update the set of displayed features by changing the canvas extent and selecting Show Features Visible On Map option in the attribute table. Zacházení s datovými zdroji • Scan for valid items in the browser dock . You can choose between ‚Check extension‘ and ‚Check file contents‘. • Scan for contents of compressed files (.zip) in browser dock defines how detailed is the widget information at the bottom of the Browser panel when querying such files. ‚No‘, ‚Basic scan‘ and ‚Full scan‘ are possible options. • Výzva pro rastrové subvrstvy při otevírání. Některé podpůrné rastrové subvrstvy — jsou v GDAL nazývány jako podřízené datové sady. Například v netCDF souborech — pokud obsahují mnho netCDF proměnných, GDAL vidí každou proměnnou jako podřízenou datovou sadu. ‚Možnosti‘ umožňují kontrolovat, jak se vypořádat s podvrstvami při otevření souboru se subvrstvami. Máte následující možnosti: – ‘Vždy’: Vždy se dotázat (pokud existují nějaké subvrstvy) – ‘Pokud je potřeba’: Dotázat se, jestli nemá vrstva žádná pásma, ale má podvrstvy – ‘Nikdy’: Nikdy nevyzve a nenačte nic – ‘Načíst vše’: Nikdy nevyzve, ale načte všechny subvrstvy • Ignore shapefile encoding declaration. If a shapefile has encoding information, this will be ignored by QGIS. • Execute expressions on server-side if possible: When requesting features from a datasource, QGIS will try to optimize requests by sending filter criteria directly to the server and only download the features which match the criteria. For example, if for a list on the user interface only the farmers which live in Bern should be listed, QGIS will send a WHERE "hometown" = 'Bern' to the database. In some cases, filter criteria are too complex to be translated from QGIS Expressions to database compatible SQL. In those cases, QGIS will download the whole data and filter locally to be on the safe side, which is much less performant. By disabling this option, QGIS can be forced to always download the whole data and filter locally, at the expense of a performance penalty. This option is meant as a safety break and should only be deactivated if you identify a misbehavior of the QGIS expression translation engine. Hidden Browser Path This widget lists all the folders you chose to hide from the Browser panel. Removing a folder from the list will make it available in the Browser panel. Localized paths It is possible to use localized paths for any kind of file based data source. They are a list of paths which are used to abstract the data source location. For instance, if C:\my_maps is listed in the localized paths, a layer having C:\my_maps\my_country\ortho.tif as data source will be saved in the project using localized:my_country\ortho.tif. The paths are listed by order of preference, in other words QGIS will first look for the file in the first path, then in the second one, etc. 70 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.1.6 Rendering Settings Obr. 9.5: Rendering tab of Project Properties dialog Rendering behavior • By default new layers added to the map should be displayed: unchecking this option can be handy when loading multiple layers to avoid each new layer being rendered in the canvas and slow down the process 9.1. Možnosti 71 QGIS Desktop 3.16 User Guide • Pokud to jde, používat vyrovnávací paměť pro zrychlení překreslování • Vykreslovat vrstvy paralelně pomocí více jader CPU • Maximální počet jader k dispozici • Interval aktualizace mapy (výchozí hodnota 250 ms) • Enable feature simplification by default for newly added layers • Simplification threshold • Simplification algorithm: This option performs a local „on-the-fly“ simplification on feature’s and speeds up geometry rendering. It doesn’t change the geometry fetched from the data providers. This is important when you have expressions that use the feature geometry (e.g. calculation of area) - it ensures that these calculations are done on the original geometry, not on the simplified one. For this purpose, QGIS provides three algorithms: ‚Distance‘ (default), ‚SnapToGrid‘ and ‚Visvalingam‘. • Simplify on provider side if possible: the geometries are simplified by the provider (PostGIS, Oracle…) and unlike the local-side simplification, geometry-based calculations may be affected • Maximum scale at which the layer should be simplified • Magnification level (see the magnifier) Poznámka: Besides the global setting, feature simplification can be set for any specific layer from its Layer properties ► Rendering menu. Kvalita vykreslování • Linie bude vykreslena jako méně roztřepená, nicméně na úkor rychlosti vykreslování Curve segmentation • Segmentation tolerance: this setting controls the way circular arcs are rendered. The smaller maximum angle (between the two consecutive vertices and the curve center, in degrees) or maximum difference (distance between the segment of the two vertices and the curve line, in map units), the more straight line segments will be used during rendering. • Tolerance type: it can be Maximum angle or Maximum difference between approximation and curve. Rastry • S Výběr RGB pásma můžete definovat hodnotu pro červené, zelené a modré pásmo. • The Zoomed in resampling and the Zoomed out resampling methods can be defined. For Zoomed in resampling you can choose between three resampling methods: ‚Nearest Neighbour‘, ‚Bilinear‘ and ‚Cubic‘. For Zoomed out resampling you can choose between ‚Nearest Neighbour‘ and ‚Average‘. You can also set the Oversampling value (between 0.0 and 99.99 - a large value means more work for QGIS - the default value is 2.0). Vylepšení kontrastu Contrast enhancement options can be applied to Single band gray, Multi band color (byte/band) or Multi band color (>byte/band). For each, you can set: • the Algorithm to use, whose values can be ‚No stretch‘, ‚Stretch to MinMax‘, ‚Stretch and Clip to MinMax‘ or ‚Clip to MinMax‘ • the Limits (minimum/maximum) to apply, with values such as ‚Cumulative pixel count cut‘, ‚Minimum/Maximum‘, ‚Mean +/- standard deviation‘. For rasters rendering, you can also define the following options: • Limity ořezu dle kumulativního počtu pixelů • Multiplikátor směrodatné odchylky 72 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide Ladění • Map canvas refresh to debug rendering duration in the Log Messages panel. 9.1.7 Canvas and Legend Settings Obr. 9.6: Canvas and Legend Settings These properties let you set: • the Default map appearance (overridden by project properties): the Selection color and Background color. • Layer legend interaction: – Double click action in legend . You can either ‚Open layer properties‘, ‚Open attribute table‘ or ‚Open layer styling dock‘ with the double click. – Display classification attribute names in the Layers panel, e.g. when applying a categorized or rule-based renderer (see Symbology Properties for more information). – the WMS getLegendGraphic Resolution – Minimum and Maximum legend symbol size to control symbol size display in the Layers panel • the Delay in milliseconds of layers map tips display 9.1. Možnosti 73 QGIS Desktop 3.16 User Guide 9.1.8 Map tools Settings Obr. 9.7: Map tools Settings in QGIS This tab offers some options regarding the behavior of the Identify tool. • Search radius for identifying features and displaying map tips is a tolerance distance within which the identify tool will depict results as long as you click within this tolerance. • Highlight color allows you to choose with which color features being identified should be highlighted. • Buffer determines a buffer distance to be rendered from the outline of the identify highlight. • Minimum width determines how thick should the outline of a highlighted object be. Nástroj pro měření • Definujte Barva pravítka pro měřící nástroje • Definujte Desetinná místa • Keep base unit to not automatically convert large numbers (e.g., meters to kilometers) • Preferred distance units: options are ‚Meters‘, ‚Kilometers‘, ‚Feet‘, ‚Yards‘, ‚Miles‘, ‚Nautical Miles‘, ‚Centimeters‘, ‚Millimeters‘, ‚Degrees‘ or ‚Map Units‘ 74 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide • Preferred area units: options are ‚Square meters‘, ‚Square kilometers‘, ‚Square feet‘, ‚Square yards‘, ‚Square miles‘, ‚Hectares‘, ‚Acres‘, ‚Square nautical miles‘, ‚Square centimeters‘, ‚Square millimeters‘, ‚Square degrees‘ or ‚Map Units‘ • Preferred angle units: options are ‚Degrees‘, ‚Radians‘, ‚Gon/gradians‘, ‚Minutes of arc‘, ‚Seconds of arc‘, ‚Turns/revolutions‘, milliradians (SI definition) or mil (NATO/military definition) Coordinate and Bearing Display • Define Default bearing format for new projects: used to display the mouse coordinate in the status bar when panning the map canvas. It can be overridden in the project properties dialog. Posouvat a zvětšovat • Define a Zoom factor for zoom tools or wheel mouse Předdefinovaná měřítka Here, you find a list of predefined scales. With the and buttons you can add or remove your personal scales. You can also import or export scales from/to a .XML file. Note that you still have the possibility to remove your changes and reset to the predefined list. 9.1.9 Colors Settings Obr. 9.8: Colors Settings This menu allows you to create or update palettes of colors used throughout the application in the color selector widget. You can choose from: • Recent colors showing recently used colors • Standard colors, the default palette of colors • Project colors, a set of colors specific to the current project (see Default Styles Properties for more details) • New layer colors, a set of colors to use by default when new layers are added to QGIS • or custom palette(s) you can create or import using the … button next to the palette combobox. By default, Recent colors, Standard colors and Project colors palettes can not be removed and are set to appear in the color button drop-down. Custom palettes can also be added to this widget thanks to the Show in Color Buttons option. For any of the palettes, you can manage the list of colors using the set of tools next to the frame, ie: 9.1. Možnosti 75 QGIS Desktop 3.16 User Guide • Add or Remove color • Copy or Paste color • Import or Export the set of colors from/to .gpl file. Double-click a color in the list to tweak or replace it in the Color Selector dialog. You can also rename it by double-clicking in the Label column. 76 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.1.10 Digitizing Settings Obr. 9.9: Digitizing Settings in QGIS This tab helps you configure general settings when editing vector layer (attributes and geometry). Vytváření prvku • Suppress attribute form pop-up after feature creation: this choice can be overridden in each layer properties dialog. 9.1. Možnosti 77 QGIS Desktop 3.16 User Guide • Reuse last entered attribute values: remember the last used value of every attribute and use it as default for the next feature being digitized. Works per layer. • Validate geometries. Editing complex lines and polygons with many nodes can result in very slow rendering. This is because the default validation procedures in QGIS can take a lot of time. To speed up rendering, it is possible to select GEOS geometry validation (starting from GEOS 3.3) or to switch it off. GEOS geometry validation is much faster, but the disadvantage is that only the first geometry problem will be reported. Note that depending on the selection, reports of geometry errors may differ (see Types of error messages and their meanings) • Default Z value to use when creating new 3D features. Gumička • Define Rubberband Line width, Line color and Fill color. • Don’t update rubberband during vertex editing. Uchycení • Enable snapping by default activates snapping when a project is opened • Define Default snap mode (‚Vertex‘, ‚Vertex and segment‘, ‚Segment‘) • Definujte Výchozí přichytávací tolerance v mapových jednotkách nebo pixelech • Definujte Vyhledávající poloměr pro editaci lomových bodů v mapových jednotkách nebo pixelech • Display main dialog as (restart required): set whether the Advanced Snapping dialog should be shown as ‚Dialog‘ or ‚Dock‘. • Snapping marker color • Show snapping tooltips such as name of the layer whose feature you are about to snap. Helpful when multiple features overlap. • Enable snapping on invisible features (not shown on the map canvas) Symboly lomových bodů • Zobrazit symboly pouze u vybraných prvků • Define vertex Marker style (‚Cross‘ (default), ‚Semi transparent circle‘ or ‚None‘) • Define vertex Marker size (in millimeter) Nástroj odsazení křivky The next 3 options refer to the Offset Curve tool in Advanced digitizing. Through the various settings, it is possible to influence the shape of the line offset. These options are possible starting from GEOS 3.3. • Join style: ‚Round‘, ‚Mitre‘ or ‚Bevel‘ • Segmenty kvadrantu • Miter limit Tracing By activating the Convert tracing to curve you can create curve segments while digitizing. Keep in mind that your data provider must support this feature. 78 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.1.11 Layouts Settings Obr. 9.10: Layouts Settings in QGIS Výchozí nastavení kompozice You can define the Default font used within the print layout. Vzhled mřížky • Define the Grid style (‚Solid‘, ‚Dots‘, ‚Crosses‘) • Definujte Barva mřížky Výchozí mřížka a vodítka • Define the Grid spacing • Define the Grid offset for X and Y • Define the Snap tolerance Layout Paths • Define Path(s) to search for extra print templates: a list of folders with custom layout templates to use while creating new one. 9.1.12 GDAL Settings GDAL is a data exchange library for geospatial data that supports a large number of vector and raster formats. It provides drivers to read and (often) write data in these formats. The GDAL tab exposes the drivers for raster and vector formats with their capabilities. 9.1. Možnosti 79 QGIS Desktop 3.16 User Guide Raster driver options This frame provides ways to customize the behavior of raster drivers that support read and write access: • Edit create options: allows you to edit or add different profiles of file transformation, i.e. a set of predefined combinations of parameters (type and level of compression, blocks size, overview, colorimetry, alpha…) to use when outputting raster files. The parameters depend on the driver. Obr. 9.11: Sample of create options profile (for GeoTiff) The upper part of the dialog lists the current profile(s) and allows you to add new ones or remove any of them. You can also reset the profile to its default parameters if you have changed them. Some drivers (eg, GeoTiff) have some sample of profiles you can work with. At the bottom of the dialog: – The button lets you add rows to fill with the parameter name and value – The button deletes the selected parameter – Click the Validate button to check that the creation options entered for the given format are valid – Use the Help button to find the parameters to use, or refer to the GDAL raster drivers documentation. • Edit Pyramids Options 80 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide Obr. 9.12: Sample of Pyramids profile GDAL raster and vector drivers The Raster Drivers and Vector Drivers (in a separated tab) allow you to define which GDAL driver is enabled to read and/or write files, as in some cases more than one GDAL driver is available. 9.1. Možnosti 81 QGIS Desktop 3.16 User Guide Obr. 9.13: GDAL Settings in QGIS - Raster drivers Tip: Double-click a raster driver that allows read and write access (rw+(v)) opens the Edit Create options dialog for customization. 9.1.13 Variables Settings The Variables tab lists all the variables available at the global-level. It also allows the user to manage global-level variables. Click the button to add a new custom global-level variable. Likewise, select a custom global-level variable from the list and click the button to remove it. More information about variables in the Storing values in Variables section. 82 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide Obr. 9.14: Variables Settings in QGIS 9.1.14 Authentication Settings In the Authentication tab you can set authentication configurations and manage PKI certificates. See Ověřovací systém for more details. Obr. 9.15: Authentication Settings in QGIS 9.1. Možnosti 83 QGIS Desktop 3.16 User Guide 9.1.15 Network Settings Obecné • Definujte Časový limit pro síťové požadavky (ms) - výchozí je 60000 • Define Default expiration period for WMS Capabilities (hours) - default is 24 • Define Default expiration period for WMS-C/WMTS tiles (hours) - default is 24 • Define Max retry in case of tile or feature request errors • Definujte User-Agent Obr. 9.16: Proxy-settings in QGIS Nastavení vyrovnávací paměti Defines the Directory and a Size for the cache. Also offers tools to automatically clear the connection authentication cache on SSL errors (recommended). Proxy for web access • Use proxy for web access 84 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide • Set the Proxy type according to your needs and define ‚Host‘ and ‚Port‘. Available proxy types are: – Default Proxy: Proxy is determined based on system’s proxy – Socks5Proxy: Druhový proxy server pro jakýkoliv druh připojení. Podporuje TCP, UDP, vazbu na port (příchozí spojení) a ověřování. – HttpProxy: Implementace pomocí příkazu „CONNECT“, podporuje pouze odchozí TCP spojení; podporuje ověřování. – HttpCachingProxy: Implementace pomocí běžných příkazů HTTP, je užitečná pouze v kontextu HTTP požadavků. – FtpCachingProxy: Implementace pomocí FTP proxy, je užitečná pouze v souvislosti s požadavky FTP. Credentials of proxy are set using the authentication widget. Excluding some URLs can be added to the text box below the proxy settings (see Obr. 9.16). No proxy will be used if the target url starts with one of the string listed in this text box. If you need more detailed information about the different proxy settings, please refer to the manual of the underlying QT library documentation at https://doc.qt.io/qt-5.9/qnetworkproxy.html#ProxyType-enum Tip: Použití proxy Using proxies can sometimes be tricky. It is useful to proceed by ‚trial and error‘ with the above proxy types, to check if they succeed in your case. 9.1.16 Locator Settings The Locator tab lets you configure the Locator bar, a quick search widget available on the status bar to help you perform searches in the application. It provides some default filters (with prefix) to use: Obr. 9.17: Locator Settings in QGIS • Project layers (l): finds and selects a layer in the Layers panel. • Project layouts (pl): finds and opens a print layout. • Actions (.): finds and executes a QGIS action; actions can be any tool or menu in QGIS, opening a panel… 9.1. Možnosti 85 QGIS Desktop 3.16 User Guide • Active layer features (f): searches for matching attributes in any field from the current active layer and zooms to the selected feature. Press to configure the maximum number of results. • Features in all layers (af): searches for matching attributes in the display name of each searchable layers and zooms to the selected feature. Press to configure the maximum number of results and the maximum number of results per layer. • Calculator (=): allows evaluation of any QGIS expression and, if valid, gives an option to copy the result to the clipboard. • Spatial bookmarks (b): finds and zooms to the bookmark extent. • Settings (set): browses and opens project and application-wide properties dialogs. • Go to coordinate (go): pans the map canvas to a location defined by a comma or space separated pair of x and y coordinates or a formatted URL (e.g., OpenStreetMap, Leaflet, OpenLayer, Google Maps, …). The coordinate is expected in WGS 84 (epsg:4326) and/or map canvas CRS. • Processing algorithms (a): searches and opens a Processing algorithm dialog. • Edit selected features (ef): gives quick access and runs a compatible modify-in-place Processing algorithm on the active layer. In the dialog, you can: • customize the filter Prefix, i.e. the keyword to use to trigger the filter • set whether the filter is Enabled: the filter can be used in the searches and a shortcut is available in the locator bar menu • set whether the filter is Default: a search not using a filter returns results from only the default filters categories. • Some filters provide a way to configure the number of results in a search. The set of default locator filters can be extended by plugins, eg for OSM nominatim searches, direct database searching, layer catalog searches, … 86 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.1.17 Advanced Settings Obr. 9.18: Advanced Settings tab in QGIS All the settings related to QGIS (UI, tools, data providers, Processing configurations, default values and paths, plugins options, expressions, geometry checks…) are saved in a QGIS/QGIS3.ini file under the active user profile directory. Configurations can be shared by copying this file to other installations. From within QGIS, the Advanced tab offers a way to manage these settings through the Advanced Settings Editor. After you promise to be careful, the widget is populated with a tree of all the existing settings, and you can edit their value. Right-click over a setting or a group and you can delete it (to add a setting or group, you have to edit the QGIS3.ini file). Changes are automatically saved in the QGIS3.ini file. Varování: Avoid using the Advanced tab settings blindly Be careful while modifying items in this dialog given that changes are automatically applied. Doing changes without knowledge can break your QGIS installation in various ways. 9.1. Možnosti 87 QGIS Desktop 3.16 User Guide 9.1.18 Acceleration Settings OpenCL acceleration settings. Obr. 9.19: Acceleration tab Depending on your hardware and software, you may have to install additional libraries to enable OpenCL acceleration. 9.1.19 Processing Settings The Processing tab provides you with general settings of tools and data providers that are used in the QGIS Processing framework. More information at QGIS processing framework. 88 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide Obr. 9.20: Processing Settings tab in QGIS 9.1.20 Python Console Settings The Python Console settings help you manage and control the behavior of the Python editors (interactive console, code editor, project macros, custom expressions, …). It can also be accessed using the Options… button from: • the Python console toolbar • the contextual menu of the Python console widget • and the contextual menu of the code editor. 9.1. Možnosti 89 QGIS Desktop 3.16 User Guide Obr. 9.21: Python Console Settings tab You can specify: • Autocompletion: Enables code completion. You can get autocompletion from the current document, the installed API files or both. – Autocompletion threshold: Sets the threshold for displaying the autocompletion list (in characters) • under Typing – Automatic parentheses insertion: Enables autoclosing for parentheses – Automatic insertion of the ‚import‘ string on ‚from xxx‘: Enables insertion of ‚import‘ when specifying imports • under Run and Debug – Enable Object Inspector (switching between tabs may be slow): Enable the object inspector. – Auto-save script before running: Saves the script automatically when executed. This action will store a temporary file (in the temporary system directory) that will be deleted automatically after running. For APIs you can specify: • Using preloaded APIs file: You can choose if you would like to use the preloaded API files. If this is not checked you can add API files and you can also choose if you would like to use prepared API files (see next option). • Using prepared APIs file: If checked, the chosen *.pap file will be used for code completion. To generate a prepared API file you have to load at least one *.api file and then compile it by clicking the Compile APIs… 90 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide button. • Under GitHub access token, you can generate a personal token allowing you to share code snippets from within the Python code editor. More details on GitHub authentication 9.1.21 Code Editor Settings In the Code Editor tab, you can control the appearance and behaviour of code editor widgets (Python interactive console and editor, expression widget and function editor, …). Obr. 9.22: Code Editor Settings tab At the top of the dialog, a widget provides a live preview of the current settings, in various coding languages (Python, QGIS expression, HTML, SQL, JavaScript). A convenient way to adjust settings. • Check Override code editor font to modify the default Font family and Size. • Under the Colors group, you can: – select a Color scheme: predefined settings are Default, Solarized Dark and Solarized Light. A Custom scheme is triggered as soon as you modify a color and can be reset with selecting a predefined scheme. – change the color of each element in code writing, such as the colors to use for comments, quotes, functions, background, … 9.1. Možnosti 91 QGIS Desktop 3.16 User Guide 9.2 Working with User Profiles The Settings ► User Profiles menu provides functions to set and access user profiles. A user profile is a unified application configuration that allows to store in a single folder: • all the global settings, including locale, projections, authentication settings, color palettes, shortcuts… • GUI configurations and customization • grid files and other proj helper files installed for datum transformation • installed plugins and their configurations • project templates and history of saved project with their image preview • processing settings, logs, scripts, models. By default, a QGIS installation contains a single user profile named default. But you can create as many user profiles as you want: 1. Click the New profile… entry. 2. You’ll be prompted to provide a profile name, creating a folder of the same name under ~/ / where: • ~ represents the HOME directory, which on Windows is usually something like C:\Users\ (user). • and represents the main profiles folder, i.e.: – .local/share/QGIS/QGIS3/profiles/ – AppData\Roaming\QGIS\QGIS3\profiles\ – Library/Application Support/QGIS/QGIS3/profiles/ The user profile folder can be opened from within QGIS using the Open Active Profile Folder. 3. A new instance of QGIS is started, using a clean configuration. You can then set your custom configurations. If you have more than one profile in your QGIS installation, the name of the active profile is shown in the application title bar between square brackets. As each user profile contains isolated settings, plugins and history they can be great for different workflows, demos, users of the same machine, or testing settings, etc. And you can switch from one to the other by selecting them in the Settings ► User Profiles menu. You can also run QGIS with a specific user profile from the command line. Unless changed, the profile of the last closed QGIS session will be used in the following QGIS sessions. Tip: Run QGIS under a new user profile to check for bug persistence When you encounter weird behavior with some functions in QGIS, create a new user profile and run the commands again. Sometimes, bugs are related to some leftovers in the current user profile and creating a new one may fix them as it restarts QGIS with the new (clean) profile. 92 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.3 Vlastnosti projektu In the properties window for the project under Project ► Project Properties, you can set project-specific options. The project-specific options overwrite their equivalent in the Options dialog described above. 9.3.1 General Properties In the General tab, the General settings let you: • see the location of the project file • set the folder for the project home (available in the Project Home item in the browser). The path can be relative to the folder of the project file (type it in) or absolute. The project home can be used for storing data and other content that is useful for the project. • Uveďte název projektu spolu s cestou k souboru projektu • Zvolte barvu, kterou chcete použít pro vrstvy, když jsou vybrány. • Zvolte barvu pozadí: barvu, kterou chcete použít pro mapový podklad. • Nastavte, zda má být cesta k vrstvám v projektu uložena jako absolutní (úplná) nebo jako relativní k umístění souboru projektu. Můžete upřednostnit relativní cestu, pokud lze přesunout nebo sdílet vrstvy i soubory projektu, nebo pokud je projekt přístupný z počítačů na různých platformách. • Můžete zvolit vyhýbání se artefaktům, je-li projekt vykreslen jako mapová dlaždice. Všimněte si, že změna této možnosti může vést k degradaci provedení. Calculating areas and distances is a common need in GIS. However, these values are really tied to the underlying projection settings. The Measurements frame lets you control these parameters. You can indeed choose: • the Ellipsoid, on which distance and area calculations are entirely based; it can be: – None/Planimetric: returned values are in this case cartesian measurements. – a Custom one: you’ll need to set values of the semi-major and semi-minor axes. – or an existing one from a predefined list (Clarke 1866, Clarke 1880 IGN, New International 1967, WGS 84…). • the units for distance measurements for length and perimeter and the units for area measurements. These settings, which default to the units set in QGIS options but then overrides it for the current project, are used in: – Panel pro aktualizaci pole atributové tabulky – Kalkulace kalkulátoru pole – Určení nástroje odvození délky, obvodu a plochy – Výchozí jednotky zobrazované v dialogovém okně měření The Coordinate and Bearing display allows you to choose and customize the bearing format and the format of units to use to display the mouse coordinate in the status bar and the derived coordinates shown via the identify tool. Finally, you can set a Project predefined scales list, which overrides the global predefined scales. 9.3. Vlastnosti projektu 93 QGIS Desktop 3.16 User Guide Obr. 9.23: General tab of the Project Properties dialog 9.3.2 Metadata Properties The Metadata tab allows detailed metadata to be defined, including (among the others): author, creation date, language, abstracts, categories, keywords, contact details, links, history. There is also a validation functionality that checks if specific fields were filled, anyway this is not enforced. See vector layer metadata properties for some details. 94 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.3.3 CRS Properties Poznámka: For more information on how QGIS handles project projection, please read the dedicated section at Práce s projekcemi. The CRS tab helps you set the coordinate reference system to use in this project. It can be: • No CRS (or unknown/non-Earth projection): layers are drawn based on their raw coordinates • or an existing coordinate reference system that can be geographic, projected or user-defined. Layers added to the project are translated on-the-fly to this CRS in order to overlay them regardless their original CRS. 9.3.4 Transformations Properties The Transformations tab helps you control the layers reprojection settings by configuring the datum transformation preferences to apply in the current project. As usual, these override any corresponding global settings. See Datum Transformations for more details. 9.3.5 Default Styles Properties The Default Styles tab lets you control how new layers will be drawn in the project when they do not have an existing .qml style defined. You can: • Set default symbols (Marker, Line, Fill) to apply depending on the layer geometry type as well as a default Color Ramp • Apply a default Opacity to new layers • Assign random colors to symbols, modifying the symbols fill colors, hence avoiding same rendering for all layers. 9.3. Vlastnosti projektu 95 QGIS Desktop 3.16 User Guide Obr. 9.24: Default Styles tab Using the Style Manager button, you can also quickly access the Style Manager dialog and configure symbols and color ramps. There is also an additional section where you can define specific colors for the running project. Like the global colors, you can: • Add or Remove color • Copy or Paste color • Import or Export the set of colors from/to .gpl file. Double-click a color in the list to tweak or replace it in the Color Selector dialog. You can also rename it by double-clicking in the Label column. These colors are identified as Project colors and listed as part of color widgets. Tip: Use project colors to quickly assign and update color widgets Project colors can be refered to using their label and the color widgets they are used in are bound to them. This means that instead of repeatedly setting the same color for many properties and, to avoid a cumbersome update you can: 1. Define the color as a project color 2. Click the data defined override widget next to the color property you want to set 3. Hover over the Color menu and select the project color. The property is then assigned the expression project_color('color_label') and the color widget reflects that color. 4. Repeat steps 2 and 3 as much as needed 5. Update the project color once and the change is reflected EVERYWHERE it’s in use. 96 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.3.6 Data Sources Properties In the Data Sources tab, you can: • Automatically create transaction groups where possible: When this mode is turned on, all layers from the same database are synchronised in their edit state, i.e. when one layer is put into edit state, all are, when one layer is committed or one layer is rolled back, so are the others. Also, instead of buffering edit changes locally, they are directly sent to a transaction in the database which gets committed when the user clicks save layer. Note that you can (de)activate this option only if no layer is being edited in the project. • Evaluate default values on provider side: When adding new features in a PostgreSQL table, fields with default value constraint are evaluated and populated at the form opening, and not at the commit moment. This means that instead of an expression like nextval('serial'), the field in the Add Feature form will display expected value (e.g., 25). • Trust project when data source has no metadata: To speed up project loading by skipping data checks. Useful in QGIS Server context or in projects with huge database views/materialized views. The extent of layers will be read from the QGIS project file (instead of data sources) and when using the PostgreSQL provider the primary key unicity will not be checked for views and materialized views. • Configure the Layers Capabilities, i.e.: – Set (or disable) which layers are identifiable, i.e. will respond to the identify tool. By default, layers are set queryable. – Set whether a layer should appear as read-only, meaning that it can not be edited by the user, regardless of the data provider’s capabilities. Although this is a weak protection, it remains a quick and handy configuration to avoid end-users modifying data when working with file-based layers. – Define which layers are searchable, i.e. could be queried using the locator widget. By default, layers are set searchable. – Define which layers are defined as required. Checked layers in this list are protected from inadvertent removal from the project. The Layers Capabilities table provides some convenient tools to: – Select multiple cells and press Toggle Selection to have them change their checkbox state; – Show spatial layers only, filtering out non-spatial layers from the layers list; – Filter layers… and quickly find a particular layer to configure. 9.3. Vlastnosti projektu 97 QGIS Desktop 3.16 User Guide Obr. 9.25: Data Sources tab 9.3.7 Relations Properties The Relations tab is used to define 1:n relations. The relations are defined in the project properties dialog. Once relations exist for a layer, a new user interface element in the form view (e.g. when identifying a feature and opening its form) will list the related entities. This provides a powerful way to express e.g. the inspection history on a length of pipeline or road segment. You can find out more about 1:n relations support in Section Creating one or many to many relations. Obr. 9.26: Relations tab 9.3.8 Variables Properties The Variables tab lists all the variables available at the project’s level (which includes all global variables). Besides, it also allows the user to manage project-level variables. Click the button to add a new custom project-level variable. Likewise, select a custom project-level variable from the list and click the button to remove it. More information on variables usage in the General Tools Storing values in Variables section. 98 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.3.9 Macros Properties The Macros tab is used to edit Python macros for projects. Currently, only three macros are available: openProject(), saveProject() and closeProject(). Obr. 9.27: Makro nastavení v QGIS 9.3.10 QGIS Server Properties The tab QGIS Server allows you to configure your project in order to publish it online. Here you can define information about the QGIS Server WMS and WFS capabilities, extent and CRS restrictions. More information available in section Creatingwmsfromproject and subsequent. 9.3. Vlastnosti projektu 99 QGIS Desktop 3.16 User Guide Obr. 9.28: QGIS Server settings tab 9.3.11 Temporal Properties The tab Temporal is used to set the temporal range of your project, either by using manual input or by calculating it from the current project temporal layers. Obr. 9.29: QGIS Temporal tab 100 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide 9.4 Přizpůsobení The customization dialog lets you (de)activate almost every element in the QGIS user interface. This can be very useful if you want to provide your end-users with a ‚light‘ version of QGIS, containing only the icons, menus or panels they need. Poznámka: Before your changes are applied, you need to restart QGIS. Obr. 9.30: The Customization dialog Ticking the Enable customization checkbox is the first step on the way to QGIS customization. This enables the toolbar and the widget panel from which you can uncheck and thus disable some GUI items. The configurable item can be: • a Menu or some of its sub-menus from the Menu lišta • a whole Panel (see Panely a nástrojové lišty) 9.4. Přizpůsobení 101 QGIS Desktop 3.16 User Guide • the Status bar described in Stavová lišta or some of its items • a Toolbar: the whole bar or some of its icons • or any widget from any dialog in QGIS: label, button, combobox… With Switch to catching widgets in main application , you can click on an item in QGIS interface that you want to be hidden and QGIS automatically unchecks the corresponding entry in the Customization dialog. You can also use the Search box to find items by their name or label. Once you setup your configuration, click Apply or OK to validate your changes. This configuration becomes the one used by default by QGIS at the next startup. The modifications can also be saved in a .ini file using Save To File button. This is a handy way to share a common QGIS interface among multiple users. Just click on Load from File from the destination computer in order to import the .ini file. You can also run command line tools and save various setups for different use cases as well. Tip: Easily restore predefined QGIS The initial QGIS GUI configuration can be restored by one of the methods below: • unchecking Enable customization option in the Customization dialog or click the Check All button • pressing the Reset button in the Settings frame under Settings ► Options menu, System tab • launching QGIS at a command prompt with the following command line qgis --nocustomization • setting to false the value of UI ► Customization ► Enabled variable under Settings ► Options menu, Advanced tab (see the warning). In most cases, you need to restart QGIS in order to have the change applied. 9.5 Keyboard shortcuts QGIS provides default keyboard shortcuts for many features. You can find them in section Menu lišta. Additionally, the menu option Settings ► Keyboard Shortcuts… allows you to change the default keyboard shortcuts and add new ones to QGIS features. 102 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide Obr. 9.31: Define shortcut options Configuration is very simple. Use the search box at the top of the dialog to find a particular action, select it from the list and click on : • Change and press the new combination you want to assign as new shortcut • Set None to clear any assigned shortcut • or Set Default to backup the shortcut to its original and default value. Proceed as above for any other tools you wish to customize. Once you have finished your configuration, simply Close the dialog to have your changes applied. You can also Save the changes as an .XML file and Load them into another QGIS installation. 9.5. Keyboard shortcuts 103 QGIS Desktop 3.16 User Guide 9.6 Running QGIS with advanced settings 9.6.1 Command line and environment variables We’ve seen that launching QGIS is done as for any application on your OS. QGIS provides command line options for more advanced use cases (in some cases you can use an environment variable instead of the command line option). To get a list of the options, enter qgis --help on the command line, which returns: QGIS is a user friendly Open Source Geographic Information System. Usage: /usr/bin/qgis.bin [OPTION] [FILE] OPTION: [--version] display version information and exit [--snapshot filename] emit snapshot of loaded datasets to given file [--width width] width of snapshot to emit [--height height] height of snapshot to emit [--lang language] use language for interface text (changes existing␣ →override) [--project projectfile] load the given QGIS project [--extent xmin,ymin,xmax,ymax] set initial map extent [--nologo] hide splash screen [--noversioncheck] don't check for new version of QGIS at startup [--noplugins] don't restore plugins on startup [--nocustomization] don't apply GUI customization [--customizationfile path] use the given ini file as GUI customization [--globalsettingsfile path] use the given ini file as Global Settings␣ →(defaults) [--authdbdirectory path] use the given directory for authentication␣ →database [--code path] run the given python file on load [--defaultui] start by resetting user ui settings to default [--hide-browser] hide the browser widget [--dxf-export filename.dxf] emit dxf output of loaded datasets to␣ →given file [--dxf-extent xmin,ymin,xmax,ymax] set extent to export to dxf [--dxf-symbology-mode none|symbollayer|feature] symbology mode for dxf␣ →output [--dxf-scale-denom scale] scale for dxf output [--dxf-encoding encoding] encoding to use for dxf output [--dxf-map-theme maptheme] map theme to use for dxf output [--take-screenshots output_path] take screen shots for the user␣ →documentation [--screenshots-categories categories] specify the categories of␣ →screenshot to be used (see QgsAppScreenShots::Categories). [--profile name] load a named profile from the user's profiles␣ →folder. [--profiles-path path] path to store user profile folders. Will create␣ →profiles inside a {path}\profiles folder [--version-migration] force the settings migration from older version if␣ →found [--openclprogramfolder] path to the folder containing the sources␣ →for OpenCL programs. [--help] this text [--] treat all following arguments as FILEs FILE: Files specified on the command line can include rasters, vectors, and QGIS project files (.qgs and .qgz): 1. Rasters - supported formats include GeoTiff, DEM and others supported by GDAL 2. Vectors - supported formats include ESRI Shapefiles and others supported by OGR and PostgreSQL layers using (continues on next page) 104 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) the PostGIS extension Tip: Example Using command line arguments You can start QGIS by specifying one or more data files on the command line. For example, assuming you are in the qgis_sample_data directory, you could start QGIS with a vector layer and a raster file set to load on startup using the following command: qgis ./raster/landcover.img ./gml/lakes.gml --version This option returns QGIS version information. --snapshot This option allows you to create a snapshot in PNG format from the current view. This comes in handy when you have many projects and want to generate snapshots from your data, or when you need to create snapshots of the same project with updated data. Currently, it generates a PNG file with 800x600 pixels. The size can be adjusted using the --width and --height arguments. The filename can be added after --snapshot. For example: qgis --snapshot my_image.png --width 1000 --height 600 --project my_project.qgs --width This option returns the width of the snapshot to be emitted (used with --snapshot). --height This option returns the height of the snapshot to be emitted (used with --snapshot). --lang Based on your locale, QGIS selects the correct localization. If you would like to change your language, you can specify a language code. For example, qgis --lang it starts QGIS in Italian localization. --project Starting QGIS with an existing project file is also possible. Just add the command line option --project followed by your project name and QGIS will open with all layers in the given file loaded. 9.6. Running QGIS with advanced settings 105 QGIS Desktop 3.16 User Guide --extent To start with a specific map extent use this option. You need to add the bounding box of your extent in the following order separated by a comma: --extent xmin,ymin,xmax,ymax This option probably makes more sense when paired with the --project option to open a specific project at the desired extent. --nologo This option hides the splash screen when you start QGIS. --noversioncheck Skip searching for a new version of QGIS at startup. --noplugins If you have trouble at start-up with plugins, you can avoid loading them at start-up with this option. They will still be available from the Plugins Manager afterwards. --nocustomization Using this option, any existing GUI customization will not be applied at startup. This means that any hidden buttons, menu items, toolbars, and so on, will show up on QGIS start up. This is not a permanent change. The customization will be applied again if QGIS is launched without this option. This option is useful for temporarily allowing access to tools that have been removed by customization. --customizationfile Using this option, you can define a UI customization file, that will be used at startup. --globalsettingsfile Using this option, you can specify the path for a Global Settings file (.ini), also known as the Default Settings. The settings in the specified file replace the original inline default ones, but the user profiles‘ settings will be set on top of those. The default global settings is located in your_QGIS_PKG_path/resources/ qgis_global_settings.ini. Presently, there’s no way to specify a file to write settings to; therefore, you can create a copy of an original settings file, rename, and adapt it. Setting the qgis_global_setting.ini file path to a network shared folder, allows a system administrator to change global settings and defaults in several machines by only editing one file. The equivalent environment variable is QGIS_GLOBAL_SETTINGS_FILE. 106 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide --authdbdirectory This option is similar to --globalsettingsfile, but defines the path to the directory where the authentication database will be stored and loaded. --code This option can be used to run a given python file directly after QGIS has started. For example, when you have a python file named load_alaska.py with following content: from qgis.utils import iface raster_file = "/home/gisadmin/Documents/qgis_sample_data/raster/landcover.img" layer_name = "Alaska" iface.addRasterLayer(raster_file, layer_name) Assuming you are in the directory where the file load_alaska.py is located, you can start QGIS, load the raster file landcover.img and give the layer the name ‚Alaska‘ using the following command: qgis --code load_alaska.py --defaultui On load, permanently resets the user interface (UI) to the default settings. This option will restore the panels and toolbars visibility, position, and size. Unless it’s changed again, the default UI settings will be used in the following sessions. Notice that this option doesn’t have any effect on GUI customization. Items hidden by GUI customization (e.g. the status bar) will remain hidden even using the --defaultui option. See also the --nocustomization option. --hide-browser On load, hides the Browser panel from the user interface. The panel can be enabled by right-clicking a space in the toolbars or using the View ► Panels (Settings ► Panels in Linux KDE). Unless it’s enabled again, the Browser panel will remain hidden in the following sessions. --dxf-* These options can be used to export a QGIS project into a DXF file. Several options are available: • –dxf-export: the DXF filename into which to export the layers; • –dxf-extent: the extent of the final DXF file; • –dxf-symbology-mode: several values can be used here: none (no symbology), symbollayer (Symbol layer symbology), feature (feature symbology); • –dxf-scale-denom: the scale denominator of the symbology; • –dxf-encoding: the file encoding; • –dxf-map-theme: choose a map theme from the layer tree configuration. 9.6. Running QGIS with advanced settings 107 QGIS Desktop 3.16 User Guide --take-screenshots Takes screenshots for the user documentation. Can be used together with --screenshots-categories to filter which categories/sections of the documentation screenshots should be created (see QgsAppScreenShots::Categories). --profile Loads QGIS using a specific profile from the user’s profile folder. Unless changed, the selected profile will be used in the following QGIS sessions. --profiles-path With this option, you can choose a path to load and save the profiles (user settings). It creates profiles inside a {path}\profiles folder, which includes settings, installed plugins, processing models and scripts, and so on. This option allows you to, for instance, carry all your plugins and settings in a flash drive, or, for example, share the settings between different computers using a file sharing service. The equivalent environment variable is QGIS_CUSTOM_CONFIG_PATH. --version-migration If settings from an older version are found (e.g., the .qgis2 folder from QGIS 2.18), this option will import them into the default QGIS profile. --openclprogramfolder Using this option, you can specify an alternative path for your OpenCL programs. This is useful for developers while testing new versions of the programs without needing to replace the existing ones. The equivalent environment variable is QGIS_OPENCL_PROGRAM_FOLDER. 9.6.2 Deploying QGIS within an organization If you need to deploy QGIS within an organization with a custom configuration file, first you need to copy/paste the content of the default settings file located in your_QGIS_PKG_path/resources/ qgis_global_settings.ini. This file already contains some default sections identified by a block starting with []. We recommend that you keep these defaults values and add your own sections at the bottom of the file. If a section is duplicated in the file, QGIS will take the last one from top to bottom. You can change allowVersionCheck=false to disable the QGIS version check. If you do not want to display the migration window after a fresh install, you need the following section: [migration] fileVersion=2 settings=true If you want to add a custom variable in the global scope: [variables] organisation="Your organization" To discover the possibilities of the settings INI file, we suggest that you set the config you would like in QGIS Desktop and then search for it in your INI file located in your profile using a text editor. A lot of settings can be set using the INI file such as WMS/WMTS, PostGIS connections, proxy settings, maptips… 108 Kapitola 9. QGIS Konfigurace QGIS Desktop 3.16 User Guide Finally, you need to set the environment variable QGIS_GLOBAL_SETTINGS_FILE to the path of your customized file. In addition, you can also deploy files such as Python macros, color palettes, layout templates, project templates… either in the QGIS system directory or in the QGIS user profile. • Layout templates must be deployed in the composer_templates directory. • Project templates must be deployed in the project_templates directory. • Custom Python macros must be deployed in the python directory. 9.6. Running QGIS with advanced settings 109 QGIS Desktop 3.16 User Guide 110 Kapitola 9. QGIS Konfigurace KAPITOLA 10 Práce s projekcemi A Coordinate Reference System, or CRS, is a method of associating numerical coordinates with a position on the surface of the Earth. QGIS has support for approximately 7,000 standard CRSs, each with different use cases, pros and cons! Choosing an appropriate reference system for your QGIS projects and data can be a complex task, but fortunately QGIS helps guide you through this choice, and makes working with different CRSs as transparent and accurate as possible. 10.1 Přehled projekční podpory QGIS has support for approximately 7,000 known CRSs. These standard CRSs are based on those defined by the European Petroleum Search Group (EPSG) and the Institut Geographique National de France (IGNF), and are made available in QGIS through the underlying „Proj“ projection library. Commonly, these standard projections are identified through use of an authority:code combination, where the authority is an organisation name such as „EPSG“ or „IGNF“, and the code is a unique number associated with a specific CRS. For instance, the common WGS 84 latitude/longitude CRS is known by the identifier EPSG:4326, and the web mapping standard CRS is EPSG:3857. Custom, user-created CRSs are stored in a user CRS database. See section Vlastní souřadnicový referenční systém for information on managing your custom coordinate reference systems. 10.2 Layer Coordinate Reference Systems In order to correctly project data into a specific target CRS, either your data must contain information about its coordinate reference system or you will need to manually assign the correct CRS to the layer. For PostGIS layers, QGIS uses the spatial reference identifier that was specified when that PostGIS layer was created. For data supported by OGR or GDAL, QGIS relies on the presence of a recognized means of specifying the CRS. For instance, for the Shapefile format this is a file containing an ESRI Well-Known Text (WKT) representation of the layer’s CRS. This projection file has the same base name as the .shp file and a .prj extension. For example, alaska.shp would have a corresponding projection file named alaska.prj. Whenever a layer is loaded into QGIS, QGIS attempts to automatically determine the correct CRS for that layer. In some cases this is not possible, e.g. when a layer has been provided without retaining this information. You can configure QGIS behavior whenever it cannot automatically determine the correct CRS for a layer: 1. Open Settings ► Options… ► CRS 111 QGIS Desktop 3.16 User Guide Obr. 10.1: The CRS tab in the QGIS Options Dialog 2. Under the CRS for layers group, set the action to do when a new layer is created, or when a layer is loaded that has no CRS. One of: • Leave as unknown CRS (take no action): there will be no prompt to select a CRS when a layer without CRS is loaded, defering CRS choice to a later time. Convenient when loading a lot of layers at once. Such layers will be identifiable in the Layers panel by the icon next to them. They’ll also be un-referenced, with coordinates from the layer treated as purely numerical, non-earth values, i.e. the same behavior as all layers get when a project is set to have no CRS. • Prompt for CRS: it will prompt you to manually select the CRS. Selecting the correct choice is crucial, as a wrong choice will place your layer in the wrong position on the Earth’s surface! Sometimes, accompanying metadata will describe the correct CRS for a layer, in other cases you will need to contact the original author of the data to determine the correct CRS to use. • Použít CRS projektu • Use default layer CRS, as set in the Default CRS for layers combobox above. Tip: To assign the same CRS to multiple layers that have no crs or have a wrong one in one operation: 1. Select the layers in the Layers panel 2. Press Ctrl+Shift+C. You could also right-click over one of the selected layers or go to Layer ► Set CRS of layer(s) 3. Find and select the right CRS to use 4. And press OK. You can confirm that it has been set correctly in the Source tab of the layers‘ properties dialog. Note that changing the CRS in this setting does not alter the underlying data source in any way, rather it just changes how QGIS interprets the raw coordinates from the layer in the current QGIS project. 112 Kapitola 10. Práce s projekcemi QGIS Desktop 3.16 User Guide 10.3 Project Coordinate Reference Systems Every project in QGIS also has an associated Coordinate Reference System. The project CRS determines how data is projected from its underlying raw coordinates to the flat map rendered within your QGIS map canvas. QGIS supports „on the fly“ CRS transformation for both raster and vector data. This means that regardless of the underlying CRS of particular map layers in your project, they will always be automatically transformed into the common CRS defined for your project. Behind the scenes, QGIS transparently reprojects all layers contained within your project into the project’s CRS, so that they will all be rendered in the correct position with respect to each other! It is important to make an appropriate choice of CRS for your QGIS projects. Choosing an inappropriate CRS can cause your maps to look distorted, and poorly reflect the real-world relative sizes and positions of features. Usually, while working in smaller geographic areas, there will be a number of standard CRSs used within a particular country or administrative area. It’s important to research which CRSs are appropriate or standard choices for the area you are mapping, and ensure that your QGIS project follows these standards. By default, QGIS starts each new project using a global default projection. This default CRS is EPSG:4326 (also known as „WGS 84“), and it is a global latitude/longitude based reference system. This default CRS can be changed via the CRS for New Projects setting in the CRS tab under Settings ► Options… (see Obr. 10.1). There is an option to automatically set the project’s CRS to match the CRS of the first layer loaded into a new project, or alternatively you can select a different default CRS to use for all newly created projects. This choice will be saved for use in subsequent QGIS sessions. The project CRS can also be set through the CRS tab of the Project ► Properties… dialog. It will also be shown in the lower-right of the QGIS status bar. Obr. 10.2: Dialog vlastností projektu Available options are: • No CRS (or unknown/non-Earth projection): Checking this setting will disable ALL projection handling within the QGIS project, causing all layers and map coordinates to be treated as simple 2D Cartesian coordinates, with no relation to positions on the Earth’s surface. It can be used to guess a layer CRS (based on 10.3. Project Coordinate Reference Systems 113 QGIS Desktop 3.16 User Guide its raw coordinates or when using QGIS for non earth uses like role-playing game maps, building mapping or microscopic stuff. In this case: – No reprojection is done while rendering the layers: features are just drawn using their raw coordinates. – The ellipsoid is locked out and forced to None/Planimetric. – The distance and area units, and the coordinate display are locked out and forced to „unknown units“; all measurements are done in unknown map units, and no conversion is possible. • or an existing coordinate reference system that can be geographic, projected or user-defined. A preview of the CRS extent on earth is displayed to help you select the appropriate one. Layers added to the project are translated on-the-fly to this CRS in order to overlay them regardless their original CRS. Use of units and ellipsoid setting are available and make sense and you can perform calculations accordingly. Whenever you select a new CRS for your QGIS project, the measurement units will automatically be changed in the General tab of the Project properties dialog (Project ► Properties…) to match the selected CRS. For instance, some CRSs define their coordinates in feet instead of meters, so setting your QGIS project to one of these CRSs will also set your project to measure using feet by default. Tip: Setting the project CRS from a layer You can assign a CRS to the project using a layer CRS: 1. In the Layers panel, right-click on the layer you want to pick the CRS 2. Select Set project CRS from Layer. The project’s CRS is redefined using the layer’s CRS. Map canvas extent, coordinates display are updated accordingly and all the layers in the project are on-the-fly translated to the new project CRS. 10.4 Coordinate Reference System Selector This dialog helps you assign a Coordinate Reference System to a project or a layer, provided a set of projection databases. Items in the dialog are: • Filter: If you know the EPSG code, the identifier, or the name for a Coordinate Reference System, you can use the search feature to find it. Enter the EPSG code, the identifier or the name. • Recently used coordinate reference systems: If you have certain CRSs that you frequently use in your everyday GIS work, these will be displayed in this list. Click on one of these items to select the associated CRS. • Coordinate reference systems of the world: This is a list of all CRSs supported by QGIS, including Geographic, Projected and Custom coordinate reference systems. To define a CRS, select it from the list by expanding the appropriate node and selecting the CRS. The active CRS is preselected. • PROJ text: This is the CRS string used by the PROJ projection engine. This text is read-only and provided for informational purposes. The CRS selector also shows a rough preview of the geographic area for which a selected CRS is valid for use. Many CRSs are designed only for use in small geographic areas, and you should not use these outside of the area they were designed for. The preview map shades an approximate area of use whenever a CRS is selected from the list. In addition, this preview map also shows an indicator of the current main canvas map extent. 114 Kapitola 10. Práce s projekcemi QGIS Desktop 3.16 User Guide 10.5 Vlastní souřadnicový referenční systém Pokud QGIS neposkytuje souřadnicový referenční systém, který potřebujete, můžete definovat vlastní CRS. Chcete-li definovat CRS, zvolte vlastní CRS… z menu Nastavení. Vlastní uživatelské systémy jsou uloženy ve vaší vlastní uživatelské QGIS databázi. Kromě vašich CRS obsahuje tato databáze vaše prostorové záložky a další vlastní data. Defining a custom CRS in QGIS requires a good understanding of the PROJ projection library. To begin, refer to „Cartographic Projection Procedures for the UNIX Environment - A User’s Manual“ by Gerald I. Evenden, U.S. Geological Survey Open-File Report 90-284, 1990 (available at https://pubs.usgs.gov/of/1990/of90-284/ofr90-284. pdf). This manual describes the use of proj and related command line utilities. The cartographic parameters used with proj are described in the user manual and are the same as those used by QGIS. Dialog Vlastní definice souřadnicového referenčního systému vyžaduje pouze dva parametry pro definování uživatelského SRS: 1. Popisný název 2. The cartographic parameters in PROJ or WKT format To create a new CRS: 1. Click the Add new CRS button 2. Enter a descriptive name 3. Select the format: it can be Proj String or WKT 4. Add the CRS Parameters. Poznámka: Prefer storing the CRS definition in WKT format Although both Proj String and WKT formats are supported, it’s highly recommended to store projection definitions in the WKT format. Therefore, if the available definition is in the proj format, select that format, enter the parameters and then switch to WKT format. QGIS will convert the definition to the WKT format that you can later save. 5. Click Validate to test whether the CRS definition is an acceptable projection definition. 10.5. Vlastní souřadnicový referenční systém 115 QGIS Desktop 3.16 User Guide Obr. 10.3: Dialog vlastní CRS You can test your CRS parameters to see if they give sane results. To do this, enter known WGS 84 latitude and longitude values in North and East fields, respectively. Click on Calculate, and compare the results with the known values in your coordinate reference system. 10.5.1 Integrate an NTv2-transformation in QGIS To integrate an NTv2 transformation file in QGIS you need one more step: 1. Place the NTv2 file (.gsb) in the CRS/Proj folder that QGIS uses (e.g. C:\OSGeo4W64\share\proj for windows users) 2. Add nadgrids (+nadgrids=nameofthefile.gsb) to the Proj definition in the Parameters field of the Custom Coordinate Reference System Definition (Settings ► Custom Projections…). Obr. 10.4: Setting an NTv2 transformation 116 Kapitola 10. Práce s projekcemi QGIS Desktop 3.16 User Guide 10.6 Datum Transformations In QGIS, ‚on-the-fly‘ CRS transformation is enabled by default, meaning that whenever you use layers with different coordinate systems QGIS transparently reprojects them to the project CRS. For some CRS, there are a number of possible transforms available to reproject to the project’s CRS! By default, QGIS will attempt to use the most accurate transformation available. However, in some cases this may not be possible, e.g. whenever additional support files are required to use a transformation. Whenever a more accurate transformation is available, but is not currently usable, QGIS will show an informative warning message advising you of the more accurate transformation and how to enable it on your system. Usually, this requires download of an external package of transformation support files, and extracting these to the proj folder under your QGIS user profile folder. If desired, QGIS can also prompt you whenever multiple possible transformations can be made between two CRSs, and allow you to make an informed selection of which is the most appropriate transformation to use for your data. This customization is done in the Settings ► Options ► Transformations tab menu under the Default datum transformations group: • using Ask for datum transformation if several are available: when more than one appropriate datum transformation exist for a source/destination CRS combination, a dialog will automatically be opened prompting users to choose which of these datum transformations to use for the project. If the Make default checkbox is ticked when selecting a transformation from this dialog, then the choice is remembered and automatically applied to any newly created QGIS projects. • or defining a list of appropriate datum transformations to use as defaults when loading a layer to a project or reprojecting a layer. Use the button to open the Select Datum Transformations dialog. Then: 1. Choose the Source CRS of the layer, using the drop-down menu or the Select CRS widget. 2. Provide the Destination CRS in the same way. 3. A list of available transformations from source to destination will be shown in the table. Clicking a row shows details on the settings applied and the corresponding accuracy and area of use of the transformation. 10.6. Datum Transformations 117 QGIS Desktop 3.16 User Guide Obr. 10.5: Selecting a preferred default datum transformation In some cases a transformation may not be available for use on your system. In this case, the transformation will still be shown (greyed) in this list but can not be picked until you install the required package of transformation support. Usually, a button is provided to download and install the corresponding grid, which is then stored under the proj folder in the active user profile directory. 4. Find your preferred transformation and select it 5. Set whether you Allow fallback transforms if preferred operation fails 6. Click OK. A row is added to the table under Default Datum Transformations with information about the Source CRS, the Destination CRS, the Operation applied for the transformation and whether Allow fallback Transforms is enabled. From now, QGIS automatically uses the selected datum transformations for further transformation between these two CRSs until you remove it ( ) from the list or change the entry ( ) in the list. Datum transformations set in the Settings ► Options ► Transformations tab will be inherited by all new QGIS projects created on the system. Additionally, a particular project may have its own specific set of transformations specified via the CRS tab of the Project properties dialog (Project ► Properties…). These settings apply to the current project only. 118 Kapitola 10. Práce s projekcemi KAPITOLA 11 Obecné nástroje 11.1 Kontextová nápověda Whenever you need help on a specific topic, you can access the corresponding page in the current User Manual via the Help button available in most dialogs — please note that third-party plugins can point to dedicated web pages. 11.2 Panely By default, QGIS provides many panels to work with. Some of these panels are described below while others may be found in different parts of the document. A complete list of default panels provided by QGIS is available via the View ► Panels ► menu and mentioned at Panely. 11.2.1 Layers Panel The Layers panel (also called the map legend) lists all the layers in the project and helps you manage their visibility. You can show or hide it by pressing Ctrl+1. A layer can be selected and dragged up or down in the legend to change the Z-ordering. Z-ordering means that layers listed nearer the top of the legend are drawn over layers listed lower down in the legend. Poznámka: The Z-ordering behavior can be overridden by the Layer Order panel. At the top of the Layers panel, a toolbar allows you to: • Open the layer styling dock (F7) : toggle the layer styling panel on and off. • Add new group • Manage Map Themes : control visibility of layers and arrange them in different map themes. • Filter Legend by Map Content : only the layers that are set visible and whose features intersect the current map canvas have their style rendered in the layers panel. Otherwise, a generic NULL symbol is applied to the layer. Based on the layer symbology, this is a convenient way to identify which kind of features from which layers cover your area of interest. 119 QGIS Desktop 3.16 User Guide • Filter Legend by Expression : apply an expression to remove styles from the selected layer tree that have no feature satisfying the condition. This can be used to highlight features that are within a given area/feature of another layer. From the drop-down list, you can edit and clear the expression currently applied. • Expand All or Collapse All layers and groups in the layers panel. • Remove Layer/Group currently selected. Obr. 11.1: Layer Toolbar in Layers Panel Poznámka: Tools to manage the layers panel are also available for map and legend items in print layouts Configuring map themes The Manage Map Themes drop-down button provides access to convenient shortcuts to manipulate visibility of the layers in the Layers panel: • Zobrazit všechny vrstvy • Skrýt všechny vrstvy • Show Selected Layers • Hide Selected Layers • Toggle Selected Layers: changes the visibility of the first selected layer in the panel, and applies that state to the other selected layers. Also accesible through Space shortcut. • Toggle Selected Layers Independently: changes the visibility status of each selected layer • Hide Deselected Layers Beyond the simple control of layer visibility, the Manage Map Themes menu allows you to configure Map Themes in the legend and switch from one map theme to another. A map theme is a snapshot of the current map legend that records: • the layers set as visible in the Layers panel • and for each visible layer: – the reference to the style applied to the layer – the visible classes of the style, ie the layer checked node items in the Layers panel. This applies to symbologies other than the single symbol rendering – the collapsed/expanded state of the layer node(s) and the group(s) it’s placed inside To create a map theme: 1. Check a layer you want to show 2. Configure the layer properties (symbology, diagram, labels…) as usual 3. Expand the Style ► menu at the bottom and click on Add… to store the settings as a new style embedded in the project 120 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide Poznámka: A map theme does not remember the current details of the properties: only a reference to the style name is saved, so whenever you apply modifications to the layer while this style is enabled (eg change the symbology rendering), the map theme is updated with new information. 4. Repeat the previous steps as necessary for the other layers 5. If applicable, expand or collapse groups or visible layer nodes in the Layers panel 6. Click on the Manage Map Themes button on top of the panel, and Add Theme… 7. Enter the map theme’s name and click OK The new theme is listed in the lower part of the drop-down menu. You can create as many map themes as you need: whenever the current combination in the map legend (visible layers, their active style, the map legend nodes) does not match any existing map theme contents as defined above, click on Add Theme… to create a new map theme, or use Replace Theme ► to update a map theme. You can rename the active map theme with Rename Current Theme… or use the Remove Current Theme button to delete it. Map themes are helpful to switch quickly between different preconfigured combinations: select a map theme in the list to restore its combination. All configured themes are also accessible in the print layout, allowing you to create different map items based on specific themes and independent of the current main canvas rendering (see Map item layers). Overview of the context menu of the Layers panel At the bottom of the toolbar, the main component of the Layers panel is the frame listing vector or raster layers added to the project, optionally organized in groups. Depending on the item selected in the panel, a right-click shows a dedicated set of options presented below. Option Vektorová vrstva Rastrová vrstva Group Zoom to Layer/Group Zoom to Selection Show in Overview Show Feature Count Copy Layer/Group Rename Layer/Group Zoom to Native Resolution (100%) Stretch Using Current Extent Update SQL Layer… Add Group Duplicate Layer Remove Layer/Group… Move Out of Group Move to Top Move to Bottom Check and all its Parents Group Selected Otevřít atributovou tabulku continues on next page 11.2. Panely 121 QGIS Desktop 3.16 User Guide Tabulka 11.1 – pokračujte na předchozí stránce Option Vektorová vrstva Rastrová vrstva Group Přepnout editaci Aktuální změny ► Filtrovat… Change Data Source… Repair Data Source… Actions on selections ► (in edit mode) ► Duplicate Feature ► Duplicate Feature and Digitize Set Layer Scale Visibility… Zoom to Visible Scale Set CRS ► ► Set Layer/Group CRS… ► Set Project CRS from Layer Set Group WMS Data… Mutually Exclusive Group Check and all its children (Ctrl-click) Uncheck and all its children (Ctrl-click) Make Permanent Export ► ► Save As… ► Save Features As… ► Save Selected Features As… ► Save As Layer Definition File… ► Save As QGIS Layer Style File… Styles ► ► Copy Style ► Paste Style ► Add… ► Rename Current… ► Edit symbol… ► Copy Symbol ► Paste Symbol Vlastnosti… Table: Context menu from Layers Panel items For GRASS vector layers, Toggle editing is not available. See section Digitizing and editing a GRASS vector layer for information on editing GRASS vector layers. 122 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide Interact with groups and layers Layers in the legend window can be organized into groups. There are two ways to do this: 1. Press the icon to add a new group. Type in a name for the group and press Enter. Now click on an existing layer and drag it onto the group. 2. Select some layers, right-click in the legend window and choose Group Selected. The selected layers will automatically be placed in a new group. To move a layer out of a group, drag it out, or right-click on it and choose Move Out of Group: the layer is moved from the group and placed above it. Groups can also be nested inside other groups. If a layer is placed in a nested group, Move Out of Group will move the layer out of all nested groups. To move a group or layer to the top of the layer panel, either drag it to the top, or choose Move to Top. If you use this option on a layer nested in a group, the layer is moved to the top in its current group. The Move to Bottom option follows the same logic to move layers and groups down. The checkbox for a group will show or hide the checked layers in the group with one click. With Ctrl pressed, the checkbox will also turn on or off all the layers in the group and its sub-groups. Ctrl-click on a checked / unchecked layer will uncheck / check the layer and all its parents. Enabling the Mutually Exclusive Group option means you can make a group have only one layer visible at the same time. Whenever a layer within the group is set visible the others will be toggled not visible. It is possible to select more than one layer or group at the same time by holding down the Ctrl key while clicking additional layers. You can then move all selected layers to a new group at the same time. You may also delete more than one layer or group at once by selecting several items with the Ctrl key and then pressing Ctrl+D: all selected layers or groups will be removed from the layers list. More information on layers and groups using indicator icon In some circumstances, icons appears next to the layer or group in the Layers panel to give more information about the layer/group. These symbols are: • to indicate that the layer is in edit mode and you can modify the data • to indicate that the layer being edited has some unsaved changes • to indicate a filter applied to the layer. Hover over the icon to see the filter expression and double-click to update the setting • to identify layers that are required in the project, hence non removable • to identify an embedded group or layer and the path to their original project file • to identify a layer whose data source was not available at the project file opening (see Handling broken file paths). Click the icon to update the source path or select Repair Data Source… entry from the layer contextual menu. • to remind you that the layer is a temporary scratch layer and its content will be discarded when you close this project. To avoid data loss and make the layer permanent, click the icon to store the layer in any of the OGR vector formats supported by QGIS. • to identify a layer that has no/unknown CRS • to identify a temporal layer controlled by canvas animation 11.2. Panely 123 QGIS Desktop 3.16 User Guide Editing vector layer style From the Layers panel, you have shortcuts to change the layer rendering quickly and easily. Right-click on a vector layer and select Styles ► in the list in order to: • see the styles currently applied to the layer. If you defined many styles for the layer, you can switch from one to another and your layer rendering will automatically be updated on the map canvas. • copy part or all of the current style, and when applicable, paste a copied style from another layer Tip: Quickly share a layer style From the context menu, copy the style of a layer and paste it to a group or a selection of layers: the style is applied to all the layers that are of the same type (vector/raster) as the original layer and, for vector layers, have the same geometry type (point, line or polygon). • rename the current style, add a new style (which is actually a copy of the current one) or delete the current style (when multiple styles are available). Poznámka: The previous options are also available for raster or mesh layers. • update the symbol color using a Color Wheel. For convenience, the recently used colors are also available at the bottom of the color wheel. • Edit Symbol…: open the Symbol Selector dialog and change feature symbol (symbol, size, color…). When using a classification symbology type (based on categorized, graduated or rule-based), the aforementioned symbol-level options are available from the class entry context menu. Also provided are the Toggle Items, Show All Items and Hide All Items entries to switch the visibility of all the classes of features. These avoid (un)checking items one by one. Tip: Double-clicking a class leaf entry also opens the Symbol Selector dialog. 11.2.2 Layer Styling Panel The Layer Styling panel (also enabled with Ctrl+3) is a shortcut to some of the functionalities of the Layer Properties dialog. It provides a quick and easy way to define the rendering and the behavior of a layer, and to visualize its effects without having to open the layer properties dialog. In addition to avoiding the blocking (or „modal“) layer properties dialog, the layer styling panel also avoids cluttering the screen with dialogs, and contains most style functions (color selector, effects properties, rule edit, label substitution…): e.g., clicking color buttons inside the layer style panel causes the color selector dialog to be opened inside the layer style panel itself rather than as a separate dialog. From a drop-down list of current layers in the layer panel, select an item and: • Depending on the layer type, set: – Symbology, Transparency, and Histogram properties for raster layer. These options are the same as in the Raster Properties Dialog. – Symbology, Labels, Mask and 3D View properties for vector layer. These options are the same as in the The Vector Properties Dialog and can be extended by custom properties introduced by third-party plugins. 124 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide – Symbology and 3D View properties for mesh layer. These options are the same as in the Mesh Dataset Properties. • Manage the associated style(s) in the Style Manager (more details at Managing Custom Styles). • See the History of changes you applied to the layer style in the current project: you can therefore cancel or restore to any state by selecting it in the list and clicking Apply. For Vector Tile layers there is an option to show Visible rules only. This is very useful if you just want to work with rules that fall inside the current map canvas zoom level. Another powerful feature of this panel is the Live update checkbox. Tick it to render your changes immediately on the map canvas: you no longer need to click the Apply button. 11.2. Panely 125 QGIS Desktop 3.16 User Guide Obr. 11.2: Defining a layer’s symbology from the layer styling panel 126 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide 11.2.3 Layer Order Panel By default, layers shown on the QGIS map canvas are drawn following their order in the Layers panel: the higher a layer is in the panel, the higher (hence, more visible) it’ll be in the map view. You can define a drawing order for the layers independent of the order in the layers panel with the Layer Order panel enabled in View ► Panels ► menu or with Ctrl+9. Check Control rendering order underneath the list of layers and reorganize the layers in the panel as you want. This order becomes the one applied to the map canvas. For example, in Obr. 11.3, you can see that the airports features are displayed over the alaska polygon despite those layers‘ respective placement in the Layers panel. Unchecking Control rendering order will revert to default behavior. Obr. 11.3: Define a layer order independent of the legend 11.2.4 Overview Panel The Overview panel (Ctrl+8) displays a map with a full extent view of some of the layers. The Overview map is filled with layers using the Show in Overview option from the Layer menu or in the layer contextual menu. Within the view, a red rectangle shows the current map canvas extent, helping you quickly to determine which area of the whole map you are currently viewing. If you click-and-drag the red rectangle in the overview frame, the main map view extent will update accordingly. Note that labels are not rendered to the map overview even if the layers used in the map overview have been set up for labeling. 11.2. Panely 127 QGIS Desktop 3.16 User Guide 11.2.5 Log Messages Panel When loading or processing some operations, you can track and follow messages that appear in different tabs using the Log Messages Panel. It can be activated using the most right icon in the bottom status bar. 11.2.6 Undo/Redo Panel For each layer being edited, the Undo/Redo (Ctrl+5) panel shows the list of actions carried out, allowing you quickly to undo a set of actions by selecting the action listed above. More details at Undo and Redo edits. 11.2.7 Statistical Summary Panel The Statistics panel (Ctrl+6) provides summarized information on any vector layer. This panel allows you to select: • the vector layer to compute the statistics on • the column to use, or an expression • the statistics to return using the drop-down button at the bottom-right of the dialog. Depending on the field’s (or expression’s values) type, available statistics are: Statistics Řetězec Integer Float Datum Count Count Distinct Value Count Missing value Sum Mean Standard Deviation Standard Deviation on Sample Minimal value Maximal value Rozsah Minority Majority Variety First Quartile Third Quartile Inter Quartile Range Minimum Length Maximum Length Mean Length Table: Statistics available for each field type The statistical summary can be: • returned for the whole layer or selected features only 128 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide • recalculated using the button when the underlying data source changes (eg, new or removed features/fields, attribute modification) • copied to the clipboard and pasted as a table in another application Obr. 11.4: Show statistics on a field 11.3 Vnořování projektů Sometimes, you’d like to keep some layers in different projects, but with the same style. You can either create a default style for these layers or embed them from another project to save time and effort. Embed layers and groups from an existing project has some advantages over styling: • All types of layers (vector or raster, local or online…) can be added • Fetching groups and layers, you can keep the same tree structure of the „background“ layers in your different projects • While the embedded layers are editable, you can’t change their properties such as symbology, labels, forms, default values and actions, ensuring consistency across projects • Modify the items in the original project and changes are propagated to all the other projects If you want to embed content from other project files into your project, select Layer ► Embed Layers and Groups: 1. Click the … button to look for a project: you can see the content of the project (see Obr. 11.5) 2. Hold down Ctrl ( or Cmd) and click on the layers and groups you wish to retrieve 11.3. Vnořování projektů 129 QGIS Desktop 3.16 User Guide 3. Click OK The selected layers and groups are embedded in the Layers panel and displayed on the map canvas. An icon is added next to their name for recognition and hovering over displays a tooltip with the original project file path. Obr. 11.5: Vyberte vrstvy a skupiny pro připojení Like any other layer, an embedded layer can be removed from the project by right-clicking on the layer and clicking Remove . Tip: Change rendering of an embedded layer It’s not possible to change the rendering of an embedded layer, unless you make the changes in the original project file. However, right-clicking on a layer and selecting Duplicate creates a layer which is fully-featured and not dependent on the original project. You can then safely remove the linked layer. 11.4 Working with the map canvas 11.4.1 Vykreslování By default, QGIS renders all visible layers whenever the map canvas is refreshed. The events that trigger a refresh of the map canvas include: • adding a layer • panning or zooming • resizing the QGIS window • changing the visibility of a layer or layers QGIS vám umožňuje kontrolovat proces vykreslování mnohými cestami. Vykreslování v závislosti na měřítku Scale-dependent rendering allows you to specify the minimum and maximum scales at which a layer (raster or vector) will be visible. To set scale-dependent rendering, open the Properties dialog by double-clicking on the layer in the legend. On the Rendering tab, tick Scale dependent visibility and enter the Minimum (exclusive) and Maximum (inclusive) scale values. You can also activate scale dependent visibility on a layer from the Layers panel. Right-click on the layer and in the context menu, select Set Layer Scale Visibility. The Set to current canvas scale button allow you to use the current map canvas scale as boundary of the range visibility. 130 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide Poznámka: When a layer is not rendered in the map canvas because the map scale is out of its visibility scale range, the layer is greyed in the Layers panel and a new option Zoom to Visible Scale appears in the layer context menu. Select it and the map is zoomed to the layer’s nearest visibility scale. Kontrolování vykreslení mapy Vykreslování mapy může být ovládáno různými způsoby, které jsou popsány níže. Pozastavení vykreslování To suspend rendering, click the Render checkbox in the bottom-right corner of the status bar. When Render is not checked, QGIS does not redraw the canvas in response to any of the events described in the section Vykreslování. Examples of when you might want to suspend rendering include: • adding many layers and symbolizing them prior to drawing • adding one or more large layers and setting scale dependency before drawing • adding one or more large layers and zooming to a specific view before drawing • any combination of the above Zaškrtnutí Render checkboxu umožní vykreslení a způsobí okamžité obnovování mapového okna. Nastavení možnosti přidání vrstvy You can set an option to always load new layers without drawing them. This means the layer will be added to the map, but its visibility checkbox in the legend will be unchecked by default. To set this option, choose menu option Settings ► Options and click on the Rendering tab. Uncheck By default new layers added to the map should be displayed. Any layer subsequently added to the map will be off (invisible) by default. Zastavení vykreslování To stop the map drawing, press the Esc key. This will halt the refresh of the map canvas and leave the map partially drawn. It may take a bit of time between pressing Esc for the map drawing to halt. Ovlivnění kvality vykreslení QGIS has an option to influence the rendering quality of the map. Choose menu option Settings ► Options, click on the Rendering tab and select or deselect Make lines appear less jagged at the expense of some drawing performance. 11.4. Working with the map canvas 131 QGIS Desktop 3.16 User Guide Zrychlení vykreslování There are some settings that allow you to improve rendering speed. Open the QGIS options dialog using Settings ► Options, go to the Rendering tab and select or deselect the following checkboxes: • Use render caching where possible to speed up redraws. • Render layers in parallel using many CPU cores and then set the Max cores to use. • The map renders in the background onto a separate image and each Map Update interval, the content from this (off-screen) image will be taken to update the visible screen representation. However, if rendering finishes faster than this duration, it will be shown instantaneously. • With Enable Feature simplification by default for newly added layers, you simplify features‘ geometry (fewer nodes) and as a result, they display more quickly. Be aware that this can cause rendering inconsistencies. 11.4.2 Zooming and Panning There are multiple ways to zoom and pan to an area of interest. You can use the Map Navigation toolbar, the mouse and keyboard on the map canvas and also the menu actions from the View menu and the layers‘ contextual menu in the Layers panel. Icon Label Usage View menu Map Navigation Toolbar Layer Contextual Menu Pan Map When activated, left click anywhere on the map canvas to pan the map at the cursor position. You can also pan the map by holding down the left mouse button and dragging the map canvas. Zoom In When activated, left click anywhere on the map canvas to zoom in one level. The mouse cursor position will be the center of the zoomed area of interest. You can also zoom in to an area by dragging a rectangle on the map canvas with the left mouse button. Zoom Out When activated, left click anywhere on the map canvas to zoom out one level. The mouse cursor position will be the center of the zoomed area of interest. You can also zoom out from an area by dragging a rectangle on the map canvas with the left mouse button. Pan Map to Selection Pan the map to the active layer’s selected features. Zoom To Selection Zoom to the active layer’s selected features. Zoom To Layer Zoom to the active layer’s extent. Zoom Full Zoom to the extent of all the layers in the project. Zoom Last Zoom the map to the previous extent in history. Zoom Next Zoom the map to the next extent in history. Zoom to Native Resolution Zoom the map to a level where one pixel of the active raster layer covers one screen pixel. A Zoom factor can be set under the Settings ► Options ► Map tools menu to define the scale behavior while zooming. There, you can also set a list of Predefined Scales that will be available at the bottom of the map canvas. 132 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide With the Mouse on the Map Canvas In addition to using the Pan Zoom In and Zoom Out tools described above, you can hold the mouse wheel inside of the map canvas and drag the mouse cursor (on macOS, you may need to hold down the cmd key). You can also roll the mouse wheel to zoom in and out on the map. The mouse cursor position will be the center of the zoomed area of interest. Holding down Ctrl while rolling the mouse wheel results in a finer zoom. With the Keyboard on the Map Canvas Holding down spacebar on the keyboard and moving the mouse cursor will pan the map the same way dragging the map canvas with Pan does. Panning the map is possible with the arrow keys. Place the mouse cursor inside the map area, and press on the arrow keys to pan up, down, left and right. The PgUp and PgDown keys on the keyboard will cause the map display to zoom in or out following the zoom factor set. Pressing Ctrl++ or Ctrl+- also performs an immediate zoom in/out on the map canvas. When certain map tools are active (Identify, Measure…), you can perform a zoom by holding down Shift and dragging a rectangle on the map to zoom to that area. This is not enabled for selection tools (since they use Shift for adding to selection) or edit tools. 11.4.3 Prostorové záložky Spatial Bookmarks allow you to „bookmark“ a geographic location and return to it later. By default, bookmarks are saved in the user’s profile (as User Bookmarks), meaning that they are available from any project the user opens. They can also be saved for a single project (named Project Bookmarks) and stored within the project file, which can be helpful if the project is to be shared with other users. Tvoření záložek Abyste vytvořili záložku: 1. Zoom and pan to the area of interest. 2. Select the menu option View ► New Spatial Bookmark…, press Ctrl+B or right-click the Spatial Bookmarks entry in the Browser panel and select New Spatial Bookmark. The Bookmark Editor dialog opens. 11.4. Working with the map canvas 133 QGIS Desktop 3.16 User Guide Obr. 11.6: The Bookmark Editor Dialog 3. Enter a descriptive name for the bookmark 4. Enter or select a group name in which to store related bookmarks 5. Select the extent of the area you wish to save, using the extent selector; the extent can be calculated from a loaded layer extent, the current map canvas or drawn over the current map canvas. 6. Indicate the CRS to use for the extent 7. Select whether the bookmark will be Saved in User Bookmarks or Project Bookmarks 8. Press Save to add the bookmark to the list Můžete mít více záložek se stejným názvem. Práce se záložkami To use and manage bookmarks, you can either use the Spatial Bookmarks panel or Browser. Select View ► Show Spatial Bookmark Manager or press Ctrl+7 to open the Spatial Bookmarks Manager panel. Select View ► Show Bookmarks or Ctrl+Shift+B to show the Spatial Bookmarks entry in the Browser panel. You can perform the following tasks: Task Spatial Bookmark Manager Browser Zoom to a Bookmark Double-click on it, or select the bookmark and press the Zoom to bookmark button. Double-click on it, drag and drop it to the map canvas, or right-click the bookmark and select Zoom to Bookmark. Delete a bookmark Select the bookmark and click the Delete bookmark button. Confirm your choice. Right-click the bookmark and select Delete Spatial Bookmark. Confirm your choice. continues on next page 134 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide Tabulka 11.3 – pokračujte na předchozí stránce Task Spatial Bookmark Manager Browser Export bookmarks to XML Click the Import/Export Bookmarks button and select Export. All the bookmarks (user or project) are saved in an xml file. Select one or more folders (user or project) or subfolders (groups), then right-click and select Export Spatial Bookmarks…. The selected bookmark subset is saved. Import bookmarks from XML Click the Import/Export Bookmarks button and select Import. All bookmarks in the XML file are imported as user bookmarks. Right-click the Spatial Bookmarks entry or one of its folders (user or project) or subfolders (groups) to determine where to import the bookmarks, then select Import Spatial Bookmarks. If performed on the Spatial Bookmarks entry, the bookmarks are added to User Bookmarks. Edit bookmark You can change a bookmark by changing the values in the table. You can edit the name, the group, the extent and if it is stored in the project or not. Right-click the desired bookmark and select Edit Spatial Bookmark…. The Bookmark Editor will open, allowing you to redefine every aspect of the bookmark as if you were creating it for the first time. You can also drag and drop the bookmark between folders (user and project) and subfolders (groups). You can also zoom to bookmarks by typing the bookmark name in the locator. 11.4.4 Dekorace Decorations include Grid, Title Label, Copyright Label, Image, North Arrow, Scale Bar and Layout Extents. They are used to ‚decorate‘ the map by adding cartographic elements. Mřížka Grid allows you to add a coordinate grid and coordinate annotations to the map canvas. 1. Select menu option View ► Decorations ► Grid… to open the dialog. 11.4. Working with the map canvas 135 QGIS Desktop 3.16 User Guide Obr. 11.7: Dialog mřížky 2. Tick Enable grid and set grid definitions according to the layers loaded in the map canvas: • The Grid type: it can be Line or Marker • The associated Line symbol or marker symbol used to represent the grid marks • The Interval X and Interval Y between the grid marks, in map units • An Offset X and Offset Y distance of the grid marks from the bottom left corner of the map canvas, in map units • The interval and offset parameters can be set based on the: – Canvas Extents: generates a grid with an interval that is approximatively 1/5 of the canvas width – Active Raster Layer resolution 3. Tick Draw annotations to display the coordinates of the grid marks and set: • The Annotation direction, ie how the labels would be placed relative to their grid line. It can be: – Horizontal or Vertical for all the labels – Horizontal and Vertical, ie each label is parallel to the grid mark it refers to – Boundary direction, ie each label follows the canvas boundary, and is perpendicular to the grid mark it refers to • The Annotation font (text formatting, buffer, shadow…) using the font selector widget • The Distance to map frame, margin between annotations and map canvas limits. Convenient when exporting the map canvas eg to an image format or PDF, and avoid annotations to be on the „paper“ limits. • The Coordinate precision 4. Click Apply to verify that it looks as expected or OK if you’re satisfied. 136 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide Title Label Title Label allows you to decorate your map with a Title. To add a Title Label decoration: 1. Select menu option View ► Decorations ► Title Label… to open the dialog. Obr. 11.8: The Title Decoration Dialog 2. Make sure Enable Title Label is checked 3. Enter the title text you want to place on the map. You can make it dynamic using the Insert or Edit an Expression… button. 4. Choose the Font for the label using the font selector widget with full access to QGIS text formatting options. Quickly set the font color and opacity by clicking the black arrow to the right of the font combo box. 5. Select the color to apply to the title’s Background bar color. 6. Choose the Placement of the label in the canvas: options are Top left, Top Center (default), Top Right, Bottom left, Bottom Center and Bottom Right. 7. Refine the placement of the item by setting a horizontal and/or vertical Margin from Edge. These values can be in Millimeters or Pixels or set as a Percentage of the width or height of the map canvas. 8. Click Apply to verify that it looks as expected or OK if you’re satisfied. Copyright Label Copyright Label can be used to decorate your map with a Copyright label. To add this decoration: 1. Select menu option View ► Decorations ► Copyright Label… to open the dialog. 11.4. Working with the map canvas 137 QGIS Desktop 3.16 User Guide Obr. 11.9: The Copyright Decoration Dialog 2. Make sure Enable Copyright Label is checked 3. Enter the copyright text you want to place on the map. You can make it dynamic using the Insert or Edit an Expression… button. 4. Choose the Font for the label using the font selector widget with full access to QGIS text formatting options. Quickly set the font color and opacity by clicking the black arrow to the right of the font combo box. 5. Choose the Placement of the label in the canvas: options are Top left, Top Center, Top Right, Bottom left, Bottom Center, and Bottom Right (default for Copyright decoration) 6. Refine the placement of the item by setting a horizontal and/or vertical Margin from Edge. These values can be in Millimeters or Pixels or set as a Percentage of the width or height of the map canvas. 7. Click Apply to verify that it looks as expected or OK if you’re satisfied. Image Decoration Image allows you to add an image (logo, legend, ..) on the map canvas. To add an image: 1. Select menu option View ► Decorations ► Image… to open the dialog. Obr. 11.10: The Image Decoration Dialog 2. Make sure Enable Image is checked 3. Select a bitmap (e.g. png or jpg) or SVG image using the … Browse button 138 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide 4. If you have chosen a parameter enabled SVG then you can also set a Fill or Stroke (outline) color. For bitmap images, the color settings are disabled. 5. Set a Size of the image in mm. The width of selected image is used to resize it to given Size. 6. Choose where you want to place the image on the map canvas with the Placement combo box. The default position is Top Left. 7. Set the Horizontal and Vertical Margin from (Canvas) Edge. These values can be set in Millimeters, Pixels or as a Percentage of the width or height of the map canvas. 8. Click Apply to verify that it looks as expected and OK if you’re satisfied. Směrová růžice North Arrow allows you to add a north arrow on the map canvas. To add a north arrow: 1. Select menu option View ► Decorations ► North Arrow… to open the dialog. Obr. 11.11: The North Arrow Dialog 2. Make sure Enable north arrow is checked 3. Optionally change the color and size, or choose a custom SVG 4. Optionally change the angle or choose Automatic to let QGIS determine the direction 5. Optionally choose the placement from the Placement combo box 6. Optionally refine the placement of the arrow by setting a horizontal and/or vertical Margin from (Canvas) Edge. These values can be in Millimeters or Pixels or set as a Percentage of the width or height of the map canvas. 7. Click Apply to verify that it looks as expected and OK if you’re satisfied. 11.4. Working with the map canvas 139 QGIS Desktop 3.16 User Guide Měřítko Scale Bar adds a simple scale bar to the map canvas. You can control the style and placement, as well as the labelling of the bar. QGIS only supports displaying the scale in the same units as your map frame. So, if the units of your project’s CRS are meters, you can’t create a scale bar in feet. Likewise, if you are using decimal degrees, you can’t create a scale bar to display distance in meters. Přidání měřítka 1. Select menu option View ► Decorations ► Scale Bar… to open the dialog Obr. 11.12: Dialog měřítka 2. Make sure Enable scale bar is checked 3. Choose a style from the Scale bar style combo box 4. Select the Color of bar by choosing a fill color (default: black) and an outline color (default: white). The scale bar fill and outline can be made opaque by clicking on the down arrow to the right of the color input. 5. Select the font for the scale bar from the Font of bar combo box 6. Set the Size of bar 7. Optionally check Automatically snap to round number on resize to display easy-to-read values 8. Choose the placement from the Placement combo box 9. You can refine the placement of the item by setting a horizontal and/or vertical Margin from (Canvas) Edge. These values can be in Millimeters or Pixels or set as a Percentage of the width or height of the map canvas. 10. Click Apply to verify that it looks as expected or OK if you’re satisfied. 140 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide Layout Extents Layout Extents adds the extents of map item(s) in print layout(s) to the canvas. When enabled, the extents of all map items within all print layouts are shown using a lightly dotted border labeled with the name of the print layout and map item. You can control the style and labeling of the displayed layout extents. This decoration is useful when you are tweaking the positioning of map elements such as labels, and need to know the actual visible region of print layouts. Obr. 11.13: Example of layout extents displayed in a QGIS project with two print layouts. The print layout named ‚Sights‘ contains two map items, while the other print layout contains one map item. To add layout extent(s): 1. Select View ► Decorations ► Layout Extents to open the dialog 11.4. Working with the map canvas 141 QGIS Desktop 3.16 User Guide Obr. 11.14: The Layout Extents Dialog 2. Make sure Show layout extents is checked. 3. Optionally change the symbol and labeling of the extents. 4. Click Apply to verify that it looks as expected and OK if you’re satisfied. Tip: Decorations Settings When you save a QGIS project file, any changes you have made to Grid, North Arrow, Scale Bar, Copyright and Layout Extents will be saved in the project and restored the next time you load the project. 11.4.5 Anotační nástroje Annotations are information added to the map canvas and shown within a balloon. This information can be of different types and annotations are added using the corresponding tools in the Attributes Toolbar: • Text Annotation for custom formatted text • HTML Annotation to place the content of an html file • SVG Annotation to add an SVG symbol • Form Annotation : useful to display attributes of a vector layer in a customized ui file (see Obr. 11.15). This is similar to the custom attribute forms, but displayed in an annotation item. Also see this video https://www. youtube.com/watch?v=0pDBuSbQ02o&feature=youtu.be&t=2m25s from Tim Sutton for more information. 142 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide Obr. 11.15: Customized QT Designer annotation form To add an annotation, select the corresponding tool and click on the map canvas. An empty balloon is added. Double-click on it and a dialog opens with various options. This dialog is almost the same for all the annotation types: • At the top, a file selector to fill with the path to an html, svg or ui file depending on the type of annotation. For text annotation, you can enter your message in a text box and set its rendering with the normal font tools. • Fixed map position: when unchecked, the balloon placement is based on a screen position (instead of the map), meaning that it’s always shown regardless the map canvas extent. • Linked layer: associates the annotation with a map layer, making it visible only when that layer is visible. • Map marker: using QGIS symbols, sets the symbol to display at the balloon anchor position (shown only when Fixed map position is checked). • Frame style: sets the frame background color, transparency, stroke color or width of the balloon using QGIS symbols. • Contents margins: sets interior margins of the annotation frame. 11.4. Working with the map canvas 143 QGIS Desktop 3.16 User Guide Obr. 11.16: Dialog textové anotace Annotations can be selected when an annotation tool is enabled. They can then be moved by map position (by dragging the map marker) or by moving only the balloon. The Move Annotation tool also allows you to move the balloon on the map canvas. To delete an annotation, select it and either press the Del or Backspace button, or double-click it and press the Delete button in the properties dialog. Poznámka: If you press Ctrl+T while an Annotation tool (move annotation, text annotation, form annotation) is active, the visibility states of the items are inverted. Tip: Layout the map with annotations You can print or export annotations with your map to various formats using: • map canvas export tools available in the Project menu • print layout, in which case you need to check Draw map canvas items in the corresponding map item properties 144 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide 11.4.6 Měření General information QGIS provides four means of measuring geometries: • interactive measurement tools • measuring in the Field Calculator • derived measurements in the Identifying Features tool • the vector analysis tool: Vector ► Geometry Tools ► Export/Add Geometry Columns Measuring works within projected coordinate systems (e.g., UTM) and unprojected data. The first three measuring tools behave equally to global project settings: • Unlike most other GIS, the default measurement metric is ellipsoidal, using the ellipsoid defined in Project ► Properties… ► General. This is true both when geographic and projected coordinate systems are defined for the project. • If you want to calculate the projected/planimetric area or distance using cartesian maths, the measurement ellipsoid has to be set to „None/Planimetric“ (Project ► Properties… ► General). However, with a geographic (ie unprojected) CRS defined for the data and project, area and distance measurement will be ellipsoidal. However, neither the identify tool nor the field calculator will transform your data to the project CRS before measuring. If you want to achieve this, you have to use the vector analysis tool: Vector ► Geometry Tools ► Add Geometry Attributes…. Here, measurement is planimetric, unless you choose the ellipsoidal measurement. Measure length, areas and angles interactively Click the icon in the Attribute toolbar to begin measurements. The down arrow near the icon switches between length, area or angle. The default unit used in the dialog is the one set in Project ► Properties… ► General menu. Poznámka: Configuring the measure tool While measuring length or area, clicking the Configuration button at the bottom of the widget opens the Settings ► Options ► Map Tools menu, where you can select the rubberband color, the precision of the measurements and the unit behavior. You can also choose your preferred measurement or angle units, but keep in mind that those values are overridden in the current project by the selection made in the Project ► Properties… ► General menu, and by the selection made in the measurement widget. All measuring modules use the snapping settings from the digitizing module (see section Nastavení přichytávací tolerance a vyhledání poloměru). So, if you want to measure exactly along a line feature, or around a polygon feature, first set its layer snapping tolerance. Now, when using the measuring tools, each mouse click (within the tolerance setting) will snap to that layer. By default, Measure Line measures real distances between given points according to a defined ellipsoid. The tool then allows you to click points on the map. Each segment length, as well as the total, shows up in the measure window. To stop measuring, click the right mouse button. Now it is possible to copy all your line measurements at once to the clipboard using the Copy All button. Note that you can use the drop-down list near the total to change the measurement units interactively while working with the measure tool (‚Meters‘, ‚Kilometers‘, ‚Feet‘, ‚Yards‘, ‚Miles‘, ‚Nautical miles‘, ‚Centimeters‘, ‚Millimeters‘, ‚Degrees‘, ‚Map units‘). This unit is retained for the widget until a new project is created or another project is opened. The Info section in the dialog explains how calculations are made according to the CRS settings available. 11.4. Working with the map canvas 145 QGIS Desktop 3.16 User Guide Obr. 11.17: Measure Distance Measure Area : Areas can also be measured. In the measure window, the accumulated area size appears. Right-click to stop drawing. The Info section is also available as well as the ability to switch between different area units (‚Square meters‘, ‚Square kilometers‘, ‚Square feet‘, ‚Square yards‘, ‚Square miles‘, ‚Hectares‘, ‚Acres‘, ‚Square centimeters‘, ‚Square millimeters‘, ‚Square nautical miles‘, ‚Square degrees‘, ‚Map units‘). Obr. 11.18: Measure Area Measure Angle : You can also measure angles. The cursor becomes cross-shaped. Click to draw the first segment of the angle you wish to measure, then move the cursor to draw the desired angle. The measurement is displayed in a pop-up dialog. Obr. 11.19: Measure Angle 146 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide 11.5 Interacting with features 11.5.1 Selecting features QGIS provides several tools to select features on the map canvas. Selection tools are available in the Edit ► Select menu or in the Selection Toolbar. Poznámka: Selection tools work with the currently active layer. Selecting manually on the map canvas To select one or more features with the mouse, you can use one of the following tools: • Select Features by area or single click • Select Features by Polygon • Select Features by Freehand • Select Features by Radius Poznámka: Other than Select Features by Polygon , these manual selection tools allow you to select feature(s) on the map canvas with a single click. Poznámka: Use the Select Features by Polygon tool to use an existing polygon feature (from any layer) to select overlapping features in the active layer. Right-click in the polygon and choose it from the context menu that shows a list of all the polygons that contain the clicked point. All the overlapping features from the active layer are selected. Tip: Use the Edit ► Select ► Reselect Features tool to redo your latest selection. Very useful when you have painstakingly made a selection, and then click somewhere else accidentally and clear your selection. While using the Select Feature(s) tool, holding Shift or Ctrl toggles whether a feature is selected (ie either adds to the current selection or remove from it). For the other tools, different behaviors can be performed by holding down: • Shift: add features to the current selection • Ctrl: substract features from the current selection • Ctrl+Shift: intersect with current selection, ie only keep overlapping features from the current selection • Alt: select features that are totally within the selection shape. Combined with Shift or Ctrl keys, you can add or substract features to/from the current selection. 11.5. Interacting with features 147 QGIS Desktop 3.16 User Guide Automatic selection The other selection tools, most of them available from the Attribute table, perform a selection based on a feature’s attribute or its selection state (note that attribute table and map canvas show the same information, so if you select one feature in the attribute table, it will be selected on the map canvas too): • Select By Expression… select features using expression dialog • Select Features By Value… or press F3 • Deselect Features from All Layers or press Ctrl+Alt+A to deselect all selected features in all layers • Deselect Features from the Current Active Layer or press Ctrl+Shift+A • Select All Features or press Ctrl+A to select all features in the current layer • Invert Feature Selection to invert the selection in the current layer • Select by Location to select the features based on their spatial relationship with other features (in the same or another layer - see Select by location) For example, if you want to find regions that are boroughs from regions.shp of the QGIS sample data, you can: 1. Use the Select features using an Expression icon 2. Expand the Fields and Values group 3. Double-click the field that you want to query („TYPE_2“) 4. Click All Unique in the panel that shows up on the right 5. From the list, double-click ‚Borough‘. In the Expression editor field, write the following query: "TYPE_2" = 'Borough' 6. Click Select Features From the expression builder dialog, you can also use Function list ► Recent (Selection) to make a selection that you have used before. The dialog remembers the last 20 expressions used. See Výrazy for more information and examples. Tip: Save your selection into a new file Users can save selected features into a New Temporary Scratch Layer or a New Vector Layer using Edit ► Copy Features and Edit ► Paste Features as in the desired format. Select Features By Value This selection tool opens the layer’s feature form allowing the user to choose which value to look for for each field, whether the search should be case-sensitive, and the operation that should be used. The tool has also autocompletes, automatically filling the search box with existing values. 148 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide Obr. 11.20: Filter/Select features using form dialog Alongside each field, there is a drop-down list with options to control the search behaviour: Field search option Řetězec Numeric Datum Exclude Field from the search Equal to (=) Not equal to (̸=) Greater than (>) Less than (<) Greater than or equal to (≥) Less than or equal to (≤) Between (inclusive) Not between (inclusive) Contains Does not contain Is missing (null) Is not missing (not null) Starts with Ends with For string comparisons, it is also possible to use the Case sensitive option. After setting all search options, click Select features to select the matching features. The drop-down options are: • Select features • Add to current selection • Remove from current selection • Filter current selection 11.5. Interacting with features 149 QGIS Desktop 3.16 User Guide You can also clear all search options using the Reset form button. Once the conditions are set, you can also either: • Zoom to features on the map canvas without the need of a preselection • Flash features, highlighting the matching features. This is a handy way to identify a feature without selection or using the Identify tool. Note that the flash does not alter the map canvas extent and would be visible only if the feature is within the bounds of the current map canvas. 11.5.2 Identifying Features The Identify tool allows you to interact with the map canvas and get information on features in a pop-up window. To identify features, use: • View ► Identify Features • Ctrl+Shift+I (or Cmd+Shift+I), • Identify Features icon on the Attributes toolbar Using the Identify Features tool QGIS offers several ways to identify features with the Identify Features tool: • left click identifies features according to the selection mode and the selection mask set in the Identify Results panel • right click with Identify Feature(s) as selection mode set in the Identify Results panel fetches all snapped features from all visible layers. This opens a context menu, allowing the user to choose more precisely the features to identify or the action to execute on them. • right click with Identify Features by Polygon as selection mode in the Identify Results panel identifies the features that overlap with the chosen existing polygon, according to the selection mask set in the Identify Results panel Tip: Filter the layers to query with the Identify Features tool Under Layer Capabilities in Project ► Properties… ► Data Sources, uncheck the Identifiable column next to a layer to avoid it being queried when using the Identify Features tool in a mode other than Current Layer. This is a handy way to return features from only layers that are of interest for you. If you click on feature(s), the Identify Results dialog will list information about the feature(s) clicked. The default view is a tree view in which the first item is the name of the layer and its children are its identified feature(s). Each feature is described by the name of a field along with its value. This field is the one set in Layer Properties ► Display. All the other information about the feature follows. Feature information The Identify Results dialog can be customized to display custom fields, but by default it will display the following information: • The feature display name; • Actions: Actions can be added to the identify feature windows. The action is run by clicking on the action label. By default, only one action is added, namely View feature form for editing. You can define more actions in the layer’s properties dialog (see Actions Properties). • Derived: This information is calculated or derived from other information. It includes: – general information about the feature’s geometry: 150 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide ∗ depending on the geometry type, the cartesian measurements of length, perimeter or area in the layer’s CRS units. For 3D line vectors the cartesian line length is available. ∗ depending on the geometry type and if an ellipsoid is set in the project properties dialog for Measurements, the ellipsoidal values of length, perimeter or area using the specified units ∗ the count of geometry parts in the feature and the number of the part clicked ∗ the count of vertices in the feature – coordinate information, using the project properties Coordinates display settings: ∗ X and Y coordinate values of the point clicked ∗ the number of the closest vertex to the point clicked ∗ X and Y coordinate values of the closest vertex (and Z/M if applicable) ∗ if you click on a curved segment, the radius of that section is also displayed. • Data attributes: This is the list of attribute fields and values for the feature that has been clicked. • information about the related child feature if you defined a relation: – the name of the relation – the entry in reference field, e.g. the name of the related child feature – Actions: lists actions defined in the layer’s properties dialog (see Actions Properties) and the default action is View feature form. – Data attributes: This is the list of attributes fields and values of the related child feature. Poznámka: Links in the feature’s attributes are clickable from the Identify Results panel and will open in your default web browser. 11.5. Interacting with features 151 QGIS Desktop 3.16 User Guide Obr. 11.21: Identify Results dialog The Identify Results dialog At the top of the window, you have a handful of tools: • Open Form of the current feature • Expand tree • Collapse tree • Expand New Results by Default to define whether the next identified feature’s information should be collapsed or expanded 152 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide • Clear Results • Copy selected feature to clipboard • Print selected HTML response • selection mode to use to fetch features to identify: – Identify Features by area or single click – Identify Features by Polygon – Identify Features by Freehand – Identify Features by Radius Poznámka: When using Identify Features by Polygon , you can right-click any existing polygon and use it to identify overlapping features in another layer. At the bottom of the window are the Mode and View combo boxes. Mode defines from which layers features should be identified: • Current layer: only features from the selected layer are identified. The layer need not be visible in the canvas. • Top down, stop at first: only features from the upper visible layer. • Top down: all features from the visible layers. The results are shown in the panel. • Layer selection: opens a context menu where the user selects the layer to identify features from, similar to a right-click. Only the chosen features will be shown in the result panel. The View can be set as Tree, Table or Graph. ‚Table‘ and ‚Graph‘ views can only be set for raster layers. The identify tool allows you to Auto open form for single feature results, found under Identify Settings . If checked, each time a single feature is identified, a form opens showing its attributes. This is a handy way to quickly edit a feature’s attributes. Další funkce lze nalézt v kontextovém menu identifikovaného prvku. Například, z kontextového menu můžete: • Zobrazit tvar prvku • Přiblížit na prvek • Kopírovat prvek: zkopírovat všechnu geometrii a atributy prvku • Toggle feature selection: Add identified feature to selection • Kopírovat hodnotu atributu: zkopírovat pouze hodnotu atributu, na který kliknete • Copy feature attributes: Copy the attributes of the feature • Vymazat výsledek: odstranit výsledky v okně • Vymazat zvýrazněné: odstranit z mapy zvýraznění prvků • Zvýraznit všechny • Zvýraznit vrstvu • Aktivovat vrstvu: zvolit vrstvu, aby byla aktivní • Vlastnosti vrstvy: otevřít okno s vlastnostmi vrstvy • Rozbalit vše • Sbalit vše 11.5. Interacting with features 153 QGIS Desktop 3.16 User Guide 11.6 Save and Share Layer Properties 11.6.1 Managing Custom Styles When a vector layer is added to the map canvas, QGIS by default uses a random symbol/color to render its features. However, you can set a default symbol in Project ► Properties… ► Default styles that will be applied to each newly added layer according to its geometry type. Most of the time, though, you’d rather have a custom and more complex style that can be applied automatically or manually to the layers (with less effort). You can achieve this by using the Style menu at the bottom of the Layer Properties dialog. This menu provides you with functions to create, load and manage styles. A style stores any information set in the layer properties dialog to render or interact with the layer (including symbology, labeling, fields and form definitions, actions, diagrams…) for vector layers, or the pixels (band or color rendering, transparency, pyramids, histogram …) for raster. Obr. 11.22: Vector layer style combo box options By default, the style applied to a loaded layer is named default. Once you have got the ideal and appropriate rendering for your layer, you can save it by clicking the Style combo box and choosing: • Rename Current: The active style is renamed and updated with the current options • Add: A new style is created using the current options. By default, it will be saved in the QGIS project file. See below to save the style in another file or a database • Remove: Delete unwanted style, in case you have more than one style defined for the layer. At the bottom of the Style drop-down list, you can see the styles set for the layer with the active one checked. Note that each time you validate the layer properties dialog, the active style is updated with the changes you’ve made. 154 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide You can create as many styles as you wish for a layer but only one can be active at a time. In combination with Map Themes, this offers a quick and powerful way to manage complex projects without the need to duplicate any layer in the map legend. Poznámka: Given that whenever you apply modifications to the layer properties, changes are stored in the active style, always ensure you are editing the right style to avoid mistakenly altering a style used in a map theme. Tip: Manage styles from layer context menu Right-click on the layer in the Layers panel to copy, paste, add or rename layer styles. 11.6.2 Storing Styles in a File or a Database While styles created from the Style combo box are by default saved inside the project and can be copied and pasted from layer to layer in the project, it’s also possible to save them outside the project so that they can be loaded in another project. Save as text file Clicking the Style ► Save Style, you can save the style as a: • QGIS layer style file (.qml) • SLD file (.sld), only available for vector layers Used on file-based format layers (.shp, .tab…), Save as Default generates a .qml file for the layer (with the same name). SLDs can be exported from any type of renderer – single symbol, categorized, graduated or rule-based – but when importing an SLD, either a single symbol or rule-based renderer is created. This means that categorized or graduated styles are converted to rule-based. If you want to preserve those renderers, you have to use the QML format. On the other hand, it can be very handy sometimes to have this easy way of converting styles to rule-based. Save in database Vector layer styles can also be stored in a database if the layer datasource is a database provider. Supported formats are PostGIS, GeoPackage, SpatiaLite, MSSQL and Oracle. The layer style is saved inside a table (named layer_styles) in the database. Click on Save Style… ► Save in database then fill in the dialog to define a style name, add a description, a .ui file if applicable and to check if the style should be the default style. You can save several styles for a single table in the database. However, each table can have only one default style. Default styles can be saved in the layer database or in qgis.db, a local SQLite database in the active user profile directory. 11.6. Save and Share Layer Properties 155 QGIS Desktop 3.16 User Guide Obr. 11.23: Save Style in database Dialog Tip: Sharing style files between databases You can only save your style in a database if the layer comes from such a database. You can’t mix databases (layer in Oracle and style in MSSQL for instance). Use instead a plain text file if you want the style to be shared among databases. Poznámka: You may encounter issues restoring the layer_styles table from a PostgreSQL database backup. Follow QGIS layer_style table and database backup to fix that. Load style When loading a layer in QGIS, if a default style already exists for this layer, QGIS loads the layer with this style. Also Style ► Restore Default looks for and loads that file, replacing the layer’s current style. Style ► Load Style helps you apply any saved style to a layer. While text-file styles (.sld or .qml) can be applied to any layer whatever its format, loading styles stored in a database is only possible if the layer is from the same database or the style is stored in the QGIS local database. The Database Styles Manager dialog displays a list of styles related to the layer found in the database and all the other styles saved in it, with name and description. Tip: Quickly share a layer style within the project You can also share layer styles within a project without importing a file or database style: right-click on the layer in the Layers Panel and, from the Styles combo box , copy the style of a layer and paste it to a group or a selection of layers: the style is applied to all the layers that are of the same type (vector vs raster) as the original layer and, in the case of vector layers, have the same geometry type (point, line or polygon). 156 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide 11.6.3 Layer definition file Layer definitions can be saved as a Layer Definition File (.qlr) using Export ► Save As Layer Definition File… in the active layers‘ context menu. A layer definition file (.qlr) includes references to the data source of the layers and their styles. .qlr files are shown in the Browser Panel and can be used to add the layers (with the saved style) to the Layers Panel. You can also drag and drop .qlr files from the system file manager into the map canvas. 11.7 Storing values in Variables In QGIS, you can use variables to store useful recurrent values (e.g. the project’s title, or the user’s full name) that can be used in expressions. Variables can be defined at the application’s global level, project level, layer level, layout level, and layout item’s level. Just like CSS cascading rules, variables can be overwritten - e.g., a project level variable will overwrite any application global level variables set with the same name. You can use these variables to build text strings or other custom expressions using the @ character before the variable name. For example in print layout creating a label with this content: This map was made using QGIS [% @qgis_version %]. The project file for this map is: [% @project_path %] Will render the label like this: This map was made using QGIS 3.4.4-Madeira. The project file for this map is: /gis/qgis-user-conference-2019.qgs Besides the preset read-only variables, you can define your own custom variables for any of the levels mentioned above. You can manage: • global variables from the Settings ► Options menu • project variables from the Project Properties dialog (see Vlastnosti projektu) • vector layer variables from the Layer Properties dialog (see The Vector Properties Dialog); • layout variables from the Layout panel in the Print layout (see The Layout Panel); • and layout item variables from the Item Properties panel in the Print layout (see Layout Items Common Options). To differentiate from editable variables, read-only variable names and values are displayed in italic. On the other hand, higher level variables overwritten by lower level ones are strike through. 11.7. Storing values in Variables 157 QGIS Desktop 3.16 User Guide Obr. 11.24: Variables editor at the project level Poznámka: You can read more about variables and find some examples in Nyall Dawson’s Exploring variables in QGIS 2.12, part 1, part 2 and part 3 blog posts. 11.8 Authentication QGIS has the facility to store/retrieve authentication credentials in a secure manner. Users can securely save credentials into authentication configurations, which are stored in a portable database, can be applied to server or database connections, and are safely referenced by their ID tokens in project or settings files. For more information see Ověřovací systém. A master password needs to be set up when initializing the authentication system and its portable database. 158 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide 11.9 Common widgets In QGIS, there are some options you’ll often have to work with. For convenience, QGIS provides you with special widgets that are presented below. 11.9.1 Výběr barvy The color dialog The Select Color dialog will appear whenever you click the icon to choose a color. The features of this dialog depend on the state of the Use native color chooser dialogs parameter checkbox in Settings ► Options… ► General. When checked, the color dialog used is the native one of the OS on which QGIS is running. Otherwise, the QGIS custom color chooser is used. The custom color chooser dialog has four different tabs which allow you to select colors by Color ramp , Color wheel , Color swatches or Color picker . With the first two tabs, you can browse to all possible color combinations and apply your choice to the item. Obr. 11.25: Tabulka rozsahu výběru barvy In the Color swatches tab, you can choose from a list of color palettes (see Colors Settings for details). All but the Recent colors palette can be modified with the Add current color and Remove selected color buttons at the bottom of the frame. The … button next to the palette combo box also offers several options to: • copy, paste, import or export colors • create, import or remove color palettes • add the custom palette to the color selector widget with the Show in Color Buttons item (see Obr. 11.27) 11.9. Common widgets 159 QGIS Desktop 3.16 User Guide Obr. 11.26: Color selector swatches tab Another option is to use the Color picker which allows you to sample a color from under your mouse cursor at any part of the QGIS UI or even from another application: press the space bar while the tab is active, move the mouse over the desired color and click on it or press the space bar again. You can also click the Sample Color button to activate the picker. Whatever method you use, the selected color is always described through color sliders for HSV (Hue, Saturation, Value) and RGB (Red, Green, Blue) values. The color is also identifiable in HTML notation. Modifying a color is as simple as clicking on the color wheel or ramp or on any of the color parameters sliders. You can adjust such parameters with the spinbox beside or by scrolling the mouse wheel over the corresponding slider. You can also type the color in HTML notation. Finally, there is an Opacity slider to set transparency level. The dialog also provides a visual comparison between the Old color (applied to object) and the Current one (being selected). Using drag-and-drop or pressing the Add color to swatch button, any of these colors can be saved in a slot for easy access. Tip: Quick color modification Drag-and-drop a color selector widget onto another one to apply its color. 160 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide The color drop-down shortcut Click the drop-down arrow to the right of the color button to display a widget for quick color selection. This shortcut provides access to: • a color wheel to pick a color from • an alpha slider to change color opacity • the color palettes previously set to Show in Color Buttons • copy the current color and paste it into another widget • pick a color from anywhere on your computer display • choose a color from the color selector dialog • drag-and-drop the color from one widget to another for quick modification Poznámka: When the color widget is set to a project color through the data-defined override properties, the above functions for changing the color are unavailable. You’d first need to Unlink color or Clear the definition. Obr. 11.27: Quick color selector menu 11.9. Common widgets 161 QGIS Desktop 3.16 User Guide The color ramp drop-down shortcut Color ramps are a practical way to apply a set of colors to one or many features. Their creation is described in the Setting a Color Ramp section. As for the colors, pressing the color ramp button opens the corresponding color ramp type dialog allowing you to change its properties. Obr. 11.28: Customizing a colorbrewer ramp The drop-down menu to the right of the button gives quick access to a wider set of color ramps and options: • Invert Color Ramp • a preview of the gradient or catalog: cpt-city color ramps flagged as Favorites in the Style Manager dialog • All Color Ramps to access the compatible color ramps database • Create New Color Ramp… of any supported type that could be used in the current widget (note that this color ramp will not be available elsewhere unless you save it in the library) • Edit Color Ramp…, the same as clicking the whole color ramp button • Save Color Ramp…, to save the current color ramp with its customizations in the style library Obr. 11.29: Quick color ramp selection widget 162 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide 11.9.2 Symbol Widget The Symbol selector widget is a convenient shortcut when you want to set symbol properties of a feature. Clicking the drop-down arrow shows the following symbol options, together with the features of the color drop-down widget: • Configure Symbol…: the same as pressing the symbol selector widget. It opens a dialog to set the symbol parameters. • Copy Symbol from the current item • Paste Symbol to the current item, speeding configuration 11.9.3 Font Selector The Font selector widget is a convenient shortcut when you want to set font properties for textual information (feature labels, decoration labels, map legend text, …). Clicking the drop-down arrow shows some or all of the following options: Obr. 11.30: Font selector drop-down menu • Font Size in the associated unit • Recent Fonts ► menu with the active font checked (at the top) • Configure Format…: same as pressing the font selector widget. It opens a dialog to set text format parameters. Depending on the context, it can be the OS default Text format dialog or the QGIS custom dialog with advanced formatting options (opacity, orientation, buffer, background, shadow, …) as described in section Formatting the label text. • Copy Format of the text • Paste Format to the text, speeding configuration • the color widget for quick color setting 11.9. Common widgets 163 QGIS Desktop 3.16 User Guide 11.9.4 Unit Selector Size properties of the items (labels, symbols, layout elements, …) in QGIS are not necessarily bound to either the project units or the units of a particular layer. For a large set of properties, the Unit selector drop-down menu allows you to tweak their values according to the rendering you want (based on screen resolution, paper size, or the terrain). Available units are: • Millimeters • Points • Pixels • Inches • Meters at Scale: This allows you to always set the size in meters, regardless of what the underlying map units are (e.g. they can be in inches, feet, geographic degrees, …). The size in meters is calculated based on the current project ellipsoid setting and a projection of the distances in meters at the center of the current map extent. • and Map Units: The size is scaled according to the map view scale. Because this can lead to too big or too small values, use the button next to the entry to constrain the size to a range of values based on: – The Minimum scale and the Maximum scale: The value is scaled based on the map view scale until you reach any of these scale limits. Out of the range of scale, the value at the nearest scale limit is kept. – and/or The Minimum size and the Maximum size in mm: The value is scaled based on the map view scale until it reaches any of these limits; Then the limit size is kept. Obr. 11.31: Adjust scaling range dialog 11.9.5 Number Formatting Numeric formatters allow formatting of numeric values for display, using a variety of different formatting techniques (for instance scientific notation, currency values, percentage values, etc). One use of this is to set text in a layout scale bar or fixed table. Different categories of formats are supported. For most of them, you can set part or all of the following numeric options: • Show thousands separator • Show plus sign • Show trailing zeros 164 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide But they can also have their custom settings. Provided categories are: • General, the default category: has no setting and displays values as set in the parent widget properties or using the global settings. • Number – The value can be Round to a self defined number of Decimal places or their Significant figures – customize the Thousands separator and Decimal separator • Bearing for a text representation of a direction/bearing using: – Format: possible ranges of values are 0 to 180°, with E/W suffix, -180 to +180° and 0 to 360° – number of Decimal places • Currency for a text representation of a currency value. – Prefix – Suffix – number of Decimal places • Fraction for a vulgar fractional representation of a decimal value (e.g. 1/2 instead of 0.5) – Use unicode super/subscript to show. For example 1/2 instead of 1/2 – Use dedicated Unicode characters – customize the Thousands separator • Percentage - appends % to the values, with setting of: – number of Decimal places – Scaling to indicate whether the actual values already represent percentages (then they will be kept as is) or fractions (then they are converted) • Scientific notation in the form 2.56e+03. The number of Decimal places can be set. A live preview of the settings is displayed under the Sample section. 11.9.6 Režim míchání QGIS offers different options for special rendering effects with these tools that you may previously only know from graphics programs. Blending modes can be applied on layers and features, and also on print layout items: • Normal: This is the standard blend mode, which uses the alpha channel of the top pixel to blend with the pixel beneath it. The colors aren’t mixed. • Lighten: This selects the maximum of each component from the foreground and background pixels. Be aware that the results tend to be jagged and harsh. • Screen: Light pixels from the source are painted over the destination, while dark pixels are not. This mode is most useful for mixing the texture of one item with another item (such as using a hillshade to texture another layer). • Dodge: Brighten and saturate underlying pixels based on the lightness of the top pixel. Brighter top pixels cause the saturation and brightness of the underlying pixels to increase. This works best if the top pixels aren’t too bright. Otherwise the effect is too extreme. • Addition: Adds pixel values of one item to the other. In case of values above the maximum value (in the case of RGB), white is displayed. This mode is suitable for highlighting features. • Darken: Retains the lowest values of each component of the foreground and background pixels. Like lighten, the results tend to be jagged and harsh. 11.9. Common widgets 165 QGIS Desktop 3.16 User Guide • Multiply: Pixel values of the top item are multiplied with the corresponding values for the bottom item. The results are darker. • Burn: Darker colors in the top item cause the underlying items to darken. Burn can be used to tweak and colorize underlying layers. • Overlay: Combines multiply and screen blending modes. Light parts become lighter and dark parts become darker. • Soft light: Very similar to overlay, but instead of using multiply/screen it uses color burn/dodge. This is supposed to emulate shining a soft light onto an image. • Hard light: Hard light is also very similar to the overlay mode. It’s supposed to emulate projecting a very intense light onto an image. • Difference: Subtracts the top pixel from the bottom pixel, or the other way around, in order always to get a positive value. Blending with black produces no change, as the difference with all colors is zero. • Subtract: Subtracts pixel values of one item from the other. In the case of negative values, black is displayed. 11.9.7 Data defined override setup Next to many options in the vector layer properties dialog or settings in the print layout, you will find a Data defined override icon. Using expressions based on layer attributes or item settings, prebuilt or custom functions and variables, this tool allows you to set dynamic values for parameters. When enabled, the value returned by this widget is applied to the parameter regardless of its normal value (checkbox, textbox, slider…). The data defined override widget Clicking the Data defined override icon shows the following entries: • Description… that indicates if the option is enabled, which input is expected, the valid input type and the current definition. Hovering over the widget also pops up this information. • Store data in the project: a button allowing the property to be stored using to the Auxiliary Storage Properties mechanism. • Field type: an entry to select from the layer’s fields that match the valid input type. • Color: when the widget is linked to a color property, this menu gives access to the colors defined as part of the current project’s colors scheme. • Variable: a menu to access the available user-defined variables • Edit… button to create or edit the expression to apply, using the Expression String Builder dialog. To help you correctly fill in the expression, a reminder of the expected output’s format is provided in the dialog. • Paste and Copy buttons. • Clear button to remove the setup. • For numeric and color properties, Assistant… to rescale how the feature data is applied to the property (more details below) Tip: Use right-click to (de)activate the data override When the data-defined override option is set up correctly the icon is yellow or . If it is broken, the icon is red or . You can enable or disable a configured data-defined override button by simply clicking the widget with the right mouse button. 166 Kapitola 11. Obecné nástroje QGIS Desktop 3.16 User Guide Using the data-defined assistant interface When the Data-defined override button is associated with a numeric or color parameter, it has an Assistant… option that allows you to change how the data is applied to the parameter for each feature. The assistant allows you to: • Define the Input data, ie: – the attribute to represent, using the Field listbox or the Set column expression function (see Výrazy) – the range of values to represent: you can manually enter the values or use the Fetch value range from layer button to fill these fields automatically with the minimum and maximum values returned by the chosen attribute or the expression applied to your data • Apply transform curve: by default, output values (see below for setting) are applied to input features following a linear scale. You can override this logic: enable the transform option, click on the graphic to add break point(s) and drag the point(s) to apply a custom distribution. • Define the Output values: the options vary according to the parameter to define. You can globally set: – the minimum and maximum values to apply to the selected property (n case of a color setting, you’ll need to provide a color ramp) – the Scale method of representation which can be Flannery, Exponential, Surface or Radius – the Exponent to use for data scaling – the output value or color to represent features with NULL values When compatible with the property, a live-update preview is displayed in the right-hand side of the dialog to help you control the value scaling. Obr. 11.32: The data-defined size assistant The values presented in the varying size assistant above will set the size ‚Data-defined override‘ with: coalesce(scale_exp(Importance, 1, 20, 2, 10, 0.57), 1) 11.9. Common widgets 167 QGIS Desktop 3.16 User Guide 168 Kapitola 11. Obecné nástroje KAPITOLA 12 The Style Library 12.1 The Style Manager 12.1.1 The Style Manager dialog The Style Manager is the place where you can manage and create generic style items. These are symbols, color ramps, text formats or label settings that can be used to symbolize features, layers or print layouts. They are stored in the symbology-style.db database under the active user profile and shared with all the project files opened with that profile. Style items can also be shared with others thanks to the export/import capabilities of the Style Manager dialog. You can open that modeless dialog either: • from the Settings ► Style Manager… menu • with the Style Manager button from the Project toolbar • or with the Style Manager button from a vector Layer Properties ► menu (while configuring a symbol or formatting a text). 169 QGIS Desktop 3.16 User Guide Obr. 12.1: The Style Manager Organizing style items The Style Manager dialog displays in its center a frame with previewed items organized into tabs: • All for a complete collection of point, linear and surface symbols and label settings as well as predefined color ramps and text formats; • Marker for point symbols only; • Line for linear symbols only; • Fill for surface symbols only; • Color ramp; • Text format to manage text formats, which store the font, color, buffers, shadows, and backgrounds of texts (i.e. all the formatting parts of the label settings, which for instance can be used in layouts); • Label settings to manage label settings, which include the text formats and some layer-type specific settings such as label placement, priority, callouts, rendering… • 3D Symbols to configure symbols with 3D properties (extrusion, shading, altitude, …) for the features to render in a 3D Map view For each family of items, you can organize the elements into different categories, listed in the panel on the left: • Favorites: displayed by default when configuring an item, it shows an extensible set of items; • All: lists all the available items for the active type; • Tags: shows a list of labels you can use to identify the items. An item can be tagged more than once. Select a tag in the list and the tabs are updated to show only their items that belong to it. To create a new tag you could later attach to a set of items, use the Add Tag… button or select the Add Tag… from any tag contextual menu; • Smart Group: a smart group dynamically fetches its symbols according to conditions set (see eg, Obr. 12.2). Click the Add Smart Group… button to create smart groups. The dialog box allows you to enter an expression 170 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide to filter the items to select (has a particular tag, have a string in its name, etc.). Any symbol, color ramp, text format or label setting that satisfies the entered condition(s) is automatically added to the smart group. Obr. 12.2: Creating a Smart Group Tags and smart groups are not mutually exclusive: they are simply two different ways to organize your style elements. Unlike the smart groups that automatically fetch their belonged items based on the input constraints, tags are filled by the user. To edit any of those categories, you can either: • select the items, right-click and choose Add to Tag ► and then select the tag name or create a new tag; • select the tag and press Modify group… ► Attach Selected Tag to Symbols. A checkbox appears next to each item to help you select or deselect it. When selection is finished, press Modify group… ► Finish Tagging. • select the smart group, press Modify group… ► Edit smart group… and configure a new set of constraints in the Smart Group Editor dialog. This option is also available in the contextual menu of the smart group. To remove a tag or a smart group, right-click on it and select the Remove button. Note that this does not delete the items grouped in the category. Adding, editing or removing an item As seen earlier, style elements are listed under different tabs whose contents depend on the active category (tag, smart group, favorites…). When a tab is enabled, you can: • Add new items: press the Add item button and configure the item following symbols, color ramps or text format and label builder description. • Modify an existing item: select an item and press Edit item button and configure as mentioned above. • Delete existing items: to delete an element you no longer need, select it and click Remove item (also available through right-click). The item will be deleted from the local database. Note that the All tab provides access to these options for every type of item. Right-clicking over a selection of items also allows you to: • Add to Favorites; • Remove from Favorites; • Add to Tag ► and select the appropriate tag or create a new one to use; the currently assigned tags are checked; • Clear Tags: detaching the symbols from any tag; • Remove Item(s); • Edit Item: applies to the item you right-click over; • Copy Item; • Paste Item …: pasting to one of the categories of the style manager or elsewhere in QGIS (symbol or color buttons) 12.1. The Style Manager 171 QGIS Desktop 3.16 User Guide • Export Selected Symbol(s) as PNG… (only available with symbols); • Export Selected Symbol(s) as SVG… (only available with symbols); Sharing style items The Import/Export tool, at the left bottom of the Style Manager dialog, offers options to easily share symbols, color ramps, text formats and label settings with others. These options are also available through right-click over the items. Exporting items You can export a set of items to an .XML file: 1. Expand the Import/Export drop-down menu and select Export Item(s)… 2. Choose the items you’d like to integrate. Selection can be done with the mouse or using a tag or a group previously set. 3. Press Export when ready. You’ll be prompted to indicate the destination of the saved file. The XML format generates a single file containing all the selected items. This file can then be imported in another user’s style library. Obr. 12.3: Exporting style items When symbols are selected, you can also export them to .PNG or .SVG. Exporting to .PNG or .SVG (both not available for other style item types) creates a file for each selected symbol in a given folder. The SVG folder can be added to the SVG paths in Settings ► Options ► System menu of another user, allowing him direct access to all these symbols. 172 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide Importing items You can extend your style library by importing new items: 1. Expand the Import/Export drop-down menu and select Import Item(s) at the left bottom of the dialog. 2. In the new dialog, indicate the source of the style items (it can be an .xml file on the disk or a url). 3. Set whether to Add to favorites the items to import. 4. Check Do not import embedded tags to avoid the import of tags associated to the items being imported. 5. Give the name of any Additional tag(s) to apply to the new items. 6. Select from the preview the symbols you want to add to your library. 7. And press Import. Obr. 12.4: Importing style items Using the Browser panel It’s also possible to import style items into the active user profile style database directly from the Browser panel: 1. Select the style .xml file in the browser 2. Drag-and-drop it over the map canvas or right-click and select Import Style… 3. Fill the Import Items dialog following Importing items 4. Press Import and the selected style items are added to the style database Double-clicking the style file in the browser opens the Style Manager dialog showing the items in the file. You can select them and press Copy to Default Style… to import them into the active style database. Tags can be assigned to items. Also available through right-click, Open Style… command. 12.1. The Style Manager 173 QGIS Desktop 3.16 User Guide Obr. 12.5: Opening a style items file The dialog also allows to export single symbols as .PNG or .SVG files. 12.1.2 Setting a Color Ramp The Color ramp tab in the Style Manager dialog helps you preview different color ramps based on the category selected in the left panel. To create a custom color ramp, activate the Color ramp tab and click the Add item button. The button reveals a drop-down list to choose the ramp type: • Gradient: given a start and end colors, generate a color ramp which can be continuous or discrete. With double-clicking the ramp preview, you can add as many intermediate color stops as you want. 174 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide Obr. 12.6: Example of custom gradient color ramp with multiple stops • Color presets: allows to create a color ramp consisting of a list of colors selected by the user; • Random: creates a random set of colors based on range of values for Hue, Saturation, Value and Opacity and a number of colors (Classes); • Catalog: ColorBrewer: a set of predefined discrete color gradients you can customize the number of colors in the ramp; • or Catalog: cpt-city: an access to a whole catalog of color gradients to locally save as standard gradient. The cpt-city option opens a new dialog with hundreds of themes included ‚out of the box‘. 12.1. The Style Manager 175 QGIS Desktop 3.16 User Guide Obr. 12.7: cpt-city dialog with hundreds of color ramps Tip: Easily adjust the color stops of the gradient color ramp Double-clicking the ramp preview or drag-and-drop a color from the color spot onto the ramp preview adds a new color stop. Each color stop can be tweaked using the Výběr barvy widgets or by plotting each of its parameters. You can also reposition it using the mouse, the arrow keys (combine with Shift key for a larger move) or the Relative position spinbox. Pressing Delete stop as well as DEL key removes the selected color stop. 12.2 The Symbol Selector The Symbol selector is the main dialog to design a symbol. You can create or edit Marker, Line or Fill Symbols. 176 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide Obr. 12.8: Designing a Line symbol Two main components structure the symbol selector dialog: • the symbol tree, showing symbol layers that are combined afterwards to shape a new global symbol • and settings to configure the selected symbol layer in the tree. 12.2.1 The symbol layer tree A symbol can consist of several Symbol layers. The symbol tree shows the overlay of these symbol layers that are combined afterwards to shape a new global symbol. Besides, a dynamic symbol representation is updated as soon as symbol properties change. Depending on the level selected in the symbol tree items, various tools are made available to help you manage the tree: • add new symbol layer: you can stack as many symbols as you want • remove the selected symbol layer • lock colors of symbol layer: a locked color stays unchanged when user changes the color at the global (or upper) symbol level • duplicate a (group of) symbol layer(s) 12.2. The Symbol Selector 177 QGIS Desktop 3.16 User Guide • move up or down the symbol layer 12.2.2 Configuring a symbol In QGIS, configuring a symbol is done in two steps: the symbol and then the symbol layer. The symbol At the top level of the tree, it depends on the layer geometry and can be of Marker, Line or Fill type. Each symbol can embed one or more symbols (including, of any other type) or symbol layers. You can setup some parameters that apply to the global symbol: • Unit: it can be Millimeters, Points, Pixels, Meters at Scale, Map units or Inches (see Unit Selector for more details) • Opacity • Color: when this parameter is changed by the user, its value is echoed to all unlocked sub-symbols color • Size and Rotation for marker symbols • Width for line symbols Tip: Use the Size (for marker symbols) or the Width (for line symbols) properties at the symbol level to proportionally resize all of its embedded symbol layers dimensions. Poznámka: The Data-defined override button next to the width, size or rotation parameters is inactive when setting the symbol from the Style manager dialog. When the symbol is connected to a map layer, this button helps you create proportional or multivariate analysis rendering. • A preview of the symbols library: Symbols of the same type are shown and, through the editable drop-down list just above, can be filtered by free-form text or by categories. You can also update the list of symbols using the Style Manager button and open the eponym dialog. There, you can use any capabilities as exposed in The Style Manager section. The symbols are displayed either: – in an icon list (with thumbnail, name and associated tags) using the List View button below the frame; – or as icon preview using the Icon View button. • Press the Save Symbol button to add the symbol being edited to the symbols library. • With the Advanced option, you can: – for line and fill symbols, Clip features to canvas extent. – for fill symbols, Force right-hand rule orientation: allows forcing rendered fill symbols to follow the standard „right hand rule“ for ring orientation (i.e, polygons where the exterior ring is clockwise, and the interior rings are all counter-clockwise). The orientation fix is applied while rendering only, and the original feature geometry is unchanged. This allows for creation of fill symbols with consistent appearance, regardless of the dataset being rendered and the ring orientation of individual features. – Depending on the symbology of the layer a symbol is being applied to, additional settings are available in the Advanced menu: ∗ Symbol levels… to define the order of symbols rendering 178 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide ∗ Data-defined Size Legend ∗ Match to Saved Symbols… and Match to Symbols from File… to automatically assign symbols to classes The symbol layer At a lower level of the tree, you can customize the symbol layers. The available symbol layer types depend on the upper symbol type. You can apply on the symbol layer paint effects to enhance its rendering. Because describing all the options of all the symbol layer types would not be possible, only particular and significant ones are mentioned below. Common parameters Some common options and widgets are available to build a symbol layer, regardless it’s of marker, line or fill sub-type: • the color selector widget to ease color manipulation • Units: it can be Millimeters, Points, Pixels, Meters at Scale, Map units or Inches (see Unit Selector for more details) • the data-defined override widget near almost all options, extending capabilities of customizing each symbol (see Data defined override setup for more information) • the Enable symbol layer option controls the symbol layer’s visibility. Disabled symbol layers are not drawn when rendering the symbol but are saved in the symbol. Being able to hide symbol layers is convenient when looking for the best design of your symbol as you don’t need to remove any for the testing. The data-defined override then makes it possible to hide or display different symbol layers based on expressions (using, for instance, feature attributes). • the Draw effects button for effects rendering. Poznámka: While the description below assumes that the symbol layer type is bound to the feature geometry, keep in mind that you can embed symbol layers in each others. In that case, the lower level symbol layer parameter (placement, offset…) might be bound to the upper-level symbol, and not to the feature geometry itself. Marker Symbols Appropriate for point geometry features, marker symbols have several Symbol layer types: • Simple marker (default) 12.2. The Symbol Selector 179 QGIS Desktop 3.16 User Guide Obr. 12.9: Designing a Simple Marker Symbol • Ellipse marker: a simple marker symbol layer, with customizable width and height • Filled marker: similar to the simple marker symbol layer, except that it uses a fill sub symbol to render the marker. This allows use of all the existing QGIS fill (and stroke) styles for rendering markers, e.g. gradient or shapeburst fills. • Font marker: similar to the simple marker symbol layer, except that it uses installed fonts to render the marker. Its additional properties are: – Font family – Font style – Character(s), representing the text to display as symbol. They can be typed in or selected from the font characters collection widget and you can live Preview them with the selected settings. • Geometry generator (see The Geometry Generator) • Mask: its sub-symbol defines a mask shape whose color property will be ignored and only the opacity will be used. This is convenient when the marker symbol overlaps with labels or other symbols whose colors are close, making it hard to decipher. More details at Masks Properties. 180 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide • Raster image marker: use an image (PNG, JPG, BMP …) as marker symbol. The image can be a file on the disk, a remote URL or embedded in the style database (more details). Width and height of the image can be set independently or using the Lock aspect ratio . The size can be set using any of the common units or as a percentage of the image’s original size (scaled by the width). • Vector Field marker (see The Vector Field Marker) • SVG marker: provides you with images from your SVG paths (set in Settings ► Options… ► System menu) to render as marker symbol. Width and height of the symbol can be set independently or using the Lock aspect ratio . Each SVG file colors and stroke can also be adapted. The image can be a file on the disk, a remote URL or embedded in the style database (more details). Poznámka: SVG version requirements QGIS renders SVG files that follow the SVG Tiny 1.2 profile, intended for implementation on a range of devices, from cellphones and PDAs to laptop and desktop computers, and thus includes a subset of the features included in SVG 1.1 Full, along with new features to extend the capabilities of SVG. Some features not included in these specifications might not be rendered correctly in QGIS. Tip: Enable SVG marker symbol customization To have the possibility to change the colors of a SVG marker, you have to add the placeholders param(fill) for fill color, param(outline) for stroke color and param(outline-width) for stroke width. These placeholders can optionally be followed by a default value, e.g.: Line Symbols Appropriate for line geometry features, line symbols have the following symbol layer types: • Simple line (default): available settings are: 12.2. The Symbol Selector 181 QGIS Desktop 3.16 User Guide Obr. 12.10: Designing a Simple Line Symbol The simple line symbol layer type has many of the same properties as the simple marker symbol, and in addition: – Cap style – Use custom dash pattern: overrides the Stroke style setting with a custom dash. – Align dash pattern to line length: the dash pattern length will be adjusted so that the line will end with a complete dash element, instead of a gap. – Tweak dash pattern at sharp corners: dynamically adjusts the dash pattern placement so that sharp corners are represented by a full dash element coming into and out of the sharp corner. Dependent on Align dash pattern to line length. – Draw line only inside polygon • Arrow: draws lines as curved (or not) arrows with a single or a double head with configurable (and data-defined): – Head type – Arrow type – Arrow width – Arrow width at start – Head length 182 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide – Head thickness – Offset It is possible to create Curved arrows (the line feature must have at least three vertices) and Repeat arrow on each segment. It also uses a fill symbol such as gradients or shapeburst to render the arrow body. Combined with the geometry generator, this type of layer symbol helps you representing flow maps. • Geometry generator (see The Geometry Generator) • Marker line: repeats a marker symbol over the length of a line. – The markers placement can be at a regular distance or based on the line geometry: first, last or each vertex, on the central point of the line or of each segment, or on every curve point. – The markers placement can also be given an offset along the line – The Rotate marker to follow line direction option sets whether each marker symbol should be oriented relative to the line direction or not. Because a line is often a succession of segments of different directions, the rotation of the marker is calculated by averaging over a specified distance along the line. For example, setting the Average angle over property to 4mm means that the two points along the line that are 2mm before and after the symbol placement are used to calculate the line angle for that marker symbol. This has the effect of smoothing (or removing) any tiny local deviations from the overall line direction, resulting in much nicer visual orientations of the marker line symbols. – The marker line can also be offset from the line itself. • Hashed line: repeats a line segment (a hash) over the length of a line symbol, with a line sub-symbol used to render each individual segment. In other words, a hashed line is like a marker line in which marker symbols are replaced with segments. As such, the hashed lines have the same properties as marker line symbols, along with: – Hash length – Hash rotation – Rotate hash to follow line direction Obr. 12.11: Examples of hashed lines 12.2. The Symbol Selector 183 QGIS Desktop 3.16 User Guide Fill Symbols Appropriate for polygon geometry features, fill symbols have also several symbol layer types: • Simple fill (default): fills a polygon with a uniform color Obr. 12.12: Designing a Simple Fill Symbol • Centroid fill: places a marker symbol at the centroid of the visible feature. The position of the marker may not be the real centroid of the feature, because calculation takes into account the polygon(s) clipped to area visible in map canvas for rendering and ignores holes. Use the geometry generator symbol if you want the exact centroid. You can: – Force point inside polygon – Draw point on every part of multi-part feature or place the point only on its biggest part – display the marker symbol(s) in whole or in part, keeping parts overlapping the current feature geometry (Clip markers to polygon boundary) or the geometry part the symbol belongs to (Clip markers to current part boundary only) • Geometry generator (see The Geometry Generator) • Gradient fill: uses a radial, linear or conical gradient, based on either simple two color gradients or a predefined gradient color ramp to fill polygons. The gradient can be rotated and applied on a single feature basis or across 184 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide the whole map extent. Also start and end points can be set via coordinates or using the centroid (of feature or map). A data-defined offset can be defined; • Line pattern fill: fills the polygon with a hatching pattern of line symbol layer. You can set a rotation, the spacing between lines and an offset from the feature boundary; • Point pattern fill: fills the polygon with a hatching pattern of marker symbol layer. You can set the distance and a displacement between rows of markers, and an offset from the feature boundary; • Random marker fill: fills the polygon with a marker symbol placed at random locations within the polygon boundary. You can set: – the number of marker symbols to render, either as an absolute count or as density-based (the fill density will remain the same on different scale / zoom levels) – an optional random number seed, to give consistent placement of markers whenever maps are refreshed (also allows random placement to play nice with QGIS server and tile-based rendering) – whether markers rendered near the edges of polygons should be clipped to the polygon boundary or not • Raster image fill: fills the polygon with tiles from a raster image (PNG JPG, BMP …). The image can be a file on the disk, a remote URL or an embedded file encoded as a string (more details). Options include (data defined) opacity, image width, coordinate mode (object or viewport), rotation and offset. The image width can be set using any of the common units or as a percentage of the original size. • SVG fill: fills the polygon using SVG markers; • Shapeburst fill: buffers a gradient fill, where a gradient is drawn from the boundary of a polygon towards the polygon’s centre. Configurable parameters include distance from the boundary to shade, use of color ramps or simple two color gradients, optional blurring of the fill and offsets; • Outline: Arrow: uses a line arrow symbol layer to represent the polygon boundary. The settings for the outline arrow are the same as for line symbols. • Outline: Hashed line: uses a hash line symbol layer to represent the polygon boundary (the interior rings, the exterior ring or all the rings). The settings for the outline hashed line are the same as for line symbols. • Outline: Marker line: uses a marker line symbol layer to represent the polygon boundary (the interior rings, the exterior ring or all the rings). The settings for the outline marker line are same as for line symbols. • Outline: simple line: uses a simple line symbol layer to represent the polygon boundary (the interior rings, the exterior ring or all the rings). The settings for the outline simple line are the same as for line symbols. The Draw line only inside polygon option displays the polygon borders inside the polygon and can be useful to clearly represent adjacent polygon boundaries. Poznámka: When geometry type is polygon, you can choose to disable the automatic clipping of lines/polygons to the canvas extent. In some cases this clipping results in unfavourable symbology (e.g. centroid fills where the centroid must always be the actual feature’s centroid). The Geometry Generator Available with all types of symbols, the geometry generator symbol layer allows to use expression syntax to generate a geometry on the fly during the rendering process. The resulting geometry does not have to match with the original geometry type and you can add several differently modified symbol layers on top of each other. Some examples: -- render the centroid of a feature centroid( $geometry ) -- visually overlap features within a 100 map units distance from a point -- feature, i.e generate a 100m buffer around the point (continues on next page) 12.2. The Symbol Selector 185 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) buffer( $geometry, 100 ) -- Given polygon layer1( id1, layer2_id, ...) and layer2( id2, fieldn...) -- render layer1 with a line joining centroids of both where layer2_id = id2 make_line( centroid( $geometry ), centroid( geometry( get_feature( 'layer2', 'id2', attribute( $currentfeature, 'layer2_id') ) ) ) -- Create a nice radial effect of points surrounding the central feature -- point when used as a MultiPoint geometry generator collect_geometries( array_foreach( generate_series( 0, 330, 30 ), project( $geometry, .2, radians( @element ) ) ) ) The Vector Field Marker The vector field marker is used to display vector field data such as earth deformation, tidal flows, and the like. It displays the vectors as lines (preferably arrows) that are scaled and oriented according to selected attributes of data points. It can only be used to render point data; line and polygon layers are not drawn by this symbology. The vector field is defined by attributes in the data, which can represent the field either by: • cartesian components (x and y components of the field) • or polar coordinates: in this case, attributes define Length and Angle. The angle may be measured either clockwise from north, or Counterclockwise from east, and may be either in degrees or radians. • or as height only data, which displays a vertical arrow scaled using an attribute of the data. This is appropriate for displaying the vertical component of deformation, for example. The magnitude of field can be scaled up or down to an appropriate size for viewing the field. 12.3 Setting a label Labels are textual information you can display on vector features or maps. They add details you could not necessarily represent using symbols. Two types of text-related items are available in QGIS: • Text Format: defines the appearance of the text, including font, size, colors, shadow, background, buffer, … They can be used to render texts over the map (layout/map title, decorations, scale bar, …), usually through the font widget. To create a Text Format item: 1. Open the Style Manager dialog 2. Activate the Text format tab 186 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide Obr. 12.13: Text formats in Style Manager dialog 3. Press the Add item button. The Text Format dialog opens for configuration. As usual, these properties are data-definable. • Label Settings: extend the text format settings with properties related to the location or the interaction with other texts or features (callouts, placement, overlay, scale visibility, mask …). They are used to configure smart labelling for vector layers through the Labels tab of the vector Layer Properties dialog or Layer Styling panel or using the Layer Labeling Options button of the Label toolbar. To create a Label Settings item: 1. Open the Style Manager dialog 2. Activate the Label Settings tab 12.3. Setting a label 187 QGIS Desktop 3.16 User Guide Obr. 12.14: Label Settings in Style Manager dialog 3. Press the Add item menu and select the entry corresponding to the geometry type of the features you want to label. The Label Settings dialog opens with the following properties. As usual, these properties are data-definable. 12.3.1 Formatting the label text Most of the following properties are common to Text Format and Label Settings items. 188 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide Text tab Obr. 12.15: Labels settings - Text tab In the Text tab, you can set: • the Font, from the ones available on your machine • the Style: along with the common styles of the font, you can set whether the text should be underlined or striked through • the Size in any supported unit • the Color • and the Opacity. At the bottom of the tab, a widget shows a filterable list of compatible items stored in your style manager database. This allows you to easily configure the current text format or label setting based on an existing one, and also save a new item to the style database: Press the Save format… or Save settings… button and provide a name and tag(s). Poznámka: When configuring a Label Settings item, text format items are also available in this widget. Select one to quickly overwrite the current textual properties of the label. Likewise, you can create/overwrite a text format from there. 12.3. Setting a label 189 QGIS Desktop 3.16 User Guide Formatting tab Obr. 12.16: Label settings - Formatting tab In the Formatting tab, you can: • Use the Type case option to change the capitalization style of the text. You have the possibility to render the text as: – No change – All uppercase – All lowercase – Title case: modifies the first letter of each word into capital, and turns the other letters into lower case if the original text is using a single type case. In case of mixed type cases in the text, the other letters are left untouched. – Force first letter to capital: modifies the first letter of each word into capital and leaves the other letters in the text untouched. • Under Spacing, change the space between words and between individual letters. • Enable kerning of the text font 190 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide • Set the Text orientation which can be Horizontal or Vertical. It can also be Rotation-based when setting a label (e.g., to properly label line features in parallel placement mode). • Use the Blend mode option to determine how your labels will mix with the map features below them (more details at Režim míchání). • The Apply label text substitutes option allows you to specify a list of texts to substitute to texts in feature labels (e.g., abbreviating street types). Replacement texts are used when displaying labels on the map. Users can also export and import lists of substitutes to make reuse and sharing easier. • Configure Multiple lines: – Set a character that will force a line break in the text with the Wrap on character option – Set an ideal line size for auto-wrapping using the Wrap lines to option. The size can represent either the Maximum line length or the Minimum line length. – Decide the Line Height – Format the Alignment: typical values available are Left, Right, Justify and Center. When setting point labels properties, the text alignment can also be Follow label placement. In that case, the alignment will depend on the final placement of the label relative to the point. E.g., if the label is placed to the left of the point, then the label will be right aligned, while if it is placed to the right, it will be left aligned. Poznámka: The Multiple lines formatting is not yet supported by curve based label placement. The options will then be deactivated. • For line labels you can include Line direction symbol to help determine the line directions, with symbols to use to indicate the Left or Right. They work particularly well when used with the curved or Parallel placement options from the Placement tab. There are options to set the symbols position, and to Reverse direction. • Use the Formatted numbers option to format numeric texts. You can set the number of Decimal places. By default, 3 decimal places will be used. Use the Show plus sign if you want to show the plus sign for positive numbers. 12.3. Setting a label 191 QGIS Desktop 3.16 User Guide Buffer tab Obr. 12.17: Label settings - Buffer tab To create a buffer around the label, activate the Draw text buffer checkbox in the Buffer tab. Then you can: • Set the buffer’s Size in any supported unit • Select the buffer’s Color • Color buffer’s fill: The buffer expands from the label’s outline, so, if the option is activated, the label’s interior is filled. This may be relevant when using partially transparent labels or with non-normal blending modes, which will allow seeing behind the label’s text. Unchecking the option (while using totally transparent labels) will allow you to create outlined text labels. • Define the buffer’s Opacity • Apply a Pen join style: it can be Round, Miter or Bevel • Use the Blend mode option to determine how your label’s buffer will mix with the map components below them (more details at Režim míchání). • Check Draw effects to add advanced paint effects for improving text readability, eg through outer glows and blurs. 192 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide Background tab The Background tab allows you to configure a shape that stays below each label. To add a background, activate the Draw Background checkbox and select the Shape type. It can be: • a regular shape such as Rectangle, Square, Circle or Ellipse • an SVG symbol from a file, a URL or embedded in the project or style database (more details) • or a Marker Symbol you can create or select from the symbol library. Obr. 12.18: Label settings - Background tab Depending on the selected shape, you need to configure some of the following properties: • The Size type of the frame, which can be: – Fixed: using the same size for all the labels, regardless the size of the text – or a Buffer over the text’s bounding box 12.3. Setting a label 193 QGIS Desktop 3.16 User Guide • The Size of the frame in X and Y directions, using any supported units • A Rotation of the background, between Sync with label, Offset of label and Fixed. The last two require an angle in degrees. • An Offset X,Y to shift the background item in the X and/or Y directions • A Radius X,Y to round the corners of the background shape (applies to rectangle and square shapes only) • An Opacity of the background • A Blend mode to mix the background with the other items in the rendering (see Režim míchání). • The Fill color, Stroke color and Stroke width for shape types other than the marker symbol. Use the Load symbol parameters to revert changes on an SVG symbol to its default settings. • A Pen join style: it can be Round, Miter or Bevel (applies to rectangle and square shapes only) • Draw effects to add advanced paint effects for improving text readability, eg through outer glows and blurs. Shadow tab Obr. 12.19: Label settings - Shadow tab To add a shadow to the text, enable the Shadow tab and activate the Draw drop shadow. Then you can: • Indicate the item used to generate the shadow with Draw under. It can be the Lowest label component or a particular component such as the Text itself, the Buffer or the Background. 194 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide • Set the shadow’s Offset from the item being shadowded, ie: – The angle: clockwise, it depends on the underlying item orientation – The distance of offset from the item being shadowded – The units of the offset If you tick the Use global shadow checkbox, then the zero point of the angle is always oriented to the north and doesn’t depend on the orientation of the label’s item. • Influence the appearance of the shadow with the Blur radius. The higher the number, the softer the shadows, in the units of your choice. • Define the shadow’s Opacity • Rescale the shadow’s size using the Scale factor • Choose the shadow’s Color • Use the Blend mode option to determine how your label’s shadow will mix with the map components below them (more details at Režim míchání). 12.3.2 Configuring interaction with labels Other than the text formatting settings exposed above, you can also set how labels interact with each others or with the features. Mask tab The Mask tab allows you to define a mask area around the labels. This feature is very useful when you have overlapping symbols and labels with similar colors, and you want to make the labels visible. Obr. 12.20: Labels settings - Mask tab 12.3. Setting a label 195 QGIS Desktop 3.16 User Guide To create masking effects on labels: 1. Activate the Enable mask checkbox in the tab. 2. Then you can set: • the mask’s Size in the supported units • the Opacity of the mask area around the label • a Pen Join Style • paint effects through the Draw effects checkbox. 3. Select this mask shape as a mask source in the overlapping layer properties Mask tab (see Masks Properties). Callouts tab A common practice when placing labels on a crowded map is to use callouts - labels which are placed outside (or displaced from) their associated feature are identified with a dynamic line connecting the label and the feature. If one of the two endings (either the label or the feature) is moved, the shape of the connector is recomputed. Obr. 12.21: Labels with various callouts settings To add a callout to a label, enable the Callouts tab and activate the Draw callouts. Then you can: 1. Select the Style of connector, one of: • Simple lines: a straight line, the shortest path • Manhattan style: a 90° broken line 2. Select the Line style with full capabilities of a line symbol including layer effects, and data-defined settings 3. Set the Minimum length of callout lines 4. Set the Offset from feature option: controls the distance from the feature (or its anchor point if a polygon) where callout lines end. Eg, this avoids drawing lines right up against the edges of the features. 196 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide 5. Set the Offset from label area option: controls the distance from the label anchor point (where the callout line ends). This avoids drawing lines right up against the text. 6. Draw lines to all feature parts from the feature’s label 7. Set the Anchor point for the (polygon) feature (the end point of the connector line). Available options: • Pole of inaccessibility • Point on exterior • Point on surface • Centroid 8. Set the Label anchor point: controls where the connector line should join to the label text. Available options: • Closest point • Centroid • Fixed position at the edge (Top left, Top center, Top right, Left middle, Right middle, Bottom left, Bottom center and Bottom right). Placement tab Choose the Placement tab for configuring label placement and labeling priority. Note that the placement options differ according to the type of vector layer, namely point, line or polygon, and are affected by the global PAL setting. Placement for point layers Point labels placement modes available are: • Cartographic: point labels are generated with a better visual relationship with the point feature, following ideal cartographic placement rules. Labels can be placed: – at a set Distance in supported units, either from the point feature itself or from the bounds of the symbol used to represent the feature (set in Distance offset from). The latter option is especially useful when the symbol size isn’t fixed, e.g. if it’s set by a data defined size or when using different symbols in a categorized renderer. – following a Position priority that can be customized or set for an individual feature using a data defined list of prioritised positions. This also allows only certain placements to be used, so e.g. for coastal features you can prevent labels being placed over the land. By default, cartographic mode placements are prioritised in the following order (respecting the guidelines from Krygier and Wood (2011) and other cartographic textbooks): 1. top right 2. top left 3. bottom right 4. bottom left 5. middle right 6. middle left 7. top, slightly right 8. bottom, slightly left. • Around Point: labels are placed in a circle around the feature. equal radius (set in Distance) circle around the feature. The placement priority is clockwise from the „top right“. The position can be constrained using the data-defined Quadrant option. 12.3. Setting a label 197 QGIS Desktop 3.16 User Guide • Offset from Point: labels are placed at an Offset X,Y distance from the point feature, in various units, or preferably over the feature. You can use a data-defined Quadrant to constrain the placement and can assign a Rotation to the label. Placement for line layers Label modes for line layers include: • Parallel: draws the label parallel to a generalised line representing the feature, with preference for placement over straighter portions of the line. You can define: – Allowed positions: Above line, On line, Below line and Line orientation dependent position (placing the label at the left or the right of the line). It’s possible to select several options at once. In that case, QGIS will look for the optimal label position. – Distance between the label and the line • Curved: draws the label following the curvature of the line feature. In addition to the parameters available with the Parallel mode, you can set the Maximum angle between curved characters, either inside or outside. • Horizontal: draws labels horizontally along the length of the line feature. Obr. 12.22: Label placement examples for lines Next to placement modes, you can set: • Repeating Labels Distance to display multiple times the label over the length of the feature. The distance can be in Millimeters, Points, Pixels, Meters at scale, Map Units and Inches. • A Label Overrun Distance (not available for horizontal mode): specifies the maximal allowable distance a label may run past the end (or start) of line features. Increasing this value can allow for labels to be shown for shorter line features. • Label Anchoring: controls the placement of the labels along the line feature they refer to. Click on Settings … to choose: – the position along the line (as a ratio) which labels will be placed close to. It can be data-defined and possible values are: ∗ Center of Line ∗ Start of Line ∗ End of Line ∗ or Custom…. 198 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide – Placement Behavior: use Preferred Placement Hint to treat the label anchor only as a hint for the label placement. By choosing Strict, labels are placed exactly on the label anchor. Placement for polygon layers You can choose one of the following modes for placing labels of polygons: Obr. 12.23: Label placement examples for polygons • Offset from Centroid: labels are placed over the feature centroid or at a fixed Offset X,Y distance (in supported units) from the centroid. The reference centroid can be determined based on the part of the polygon rendered in the map canvas (visible polygon) or the whole polygon, no matter if you can see it. You can also: – force the centroid point to lay inside their polygon – place the label within a specific quadrant – assign a rotation – Allow placing labels outside of polygons when it is not possible to place them inside the polygon. Thanks to data-defined properties, this makes possible to either allow outside labels, prevent outside labels, or force outside labels on a feature-by-feature basis. • Around Centroid: places the label within a preset distance around the centroid, with a preference for the placement directly over the centroid. Again, you can define whether the centroid is the one of the visible polygon or the whole polygon, and whether to force the centroid point inside the polygon. • Horizontal: places at the best position a horizontal label inside the polygon. The preferred placement is further from the edges of the polygon. It’s possible to Allow placing labels outside of polygons. • Free (Angled): places at the best position a rotated label inside the polygon. The rotation respects the polygon’s orientation and the preferred placement is further from the edges of the polygon. It’s possible to Allow placing labels outside of polygons. • Using Perimeter: draws the label parallel to a generalised line representing the polygon boundary, with preference for straighter portions of the perimeter. You can define: – Allowed positions: Above line, On line, Below line and Line orientation dependent position (placing the label at the left or the right of the polygon’s boundary). It’s possible to select several options at once. In that case, QGIS will look for the optimal label position. 12.3. Setting a label 199 QGIS Desktop 3.16 User Guide – Distance between the label and the polygon’s outline – the Repeating Labels Distance to display multiple times the label over the length of the perimeter. • Using Perimeter (Curved): draws the label following the curvature of the polygon’s boundary. In addition to the parameters available with the Using Perimeter mode, you can set the Maximum angle between curved characters polygon, either inside or outside. • Outside Polygons: always places labels outside the polygons, at a set Distance Common placement settings Some label placement settings are available for all layer geometry types: Data Defined The Data Defined group provides direct control on labels placement, on a feature-by-feature basis. It relies on their attributes or an expression to set: • the X and Y coordinate • the text alignment over the custom position set above: – Horizontal: it can be Left, Center or Right – the text Vertical: it can be Bottom, Base, Half, Cap or Top • the text Rotation. Check the Preserve data rotation values entry if you want to keep the rotation value in the associated field and apply it to the label, whether the label is pinned or not. If unchecked, unpinning the label rotation is reset and its value cleared from the attribute table. Poznámka: Data-defined rotation with polygon features is currently supported only with the Around centroid placement mode. Poznámka: Expressions can not be used in combination with the labels map tools (ie the Rotate label and Move label tools) to data-define labels placement. The widget will be reset to the corresponding auxiliary storage field. Priority In the Priority section you can define the placement priority rank of each label, ie if there are different diagrams or labels candidates for the same location, the item with the higher priority will be displayed and the others could be left out. The priority rank is also used to evaluate whether a label could be omitted due to a greater weighted obstacle feature. Obstacles In some contexts (eg, high density labels, overlapping features…), the labels placement can result in labels being placed over unrelated features. An obstacle is a feature over which QGIS avoids placing other features‘ labels or diagrams. This can be controlled from the Obstacles section: 1. Activate the Features act as obstacles option to decide that features of the layer should act as obstacles for any label and diagram (including items from other features in the same layer). 200 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide Instead of the whole layer, you can select a subset of features to use as obstacles, using the data-defined override control next to the option. 2. Use the Settings button to tweak the obstacle’s weighting. • For every potential obstacle feature you can assign an Obstacle weight: any label or diagram whose placement priority rank is greater than this value can be placed over. Labels or diagrams with lower rank will be omitted if no other placement is possible. This weighting can also be data-defined, so that within the same layer, certain features are more likely to be covered than others. • For polygon layers, you can choose the kind of obstacle the feature is: – over the feature’s interior: avoids placing labels over the interior of the polygon (prefers placing labels totally outside or just slightly inside the polygon) – or over the feature’s boundary: avoids placing labels over the boundary of the polygon (prefers placing labels outside or completely inside the polygon). This can be useful for layers where the features cover the whole area (administrative units, categorical coverages, …). In this case, it is impossible to avoid placing labels within these features, and it looks much better when placing them over the boundaries between features is avoided. Rendering tab In the Rendering tab, you can tune when the labels can be rendered and their interaction with other labels and features. Label options Under Label options: • You find the scale-based and the Pixel size-based visibility settings. • The Label z-index determines the order in which labels are rendered, as well in relation with other feature labels in the layer (using data-defined override expression), as with labels from other layers. Labels with a higher zindex are rendered on top of labels (from any layer) with lower z-index. Additionally, the logic has been tweaked so that if two labels have matching z-indexes, then: – if they are from the same layer, the smaller label will be drawn above the larger label – if they are from different layers, the labels will be drawn in the same order as their layers themselves (ie respecting the order set in the map legend). Poznámka: This setting doesn’t make labels to be drawn below the features from other layers, it just controls the order in which labels are drawn on top of all the layers‘ features. • While rendering labels and in order to display readable labels, QGIS automatically evaluates the position of the labels and can hide some of them in case of collision. You can however choose to Show all labels for this layer (including colliding labels) in order to manually fix their placement (see The Label Toolbar). • With data-defined expressions in Show label and Always Show you can fine tune which labels should be rendered. • Allow to Show upside-down labels: alternatives are Never, when rotation defined or always. 12.3. Setting a label 201 QGIS Desktop 3.16 User Guide Feature options Under Feature options: • You can choose to Label every part of a multi-part features and Limit number of features to be labeled to. • Both line and polygon layers offer the option to set a minimum size for the features to be labeled, using Suppress labeling of features smaller than. • For polygon features, you can also filter the labels to show according to whether they completely fit within their feature or not. • For line features, you can choose to Merge connected lines to avoid duplicate labels, rendering a quite airy map in conjunction with the Distance or Repeat options in the Placement tab. 12.4 Creating 3D Symbols The Style Manager helps you create and store 3D symbols for every geometry type to render in the 3D map view. As of the other items, enable the 3D Symbols tab and expand the button menu to create: • 3D point symbols • 3D line symbols • 3D polygon symbols 202 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide 12.4.1 Point Layers Obr. 12.24: Properties of a 3D point symbol • You can define different simple 3D shapes like Sphere, Cylinder, Cube, Cone, Plane and Torus defined by their Radius, Size or Length. The unit of size of the 3D shapes refers to the CRS of the project. • The shading of the 3D shapes can be defined by the menus Diffuse, Ambient, Specular and Shininess (see https://en.wikipedia.org/wiki/Phong_reflection_model#Description) • If you choose 3D Model, the location will be determined by a simple point coordinate. • For visualizing 3D point clouds you can use Billboard Shapes defined by the Billboard Height, Billboard symbol and Altitude clamping. The symbol will have a stable size. • Altitude clamping can be set to Absolute, Relative or Terrain. The Absolute setting can be used when height values of the 3d vectors are provided as absolute measures from 0. Relative and Terrain add given elevation values to the underlying terrain elevation. • Translation can be used to move objects in x, y and z axis. • You can define a Scale factor for the 3D shape as well as a Rotation around the x-, y- and z-axis. 12.4. Creating 3D Symbols 203 QGIS Desktop 3.16 User Guide 12.4.2 Line layers Obr. 12.25: Properties of a 3D line symbol • Beneath the Width and Height settings you can define the Extrusion of the vector lines. If the lines do not have z-values, you can define the 3d volumes with this setting. • With the Altitude clamping you define the position of the 3D lines relative to the underlying terrain surface, if you have included raster elevation data or other 3D vectors. • The Altitude binding defines how the feature is clamped to the terrain. Either every Vertex of the feature will be clamped to the terrain or this will be done by the Centroid. • It is possible to Render as simple 3D lines. • The shading can be defined in the menus Diffuse, Ambient, Specular and Shininess. 204 Kapitola 12. The Style Library QGIS Desktop 3.16 User Guide 12.4.3 Polygon Layers Obr. 12.26: Properties of a 3D polygon symbol • As for the other ones, Height can be defined in CRS units. You can also use the button to overwrite the value with a custom expression, a variable or an entry of the attribute table • Again, Extrusion is possible for missing z-values. Also for the extrusion you can use the button in order to use the values of the vector layer and have different results for each polygon: 12.4. Creating 3D Symbols 205 QGIS Desktop 3.16 User Guide Obr. 12.27: Data Defined Extrusion • The Altitude clamping, Altitude binding can be defined as explained above. • There is an additional option to Add back faces and Invert normals. • You can define Edges by Width and Color. 12.4.4 Application example To go through the settings explained above you can have a look at https://public.cloudmergin.com/projects/saber/ luxembourg/tree. 206 Kapitola 12. The Style Library KAPITOLA 13 Managing Data Source 13.1 Opening Data As part of an Open Source Software ecosystem, QGIS is built upon different libraries that, combined with its own providers, offer capabilities to read and often write a lot of formats: • Vector data formats include GeoPackage, GML, GeoJSON, GPX, KML, Comma Separated Values, ESRI formats (Shapefile, Geodatabase…), MapInfo and MicroStation file formats, AutoCAD DWG/DXF, GRASS and many more… Read the complete list of supported vector formats. • Raster data formats include GeoTIFF, JPEG, ASCII Gridded XYZ, MBTiles, R or Idrisi rasters, GDAL Virtual, SRTM, Sentinel Data, ERDAS IMAGINE, ArcInfo Binary Grid, ArcInfo ASCII Grid, and many more… Read the complete list of supported raster formats. • Database formats include PostgreSQL/PostGIS, SQLite/SpatiaLite, Oracle, DB2 or MSSQL Spatial, MySQL… • Web map and data services (WM(T)S, WFS, WCS, CSW, XYZ tiles, ArcGIS services, …) are also handled by QGIS providers. See Working with OGC / ISO protocols for more information about some of these. • You can read supported files from archived folders and use QGIS native formats such as QML files (QML The QGIS Style File Format) and virtual and memory layers. More than 80 vector and 140 raster formats are supported by GDAL and QGIS native providers. Poznámka: Not all of the listed formats may work in QGIS for various reasons. For example, some require external proprietary libraries, or the GDAL/OGR installation of your OS may not have been built to support the format you want to use. To see the list of available formats, run the command line ogrinfo --formats (for vector) and gdalinfo --formats (for raster), or check the Settings ► Options ► GDAL menu in QGIS. In QGIS, depending on the data format, there are different tools to open a dataset, mainly available in the Layer ► Add Layer ► menu or from the Manage Layers toolbar (enabled through View ► Toolbars menu). However, all these tools point to a unique dialog, the Data Source Manager dialog, that you can open with the Open Data Source Manager button, available on the Data Source Manager Toolbar, or by pressing Ctrl+L. The Data Source Manager dialog(Obr. 13.1) offers a unified interface to open vector or raster file-based data as well as databases or web services supported by QGIS. It can be set modal or not with the Modeless data source manager dialog in the Settings ► Options ► General menu. 207 QGIS Desktop 3.16 User Guide Obr. 13.1: QGIS Data Source Manager dialog Beside this main entry point, you also have the DB Manager plugin that offers advanced capabilities to analyze and manipulate connected databases. More information on DB Manager capabilities can be found in DB Manager Plugin. There are many other tools, native or third-party plugins, that help you open various data formats. This chapter will describe only the tools provided by default in QGIS for loading data. It will mainly focus on the Data Source Manager dialog but more than describing each tab, it will also explore the tools based on the data provider or format specificities. 13.1.1 The Browser Panel The Browser is one of the main ways to quickly and easily add your data to projects. It’s available as: • a Data Source Manager tab, enabled pressing the Open Data Source Manager button (Ctrl+L); • as a QGIS panel you can open from the menu View ► Panels (or Settings ► Panels) or by pressing Ctrl+2. In both cases, the Browser helps you navigate in your file system and manage geodata, regardless the type of layer (raster, vector, table), or the datasource format (plain or compressed files, databases, web services). 208 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Exploring the Interface At the top of the Browser panel, you find some buttons that help you to: • Add Selected Layers : you can also add data to the map canvas by selecting Add selected layer(s) from the layer’s context menu; • Refresh the browser tree; • Filter Browser to search for specific data. Enter a search word or wildcard and the browser will filter the tree to only show paths to matching DB tables, filenames or folders – other data or folders won’t be displayed. See the Browser Panel(2) example in Obr. 13.2. The comparison can be case-sensitive or not. It can also be set to: – Normal: show items containing the search text – Wildcard(s): fine tune the search using the ? and/or * characters to specify the position of the search text – Regular expression • Collapse All the whole tree; • Enable/disable properties widget : when toggled on, a new widget is added at the bottom of the panel showing, if applicable, metadata for the selected item. The entries in the Browser panel are organised hierarchically, and there are several top level entries: 1. Favorites where you can place shortcuts to often used locations 2. Spatial Bookmarks where you can store often used map extents (see Prostorové záložky) 3. Project Home: for a quick access to the folder in which (most of) the data related to your project are stored. The default value is the directory where your project file resides. 4. Home directory in the file system and the filesystem root directory. 5. Connected local or network drives 6. Then comes a number of container / database types and service protocols, depending on your platform and underlying libraries: • GeoPackage • SpatiaLite • PostGIS • MSSQL • Oracle • DB2 • WMS/WMTS • Vector Tiles • XYZ Tiles • WCS • WFS/OGC API-Features • OWS 13.1. Opening Data 209 QGIS Desktop 3.16 User Guide • ArcGIS Map Service • ArcGIS Feature Service • GeoNode Interacting with the Browser items The browser supports drag and drop within the browser, from the browser to the canvas and Layers panel, and from the Layers panel to layer containers (e.g. GeoPackage) in the browser. Project file items inside the browser can be expanded, showing the full layer tree (including groups) contained within that project. Project items are treated the same way as any other item in the browser, so they can be dragged and dropped within the browser (for example to copy a layer item to a geopackage file) or added to the current project through drag and drop or double click. The context menu for an element in the Browser panel is opened by right-clicking on it. For file system directory entries, the context menu offers the following: • New ► to create in the selected entry a: – Directory… – GeoPackage… – ShapeFile… • Add as a Favorite: favorite folders can be renamed (Rename favorite…) or removed (Remove favorite) any time. • Hide from Browser: hidden folders can be toggled to visible from the Settings ► Options ► Data Sources ► Hidden browser paths setting • Fast Scan this Directory • Open Directory • Open in Terminal • Vlastnosti… • Directory Properties… For leaf entries that can act as layers in the project, the context menu will have supporting entries. For example, for non-database, non-service-based vector, raster and mesh data sources: • Delete File „“… • Export Layer –> To File… • Add Layer to Project • Layer Properties • File Properties In the Layer properties entry, you will find (similar to what you will find in the vector and raster layer properties once the layers have been added to the project): • Metadata for the layer. Metadata groups: Information from provider (if possible, Path will be a hyperlink to the source), Identification, Extent, Access, Fields (for vector layers), Bands (for raster layers), Contacts, Links (for vector layers), References (for raster layers), History. • A Preview panel • The attribute table for vector sources (in the Attributes panel). To add a layer to the project using the Browser: 210 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide 1. Enable the Browser as described above. A browser tree with your file system, databases and web services is displayed. You may need to connect databases and web services before they appear (see dedicated sections). 2. Find the layer in the list. 3. Use the context menu, double-click its name, or drag-and-drop it into the map canvas. Your layer is now added to the Layers panel and can be viewed on the map canvas. Tip: Open a QGIS project directly from the browser You can also open a QGIS project directly from the Browser panel by double-clicking its name or by drag-and-drop into the map canvas. Once a file is loaded, you can zoom around it using the map navigation tools. To change the style of a layer, open the Layer Properties dialog by double-clicking on the layer name or by right-clicking on the name in the legend and choosing Properties from the context menu. See section Symbology Properties for more information on setting symbology for vector layers. Right-clicking an item in the browser tree helps you to: • for a file or a table, display its metadata or open it in your project. Tables can even be renamed, deleted or truncated. • for a folder, bookmark it into your favourites or hide it from the browser tree. Hidden folders can be managed from the Settings ► Options ► Data Sources tab. • manage your spatial bookmarks: bookmarks can be created, exported and imported as XML files. • create a connection to a database or a web service. • refresh, rename or delete a schema. You can also import files into databases or copy tables from one schema/database to another with a simple drag-and-drop. There is a second browser panel available to avoid long scrolling while dragging. Just select the file and drag-and-drop from one panel to the other. Obr. 13.2: QGIS Browser panels side-by-side Tip: Add layers to QGIS by simple drag-and-drop from your OS file browser 13.1. Opening Data 211 QGIS Desktop 3.16 User Guide You can also add file(s) to the project by drag-and-dropping them from your operating system file browser to the Layers Panel or the map canvas. 13.1.2 The DB Manager The DB Manager Plugin is another tool for integrating and managing spatial database formats supported by QGIS (PostGIS, SpatiaLite, GeoPackage, Oracle Spatial, MSSQL, DB2, Virtual layers). It can be activated from the Plugins ► Manage and Install Plugins… menu. The DB Manager Plugin provides several features: • connect to databases and display their structure and contents • preview tables of databases • add layers to the map canvas, either by double-clicking or drag-and-drop. • add layers to a database from the QGIS Browser or from another database • create SQL queries and add their output to the map canvas • create virtual layers More information on DB Manager capabilities is found in DB Manager Plugin. Obr. 13.3: DB Manager dialog 212 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide 13.1.3 Provider-based loading tools Beside the Browser Panel and the DB Manager, the main tools provided by QGIS to add layers, you’ll also find tools that are specific to data providers. Poznámka: Some external plugins also provide tools to open specific format files in QGIS. Loading a layer from a file To load a layer from a file: 1. Open the layer type tab in the Data Source Manager dialog, ie click the Open Data Source Manager button (or press Ctrl+L) and enable the target tab or: • for vector data (like GML, ESRI Shapefile, Mapinfo and DXF layers): press Ctrl+Shift+V, select the Layer ► Add Layer ► Add Vector Layer menu option or click on the Add Vector Layer toolbar button. Obr. 13.4: Add Vector Layer Dialog • for raster data (like GeoTiff, MBTiles, GRIdded Binary and DWG layers): press Ctrl+Shift+R, select the Layer ► Add Layer ► Add Raster Layer menu option or click on the Add Raster Layer toolbar button. 13.1. Opening Data 213 QGIS Desktop 3.16 User Guide Obr. 13.5: Add Raster Layer Dialog 2. Check File source type 3. Click on the … Browse button 4. Navigate the file system and load a supported data source. More than one layer can be loaded at the same time by holding down the Ctrl key and clicking on multiple items in the dialog or holding down the Shift key to select a range of items by clicking on the first and last items in the range. Only formats that have been well tested appear in the formats filter. Other formats can be loaded by selecting All files (the top item in the pull-down menu). 5. Press Open to load the selected file into Data Source Manager dialog 214 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Obr. 13.6: Loading a Shapefile with open options 6. Press Add to load the file in QGIS and display them in the map view. Obr. 13.7 shows QGIS after loading the alaska.shp file. 13.1. Opening Data 215 QGIS Desktop 3.16 User Guide Obr. 13.7: QGIS with Shapefile of Alaska loaded Poznámka: For loading vector files the GDAL driver offers to define open actions. These will be shown when the vector file is selected. Options are described in detail on https://gdal.org/drivers/vector/ . Poznámka: Because some formats like MapInfo (e.g., .tab) or Autocad (.dxf) allow mixing different types of geometry in a single file, loading such datasets opens a dialog to select geometries to use in order to have one geometry per layer. The Add Vector Layer and Add Raster Layer tabs allow loading of layers from source types other than File: • You can load specific vector formats like ArcInfo Binary Coverage, UK. National Transfer Format, as well as the raw TIGER format of the US Census Bureau or OpenfileGDB. To do that, you select Directory as Source type. In this case, a directory can be selected in the dialog after pressing … Browse . • With the Database source type you can select an existing database connection or create one to the selected database type. Some possible database types are ODBC, Esri Personal Geodatabase, MSSQL as well as PostgreSQL or MySQL . Pressing the New button opens the Create a New OGR Database Connection dialog whose parameters are among the ones you can find in Creating a stored Connection. Pressing Open lets you select from the available tables, for example of PostGIS enabled databases. • The Protocol: HTTP(S), cloud, etc. source type opens data stored locally or on the network, either publicly accessible, or in private buckets of commercial cloud storage services. Supported protocol types are: – HTTP/HTTPS/FTP, with a URI and, if required, an authentication. – Cloud storage such as AWS S3, Google Cloud Storage, Microsoft Azure Blob, Alibaba OSS Cloud, Open Stack Swift Storage. You need to fill in the Bucket or container and the Object key. – service supporting OGC WFS 3 (still experimental), using GeoJSON or GEOJSON - Newline Delimited format or based on CouchDB database. A URI is required, with optional authentication. – For all vector source types it is possible to define the Encoding or to use the Automatic ► setting. 216 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Loading a mesh layer A mesh is an unstructured grid usually with temporal and other components. The spatial component contains a collection of vertices, edges and faces in 2D or 3D space. More information on mesh layers at Working with Mesh Data. To add a mesh layer to QGIS: 1. Open the Data Source Manager dialog, either by selecting it from the Layer ► menu or clicking the Open Data Source Manager button. 2. Enable the Mesh tab on the left panel 3. Press the … Browse button to select the file. Various formats are supported. 4. Select the layer and press Add. The layer will be added using the native mesh rendering. Obr. 13.8: Mesh tab in Data Source Manager Importing a delimited text file Delimited text files (e.g. .txt, .csv, .dat, .wkt) can be loaded using the tools described above. This way, they will show up as simple tables. Sometimes, delimited text files can contain coordinates / geometries that you could want to visualize. This is what Add Delimited Text Layer is designed for. 1. Click the Open Data Source Manager icon to open the Data Source Manager dialog 2. Enable the Delimited Text tab 3. Select the delimited text file to import (e.g., qgis_sample_data/csv/elevp.csv) by clicking on the … Browse button. 4. In the Layer name field, provide the name to use for the layer in the project (e.g. Elevation). 5. Configure the settings to meet your dataset and needs, as explained below. 13.1. Opening Data 217 QGIS Desktop 3.16 User Guide Obr. 13.9: Delimited Text Dialog File format Once the file is selected, QGIS attempts to parse the file with the most recently used delimiter, identifying fields and rows. To enable QGIS to correctly parse the file, it is important to select the right delimiter. You can specify a delimiter by choosing between: • CSV (comma separated values) to use the comma character. • Regular expression delimiter and enter text into the Expression field. For example, to change the delimiter to tab, use \t (this is used in regular expressions for the tab character). • Custom delimiters, choosing among some predefined delimiters like comma, space, tab, semicolon, … . 218 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Records and fields Some other convenient options can be used for data recognition: • Number of header lines to discard: convenient when you want to avoid the first lines in the file in the import, either because those are blank lines or with another formatting. • First record has field names: values in the first line are used as field names, otherwise QGIS uses the field names field_1, field_2… • Detect field types: automatically recognizes the field type. If unchecked then all attributes are treated as text fields. • Decimal separator is comma: you can force decimal separator to be a comma. • Trim fields: allows you to trim leading and trailing spaces from fields. • Discard empty fields. As you set the parser properties, a sample data preview updates at the bottom of the dialog. Geometry definition Once the file is parsed, set Geometry definition to • Point coordinates and provide the X field, Y field, Z field (for 3-dimensional data) and M field (for the measurement dimension) if the layer is of point geometry type and contains such fields. If the coordinates are defined as degrees/minutes/seconds, activate the DMS coordinates checkbox. Provide the appropriate Geometry CRS using the Select CRS widget. • Well known text (WKT) option if the spatial information is represented as WKT: select the Geometry field containing the WKT geometry and choose the approriate Geometry field or let QGIS auto-detect it. Provide the appropriate Geometry CRS using the Select CRS widget. • If the file contains non-spatial data, activate No geometry (attribute only table) and it will be loaded as an ordinary table. Layer settings Additionally, you can enable: • Use spatial index to improve the performance of displaying and spatially selecting features. • Use subset index to improve performance of subset filters (when defined in the layer properties). • Watch file to watch for changes to the file by other applications while QGIS is running. At the end, click Add to add the layer to the map. In our example, a point layer named Elevation is added to the project and behaves like any other map layer in QGIS. This layer is the result of a query on the .csv source file (hence, linked to it) and would require to be saved in order to get a spatial layer on disk. 13.1. Opening Data 219 QGIS Desktop 3.16 User Guide Importing a DXF or DWG file DXF and DWG files can be added to QGIS by simple drag-and-drop from the Browser Panel. You will be prompted to select the sublayers you would like to add to the project. Layers are added with random style properties. Poznámka: For DXF files containing several geometry types (point, line and/or polygon), the name of the layers will be generated as entities . To keep the dxf/dwg file structure and its symbology in QGIS, you may want to use the dedicated Project ► Import/Export ► Import Layers from DWG/DXF… tool which allows you to: 1. import elements from the drawing file into a GeoPackage database. 2. add imported elements to the project. In the DWG/DXF Import dialog, to import the drawing file contents: 1. Input the location of the Target package, i.e. the new GeoPackage file that will store the data. If an existing file is provided, then it will be overwritten. 2. Specify the coordinate reference system of the data in the drawing file. 3. Check Expand block references to import the blocks in the drawing file as normal elements. 4. Check Use curves to promote the imported layers to a curved geometry type. 5. Use the Import button to select the DWG/DXF file to use (one per geopackage). The GeoPackage database will be automatically populated with the drawing file content. Depending on the size of the file, this can take some time. After the .dwg or .dxf data has been imported into the GeoPackage database, the frame in the lower half of the dialog is populated with the list of layers from the imported file. There you can select which layers to add to the QGIS project: 1. At the top, set a Group name to group the drawing files in the project. 2. Check layers to show: Each selected layer is added to an ad hoc group which contains vector layers for the point, line, label and area features of the drawing layer. The style of the layers will resemble the look they originally had in *CAD. 3. Choose if the layer should be visible at opening. 4. Checking the Merge layers option places all layers in a single group. 5. Press OK to open the layers in QGIS. 220 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Obr. 13.10: Import dialog for DWG/DXF files Importing OpenStreetMap Vectors The OpenStreetMap project is popular because in many countries no free geodata such as digital road maps are available. The objective of the OSM project is to create a free editable map of the world from GPS data, aerial photography and local knowledge. To support this objective, QGIS provides support for OSM data. Using the Browser Panel, you can load an .osm file to the map canvas, in which case you’ll get a dialog to select sublayers based on the geometry type. The loaded layers will contain all the data of that geometry type in the .osm file, and keep the osm file data structure. SpatiaLite Layers The first time you load data from a SpatiaLite database, begin by: • clicking on the Add SpatiaLite Layer toolbar button • selecting the Add SpatiaLite Layer… option from the Layer ► Add Layer menu • or by typing Ctrl+Shift+L This will bring up a window that will allow you either to connect to a SpatiaLite database already known to QGIS (which you choose from the drop-down menu) or to define a new connection to a new database. To define a new 13.1. Opening Data 221 QGIS Desktop 3.16 User Guide connection, click on New and use the file browser to point to your SpatiaLite database, which is a file with a .sqlite extension. QGIS also supports editable views in SpatiaLite. GPS Loading GPS data in QGIS can be done using the core plugin GPS Tools. Instructions are found in section GPS Plugin. GRASS Working with GRASS vector data is described in section GRASS GIS Integration. Database related tools Creating a stored Connection In order to read and write tables from a database format QGIS supports you have to create a connection to that database. While QGIS Browser Panel is the simplest and recommanded way to connect to and use databases, QGIS provides other tools to connect to each of them and load their tables: • Add PostGIS Layer… or by typing Ctrl+Shift+D • Add MSSQL Spatial Layer • Add Oracle Spatial Layer… or by typing Ctrl+Shift+O • Add DB2 Spatial Layer… or by typing Ctrl+Shift+2 These tools are accessible either from the Manage Layers Toolbar and the Layer ► Add Layer ► menu. Connecting to SpatiaLite database is described at SpatiaLite Layers. Tip: Create connection to database from the QGIS Browser Panel Selecting the corresponding database format in the Browser tree, right-clicking and choosing connect will provide you with the database connection dialog. Most of the connection dialogs follow a common basis that will be described below using the PostgreSQL database tool as an example. For additional settings specific to other providers, you can find corresponding descriptions at: • Connecting to MSSQL Spatial; • Connecting to Oracle Spatial; • Connecting to DB2 Spatial. The first time you use a PostGIS data source, you must create a connection to a database that contains the data. Begin by clicking the appropriate button as exposed above, opening an Add PostGIS Table(s) dialog (see Obr. 13.12). To access the connection manager, click on the New button to display the Create a New PostGIS Connection dialog. 222 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Obr. 13.11: Create a New PostGIS Connection Dialog 13.1. Opening Data 223 QGIS Desktop 3.16 User Guide The parameters required for a PostGIS connection are explained below. For the other database types, see their differences at Particular Connection requirements. • Name: A name for this connection. It can be the same as Database. • Service: Service parameter to be used alternatively to hostname/port (and potentially database). This can be defined in pg_service.conf. Check the PostgreSQL Service connection file section for more details. • Host: Name of the database host. This must be a resolvable host name such as would be used to open a TCP/IP connection or ping the host. If the database is on the same computer as QGIS, simply enter localhost here. • Port: Port number the PostgreSQL database server listens on. The default port for PostGIS is 5432. • Database: Name of the database. • SSL mode: SSL encryption setup The following options are available: – Prefer (the default): I don’t care about encryption, but I wish to pay the overhead of encryption if the server supports it. – Require: I want my data to be encrypted, and I accept the overhead. I trust that the network will make sure I always connect to the server I want. – Verify CA: I want my data encrypted, and I accept the overhead. I want to be sure that I connect to a server that I trust. – Verify Full: I want my data encrypted, and I accept the overhead. I want to be sure that I connect to a server I trust, and that it’s the one I specify. – Allow: I don’t care about security, but I will pay the overhead of encryption if the server insists on it. – Disable: I don’t care about security, and I don’t want to pay the overhead of encryption. • Authentication, basic. – User name: User name used to log in to the database. – Password: Password used with Username to connect to the database. You can save any or both of the User name and Password parameters, in which case they will be used by default each time you need to connect to this database. If not saved, you’ll be prompted to supply the credentials to connect to the database in next QGIS sessions. The connection parameters you entered are stored in a temporary internal cache and returned whenever a username/password for the same database is requested, until you end the current QGIS session. Varování: QGIS User Settings and Security In the Authentication tab, saving username and password will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you share the project file with someone. Therefore, it is advisable to save your credentials in an Authentication configuration instead (Configurations tab - See Ověřovací systém for more details) or in a service connection file (see PostgreSQL Service connection file for example). • Authentication, configurations. Choose an authentication configuration. You can add configurations using the button. Choices are: – Basic authentication – PKI PKCS#12 authentication – PKI paths authentication – PKI stored identity certificate Optionally, depending on the type of database, you can activate the following checkboxes: • Only show layers in the layer registries 224 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide • Don’t resolve type of unrestricted columns (GEOMETRY) • Only look in the ‚public‘ schema • Also list tables with no geometry • Use estimated table metadata • Allow saving/loading QGIS projects in the database - more details here Tip: Use estimated table metadata to speed up operations When initializing layers, various queries may be needed to establish the characteristics of the geometries stored in the database table. When the Use estimated table metadata option is checked, these queries examine only a sample of the rows and use the table statistics, rather than the entire table. This can drastically speed up operations on large datasets, but may result in incorrect characterization of layers (e.g. the feature count of filtered layers will not be accurately determined) and may even cause strange behaviour if columns that are supposed to be unique actually are not. Once all parameters and options are set, you can test the connection by clicking the Test Connection button or apply it by clicking the OK button. From Add PostGIS Table(s), click now on Connect, and the dialog is filled with tables from the selected database (as shown in Obr. 13.12). Particular Connection requirements Because of database type particularities, provided options are not the same. Database specific options are described below. PostgreSQL Service connection file The service connection file allows PostgreSQL connection parameters to be associated with a single service name. That service name can then be specified by a client and the associated settings will be used. It’s called .pg_service.conf under *nix systems (GNU/Linux, macOS etc.) and pg_service.conf on Windows. The service file can look like this: [water_service] host=192.168.0.45 port=5433 dbname=gisdb user=paul password=paulspass [wastewater_service] host=dbserver.com dbname=water user=waterpass Poznámka: There are two services in the above example: water_service and wastewater_service. You can use these to connect from QGIS, pgAdmin, etc. by specifying only the name of the service you want to connect to (without the enclosing brackets). If you want to use the service with psql you need to do something like export PGSERVICE=water_service before doing your psql commands. You can find all the PostgreSQL parameters here 13.1. Opening Data 225 QGIS Desktop 3.16 User Guide Poznámka: If you don’t want to save the passwords in the service file you can use the .pg_pass option. On *nix operating systems (GNU/Linux, macOS etc.) you can save the .pg_service.conf file in the user’s home directory and PostgreSQL clients will automatically be aware of it. For example, if the logged user is web, . pg_service.conf should be saved in the /home/web/ directory in order to directly work (without specifying any other environment variables). You can specify the location of the service file by creating a PGSERVICEFILE environment variable (e.g. run the export PGSERVICEFILE=/home/web/.pg_service.conf command under your *nix OS to temporarily set the PGSERVICEFILE variable) You can also make the service file available system-wide (all users) either by placing the .pg_service.conf file in pg_config --sysconfdir or by adding the PGSYSCONFDIR environment variable to specify the directory containing the service file. If service definitions with the same name exist in the user and the system file, the user file takes precedence. Varování: There are some caveats under Windows: • The service file should be saved as pg_service.conf and not as .pg_service.conf. • The service file should be saved in Unix format in order to work. One way to do it is to open it with Notepad++ and Edit ► EOL Conversion ► UNIX Format ► File save. • You can add environmental variables in various ways; a tested one, known to work reliably, is Control Panel ► System and Security ► System ► Advanced system settings ► Environment Variables adding PGSERVICEFILE with the path - e.g. C:\Users\John\pg_service.conf • After adding an environment variable you may also need to restart the computer. Connecting to Oracle Spatial The spatial features in Oracle Spatial aid users in managing geographic and location data in a native type within an Oracle database. In addition to some of the options in Creating a stored Connection, the connection dialog proposes: • Database: SID or SERVICE_NAME of the Oracle instance; • Port: Port number the Oracle database server listens on. The default port is 1521; • Options: Oracle connection specific options (e.g. OCI_ATTR_PREFETCH_ROWS, OCI_ATTR_PREFETCH_MEMORY). The format of the options string is a semicolon separated list of option names or option=value pairs; • Workspace: Workspace to switch to; • Schema: Schema in which the data are stored Optionally, you can activate the following checkboxes: • Only look in metadata table: restricts the displayed tables to those that are in the all_sdo_geom_metadata view. This can speed up the initial display of spatial tables. • Only look for user’s tables: when searching for spatial tables, restricts the search to tables that are owned by the user. • Also list tables with no geometry: indicates that tables without geometry should also be listed by default. • Use estimated table statistics for the layer metadata: when the layer is set up, various metadata are required for the Oracle table. This includes information such as the table row count, geometry type and spatial extents of the data in the geometry column. If the table contains a large number of rows, determining this metadata can be time-consuming. By activating this option, the following fast table metadata operations are done: Row count is determined from all_tables.num_rows. Table extents are always determined with the 226 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide SDO_TUNE.EXTENTS_OF function, even if a layer filter is applied. Table geometry is determined from the first 100 non-null geometry rows in the table. • Only existing geometry types: only lists the existing geometry types and don’t offer to add others. • Include additional geometry attributes. Tip: Oracle Spatial Layers Normally, an Oracle Spatial layer is defined by an entry in the USER_SDO_METADATA table. To ensure that selection tools work correctly, it is recommended that your tables have a primary key. Connecting to DB2 Spatial In addition to some of the options described in Creating a stored Connection, the connection to a DB2 database (see DB2 Spatial Layers for more information) can be specified using either a Service/DSN name defined to ODBC or Driver, Host and Port. An ODBC Service/DSN connection requires the service name defined to ODBC. A driver/host/port connection requires: • Driver: Name of the DB2 driver. Typically this would be IBM DB2 ODBC DRIVER. • DB2 Host: Name of the database host. This must be a resolvable host name such as would be used to open a TCP/IP connection or ping the host. If the database is on the same computer as QGIS, simply enter localhost here. • DB2 Port: Port number the DB2 database server listens on. The default DB2 LUW port is 50000. The default DB2 z/OS port is 446. Tip: DB2 Spatial Layers A DB2 Spatial layer is defined by a row in the DB2GSE.ST_GEOMETRY_COLUMNS view. Poznámka: In order to work effectively with DB2 spatial tables in QGIS, it is important that tables have an INTEGER or BIGINT column defined as PRIMARY KEY and if new features are going to be added, this column should also have the GENERATED characteristic. It is also helpful for the spatial column to be registered with a specific spatial reference identifier (most often 4326 for WGS84 coordinates). A spatial column can be registered by calling the ST_Register_Spatial_Column stored procedure. Connecting to MSSQL Spatial In addition to some of the options in Creating a stored Connection, creating a new MSSQL connection dialog proposes you to fill a Provider/DSN name. You can also display available databases. 13.1. Opening Data 227 QGIS Desktop 3.16 User Guide Loading a Database Layer Once you have one or more connections defined to a database (see section Creating a stored Connection), you can load layers from it. Of course, this requires that data are available. See section Importing Data into PostgreSQL for a discussion on importing data into a PostGIS database. To load a layer from a database, you can perform the following steps: 1. Open the „Add table(s)“ dialog (see Creating a stored Connection). 2. Choose the connection from the drop-down list and click Connect. 3. Select or unselect Also list tables with no geometry. 4. Optionally, use some Search Options to reduce the list of tables to those matching your search. You can also set this option before you hit the Connect button, speeding up the database fetching. 5. Find the layer(s) you wish to add in the list of available layers. 6. Select it by clicking on it. You can select multiple layers by holding down the Shift or Ctrl key while clicking. 7. If applicable, use the Set Filter button (or double-click the layer) to start the Query Builder dialog (see section Query Builder) and define which features to load from the selected layer. The filter expression appears in the sql column. This restriction can be removed or edited in the Layer Properties ► General ► Provider Feature Filter frame. 8. The checkbox in the Select at id column that is activated by default gets the feature ids without the attributes and generally speeds up the data loading. 9. Click on the Add button to add the layer to the map. Obr. 13.12: Add PostGIS Table(s) Dialog Tip: Use the Browser Panel to speed up loading of database table(s) Adding DB tables from the Data Source Manager may sometimes be time consuming as QGIS fetches statistics and properties (e.g. geometry type and field, CRS, number of features) for each table beforehand. To avoid this, once the 228 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide connection is set, it is better to use the Browser Panel or the DB Manager to drag and drop the database tables into the map canvas. 13.1.4 QGIS Custom formats QGIS proposes two custom formats: • Temporary Scratch Layer: a memory layer that is bound to the project (see Creating a new Temporary Scratch Layer for more information) • Virtual Layers: a layer resulting from a query on other layer(s) (see Creating virtual layers for more information) 13.1.5 QLR - QGIS Layer Definition File Layer definitions can be saved as a Layer Definition File (QLR - .qlr) using Export ► Save As Layer Definition File… in the layer context menu. The QLR format makes it possible to share „complete“ QGIS layers with other QGIS users. QLR files contain links to the data sources and all the QGIS style information necessary to style the layer. QLR files are shown in the Browser Panel and can be used to add layers (with their saved styles) to the Layers Panel. You can also drag and drop QLR files from the system file manager into the map canvas. 13.1.6 Connecting to web services With QGIS you can get access to different types of OGC web services (WM(T)S, WFS(-T), WCS, CSW, …). Thanks to QGIS Server, you can also publish such services. QGIS-Server-manual contains descriptions of these capabilities. Using Vector Tiles services Vector Tiles services can be found in the Vector Tiles top level entry in the Browser. You can add a service by opening the context menu with a right-click and choosing New Generic Connection …. You set up a service by adding a Name and a URL. The Vector Tiles Service must provide tiles in .pbf format. The dialog provides two menus to define the Min. Zoom Level and the Max. Zoom Level. Vector Tiles have a pyramid structure. By using these options you have the opportunity to individually generate layers from the tile pyramid. These layers will then be used to render the Vector Tile in QGIS. For Mercator projection (used by OpenStreetMap Vector Tiles) Zoom Level 0 represents the whole world at a scale of 1:500.000.000. Zoom Level 14 represents the scale 1:35.000. Obr. 13.13 shows the dialog with the MapTiler planet Vector Tiles service configuration. 13.1. Opening Data 229 QGIS Desktop 3.16 User Guide Obr. 13.13: Vector Tiles - Maptiler Planet configuration By using New ArcGIS Vector Tile Service Connection … you can connect to ArcGIS Vector Tile Services. Using XYZ Tile services XYZ Tile services can be found in the XYZ Tiles top level entry in the Browser. By default, the OpenStreetMap XYZ Tile service is configured. You can add other services that use the XYZ Tile protocol by choosing New Connection in the XYZ Tiles context menu (right-click to open). Obr. 13.14 shows the dialog with the OpenStreetMap XYZ Tile service configuration. 230 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Obr. 13.14: XYZ Tiles - OpenStreetMap configuration Configurations can be saved (Save Connections) to XML and loaded (Load Connections) through the context menu. Authentication configuration is supported. The XML file for OpenStreetMap looks like this: Once a connection to a XYZ tile service is set, right-click over the entry to: • Edit… the XYZ connection settings • Delete the connection • Export layer… ► To File, saving it as a raster • Add layer to project: a double-click also adds the layer 13.1. Opening Data 231 QGIS Desktop 3.16 User Guide • View the Layer Properties… and get access to metadata and a preview of the data provided by the service. More settings are available when the layer has been loaded into the project. Examples of XYZ Tile services: • OpenStreetMap Monochrome: URL: http://tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}. png, Min. Zoom Level: 0, Max. Zoom Level: 19. • Google Maps: URL: https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}, Min. Zoom Level: 0, Max. Zoom Level: 19. • Open Weather Map Temperature: URL: http://tile.openweathermap.org/map/temp_new/ {z}/{x}/{y}.png?appid={api_key} Min. Zoom Level: 0, Max. Zoom Level: 19. 13.2 Creating Layers Layers can be created in many ways, including: • empty layers from scratch • layers from existing layers • layers from the clipboard • layers as a result of an SQL-like query based on one or many layers (virtual layers) QGIS also provides tools to import/export from/to different formats. 13.2.1 Creating new vector layers QGIS allows you to create new layers in different formats. It provides tools for creating GeoPackage, Shapefile, SpatiaLite, GPX format and Temporary Scratch layers (aka memory layers). Creation of a new GRASS layer is supported within the GRASS plugin. 232 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Creating a new GeoPackage layer To create a new GeoPackage layer, press the New GeoPackage Layer… button in the Layer ► Create Layer ► menu or from the Data Source Manager toolbar. The New GeoPackage Layer dialog will be displayed as shown in Obr. 13.15. Obr. 13.15: Creating a New GeoPackage layer dialog 1. The first step is to indicate the database file location. This can be done by pressing the … button to the right of the Database field and select an existing GeoPackage file or create a new one. QGIS will automatically add the right extension to the name you provide. 2. Give the new layer / table a name (Table name) 3. Define the Geometry type. If not a geometryless layer, you can specify whether it should Include Z dimension and/or Include M values. 4. Specify the coordinate reference system using the button To add fields to the layer you are creating: 1. Enter the Name of the field 13.2. Creating Layers 233 QGIS Desktop 3.16 User Guide 2. Select the data Type. Supported types are Text data, Whole number (both integer and integer64), Decimal number, Date and Date and time, Binary (BLOB) and Boolean. 3. Depending on the selected data format, enter the Maximum length of values. 4. Click on the Add to Fields List button 5. Reproduce the steps above for each field you need to add 6. Once you are happy with the attributes, click OK. QGIS will add the new layer to the legend, and you can edit it as described in section Digitizing an existing layer. By default, when creating a GeoPackage layer, QGIS generates a Feature id column called fid which acts as the primary key of the layer. The name can be changed. The geometry field, if availabe, is named geometry, and you can choose to Create a spatial index on it. These options can be found under the Advanced Options together with the Layer identifier (short human readable name of the layer) and the Layer description. Further management of GeoPackage layers can be done with the DB Manager. Creating a new Shapefile layer To create a new ESRI Shapefile format layer, press the New Shapefile Layer… button in the Layer ► Create Layer ► menu or from the Data Source Manager toolbar. The New Shapefile Layer dialog will be displayed as shown in Obr. 13.16. 1. Provide a path and file name using the … button next to File name. QGIS will automatically add the right extension to the name you provide. 2. Next, indicate the File encoding of the data 3. Choose the Geometry type of the layer: No Geometry (resulting in a .DBF format file), point, multipoint, line or polygon 4. Specify whether the geometry should have additional dimensions: None, Z (+ M values) or M values 5. Specify the coordinate reference system using the button 234 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Obr. 13.16: Creating a new Shapefile layer dialog To add fields to the layer you are creating: 1. Enter the Name of the field 2. Select the data Type. Only Decimal number, Whole number, Text data and Date attributes are supported. 3. Depending on the selected data format, enter the Length and Precision. 4. Click on the Add to Fields List button 5. Reproduce the steps above for each field you need to add 6. Once you are happy with the attributes, click OK. QGIS will add the new layer to the legend, and you can edit it as described in section Digitizing an existing layer. By default, a first integer id column is added but can be removed. 13.2. Creating Layers 235 QGIS Desktop 3.16 User Guide Creating a new SpatiaLite layer To create a new SpatiaLite layer, press the New SpatiaLite Layer… button in the Layer ► Create Layer ► menu or from the Data Source Manager toolbar. The New SpatiaLite Layer dialog will be displayed as shown in Obr. 13.17. Obr. 13.17: Creating a New SpatiaLite layer dialog 1. The first step is to indicate the database file location. This can be done by pressing the … button to the right of the Database field and select an existing SpatiaLite file or create a new one. QGIS will automatically add the right extension to the name you provide. 2. Provide a name (Layer name) for the new layer 3. Define the Geometry type. If not a geometryless layer, you can specify whether it should Include Z dimension and/or Include M values. 4. Specify the coordinate reference system using the button. To add fields to the layer you are creating: 1. Enter the Name of the field 2. Select the data Type. Supported types are Text data, Whole number and Decimal number. 3. Click on the Add to Fields List button 4. Reproduce the steps above for each field you need to add 236 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide 5. Once you are happy with the attributes, click OK. QGIS will add the new layer to the legend, and you can edit it as described in section Digitizing an existing layer. If desired, you can select Create an autoincrementing primary key under the guilabel:Advanced Options section. You can also rename the Geometry column (geometry by default). Further management of SpatiaLite layers can be done with DB Manager. Creating a new GPX layer To create a new GPX file, you first need to load the GPS plugin. Plugins ► Plugin Manager… opens the Plugin Manager Dialog. Activate the GPS Tools checkbox. When this plugin is loaded, choose Create Layer ► Create new GPX Layer… from the Layer menu. In the dialog, choose where to save the new file and press Save. Three new layers are added to the Layers Panel: waypoints, routes and tracks. Creating a new Temporary Scratch Layer Temporary Scratch Layers are in-memory layers, meaning that they are not saved on disk and will be discarded when QGIS is closed. They can be handy for storing features you temporarily need or as intermediate layers during geoprocessing operations. To create a new Temporary Scratch layer, choose the New Temporary Scratch Layer… entry in the Layer ► Create Layer ► menu or in the Data Source Manager toolbar. The New Temporary Scratch Layer dialog will be displayed as shown in Obr. 13.18. Then: 1. Provide the Layer name 2. Select the Geometry type. Here you can create a: • No geometry type layer, served as simple table, • Point or MultiPoint layer, • LineString/CompoundCurve or MultiLineString/MultiCurve layer, • Polygon/CurvePolygon or MultiPolygon/MultiSurface layer. 3. For geometric types, specify the dimensions of the dataset: check whether it should Include Z dimension and/or Include M values 4. Specify the coordinate reference system using the button. 5. Add fields to the layer. Note that unlike many formats, temporary layers can be created without any fields. This step is thus optional. 1. Enter the Name of the field 2. Select the data Type: Text, Whole number, Decimal number, Boolean, Date, Time, Date & Time and Binary (BLOB) are supported. 3. Depending on the selected data format, enter the Length and Precision 4. Click on the Add to Fields List button 5. Repeat the steps above for each field you need to add 6. Once you are happy with the settings, click OK. QGIS will add the new layer to the Layers panel, and you can edit it as described in section Digitizing an existing layer. 13.2. Creating Layers 237 QGIS Desktop 3.16 User Guide Obr. 13.18: Creating a new Temporary Scratch layer dialog You can also create prepopulated temporary scratch layers using e.g. the clipboard (see Creating new layers from the clipboard) or as a result of a Processing algorithm. Tip: Permanently store a memory layer on disk To avoid data loss when closing a project with temporary scratch layers, you can save these layers to any vector format supported by QGIS: • clicking the indicator icon next to the layer; • selecting the Make permanent entry in the layer contextual menu; • using the Export ► entry from the contextual menu or the Layer ► Save As… menu. Each of these commands opens the Save Vector Layer as dialog described in the Creating new layers from an existing layer section and the saved file replaces the temporary one in the Layers panel. 13.2.2 Creating new layers from an existing layer Both raster and vector layers can be saved in a different format and/or reprojected to a different coordinate reference system (CRS) using the Layer ► Save As… menu or right-clicking on the layer in the Layers panel and selecting: • Export ► Save As… for raster layers • Export ► Save Features As… or Export ► Save Selected Features As… for vector layers. • Drag and drop the layer from the layer tree to the PostGIS entry in the Browser Panel. Note that you must have a PostGIS connection in the Browser Panel. 238 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Common parameters The Save Layer as… dialog shows several parameters to change the behavior when saving the layer. Among the common parameters for raster and vector are: • File name: the location of the file on the disk. It can refer to the output layer or to a container that stores the layer (for example database-like formats such as GeoPackage, SpatiaLite or Open Document Spreadsheets). • CRS: can be changed to reproject the data • Extent (possible values are layer, Map view or user-defined extent) • Add saved file to map: to add the new layer to the canvas However, some parameters are specific to raster and vector formats: Raster specific parameters Depending on the format of export, some of these options may not be available: • Output mode (it can be raw data or rendered image) • Format: exports to any raster format GDAL can write to, such as GeoTiff, GeoPackage, MBTiles, Geospatial PDF, SAGA GIS Binary Grid, Intergraph Raster, ESRI .hdr Labelled… • Resolution • Create Options: use advanced options (file compression, block sizes, colorimetry…) when generating files, either from the predefined create profiles related to the output format or by setting each parameter. • Pyramids creation • VRT Tiles in case you opted to Create VRT • No data values 13.2. Creating Layers 239 QGIS Desktop 3.16 User Guide Obr. 13.19: Saving as a new raster layer Vector specific parameters Depending on the format of export, some of these options may be available: • Format: exports to any vector format GDAL can write to, such as GeoPackage, GML, ESRI Shapefile, AutoCAD DXF, ESRI FileGDB, Mapinfo TAB or MIF, SpatiaLite, CSV, KML, ODS, … • Layer name: available when the File name refers to a container-like format, this entry represents the output layer. • Encoding • Save only selected features • Select fields to export and their export options. In case you set your fields behavior with some Edit widgets, e.g. value map, you can keep the displayed values in the layer by checking Replace all selected raw fields values by displayed values. • Symbology export: can be used mainly for DXF export and for all file formats who manage OGR feature styles (see note below) as DXF, KML, tab file formats: – No symbology: default style of the application that reads the data – Feature symbology: save style with OGR Feature Styles (see note below) – Symbol Layer symbology: save with OGR Feature Styles (see note below) but export the same geometry multiple times if there are multiple symbology symbol layers used – A Scale value can be applied to the latest options 240 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Poznámka: OGR Feature Styles are a way to store style directly in the data as a hidden attribute. Only some formats can handle this kind of information. KML, DXF and TAB file formats are such formats. For advanced details, you can read the OGR Feature Styles specification document. • Geometry: you can configure the geometry capabilities of the output layer – geometry type: keeps the original geometry of the features when set to Automatic, otherwise removes or overrides it with any type. You can add an empty geometry column to an attribute table and remove the geometry column of a spatial layer. – Force multi-type: forces creation of multi-geometry features in the layer. – Include z-dimension to geometries. Tip: Overriding layer geometry type makes it possible to do things like save a geometryless table (e.g. .csv file) into a shapefile WITH any type of geometry (point, line, polygon), so that geometries can then be manually added to rows with the Add Part tool. • Datasource Options, Layer Options or Custom Options which allow you to configure advanced parameters depending on the output format. Some are described in Exploring Data Formats and Fields but for full details, see the GDAL driver documentation. Each file format has its own custom parameters, e.g. for the GeoJSON format have a look at the GDAL GeoJSON documentation. 13.2. Creating Layers 241 QGIS Desktop 3.16 User Guide Obr. 13.20: Saving as a new vector layer When saving a vector layer into an existing file, depending on the capabilities of the output format (Geopackage, SpatiaLite, FileGDB…), the user can decide whether to: • overwrite the whole file • overwrite only the target layer (the layer name is configurable) • append features to the existing target layer • append features, add new fields if there are any. For formats like ESRI Shapefile, MapInfo .tab, feature append is also available. 13.2.3 Creating new DXF files Besides the Save As… dialog which provides options to export a single layer to another format, including *. DXF, QGIS provides another tool to export multiple layers as a single DXF layer. It’s accessible in the Project ► Import/Export ► Export Project to DXF… menu. In the DXF Export dialog: 1. Provide the destination file. 2. Choose the symbology mode and scale (see the OGR Feature Styles note), if applicable. 3. Select the data Encoding. 242 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide 4. Select the CRS to apply: the selected layers will be reprojected to the given CRS. 5. Select the layers to include in the DXF files either by checking them in the table widget or automatically picking them from an existing map theme. The Select All and Deselect All buttons can help to quickly set the data to export. For each layer, you can choose whether to export all the features in a single DXF layer or rely on a field whose values are used to split the features into layers in the DXF output. Optionally, you can also choose to: • Use the layer title as name if set instead of the layer name itself; • Export features intersecting the current map extent; • Force 2d output (eg. to support polyline width); • Export label as MTEXT elements or TEXT elements. Obr. 13.21: Exporting a project to DXF dialog 13.2.4 Creating new layers from the clipboard Features that are on the clipboard can be pasted into a new layer. To do this, Select some features, copy them to the clipboard, and then paste them into a new layer using Edit ► Paste Features as ► and choosing: • New Vector Layer…: the Save vector layer as… dialog appears (see Creating new layers from an existing layer for parameters) • or Temporary Scratch Layer…: you need to provide a name for the layer A new layer, filled with selected features and their attributes is created (and added to map canvas). Poznámka: Creating layers from the clipboard is possible with features selected and copied within QGIS as well as features from another application, as long as their geometries are defined using well-known text (WKT). 13.2. Creating Layers 243 QGIS Desktop 3.16 User Guide 13.2.5 Creating virtual layers A virtual layer is a special kind of vector layer. It allows you to define a layer as the result of an SQL query involving any number of other vector layers that QGIS is able to open. Virtual layers do not carry data by themselves and can be seen as views. To create a virtual layer, open the virtual layer creation dialog by: • choosing the Add/Edit Virtual Layer entry in the Layer ► Add Layer ► menu; • enabling the Add Virtual Layer tab in the Data Source Manager dialog; • or using the DB Manager dialog tree. The dialog allows you to specify a Layer name and an SQL Query. The query can use the name (or id) of loaded vector layers as tables, as well as their field names as columns. For example, if you have a layer called airports, you can create a new virtual layer called public_airports with an SQL query like: SELECT * FROM airports WHERE USE = "Civilian/Public" The SQL query will be executed, regardless of the underlying provider of the airports layer, even if this provider does not directly support SQL queries. Obr. 13.22: Create virtual layers dialog Joins and complex queries can also be created, for example, to join airports and country information: SELECT airports.*, country.population FROM airports JOIN country ON airports.country = country.name 244 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Poznámka: It’s also possible to create virtual layers using the SQL window of DB Manager Plugin. Embedding layers for use in queries Besides the vector layers available in the map canvas, the user can add layers to the Embedded layers list, which can be used in queries without the need to have them showing in the map canvas or Layers panel. To embed a layer, click Add and provide the Local name, Provider, Encoding and the path to the Source. The Import button allows adding layers in the map canvas into the Embedded layers list. Those layers can then be removed from the Layers panel without breaking existent queries. Supported query language The underlying engine uses SQLite and SpatiaLite to operate. It means you can use all of the SQL your local installation of SQLite understands. Functions from SQLite and spatial functions from SpatiaLite can also be used in a virtual layer query. For instance, creating a point layer out of an attribute-only layer can be done with a query similar to: SELECT id, MakePoint(x, y, 4326) as geometry FROM coordinates Functions of QGIS expressions can also be used in a virtual layer query. To refer the geometry column of a layer, use the name geometry. Contrary to a pure SQL query, all the fields of a virtual layer query must be named. Don’t forget to use the as keyword to name your columns if they are the result of a computation or a function call. Performance issues With default parameters, the virtual layer engine will try its best to detect the type of the different columns of the query, including the type of the geometry column if one is present. This is done by introspecting the query when possible or by fetching the first row of the query (LIMIT 1) as a last resort. Fetching the first row of the result just to create the layer may be undesirable for performance reasons. The creation dialog parameters: • Unique identifier column: specifies a field of the query that represents unique integer values that QGIS can use as row identifiers. By default, an autoincrementing integer value is used. Defining a unique identifier column speeds up the selection of rows by id. • No geometry: forces the virtual layer to ignore any geometry field. The resulting layer is an attribute-only layer. • Geometry Column: specifies the name of the geometry column. • Geometry Type: specifies the type of the geometry. • Geometry CRS: specifies the coordinate reference system of the virtual layer. 13.2. Creating Layers 245 QGIS Desktop 3.16 User Guide Special comments The virtual layer engine tries to determine the type of each column of the query. If it fails, the first row of the query is fetched to determine column types. The type of a particular column can be specified directly in the query by using some special comments. The syntax is the following: /*:type*/. It has to be placed just after the name of a column. type can be either int for integers, real for floating point numbers or text. For instance: SELECT id+1 as nid /*:int*/ FROM table The type and coordinate reference system of the geometry column can also be set thanks to special comments with the following syntax /*:gtype:srid*/ where gtype is the geometry type (point, linestring, polygon, multipoint, multilinestring or multipolygon) and srid an integer representing the EPSG code of a coordinate reference system. Use of indexes When requesting a layer through a virtual layer, the source layer indices will be used in the following ways: • if an = predicate is used on the primary key column of the layer, the underlying data provider will be asked for a particular id (FilterFid) • for any other predicates (>, <=, !=, etc.) or on a column without a primary key, a request built from an expression will be used to request the underlying vector data provider. It means indexes may be used on database providers if they exist. A specific syntax exists to handle spatial predicates in requests and triggers the use of a spatial index: a hidden column named _search_frame_ exists for each virtual layer. This column can be compared for equality to a bounding box. Example: SELECT * FROM vtab WHERE _search_frame_=BuildMbr(-2.10,49.38,-1.3,49.99,4326) Spatial binary predicates like ST_Intersects are sped up significantly when used in conjunction with this spatial index syntax. 13.3 Exploring Data Formats and Fields 13.3.1 Raster data GIS raster data are matrices of discrete cells that represent features / phenomena on, above or below the earth’s surface. Each cell in the raster grid has the same size, and cells are usually rectangular (in QGIS they will always be rectangular). Typical raster datasets include remote sensing data, such as aerial photography, or satellite imagery and modelled data, such as elevation or temperature. Unlike vector data, raster data typically do not have an associated database record for each cell. They are geocoded by pixel resolution and the X/Y coordinate of a corner pixel of the raster layer. This allows QGIS to position the data correctly on the map canvas. The GeoPackage format is convenient for storing raster data when working with QGIS. The popular and powerful GeoTiff format is a good alternative. QGIS makes use of georeference information inside the raster layer (e.g., GeoTiff) or an associated world file to properly display the data. 246 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide 13.3.2 Vektorová data Many of the features and tools available in QGIS work the same, regardless the vector data source. However, because of the differences in format specifications (GeoPackage, ESRI Shapefile, MapInfo and MicroStation file formats, AutoCAD DXF, PostGIS, SpatiaLite, DB2, Oracle Spatial, MSSQL Spatial databases, and many more), QGIS may handle some of their properties differently. Support is provided by the OGR Simple Feature Library. This section describes how to work with these specificities. Poznámka: QGIS supports (multi)point, (multi)line, (multi)polygon, CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface feature types, all optionally with Z and/or M values. You should also note that some drivers don’t support some of these feature types, like CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface feature type. QGIS will convert them. GeoPackage The GeoPackage (GPKG) format is platform-independent, and is implemented as a SQLite database container, and can be used to store both vector and raster data. The format was defined by the Open Geospatial Consortium (OGC), and was published in 2014. GeoPackage can be used to store the following in a SQLite database: • vector features • tile matrix sets of imagery and raster maps • attributes (non-spatial data) • extensions Since QGIS version 3.8, GeoPackage can also store QGIS projects. GeoPackage layers can have JSON fields. GeoPackage is the default format for vector data in QGIS. ESRI Shapefile format The ESRI Shapefile format is still one of the most used vector file formats, even if it has some limitations compared to for instance GeoPackage and SpatiaLite. An ESRI Shapefile format dataset consists of several files. The following three are required: 1. .shp file containing the feature geometries 2. .dbf file containing the attributes in dBase format 3. .shx index file An ESRI Shapefile format dataset can also include a file with a .prj suffix, which contains projection information. While it is very useful to have a projection file, it is not mandatory. A Shapefile format dataset can contain additional files. For further details, see the the ESRI technical specification at https://www.esri.com/library/whitepapers/pdfs/ shapefile.pdf. GDAL 3.1 has read-write support for compressed ESRI Shapefile format (shz and shp.zip). Improving Performance for ESRI Shapefile format datasets To improve the drawing performance for an ESRI Shapefile format dataset, you can create a spatial index. A spatial index will improve the speed of both zooming and panning. Spatial indexes used by QGIS have a .qix extension. Use these steps to create the index: 1. Load an ESRI Shapefile format dataset (see The Browser Panel) 13.3. Exploring Data Formats and Fields 247 QGIS Desktop 3.16 User Guide 2. Open the Layer Properties dialog by double-clicking on the layer name in the legend or by right-clicking and choosing Properties… from the context menu 3. In the Source tab, click the Create Spatial Index button Problem loading a .prj file If you load an ESRI Shapefile format dataset with a .prj file and QGIS is not able to read the coordinate reference system from that file, you will need to define the proper projection manually in the Layer Properties ► Source tab of the layer by clicking the Select CRS button. This is due to the fact that .prj files often do not provide the complete projection parameters as used in QGIS and listed in the CRS dialog. For the same reason, if you create a new ESRI Shapefile format dataset with QGIS, two different projection files are created: a .prj file with limited projection parameters, compatible with ESRI software, and a .qpj file, providing all the parameters of the CRS. Whenever QGIS finds a .qpj file, it will be used instead of the .prj. Delimited Text Files Delimited text files are very common and widely used because of their simplicity and readability – data can be viewed and edited in a plain text editor. A delimited text file is tabular data with columns separated by a defined character and rows separated by line breaks. The first row usually contains the column names. A common type of delimited text file is a CSV (Comma Separated Values), with columns separated by commas. Delimited text files can also contain positional information (see Storing geometry information in delimited text files). QGIS allows you to load a delimited text file as a layer or an ordinary table (see The Browser Panel or Importing a delimited text file). First check that the file meets the following requirements: 1. The file must have a delimited header row of field names. This must be the first line of the data (ideally the first row in the text file). 2. If geometry should be enabled, the file must contain field(s) that define the geometry. These field(s) can have any name. 3. The X and Y coordinates fields (if geometry is defined by coordinates) must be specified as numbers. The coordinate system is not important. 4. If you have a CSV file with non-string columns, you must have an accompanying CSVT file (see section Using CSVT file to control field formatting). The elevation point data file elevp.csv in the QGIS sample dataset (see section Downloading sample data) is an example of a valid text file: X;Y;ELEV -300120;7689960;13 -654360;7562040;52 1640;7512840;3 [...] Some things to note about the text file: 1. The example text file uses ; (semicolon) as delimiter (any character can be used to delimit the fields). 2. The first row is the header row. It contains the fields X, Y and ELEV. 3. No quotes (") are used to delimit text fields 4. The X coordinates are contained in the X field 5. The Y coordinates are contained in the Y field 248 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Storing geometry information in delimited text files Delimited text files can contain geometry information in two main forms: • As coordinates in separate columns (eg. Xcol, Ycol… ), for point geometry data; • As well-known text (WKT) representation of geometry in a single column, for any geometry type. Features with curved geometries (CircularString, CurvePolygon and CompoundCurve) are supported. Here are some examples of geometry types in a delimited text file with geometries coded as WKT: Label;WKT_geom LineString;LINESTRING(10.0 20.0, 11.0 21.0, 13.0 25.5) CircularString;CIRCULARSTRING(268 415,227 505,227 406) CurvePolygon;CURVEPOLYGON(CIRCULARSTRING(1 3, 3 5, 4 7, 7 3, 1 3)) CompoundCurve;COMPOUNDCURVE((5 3, 5 13), CIRCULARSTRING(5 13, 7 15, 9 13), (9 13, 9 3), CIRCULARSTRING(9 3, 7 1, 5 3)) Delimited text files also support Z and M coordinates in geometries: LINESTRINGZ(10.0 20.0 30.0, 11.0 21.0 31.0, 11.0 22.0 30.0) Using CSVT file to control field formatting When loading CSV files, the OGR driver assumes all fields are strings (i.e. text) unless it is told otherwise. You can create a CSVT file to tell OGR (and QGIS) the data type of the different columns: Type Název Example Whole number Integer 4 Decimal number Real 3.456 Datum Date (YYYY-MM-DD) 2016-07-28 Time Time (HH:MM:SS+nn) 18:33:12+00 Date & Time DateTime (YYYY-MM-DD HH:MM:SS+nn) 2016-07-28 18:33:12+00 The CSVT file is a ONE line plain text file with the data types in quotes and separated by commas, e.g.: "Integer","Real","String" You can even specify width and precision of each column, e.g.: "Integer(6)","Real(5.5)","String(22)" This file is saved in the same folder as the .csv file, with the same name, but .csvt as the extension. You can find more information at GDAL CSV Driver. PostGIS Layers PostGIS layers are stored in a PostgreSQL database. The advantages of PostGIS are spatial indexing, filtering and querying capabilities. Using PostGIS, vector functions such as select and identify work more accurately than they do with OGR layers in QGIS. Tip: PostGIS Layers Normally, a PostGIS layer is identified by an entry in the geometry_columns table. QGIS can load layers that do not have an entry in the geometry_columns table. This includes both tables and views. Refer to your PostgreSQL manual for information on creating views. 13.3. Exploring Data Formats and Fields 249 QGIS Desktop 3.16 User Guide This section contains some details on how QGIS accesses PostgreSQL layers. Most of the time, QGIS should simply provide you with a list of database tables that can be loaded, and it will load them on request. However, if you have trouble loading a PostgreSQL table into QGIS, the information below may help you understand QGIS messages and give you directions for modifying the PostgreSQL table or view definition to allow QGIS to load it. Primary key QGIS requires that PostgreSQL layers contain a column that can be used as a unique key for the layer. For tables, this usually means that the table needs a primary key, or a column with a unique constraint on it. In QGIS, this column needs to be of type int4 (an integer of size 4 bytes). Alternatively, the ctid column can be used as primary key. If a table lacks these items, the oid column will be used instead. Performance will be improved if the column is indexed (note that primary keys are automatically indexed in PostgreSQL). QGIS offers a checkbox Select at id that is activated by default. This option gets the ids without the attributes, which is faster in most cases. Zobrazit If the PostgreSQL layer is a view, the same requirement exists, but views do not always have primary keys or columns with unique constraints on them. You have to define a primary key field (has to be integer) in the QGIS dialog before you can load the view. If a suitable column does not exist in the view, QGIS will not load the layer. If this occurs, the solution is to alter the view so that it does include a suitable column (a type of integer and either a primary key or with a unique constraint, preferably indexed). As for table, a checkbox Select at id is activated by default (see above for the meaning of the checkbox). It can make sense to disable this option when you use expensive views. QGIS layer_style table and database backup If you want to make a backup of your PostGIS database using the pg_dump and pg_restore commands, and the default layer styles as saved by QGIS fail to restore afterwards, you need to set the XML option to DOCUMENT before the restore command: SET XML OPTION DOCUMENT; Filter database side QGIS allows to filter features already on server side. Check Settings ► Options ► Data Sources ► Execute expressions on server-side if possible to do so. Only supported expressions will be sent to the database. Expressions using unsupported operators or functions will gracefully fallback to local evaluation. Support of PostgreSQL data types Data types supported by the PostgreSQL provider include: integer, float, boolean, binary object, varchar, geometry, timestamp, array, hstore and json. 250 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide Importing Data into PostgreSQL Data can be imported into PostgreSQL/PostGIS using several tools, including the DB Manager plugin and the command line tools shp2pgsql and ogr2ogr. Správce databází QGIS comes with a core plugin named DB Manager . It can be used to load data, and it includes support for schemas. See section DB Manager Plugin for more information. shp2pgsql PostGIS includes a utility called shp2pgsql, that can be used to import Shapefile format datasets into a PostGIS-enabled database. For example, to import a Shapefile format dataset named lakes.shp into a PostgreSQL database named gis_data, use the following command: shp2pgsql -s 2964 lakes.shp lakes_new | psql gis_data This creates a new layer named lakes_new in the gis_data database. The new layer will have a spatial reference identifier (SRID) of 2964. See section Práce s projekcemi for more information about spatial reference systems and projections. Tip: Exporting datasets from PostGIS There is also a tool for exporting PostGIS datasets to Shapefile format: pgsql2shp. It is shipped within your PostGIS distribution. ogr2ogr In addition to shp2pgsql and DB Manager, there is another tool for feeding geographical data in PostGIS: ogr2ogr. It is part of your GDAL installation. To import a Shapefile format dataset into PostGIS, do the following: ogr2ogr -f "PostgreSQL" PG:"dbname=postgis host=myhost.de user=postgres password=topsecret" alaska.shp This will import the Shapefile format dataset alaska.shp into the PostGIS database postgis using the user postgres with the password topsecret on the host server myhost.de. Note that OGR must be built with PostgreSQL to support PostGIS. You can verify this by typing (in ): ogrinfo --formats | grep -i post If you prefer to use the PostgreSQL’s COPY command instead of the default INSERT INTO method, you can export the following environment variable (at least available on and ): export PG_USE_COPY=YES ogr2ogr does not create spatial indexes like shp2pgsl does. You need to create them manually, using the normal SQL command CREATE INDEX afterwards, as an extra step (as described in the next section Improving Performance). 13.3. Exploring Data Formats and Fields 251 QGIS Desktop 3.16 User Guide Improving Performance Retrieving features from a PostgreSQL database can be time-consuming, especially over a network. You can improve the drawing performance of PostgreSQL layers by ensuring that a PostGIS spatial index exists on each layer in the database. PostGIS supports creation of a GiST (Generalized Search Tree) index to speed up spatial searching (GiST index information is taken from the PostGIS documentation available at https://postgis.net). Tip: You can use the DBManager to create an index for your layer. You should first select the layer and click on Table ► Edit table, go to Indexes tab and click on Add Spatial Index. The syntax for creating a GiST index is: CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield] GIST_GEOMETRY_OPS ); Note that for large tables, creating the index can take a long time. Once the index is created, you should perform a VACUUM ANALYZE. See the PostGIS documentation (POSTGIS-PROJECT in Literature and Web References) for more information. The following example creates a GiST index: gsherman@madison:~/current$ psql gis_data Welcome to psql 8.3.0, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit gis_data=# CREATE INDEX sidx_alaska_lakes ON alaska_lakes gis_data-# USING GIST (the_geom GIST_GEOMETRY_OPS); CREATE INDEX gis_data=# VACUUM ANALYZE alaska_lakes; VACUUM gis_data=# \q gsherman@madison:~/current$ Vector layers crossing 180° longitude Many GIS packages don’t wrap vector maps with a geographic reference system (lat/lon) crossing the 180 degrees longitude line (http://postgis.refractions.net/documentation/manual-2.0/ST_Shift_Longitude.html). As result, if we open such a map in QGIS, we could see two widely separated locations, that should appear near each other. In Obr. 13.23, the tiny point on the far left of the map canvas (Chatham Islands) should be within the grid, to the right of the New Zealand main islands. Obr. 13.23: Map in lat/lon crossing the 180° longitude line A work-around is to transform the longitude values using PostGIS and the ST_Shift_Longitude function. This function reads every point/vertex in every component of every feature in a geometry, and if the longitude coordinate 252 Kapitola 13. Managing Data Source QGIS Desktop 3.16 User Guide is < 0°, it adds 360° to it. The result is a 0° - 360° version of the data to be plotted in a 180°-centric map. Obr. 13.24: Crossing 180° longitude applying the ST_Shift_Longitude function Použití • Import data into PostGIS (Importing Data into PostgreSQL) using, for example, the DB Manager plugin. • Use the PostGIS command line interface to issue the following command (in this example, „TABLE“ is the actual name of your PostGIS table): gis_data=# update TABLE set the_geom=ST_Shift_Longitude(the_geom); • If everything went well, you should receive a confirmation about the number of features that were updated. Then you’ll be able to load the map and see the difference (Figure_vector_crossing_map). SpatiaLite Layers If you want to save a vector layer using the SpatiaLite format, you can do this by following instructions at Creating new layers from an existing layer. You select SpatiaLite as Format and enter both File name and Layer name. Also, you can select SQLite as format and then add SPATIALITE=YES in the Custom Options ► Data source field. This tells GDAL to create a SpatiaLite database. See also https://gdal.org/drivers/vector/sqlite.html. QGIS also supports editable views in SpatiaLite. For SpatiaLite data management, you can also use the core plugin DB Manager. If you want to create a new SpatiaLite layer, please refer to section Creating a new SpatiaLite layer. GeoJSON specific parameters When exporting layers to GeoJSON, there are some specific Layer Options available. These options come from GDAL which is responsible for the writing of the file: • COORDINATE_PRECISION the maximum number of digits after the decimal separator to write in coordinates. Defaults to 15 (note: for Lat Lon coordinates 6 is considered enough). Truncation will occur to remove trailing zeros. • RFC7946 by default GeoJSON 2008 will be used. If set to YES, the updated RFC 7946 standard will be used. Default is NO (thus GeoJSON 2008). See https://gdal.org/drivers/vector/geojson.html# rfc-7946-write-support for the main differences, in short: only EPSG:4326 is allowed, other crs’s will be transformed, polygons will be written such as to follow the right-hand rule for orientation, values of a „bbox“ array are [west, south, east, north], not [minx, miny, maxx, maxy]. Some extension member names are forbidden in FeatureCollection, Feature and Geometry objects, the default coordinate precision is 7 decimal digits 13.3. Exploring Data Formats and Fields 253 QGIS Desktop 3.16 User Guide • WRITE_BBOX set to YES to include the bounding box of the geometries at the feature and feature collection level Besides GeoJSON there is also an option to export to „GeoJSON - Newline Delimited“ (see https://gdal.org/drivers/ vector/geojsonseq.html). Instead of a FeatureCollection with Features, you can stream one type (probably only Features) sequentially separated with newlines. GeoJSON - Newline Delimited has some specific Layer options availabe too: • COORDINATE_PRECISION see above (same as for GeoJSON) • RS whether to start records with the RS=0x1E character. The difference is how the features are separated: only by a newline (LF) character (Newline Delimited JSON, geojsonl) or by also prepending a record-separator (RS) character (giving GeoJSON Text Sequences, geojsons). Default to NO. Files are given the .json extension if extension is not provided. DB2 Spatial Layers IBM DB2 for Linux, Unix and Windows (DB2 LUW), IBM DB2 for z/OS (mainframe) and IBM DashDB products allow users to store and analyse spatial data in relational table columns. The DB2 provider for QGIS supports the full range of visualization, analysis and manipulation of spatial data in these databases. User documentation on these capabilities can be found at the DB2 z/OS KnowledgeCenter, DB2 LUW KnowledgeCenter and DB2 DashDB KnowledgeCenter. For more information about working with the DB2 spatial capabilities, check out the DB2 Spatial Tutorial on IBM DeveloperWorks. The DB2 provider currently only supports the Windows environment through the Windows ODBC driver. The client running QGIS needs to have one of the following installed: • DB2 LUW • IBM Data Server Driver Package • IBM Data Server Client To open a DB2 data in QGIS, see the The Browser Panel or Loading a Database Layer section. If you are accessing a DB2 LUW database on the same machine or using DB2 LUW as a client, the DB2 executables and supporting files need to be included in the Windows path. This can be done by creating a batch file like the following with the name db2.bat and including it in the directory %OSGEO4W_ROOT%/etc/ini: @echo off REM Point the following to where DB2 is installed SET db2path=C:\Program Files (x86)\sqllib REM This should usually be ok - modify if necessary SET gskpath=C:\Program Files (x86)\ibm\gsk8 SET Path=%db2path%\BIN;%db2path%\FUNCTION;%gskpath%\lib64;%gskpath%\lib;%path% 254 Kapitola 13. Managing Data Source KAPITOLA 14 Working with Vector Data 14.1 The Vector Properties Dialog The Layer Properties dialog for a vector layer provides general settings to manage appearance of layer features in the map (symbology, labeling, diagrams), interaction with the mouse (actions, map tips, form design). It also provides information about the layer. To access the Layer Properties dialog: • In the Layers panel, double-click the layer or right-click and select Properties… from the pop-up menu; • Go to Layer ► Layer Properties… menu when the layer is selected. The vector Layer Properties dialog provides the following sections: Information Source Symbology[1] Labels[1] Mask[1] 3D View[1] Diagrams Fields Attributes Form Joins Auxiliary Storage Actions Display Rendering Temporal Variables Metadata Dependencies Legend QGIS Server Digitizing External plugins[2] tabs [1] Also available in the Layer styling panel [2] External plugins you install can optionally add tabs to this dialog. Those are not presented in this document. Refer to their documentation. Tip: Share full or partial properties of the layer styles 255 QGIS Desktop 3.16 User Guide The Style menu at the bottom of the dialog allows you to import or export these or part of these properties from/to several destination (file, clipboard, database). See Managing Custom Styles. Poznámka: Because properties (symbology, label, actions, default values, forms…) of embedded layers (see Vnořování projektů) are pulled from the original project file and to avoid changes that may break this behavior, the layer properties dialog is made unavailable for these layers. 14.1.1 Information Properties The Information tab is read-only and represents an interesting place to quickly grab summarized information and metadata on the current layer. Provided information are: • based on the provider of the layer (format of storage, path, geometry type, data source encoding, extent…); • picked from the filled metadata (access, links, contacts, history…); • or related to its geometry (spatial extent, CRS…) or its attributes (number of fields, characteristics of each…). 14.1.2 Source Properties Use this tab to define general settings for the vector layer. Obr. 14.1: Source tab in vector Layer Properties dialog Other than setting the Layer name to display in the Layers Panel, available options include: 256 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Coordinate Reference System • Displays the layer’s Coordinate Reference System (CRS). You can change the layer’s CRS, selecting a recently used one in the drop-down list or clicking on Select CRS button (see Coordinate Reference System Selector). Use this process only if the CRS applied to the layer is a wrong one or if none was applied. If you wish to reproject your data into another CRS, rather use layer reprojection algorithms from Processing or Save it into another layer. • Create spatial index (only for OGR-supported formats). • Update extents information for a layer. Query Builder The Query Builder dialog is accessible through the eponym button at the bottom of the Source tab in the Layer Properties dialog, under the Provider feature filter group. The Query Builder provides an interface that allows you to define a subset of the features in the layer using a SQL-like WHERE clause and to display the result in the main window. As long as the query is active, only the features corresponding to its result are available in the project. You can use one or more layer attributes to define the filter in the Query Builder. The use of more than one attribute is shown in Obr. 14.2. In the example, the filter combines the attributes • toa (DateTime field: cast("toa" as character) > '2017-05-17' and cast("toa" as character) < '2019-12-24T18:00:00'), • name (String field: "name" > 'S') and • FID (Integer field: FID > 10) using the AND, OR and NOT operators and parenthesis. This syntax (including the DateTime format for the toa field) works for GeoPackage datasets. The filter is made at the data provider (OGR, PostgreSQL, MSSQL…) level. So the syntax depends on the data provider (DateTime is for instance not supported for the ESRI Shapefile format). The complete expression: cast("toa" as character) > '2017-05-17' AND cast("toa" as character) < '2019-12-24T18:00:00' AND NOT ("name" > 'S' OR FID > 10) 14.1. The Vector Properties Dialog 257 QGIS Desktop 3.16 User Guide Obr. 14.2: Query Builder You can also open the Query Builder dialog using the Filter… option from the Layer menu or the layer contextual menu. The Fields, Values and Operators sections in the dialog help you to construct the SQL-like query exposed in the Provider specific filter expression box. The Fields list contains all the fields of the layer. To add an attribute column to the SQL WHERE clause field, double-click its name or just type it into the SQL box. The Values frame lists the values of the currently selected field. To list all unique values of a field, click the All button. To instead list the first 25 unique values of the column, click the Sample button. To add a value to the SQL WHERE clause field, double click its name in the Values list. You can use the search box at the top of the Values frame to easily browse and find attribute values in the list. The Operators section contains all usable operators. To add an operator to the SQL WHERE clause field, click the appropriate button. Relational operators ( = , > , …), string comparison operator (LIKE), and logical operators (AND, OR, …) are available. The Test button helps you check your query and displays a message box with the number of features satisfying the current query. Use the Clear button to wipe the SQL query and revert the layer to its original state (ie, fully load all the features). When a filter is applied, QGIS treats the resulting subset acts as if it were the entire layer. For example if you applied the filter above for ‚Borough‘ ("TYPE_2" = 'Borough'), you can not display, query, save or edit Anchorage, because that is a ‚Municipality‘ and therefore not part of the subset. Tip: Filtered layers are indicated in the Layers Panel 258 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide In the Layers panel, filtered layer is listed with a Filter icon next to it indicating the query used when the mouse hovers over the button. Double-click the icon opens the Query Builder dialog for edit. 14.1.3 Symbology Properties The Symbology tab provides you with a comprehensive tool for rendering and symbolizing your vector data. You can use tools that are common to all vector data, as well as special symbolizing tools that were designed for the different kinds of vector data. However all types share the following dialog structure: in the upper part, you have a widget that helps you prepare the classification and the symbol to use for features and at the bottom the Layer rendering widget. Tip: Switch quickly between different layer representations Using the Styles ► Add menu at the bottom of the Layer Properties dialog, you can save as many styles as needed. A style is the combination of all properties of a layer (such as symbology, labeling, diagram, fields form, actions…) as you want. Then, simply switch between styles from the context menu of the layer in Layers Panel to automatically get different representations of your data. Tip: Export vector symbology You have the option to export vector symbology from QGIS into Google *.kml, *.dxf and MapInfo *.tab files. Just open the right mouse menu of the layer and click on Save As… to specify the name of the output file and its format. In the dialog, use the Symbology export menu to save the symbology either as Feature symbology ► or as Symbol layer symbology ►. If you have used symbol layers, it is recommended to use the second setting. Features rendering The renderer is responsible for drawing a feature together with the correct symbol. Regardless layer geometry type, there are four common types of renderers: single symbol, categorized, graduated and rule-based. For point layers, there are a point displacement and a heatmap renderers available while polygon layers can also be rendered with the inverted polygons and 2.5 D renderers. There is no continuous color renderer, because it is in fact only a special case of the graduated renderer. The categorized and graduated renderers can be created by specifying a symbol and a color ramp - they will set the colors for symbols appropriately. For each data type (points, lines and polygons), vector symbol layer types are available. Depending on the chosen renderer, the dialog provides different additional sections. Poznámka: If you change the renderer type when setting the style of a vector layer the settings you made for the symbol will be maintained. Be aware that this procedure only works for one change. If you repeat changing the renderer type the settings for the symbol will get lost. 14.1. The Vector Properties Dialog 259 QGIS Desktop 3.16 User Guide Single Symbol Renderer The Single Symbol renderer is used to render all features of the layer using a single user-defined symbol. See The Symbol Selector for further information about symbol representation. Obr. 14.3: Single symbol line properties 260 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide No Symbols Renderer The No Symbols renderer is a special use case of the Single Symbol renderer as it applies the same rendering to all features. Using this renderer, no symbol will be drawn for features, but labeling, diagrams and other non-symbol parts will still be shown. Selections can still be made on the layer in the canvas and selected features will be rendered with a default symbol. Features being edited will also be shown. This is intended as a handy shortcut for layers which you only want to show labels or diagrams for, and avoids the need to render symbols with totally transparent fill/border to achieve this. Categorized Renderer The Categorized renderer is used to render the features of a layer, using a user-defined symbol whose aspect reflects the discrete values of a field or an expression. Obr. 14.4: Categorized Symbolizing options To use categorized symbology for a layer: 1. Select the Value of classification: it can be an existing field or an expression you can type in the box or build using the associated button. Using expressions for categorizing avoids the need to create an ad hoc field for symbology purposes (eg, if your classification criteria are derived from one or more attributes). The expression used to classify features can be of any type; eg, it can: • be a comparison. In this case, QGIS returns values 1 (True) and 0 (False). Some examples: myfield >= 100 $id = @atlas_featureid (continues on next page) 14.1. The Vector Properties Dialog 261 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) myfield % 2 = 0 within( $geometry, @atlas_geometry ) • combine different fields: concat( field_1, ' ', field_2 ) • be a calculation on fields: myfield % 2 year( myfield ) field_1 + field_2 substr( field_1, -3 ) • be used to transform linear values to discrete classes, e.g.: CASE WHEN x > 1000 THEN 'Big' ELSE 'Small' END • combine several discrete values into a single category, e.g.: CASE WHEN building IN ('residence', 'mobile home') THEN 'residential' WHEN building IN ('commercial', 'industrial') THEN 'Commercial and␣ →Industrial' END Tip: While you can use any kind of expression to categorize features, for some complex expressions it might be simpler to use rule-based rendering. 2. Configure the Symbol, which will be used as base symbol for all the classes; 3. Indicate the Color ramp, ie the range of colors from which the color applied to each symbol is selected. Besides the common options of the color ramp widget, you can apply a Random Color Ramp to the categories. You can click the Shuffle Random Colors entry to regenerate a new set of random colors if you are not satisfied. 4. Then click on the Classify button to create classes from the distinct values of the provided field or expression. 5. Apply the changes if the live update is not in use and each feature on the map canvas will be rendered with the symbol of its class. By default, QGIS appends an all other values class to the list. While empty at the beginning, this class is used as a default class for any feature not falling into the other classes (eg, when you create features with new values for the classification field / expression). Further tweaks can be done to the default classification: • You can Add new categories, Remove selected categories or Delete All of them. • A class can be disabled by unchecking the checkbox to the left of the class name; the corresponding features are hidden on the map. • Drag-and-drop the rows to reorder the classes • To change the symbol, the value or the legend of a class, double click the item. Right-clicking over selected item(s) shows a contextual menu to: • Copy Symbol and Paste Symbol, a convenient way to apply the item’s representation to others • Change Color… of the selected symbol(s) • Change Opacity… of the selected symbol(s) 262 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • Change Output Unit… of the selected symbol(s) • Change Width… of the selected line symbol(s) • Change Size… of the selected point symbol(s) • Change Angle… of the selected point symbol(s) • Merge Categories: Groups multiple selected categories into a single one. This allows simpler styling of layers with a large number of categories, where it may be possible to group numerous distinct categories into a smaller and more manageable set of categories which apply to multiple values. Tip: Since the symbol kept for the merged categories is the one of the topmost selected category in the list, you may want to move the category whose symbol you wish to reuse to the top before merging. • Unmerge Categories that were previously merged The Advanced menu gives access to options to speed classification or fine-tune the symbols rendering: • Match to saved symbols: Using the symbols library, assigns to each category a symbol whose name represents the classification value of the category • Match to symbols from file…: Provided a file with symbols, assigns to each category a symbol whose name represents the classification value of the category • Symbol levels… to define the order of symbols rendering. Tip: Edit categories directly from the Layers panel When a layer symbology is based on a categorized, graduated or rule-based symbology mode, you can edit each of the categories from the Layers Panel. Right-click on a sub-item of the layer and you will: • Toggle items visibility • Show all items • Hide all items • Modify the symbol color thanks to the color selector wheel • Edit symbol… from the symbol selector dialog • Copy symbol • Paste symbol Graduated Renderer The Graduated renderer is used to render all the features from a layer, using an user-defined symbol whose color or size reflects the assignment of a selected feature’s attribute to a class. Like the Categorized Renderer, the Graduated Renderer allows you to define rotation and size scale from specified columns. Also, analogous to the Categorized Renderer, it allows you to select: • The value (using the fields listbox or the Set value expression function) • The symbol (using the Symbol selector dialog) • The legend format and the precision • The method to use to change the symbol: color or size 14.1. The Vector Properties Dialog 263 QGIS Desktop 3.16 User Guide • The colors (using the color Ramp list) if the color method is selected • The size (using the size domain and its unit) Then you can use the Histogram tab which shows an interactive histogram of the values from the assigned field or expression. Class breaks can be moved or added using the histogram widget. Poznámka: You can use Statistical Summary panel to get more information on your vector layer. See Statistical Summary Panel. Back to the Classes tab, you can specify the number of classes and also the mode for classifying features within the classes (using the Mode list). The available modes are: • Equal Count (Quantile): each class will have the same number of elements (the idea of a boxplot). • Equal Interval: each class will have the same size (e.g. with the values from 1 to 16 and four classes, each class will have a size of four). • Logarithmic scale: suitable for data with a wide range of values. Narrow classes for low values and wide classes for large values (e.g. for decimal numbers with range [0..100] and two classes, the first class will be from 0 to 10 and the second class from 10 to 100). • Natural Breaks (Jenks): the variance within each class is minimized while the variance between classes is maximized. • Pretty Breaks: computes a sequence of about n+1 equally spaced nice values which cover the range of the values in x. The values are chosen so that they are 1, 2 or 5 times a power of 10. (based on pretty from the R statistical environment https://www.rdocumentation.org/packages/base/topics/pretty). • Standard Deviation: classes are built depending on the standard deviation of the values. The listbox in the center part of the Symbology tab lists the classes together with their ranges, labels and symbols that will be rendered. Click on Classify button to create classes using the chosen mode. Each classes can be disabled unchecking the checkbox at the left of the class name. To change symbol, value and/or label of the class, just double click on the item you want to change. Right-clicking over selected item(s) shows a contextual menu to: • Copy Symbol and Paste Symbol, a convenient way to apply the item’s representation to others • Change Color… of the selected symbol(s) • Change Opacity… of the selected symbol(s) • Change Output Unit… of the selected symbol(s) • Change Width… of the selected line symbol(s) • Change Size… of the selected point symbol(s) • Change Angle… of the selected point symbol(s) The example in Obr. 14.5 shows the graduated rendering dialog for the major_rivers layer of the QGIS sample dataset. 264 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.5: Graduated Symbolizing options Tip: Thematic maps using an expression Categorized and graduated thematic maps can be created using the result of an expression. In the properties dialog for vector layers, the attribute chooser is extended with a Set column expression function. So you don’t need to write the classification attribute to a new column in your attribute table if you want the classification attribute to be a composite of multiple fields, or a formula of some sort. Proportional Symbol and Multivariate Analysis Proportional Symbol and Multivariate Analysis are not rendering types available from the Symbology rendering drop-down list. However with the data-defined override options applied over any of the previous rendering options, QGIS allows you to display your point and line data with such representation. Creating proportional symbol To apply a proportional rendering: 1. First apply to the layer the single symbol renderer. 2. Then set the symbol to apply to the features. 3. Select the item at the upper level of the symbol tree, and use the Data-defined override button next to the Size (for point layer) or Width (for line layer) option. 14.1. The Vector Properties Dialog 265 QGIS Desktop 3.16 User Guide 4. Select a field or enter an expression, and for each feature, QGIS will apply the output value to the property and proportionally resize the symbol in the map canvas. If need be, use the Size assistant… option of the menu to apply some transformation (exponential, flannery…) to the symbol size rescaling (see Using the data-defined assistant interface for more details). You can choose to display the proportional symbols in the Layers panel and the print layout legend item: unfold the Advanced drop-down list at the bottom of the main dialog of the Symbology tab and select Data-defined size legend… to configure the legend items (see Data-defined size legend for details). Obr. 14.6: Scaling airports size based on elevation of the airport Creating multivariate analysis A multivariate analysis rendering helps you evaluate the relationship between two or more variables e.g., one can be represented by a color ramp while the other is represented by a size. The simplest way to create multivariate analysis in QGIS is to: 1. First apply a categorized or graduated rendering on a layer, using the same type of symbol for all the classes. 2. Then, apply a proportional symbology on the classes: 1. Click on the Change button above the classification frame: you get the The Symbol Selector dialog. 2. Rescale the size or width of the symbol layer using the data defined override widget as seen above. Like the proportional symbol, the scaled symbology can be added to the layer tree, on top of the categorized or graduated classes symbols using the data defined size legend feature. And both representation are also available in the print layout legend item. 266 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.7: Multivariate example with scaled size legend Rule-based Renderer The Rule-based renderer is used to render all the features from a layer, using rule-based symbols whose aspect reflects the assignment of a selected feature’s attribute to a class. The rules are based on SQL statements and can be nested. The dialog allows rule grouping by filter or scale, and you can decide if you want to enable symbol levels or use only the first-matched rule. To create a rule: 1. Activate an existing row by double-clicking it (by default, QGIS adds a symbol without a rule when the rendering mode is enabled) or click the Edit rule or Add rule button. 2. In the Edit Rule dialog that opens, you can define a label to help you identify each rule. This is the label that will be displayed in the Layers Panel and also in the print composer legend. 3. Manually enter an expression in the text box next to the Filter option or press the button next to it to open the expression string builder dialog. 4. Use the provided functions and the layer attributes to build an expression to filter the features you’d like to retrieve. Press the Test button to check the result of the query. 5. You can enter a longer label to complete the rule description. 6. You can use the Scale Range option to set scales at which the rule should be applied. 7. Finally, configure the symbol to use for these features. 8. And press OK. A new row summarizing the rule is added to the Layer Properties dialog. You can create as many rules as necessary following the steps above or copy pasting an existing rule. Drag-and-drop the rules on top of each other to nest them and refine the upper rule features in subclasses. Selecting a rule, you can also organize its features in subclasses using the Refine selected rules drop-down menu. Automated rule refinement can be based on: • scales; 14.1. The Vector Properties Dialog 267 QGIS Desktop 3.16 User Guide • categories: applying a categorized renderer; • or ranges: applying a graduated renderer. Refined classes appear like sub-items of the rule, in a tree hierarchy and like above, you can set symbology of each class. In the Edit rule dialog, you can avoid writing all the rules and make use of the Else option to catch all the features that do not match any of the other rules, at the same level. This can also be achieved by writing Else in the Rule column of the Layer Properties ► Symbology ► Rule-based dialog. Right-clicking over selected item(s) shows a contextual menu to: • Copy and Paste, a convenient way to create new item(s) based on existing item(s) • Copy Symbol and Paste Symbol, a convenient way to apply the item’s representation to others • Change Color… of the selected symbol(s) • Change Opacity… of the selected symbol(s) • Change Output Unit… of the selected symbol(s) • Change Width… of the selected line symbol(s) • Change Size… of the selected point symbol(s) • Change Angle… of the selected point symbol(s) • Refine Current Rule: open a submenu that allows to refine the current rule with scales, categories (categorized renderer) or Ranges (graduated renderer). The created rules also appear in a tree hierarchy in the map legend. Double-click the rules in the map legend and the Symbology tab of the layer properties appears showing the rule that is the background for the symbol in the tree. The example in Obr. 14.8 shows the rule-based rendering dialog for the rivers layer of the QGIS sample dataset. Obr. 14.8: Rule-based Symbolizing options 268 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Point displacement Renderer The Point Displacement renderer works to visualize all features of a point layer, even if they have the same location. To do this, the renderer takes the points falling in a given Distance tolerance from each other and places them around their barycenter following different Placement methods: • Ring: places all the features on a circle whose radius depends on the number of features to display. • Concentric rings: uses a set of concentric circles to show the features. • Grid: generates a regular grid with a point symbol at each intersection. The Center symbol widget helps you customize the symbol and color of the middle point. For the distributed points symbols, you can apply any of the No symbols, Single symbol, Categorized, Graduated or Rule-based renderer using the Renderer drop-down list and customize them using the Renderer Settings… button. While the minimal spacing of the Displacement lines depends on the point symbol renderer’s, you can still customize some of its settings such as the Stroke width, Stroke color and Size adjustment (eg, to add more spacing between the rendered points). Use the Labels group options to perform points labeling: the labels are placed near the displaced position of the symbol, and not at the feature real position. Other than the Label attribute, Label font and Label color, you can set the Minimum map scale to display the labels. Obr. 14.9: Point displacement dialog Poznámka: Point Displacement renderer does not alter feature geometry, meaning that points are not moved from their position. They are still located at their initial place. Changes are only visual, for rendering purpose. Use instead the Processing Points displacement algorithm if you want to create displaced features. 14.1. The Vector Properties Dialog 269 QGIS Desktop 3.16 User Guide Point Cluster Renderer Unlike the Point Displacement renderer which blows up nearest or overlaid point features placement, the Point Cluster renderer groups nearby points into a single rendered marker symbol. Based on a specified Distance, points that fall within from each others are merged into a single symbol. Points aggregation is made based on the closest group being formed, rather than just assigning them the first group within the search distance. From the main dialog, you can: • set the symbol to represent the point cluster in the Cluster symbol; the default rendering displays the number of aggregated features thanks to the @cluster_size variable on Font marker symbol layer. • use the Renderer drop-down list to apply any of the other feature rendering types to the layer (single, categorized, rule-based…). Then, push the Renderer Settings… button to configure features‘ symbology as usual. Note that this renderer is only visible on features that are not clustered. Also, when the symbol color is the same for all the point features inside a cluster, that color sets the @cluster_color variable of the cluster. Obr. 14.10: Point Cluster dialog Poznámka: Point Cluster renderer does not alter feature geometry, meaning that points are not moved from their position. They are still located at their initial place. Changes are only visual, for rendering purpose. Use instead the Processing K-means clustering or DBSCAN clustering algorithm if you want to create cluster-based features. 270 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Inverted Polygon Renderer The Inverted Polygon renderer allows user to define a symbol to fill in outside of the layer’s polygons. As above you can select subrenderers, namely Single symbol, Graduated, Categorized, Rule-Based or 2.5D renderer. Obr. 14.11: Inverted Polygon dialog Heatmap Renderer With the Heatmap renderer you can create live dynamic heatmaps for (multi)point layers. You can specify the heatmap radius in millimeters, points, pixels, map units or inches, choose and edit a color ramp for the heatmap style and use a slider for selecting a trade-off between render speed and quality. You can also define a maximum value limit and give a weight to points using a field or an expression. When adding or removing a feature the heatmap renderer updates the heatmap style automatically. 14.1. The Vector Properties Dialog 271 QGIS Desktop 3.16 User Guide Obr. 14.12: Heatmap dialog 2.5D Renderer Using the 2.5D renderer it’s possible to create a 2.5D effect on your layer’s features. You start by choosing a Height value (in map units). For that you can use a fixed value, one of your layer’s fields, or an expression. You also need to choose an Angle (in degrees) to recreate the viewer position (0° means west, growing in counter clock wise). Use advanced configuration options to set the Roof Color and Wall Color. If you would like to simulate solar radiation on the features walls, make sure to check the Shade walls based on aspect option. You can also simulate a shadow by setting a Color and Size (in map units). Obr. 14.13: 2.5D dialog 272 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Tip: Using 2.5D effect with other renderers Once you have finished setting the basic style on the 2.5D renderer, you can convert this to another renderer (single, categorized, graduated). The 2.5D effects will be kept and all other renderer specific options will be available for you to fine tune them (this way you can have for example categorized symbols with a nice 2.5D representation or add some extra styling to your 2.5D symbols). To make sure that the shadow and the „building“ itself do not interfere with other nearby features, you may need to enable Symbols Levels ( Advanced ► Symbol levels…). The 2.5D height and angle values are saved in the layer’s variables, so you can edit it afterwards in the variables tab of the layer’s properties dialog. Layer rendering From the Symbology tab, you can also set some options that invariably act on all features of the layer: • Opacity : You can make the underlying layer in the map canvas visible with this tool. Use the slider to adapt the visibility of your vector layer to your needs. You can also make a precise definition of the percentage of visibility in the menu beside the slider. • Blending mode at the Layer and Feature levels: You can achieve special rendering effects with these tools that you may previously only know from graphics programs. The pixels of your overlaying and underlaying layers are mixed through the settings described in Režim míchání. • Apply paint effects on all the layer features with the Draw Effects button. • Control feature rendering order allows you, using features attributes, to define the z-order in which they shall be rendered. Activate the checkbox and click on the button beside. You then get the Define Order dialog in which you: 1. Choose a field or build an expression to apply to the layer features. 2. Set in which order the fetched features should be sorted, i.e. if you choose Ascending order, the features with lower value are rendered under those with higher value. 3. Define when features returning NULL value should be rendered: first (bottom) or last (top). 4. Repeat the above steps as many times as rules you wish to use. The first rule is applied to all the features in the layer, z-ordering them according to their returned value. Then, within each group of features with the same value (including those with NULL value) and thus the same z-level, the next rule is applied to sort them. And so on… Obr. 14.14: Layer rendering options 14.1. The Vector Properties Dialog 273 QGIS Desktop 3.16 User Guide Other Settings Symbol levels For renderers that allow stacked symbol layers (only heatmap doesn’t) there is an option to control the rendering order of each symbol’s levels. For most of the renderers, you can access the Symbols levels option by clicking the Advanced button below the saved symbols list and choosing Symbol levels. For the Rule-based Renderer the option is directly available through Symbols Levels… button, while for Point displacement Renderer renderer the same button is inside the Rendering settings dialog. To activate symbols levels, select the Enable symbol levels. Each row will show up a small sample of the combined symbol, its label and the individual symbols layer divided into columns with a number next to it. The numbers represent the rendering order level in which the symbol layer will be drawn. Lower values levels are drawn first, staying at the bottom, while higher values are drawn last, on top of the others. Obr. 14.15: Symbol levels dialog Poznámka: If symbols levels are deactivated, the complete symbols will be drawn according to their respective features order. Overlapping symbols will simply obfuscate to other below. Besides, similar symbols won’t „merge“ with each other. 274 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.16: Symbol levels activated (A) and deactivated (B) difference Data-defined size legend When a layer is rendered with the proportional symbol or the multivariate rendering or when a scaled size diagram is applied to the layer, you can allow the display of the scaled symbols in both the Layers panel and the print layout legend. To enable the Data-defined Size Legend dialog to render symbology, select the eponym option in the Advanced button below the saved symbols list. For diagrams, the option is available under the Legend tab. The dialog provides the following options to: • select the type of legend: Legend not enabled, Separated legend items and Collapsed legend. For the latter option, you can select whether the legend items are aligned at the Bottom or at the Center; • set the symbol to use for legend representation; • insert the title in the legend; • resize the classes to use: by default, QGIS provides you with a legend of five classes (based on natural pretty breaks) but you can apply your own classification using the Manual size classes option. Use the and buttons to set your custom classes values and labels. A preview of the legend is displayed in the right panel of the dialog and updated as you set the parameters. For collapsed legend, a leader line from the horizontal center of the symbol to the corresponding legend text is drawn. 14.1. The Vector Properties Dialog 275 QGIS Desktop 3.16 User Guide Obr. 14.17: Setting size scaled legend Poznámka: Currently, data-defined size legend for layer symbology can only be applied to point layer using single, categorized or graduated symbology. Draw effects In order to improve layer rendering and avoid (or at least reduce) the resort to other software for final rendering of maps, QGIS provides another powerful functionality: the Draw Effects options, which adds paint effects for customizing the visualization of vector layers. The option is available in the Layer Properties ► Symbology dialog, under the Layer rendering group (applying to the whole layer) or in symbol layer properties (applying to corresponding features). You can combine both usage. Paint effects can be activated by checking the Draw effects option and clicking the Customize effects button. That will open the Effect Properties Dialog (see Obr. 14.18). The following effect types, with custom options are available: • Source: Draws the feature’s original style according to the configuration of the layer’s properties. The Opacity of its style can be adjusted as well as the Blend mode and Draw mode. These are common properties for all types of effects. 276 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.18: Draw Effects: Source dialog • Blur: Adds a blur effect on the vector layer. The custom options that you can change are the Blur type (Stack blur (fast) or Gaussian blur (quality)) and the Blur strength. Obr. 14.19: Draw Effects: Blur dialog • Colorise: This effect can be used to make a version of the style using one single hue. The base will always be a grayscale version of the symbol and you can: – Use the Grayscale to select how to create it: options are ‚By lightness‘, ‚By luminosity‘, ‚By average‘ and ‚Off‘. – If Colorise is selected, it will be possible to mix another color and choose how strong it should be. – Control the Brightness, Contrast and Saturation levels of the resulting symbol. 14.1. The Vector Properties Dialog 277 QGIS Desktop 3.16 User Guide Obr. 14.20: Draw Effects: Colorize dialog • Drop Shadow: Using this effect adds a shadow on the feature, which looks like adding an extra dimension. This effect can be customized by changing the Offset angle and distance, determining where the shadow shifts towards to and the proximity to the source object. Drop Shadow also has the option to change the Blur radius and the Color of the effect. Obr. 14.21: Draw Effects: Drop Shadow dialog 278 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • Inner Shadow: This effect is similar to the Drop Shadow effect, but it adds the shadow effect on the inside of the edges of the feature. The available options for customization are the same as the Drop Shadow effect. Obr. 14.22: Draw Effects: Inner Shadow dialog • Inner Glow: Adds a glow effect inside the feature. This effect can be customized by adjusting the Spread (width) of the glow, or the Blur radius. The latter specifies the proximity from the edge of the feature where you want any blurring to happen. Additionally, there are options to customize the color of the glow using a Single color or a Color ramp. Obr. 14.23: Draw Effects: Inner Glow dialog 14.1. The Vector Properties Dialog 279 QGIS Desktop 3.16 User Guide • Outer Glow: This effect is similar to the Inner Glow effect, but it adds the glow effect on the outside of the edges of the feature. The available options for customization are the same as the Inner Glow effect. Obr. 14.24: Draw Effects: Outer Glow dialog • Transform: Adds the possibility of transforming the shape of the symbol. The first options available for customization are the Reflect horizontal and Reflect vertical, which actually create a reflection on the horizontal and/or vertical axes. The other options are: – Shear X,Y: Slants the feature along the X and/or Y axis. – Scale X,Y: Enlarges or minimizes the feature along the X and/or Y axis by the given percentage. – Rotation: Turns the feature around its center point. – and Translate X,Y changes the position of the item based on a distance given on the X and/or Y axis. 280 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.25: Draw Effects: Transform dialog One or more effect types can be used at the same time. You (de)activate an effect using its checkbox in the effects list. You can change the selected effect type by using the Effect type option. You can reorder the effects using Move up and Move down buttons, and also add/remove effects using the Add new effect and Remove effect buttons. There are some common options available for all draw effect types. Opacity and Blend mode options work similar to the ones described in Layer rendering and can be used in all draw effects except for the transform one. There is also a Draw mode option available for every effect, and you can choose whether to render and/or modify the symbol, following some rules: • Effects render from top to bottom. • Render only mode means that the effect will be visible. • Modifier only mode means that the effect will not be visible but the changes that it applies will be passed to the next effect (the one immediately below). • The Render and Modify mode will make the effect visible and pass any changes to the next effect. If the effect is at the top of the effects list or if the immediately above effect is not in modify mode, then it will use the original source symbol from the layers properties (similar to source). 14.1.4 Labels Properties The Labels properties provides you with all the needed and appropriate capabilities to configure smart labeling on vector layers. This dialog can also be accessed from the Layer Styling panel, or using the Layer Labeling Options button of the Labels toolbar. The first step is to choose the labeling method from the drop-down list. Available methods are: • No labels: the default value, showing no labels from the layer • Single labels: Show labels on the map using a single attribute or an expression • Rule-based labeling 14.1. The Vector Properties Dialog 281 QGIS Desktop 3.16 User Guide • and Blocking: allows to set a layer as just an obstacle for other layer’s labels without rendering any labels of its own. The next steps assume you select the Single labels option, opening the following dialog. Obr. 14.26: Layer labeling settings - Single labels At the top of the dialog, a Value drop-down list is enabled. You can select an attribute column to use for labeling. By default, the display field is used. Click if you want to define labels based on expressions - See Define labels based on expressions. Below are displayed options to customize the labels, under various tabs: • Text • Formatting • Buffer • Mask • Background • Shadow • Callouts • Placement • Rendering Description of how to set each property is exposed at Setting a label. 282 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Setting the automated placement engine You can use the automated placement settings to configure a project-level automated behavior of the labels. In the top right corner of the Labels tab, click the Automated placement settings (applies to all layers) button, opening a dialog with the following options: Obr. 14.27: The labels automated placement engine • Number of candidates: calculates and assigns to line and polygon features the number of possible labels placement based on their size. The longer or wider a feature is, the more candidates it has, and its labels can be better placed with less risk of collision. • Text rendering: sets the default value for label rendering widgets when exporting a map canvas or a layout to PDF or SVG. If Always render labels as text is selected then labels can be edited in external applications (e.g. Inkscape) as normal text. BUT the side effect is that the rendering quality is decreased, and there are issues with rendering when certain text settings like buffers are in place. That’s why Always render labels as paths (recommended) which exports labels as outlines, is recommended. • Allow truncated labels on edges of map: controls whether labels which fall partially outside of the map extent should be rendered. If checked, these labels will be shown (when there’s no way to place them fully within the visible area). If unchecked then partially visible labels will be skipped. Note that this setting has no effects on labels‘ display in the layout map item. • Show all labels for all layers (i.e. including colliding objects). Note that this option can be also set per layer (see Rendering tab) • Show unplaced labels: allows to determine whether any important labels are missing from the maps (e.g. due to overlaps or other constraints). They are displayed using a customizable color. • Show candidates (for debugging): controls whether boxes should be drawn on the map showing all the candidates generated for label placement. Like the label says, it’s useful only for debugging and testing the effect different labeling settings have. This could be handy for a better manual placement with tools from the label toolbar. • Project labeling version: QGIS supports two different versions of label automatic placement: – Version 1: the old system (used by QGIS versions 3.10 and earlier, and when opening projects created in these versions in QGIS 3.12 or later). Version 1 treats label and obstacle priorities as „rough guides“ only, and it’s possible that a low-priority label will be placed over a high-priority obstacle in this version. 14.1. The Vector Properties Dialog 283 QGIS Desktop 3.16 User Guide Accordingly, it can be difficult to obtain the desired labeling results when using this version and it is thus recommended only for compatibility with older projects. – Version 2 (recommended): this is the default system in new projects created in QGIS 3.12 or later. In version 2, the logic dictating when labels are allowed to overlap obstacles has been reworked. The newer logic forbids any labels from overlapping any obstacles with a greater obstacle weight compared to the label’s priority. As a result, this version results in much more predictable and easier to understand labeling results. Rule-based labeling With rule-based labeling multiple label configurations can be defined and applied selectively on the base of expression filters and scale range, as in Rule-based rendering. To create a rule, select the Rule-based labeling option in the main drop-down list from the Labels tab and click the button at the bottom of the dialog. Then fill the new dialog with a description and an expression to filter features. You can also set a scale range in which the label rule should be applied. The other options available in this dialog are the common settings seen beforehand. 284 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.28: Rule settings 14.1. The Vector Properties Dialog 285 QGIS Desktop 3.16 User Guide A summary of existing rules is shown in the main dialog (see Obr. 14.29). You can add multiple rules, reorder or imbricate them with a drag-and-drop. You can as well remove them with the button or edit them with button or a double-click. Obr. 14.29: Rule based labeling panel Define labels based on expressions Whether you choose single or rule-based labeling type, QGIS allows using expressions to label features. Assuming you are using the Single labels method, click the button near the Value drop-down list in the Labels tab of the properties dialog. In Obr. 14.30, you see a sample expression to label the alaska trees layer with tree type and area, based on the field ‚VEGDESC‘, some descriptive text, and the function $area in combination with format_number() to make it look nicer. Obr. 14.30: Using expressions for labeling Expression based labeling is easy to work with. All you have to take care of is that: • You may need to combine all elements (strings, fields, and functions) with a string concatenation function such as concat, + or ||. Be aware that in some situations (when null or numeric value are involved) not all of these tools will fit your need. 286 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • Strings are written in ‚single quotes‘. • Fields are written in „double quotes“ or without any quote. Let’s have a look at some examples: 1. Label based on two fields ‚name‘ and ‚place‘ with a comma as separator: "name" || ', ' || "place" Returns: John Smith, Paris 2. Label based on two fields ‚name‘ and ‚place‘ with other texts: 'My name is ' + "name" + 'and I live in ' + "place" 'My name is ' || "name" || 'and I live in ' || "place" concat('My name is ', name, ' and I live in ', "place") Returns: My name is John Smith and I live in Paris 3. Label based on two fields ‚name‘ and ‚place‘ with other texts combining different concatenation functions: concat('My name is ', name, ' and I live in ' || place) Returns: My name is John Smith and I live in Paris Or, if the field ‚place‘ is NULL, returns: My name is John Smith 4. Multi-line label based on two fields ‚name‘ and ‚place‘ with a descriptive text: concat('My name is ', "name", '\n' , 'I live in ' , "place") Returns: My name is John Smith I live in Paris 5. Label based on a field and the $area function to show the place’s name and its rounded area size in a converted unit: 'The area of ' || "place" || ' has a size of ' || round($area/10000) || ' ha' Returns: The area of Paris has a size of 10500 ha 6. Create a CASE ELSE condition. If the population value in field population is <= 50000 it is a town, otherwise it is a city: concat('This place is a ', CASE WHEN "population" <= 50000 THEN 'town' ELSE 'city' END) Returns: 14.1. The Vector Properties Dialog 287 QGIS Desktop 3.16 User Guide This place is a town 7. Display name for the cities and no label for the other features (for the „city“ context, see example above): CASE WHEN "population" > 50000 THEN "NAME" END Returns: Paris As you can see in the expression builder, you have hundreds of functions available to create simple and very complex expressions to label your data in QGIS. See Výrazy chapter for more information and examples on expressions. Using data-defined override for labeling With the Data defined override function, the settings for the labeling are overridden by entries in the attribute table or expressions based on them. This feature can be used to set values for most of the labeling options described above. For example, using the Alaska QGIS sample dataset, let’s label the airports layer with their name, based on their militarian USE, i.e. whether the airport is accessible to : • military people, then display it in gray color, size 8; • others, then show in blue color, size 10. To do this, after you enabled the labeling on the NAME field of the layer (see Setting a label): 1. Activate the Text tab. 2. Click on the icon next to the Size property. 3. Select Edit… and type: CASE WHEN "USE" like '%Military%' THEN 8 -- because compatible values are →'Military' -- and 'Joint Military/Civilian' ELSE 10 END 4. Press OK to validate. The dialog closes and the button becomes meaning that an rule is being run. 5. Then click the button next to the color property, type the expression below and validate: CASE WHEN "USE" like '%Military%' THEN '150, 150, 150' ELSE '0, 0, 255' END Likewise, you can customize any other property of the label, the way you want. See more details on the Data-define override widget’s description and manipulation in Data defined override setup section. 288 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.31: Airports labels are formatted based on their attributes Tip: Use the data-defined override to label every part of multi-part features There is an option to set the labeling for multi-part features independently from your label properties. Choose the Rendering, Feature options, go to the Data-define override button next to the checkbox Label every part of multipart-features and define the labels as described in Data defined override setup. The Label Toolbar The Label Toolbar provides some tools to manipulate label or diagram properties. Obr. 14.32: The Label toolbar While for readability, label has been used below to describe the Label toolbar, note that when mentioned in their name, the tools work almost the same way with diagrams: • Highlight Pinned Labels and Diagrams . If the vector layer of the label is editable, then the highlighting is green, otherwise it’s blue. • Toggles Display of Unplaced Labels : Allows to determine whether any important labels are missing from the maps (e.g. due to overlaps or other constraints). They are displayed with a customizable color (see Setting the automated placement engine). 14.1. The Vector Properties Dialog 289 QGIS Desktop 3.16 User Guide • Pin/Unpin Labels and Diagrams . By clicking or draging an area, you pin label(s). If you click or drag an area holding Shift, label(s) are unpinned. Finally, you can also click or drag an area holding Ctrl to toggle the pin status of label(s). • Show/Hide Labels and Diagrams . If you click on the labels, or click and drag an area holding Shift, they are hidden. When a label is hidden, you just have to click on the feature to restore its visibility. If you drag an area, all the labels in the area will be restored. • Moves a Label or Diagram . You just have to drag the label to the desired place. • Rotates a Label . Click the label and move around and you get the text rotated. • Change Label Properties . It opens a dialog to change the clicked label properties; it can be the label itself, its coordinates, angle, font, size, multiline alignment … as long as this property has been mapped to a field. Here you can set the option to Label every part of a feature. Varování: Label tools overwrite current field values Using the Label toolbar to customize the labeling actually writes the new value of the property in the mapped field. Hence, be careful to not inadvertently replace data you may need later! Poznámka: The Auxiliary Storage Properties mechanism may be used to customize labeling (position, and so on) without modifying the underlying data source. Customize the labels from the map canvas Combined with the Label Toolbar, the data defined override setting helps you manipulate labels in the map canvas (move, edit, rotate). We now describe an example using the data-defined override function for the Move label function (see Obr. 14.33). 1. Import lakes.shp from the QGIS sample dataset. 2. Double-click the layer to open the Layer Properties. Click on Labels and Placement. Select Offset from centroid. 3. Look for the Data defined entries. Click the icon to define the field type for the Coordinate. Choose xlabel for X and ylabel for Y. The icons are now highlighted in yellow. Obr. 14.33: Labeling of vector polygon layers with data-defined override 4. Zoom into a lake. 5. Set editable the layer using the Toggle Editing button. 6. Go to the Label toolbar and click the icon. Now you can shift the label manually to another position (see Obr. 14.34). The new position of the label is saved in the xlabel and ylabel columns of the attribute table. 290 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide 7. It’s also possible to add a line connecting each lake to its moved label using: • the label’s callout property • or the geometry generator symbol layer with the expression below: make_line( centroid( $geometry ), make_point( "xlabel", "ylabel" ) ) Obr. 14.34: Moved labels Poznámka: The Auxiliary Storage Properties mechanism may be used with data-defined properties without having an editable data source. 14.1.5 Diagrams Properties The Diagrams tab allows you to add a graphic overlay to a vector layer (see Obr. 14.35). The current core implementation of diagrams provides support for: • No diagrams: the default value with no diagram displayed over the features; • Pie chart, a circular statistical graphic divided into slices to illustrate numerical proportion. The arc length of each slice is proportional to the quantity it represents; • Text diagram, a horizontaly divided circle showing statistics values inside; • Histogram, bars of varying colors for each attribute aligned next to each other • Stacked bars, Stacks bars of varying colors for each attribute on top of each other vertically or horizontally 14.1. The Vector Properties Dialog 291 QGIS Desktop 3.16 User Guide In the top right corner of the Diagrams tab, the Automated placement settings (applies to all layers) button provides means to control diagram labels placement on the map canvas. Tip: Switch quickly between types of diagrams Given that the settings are almost common to the different types of diagram, when designing your diagram, you can easily change the diagram type and check which one is more appropriate to your data without any loss. For each type of diagram, the properties are divided into several tabs: • Attributes • Rendering • Size • Placement • Options • Legend Attributes Attributes defines which variables to display in the diagram. Use add item button to select the desired fields into the ‚Assigned Attributes‘ panel. Generated attributes with Výrazy can also be used. You can move up and down any row with click and drag, sorting how attributes are displayed. You can also change the label in the ‚Legend‘ column or the attribute color by double-clicking the item. This label is the default text displayed in the legend of the print layout or of the layer tree. Obr. 14.35: Diagram properties - Attributes tab 292 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Vykreslování Rendering defines how the diagram looks like. It provides general settings that do not interfere with the statistic values such as: • the graphic’s opacity, its outline width and color; • depending on the type of diagram: – for histogram and stacked bars, the width of the bar and the spacing between the bars. You may want to set the spacing to 0 for stacked bars. Moreover, the Axis line symbol can be made visible on the map canvas and customized using line symbol properties. – for text diagram, the circle background color and the font used for texts; – for pie charts, the Start angle of the first slice and their Direction (clockwise or not). • the use of paint effects on the graphics. In this tab, you can also manage and fine tune the diagram visibility with different options: • Diagram z-index: controls how diagrams are drawn on top of each other and on top of labels. A diagram with a high index is drawn over diagrams and labels; • Show all diagrams: shows all the diagrams even if they overlap each other; • Show diagram: allows only specific diagrams to be rendered; • Always Show: selects specific diagrams to always render, even when they overlap other diagrams or map labels; • setting the Scale dependent visibility; Obr. 14.36: Diagram properties - Rendering tab 14.1. The Vector Properties Dialog 293 QGIS Desktop 3.16 User Guide Size Size is the main tab to set how the selected statistics are represented. The diagram size units can be ‚Millimeters‘, ‚Points‘, ‚Pixels‘, ‚Map Units‘ or ‚Inches‘. You can use: • Fixed size, a unique size to represent the graphic of all the features (not available for histograms) • or Scaled size, based on an expression using layer attributes: 1. In Attribute, select a field or build an expression 2. Press Find to return the Maximum value of the attribute or enter a custom value in the widget. 3. For histogram and stacked bars, enter a Bar length value, used to represent the Maximum value of the attributes. For each feature, the bar lenght will then be scaled linearly to keep this matching. 4. For pie chart and text diagram, enter a Size value, used to represent the Maximum value of the attributes. For each feature, the circle area or diameter will then be scaled linearly to keep this matching (from 0). A Minimum size can however be set for small diagrams. Obr. 14.37: Diagram properties - Size tab Placement Placement defines the diagram position. Depending on the layer geometry type, it offers different options for the placement (more details at Placement): • Around point or Over point for point geometry. The former variable requires a radius to follow. • Around line or Over line for line geometry. Like point feature, the first variable requires a distance to respect and you can specify the diagram placement relative to the feature (‚above‘, ‚on‘ and/or ‚below‘ the line) It’s possible to select several options at once. In that case, QGIS will look for the optimal position of the diagram. Remember that you can also use the line orientation for the position of the diagram. • Around centroid (at a set Distance), Over centroid, Using perimeter and Inside polygon are the options for polygon features. The Coordinate group provides direct control on diagram placement, on a feature-by-feature basis, using their attributes or an expression to set the X and Y coordinate. The information can also be filled using the Move labels and diagrams tool. 294 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide In the Priority section, you can define the placement priority rank of each diagram, ie if there are different diagrams or labels candidates for the same location, the item with the higher priority will be displayed and the others could be left out. Discourage diagrams and labels from covering features defines features to use as obstacles, ie QGIS will try to not place diagrams nor labels over these features. The priority rank is then used to evaluate whether a diagram could be omitted due to a greater weighted obstacle feature. Obr. 14.38: Vector properties dialog with diagram properties, Placement tab Možnosti The Options tab has settings for histograms and stacked bars. You can choose whether the Bar orientation should be Up, Down, Right or Left, for horizontal and vertical diagrams. Legend From the Legend tab, you can choose to display items of the diagram in the Layers panel, and in the print layout legend, next to the layer symbology: • check Show legend entries for diagram attributes to display in the legends the Color and Legend properties, as previously assigned in the Attributes tab; • and, when a scaled size is being used for the diagrams, push the Legend Entries for Diagram Size… button to configure the diagram symbol aspect in the legends. This opens the Data-defined Size Legend dialog whose options are described in Data-defined size legend. When set, the diagram legend items (attributes with color and diagram size) are also displayed in the print layout legend, next to the layer symbology. 14.1. The Vector Properties Dialog 295 QGIS Desktop 3.16 User Guide 14.1.6 Masks Properties The Masks tab helps you configure the current layer symbols overlay with other symbol layers or labels, from any layer. This is meant to improve the readability of symbols and labels whose colors are close and can be hard to decipher when overlapping; it adds a custom and transparent mask around the items to „hide“ parts of the symbol layers of the current layer. To apply masks on the active layer, you first need to enable in the project either mask symbol layers or mask labels. Then, from the Masks tab, check: • the Masked symbol layers: lists in a tree structure all the symbol layers of the current layer. There you can select the symbol layer item you would like to transparently „cut out“ when they overlap the selected mask sources • the Mask sources tab: list all the mask labels and mask symbol layers defined in the project. Select the items that would generate the mask over the selected masked symbol layers Obr. 14.39: Layer properties - Masks tab 14.1.7 3D View Properties The 3D View tab provides settings for vector layers that should be depicted in the 3D Map view tool. For better performance, data from vector layers are loaded in the background, using multithreading, and rendered in tiles whose size can be controlled from the Layer rendering section of the tab: • Zoom levels count: determines how deep the quadtree will be. For example, one zoom level means there will be a single tile for the whole layer. Three zoom levels means there will be 16 tiles at the leaf level (every extra zoom level multiplies that by 4). The default is 3 and the maximum is 8. • Show bounding boxes of tiles: especially useful if there are issues with tiles not showing up when they should To display a layer in 3D, select from the combobox at the top of the tab, either: 296 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • Single symbol: features are rendered using a common 3D symbol whose properties can be data-defined or not. Read details on setting a 3D symbol for each layer geometry type. • Rule-based: multiple symbol configurations can be defined and applied selectively based on expression filters and scale range. More details on how-to at Rule-based rendering. Obr. 14.40: 3D properties of a point layer 14.1.8 Fields Properties The Fields tab provides information on fields related to the layer and helps you organize them. The layer can be made editable using the Toggle editing mode . At this moment, you can modify its structure using the New field and Delete field buttons. You can also rename fields by double-clicking its name. This is only supported for data providers like PostgreSQL, Oracle, Memory layer and some OGR layer depending on the OGR data format and version. If set in the underlying data source or in the forms properties, the field’s alias is also displayed. An alias is a human readable field name you can use in the feature form or the attribute table. Aliases are saved in the project file. Depending on the data provider, you can associate a comment with a field, for example at its creation. This information 14.1. The Vector Properties Dialog 297 QGIS Desktop 3.16 User Guide is retrieved and shown in the Comment column and is later displayed when hovering over the field label in a feature form. Other than the fields contained in the dataset, virtual fields and Auxiliary Storage included, the Fields tab also lists fields from any joined layers. Depending on the origin of the field, a different background color is applied to it. For each listed field, the dialog also lists read-only characteristics such as its type, type name, length and precision. When serving the layer as WMS or WFS, you can also check here which fields could be retrieved. Obr. 14.41: Fields properties tab 14.1.9 Attributes Form Properties The Attributes Form tab helps you set up the form to display when creating new features or querying existing one. You can define: • the look and the behavior of each field in the feature form or the attribute table (label, widget, constraints…); • the form’s structure (custom or autogenerated): • extra logic in Python to handle interaction with the form or field widgets. At the top right of the dialog, you can set whether the form is opened by default when creating new features. This can be configured per layer or globally with the Suppress attribute form pop-up after feature creation option in the Settings ► Options ► Digitizing menu. 298 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Customizing a form for your data By default, when you click on a feature with the Identify Features tool or switch the attribute table to the form view mode, QGIS displays a basic form with predefined widgets (generally spinboxes and textboxes — each field is represented on a dedicated row by its label next to the widget). If relations are set on the layer, fields from the referencing layers are shown in an embedded frame at the bottom of the form, following the same basic structure. This rendering is the result of the default Autogenerate value of the Attribute editor layout setting in the Layer properties ► Attributes Form tab. This property holds three different values: • Autogenerate: keeps the basic structure of „one row - one field“ for the form but allows to customize each corresponding widget. • Drag-and-drop designer: other than widget customization, the form structure can be made more complex eg, with widgets embedded in groups and tabs. • Provide ui file: allows to use a Qt designer file, hence a potentially more complex and fully featured template, as feature form. The autogenerated form When the Autogenerate option is on, the Available widgets panel shows lists of fields (from the layer and its relations) that would be shown in the form. Select a field and you can configure its appearance and behavior in the right panel: • adding custom label and automated checks to the field; • setting a particular widget to use. The drag and drop designer The drag and drop designer allows you to create a form with several containers (tabs or groups) to present the attribute fields, as shown for example in Obr. 14.42. 14.1. The Vector Properties Dialog 299 QGIS Desktop 3.16 User Guide Obr. 14.42: Resulting built-in form with tabs and named groups 1. Choose Drag and drop designer from the Select attribute layout editor combobox. This enables the Form Layout panel next to the Available widgets panel, filled with existing fields. The selected field displays its properties in a third panel. 2. Select fields you do not want to use in your Form Layout panel and hit the button to remove them. Drag and drop fields from the other panel to re-add them. The same field can be added multiple times. 3. Drag and drop fields within the Form Layout panel to reorder their position. 4. Add containers (tab or group frames) to associate fields that belong to the same category and better structure the form. 1. The first step is to use the icon to create a tab in which fields and groups will be displayed 2. Then set the properties of the container, ie: • the name • the type, ie a tab or a group in container (a group inside a tab or another group) • and the number of columns the embedded fields should be distributed over 300 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.43: Dialog to create containers with the Attribute editor layout These, and other properties can later be updated by selecting the item and, from the third panel: • hide or show the container’s label • display the container as a group box (only available for tabs). • rename the container • set the number of columns • enter an expression to control the container’s visibility. The expression will be re-evaluated every time values in the form change, and the tab or group box shown/hidden accordingly • add a background color 3. You can create as many containers as you want; press the icon again to create another tab or a group frame under an existing tab. 5. The next step is to assign the relevant fields to each container, by simple drag and drop. Groups and tabs can also be moved in the same way. 6. Customize the widget of the fields in use 7. In case the layer is involved in a one or many to many relation, drag-and-drop the relation name from the Available widgets panel to the Form Layout panel. The associated layer attribute form will be embedded at the chosen place in the current layer’s form. As for the other items, select the relation label to configure some properties: • hide or show the relation label • show the link button • show the unlink button 8. Apply the layer’s properties dialog 9. Open a feature attribute form (eg, using the Identify features tool) and it should display the new form. 14.1. The Vector Properties Dialog 301 QGIS Desktop 3.16 User Guide Using custom ui-file The Provide ui-file option allows you to use complex dialogs made with Qt-Designer. Using a UI-file allows a great deal of freedom in creating a dialog. Note that, in order to link the graphical objects (textbox, combobox…) to the layer’s fields, you need to give them the same name. Use the Edit UI to define the path to the file to use. UI-files can also be hosted on a remote server. In this case, you provide the URL of the form instead of the file path in Edit UI. You’ll find some example in the Creating a new form lesson of the QGIS-training-manual-index-reference. For more advanced information, see https://woostuff.wordpress.com/2011/09/05/ qgis-tips-custom-feature-forms-with-python-logic/. Enhance your form with custom functions QGIS forms can have a Python function that is called when the dialog is opened. Use this function to add extra logic to your dialogs. The form code can be specified in three different ways: • load from the environment: use a function, for example in startup.py or from an installed plugin • load from an external file: a file chooser will let you select a Python file from your filesystem or enter a URL for a remote file. • provide code in this dialog: a Python editor will appear where you can directly type the function to use. In all cases you must enter the name of the function that will be called (open in the example below). An example is (in module MyForms.py): def open(dialog,layer,feature): geom = feature.geometry() control = dialog.findChild(QWidget,"My line edit") Reference in Python Init Function like so: open 302 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Configure the field behavior The main part of the Attributes Form tab helps you set the type of widget used to fill or display values of the field, in the attribute table or the feature form: you can define how user interacts with each field and the values or range of values that are allowed to be added to each. Obr. 14.44: Dialog to select an edit widget for an attribute column Common settings Regardless the type of widget applied to the field, there are some common properties you can set to control whether and how a field can be edited. Widget display Show label: indicates whether the field name should be displayed in the form (only in the Drag and drop designer mode). General options • Alias: a human readable name to use for fields. The alias will be displayed in the feature form, the attribute table, or in the Identify results panel. It can also be used as field name replacement in the expression builder, easing expressions understanding and reviews. Aliases are saved in project file. • Comment: displays the field’s comment as shown in the Fields tab, in a read-only state. This information is shown as tooltip when hovering over the field label in a feature form. • Editable: uncheck this option to set the field read-only (not manually modifiable) even when the layer is in edit mode. Note that checking this setting doesn’t override any edit limitation from the provider. • Label on top: places the field name above or beside the widget in the feature form. 14.1. The Vector Properties Dialog 303 QGIS Desktop 3.16 User Guide Default values • Default value: for new features, automatically populates by default the field with a predefined value or an expression-based one. For example, you can: – use $x, $length, $area to automatically populate a field with the feature’s X coordinate, length, area or any geometric information at its creation; – increment a field by 1 for each new feature using maximum("field")+1; – save the feature creation datetime using now(); – use variables in expressions, making it easier to e.g. insert the operator name (@user_full_name), the project file path (@project_path), … A preview of the resulting default value is displayed at the bottom of the widget. Poznámka: The Default value option is not aware of the values in any other field of the feature being created so it won’t be possible to use an expression combining any of those values i.e using an expression like concat(field1, field2) may not work. • Apply default value on update: whenever the feature attribute or geometry is changed, the default value is recalculated. This could be handy to save values like last user that modifies data, last time it was changed… Constraints You can constrain the value to insert in the field. This constraint can be: • Not null: requires the user to provide a value; • Unique: guarantee the inserted value to be unique throughout the field; • based on a custom expression: e.g. not regexp_match(col0,'[^A-Za-z]') will ensure that the value of the field col0 has only alphabet letters. A short description can be added to help you remember the constraint. Whenever a value is added or edited in a field, it’s submitted to the existing constraints and: • if it meets all the requirements, a green check is shown beside the field in the form; • if it does not meet all the requirements, then the field is colored in yellow or orange and a corresponding cross is displayed next to the widget. You can hover over the cross to remind which constraints are applied to the field and fix the value: – A yellow cross appears when the unmet constraint is an unenforced one and it does not prevent you to save the changes with the „wrong“ values; – An orange cross can not be ignored and does not allow you to save your modifications until they meet the constraints. It appears when the Enforce constraint option is checked. 304 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Edit widgets Based on the field type, QGIS automatically determines and assigns a default widget type to it. You can then replace the widget with any other compatible with the field type. The available widgets are: • Checkbox: Displays a checkbox whose state defines the value to insert. • Classification: Only available when a categorized symbology is applied to the layer, displays a combo box with the values of the classes. • Color: Displays a color widget allowing to select a color; the color value is stored as a html notation in the attribute table. • Date/Time: Displays a line field which can open a calendar widget to enter a date, a time or both. Column type must be text. You can select a custom format, pop-up a calendar, etc. • Enumeration: Opens a combo box with predefined values fetched from the database. This is currently only supported by the PostgreSQL provider, for fields of enum type. • Attachment: Uses a „Open file“ dialog to store file path in a relative or absolute mode. It can also be used to display a hyperlink (to document path), a picture or a web page. • Hidden: A hidden attribute column is invisible. The user is not able to see its contents. • Key/Value: Displays a two-columns table to store sets of key/value pairs within a single field. This is currently supported by the PostgreSQL provider, for fields of hstore type. • List: Displays a single column table to add different values within a single field. This is currently supported by the PostgreSQL provider, for fields of array type. • Range: Allows you to set numeric values from a specific range. The edit widget can be either a slider or a spin box. • Relation Reference: This is the default widget assigned to the referencing field (i.e., the foreign key in the child layer) when a relation is set. It provides direct access to the parent feature’s form which in turn embeds the list and form of its children. • Text Edit (default): This opens a text edit field that allows simple text or multiple lines to be used. If you choose multiple lines you can also choose html content. • Unique Values: You can select one of the values already used in the attribute table. If ‚Editable‘ is activated, a line edit is shown with autocompletion support, otherwise a combo box is used. • Uuid Generator: Generates a read-only UUID (Universally Unique Identifiers) field, if empty. • Value Map: A combo box with predefined items. The value is stored in the attribute, the description is shown in the combo box. You can define values manually or load them from a layer or a CSV file. • Value Relation: Offers values from a related table in a combobox. You can select layer, key column and value column. Several options are available to change the standard behaviors: allow null value, order by value, allow multiple selections and use of auto-completer. The forms will display either a drop-down list or a line edit field when completer checkbox is enabled. Tip: Relative Path in Attachment widget If the path which is selected with the file browser is located in the same directory as the .qgs project file or below, paths are converted to relative paths. This increases portability of a .qgs project with multimedia information attached. 14.1. The Vector Properties Dialog 305 QGIS Desktop 3.16 User Guide 14.1.10 Joins Properties The Joins tab allows you to associate features of the current layer (called Target layer) to features from another loaded vector layer (or table). The join is based on an attribute that is shared by the layers. The layers can be geometryless (tables) or not but their join attribute should be of the same type. To create a join: 1. Click the Add new join button. The Add vector join dialog appears. 2. Select the Join layer you want to connect with the target vector layer 3. Specify the Join field and the Target field that are common to both the join layer and the target layer 4. Press OK and a summary of selected parameters is added to the Join panel. 306 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.45: Join an attribute table to an existing vector layer The steps above will create a join, where ALL the attributes of the first matching feature in the join layer is added to the target layer’s feature. QGIS provides more options to tweak the join: • Cache join layer in virtual memory: allows you to cache values in memory (without geometries) from the joined layer in order to speed up lookups. • Create attribute index on the join field • Dynamic form: helps to synchronize join fields on the fly, according to the Target field. This way, constraints for join fields are also correctly updated. Note that it’s deactivated by default because it may be very time consuming if you have a lot of features or a myriad of joins. 14.1. The Vector Properties Dialog 307 QGIS Desktop 3.16 User Guide • If the target layer is editable, then some icons will be displayed in the attribute table next to fields, in order to inform about their status: – : the join layer is not configured to be editable. If you want to be able to edit join features from the target attribute table, then you have to check the option Editable join layer. – : the join layer is well configured to be editable, but its current status is read only. – : the join layer is editable, but synchronization mechanisms are not activated. If you want to automatically add a feature in the join layer when a feature is created in the target layer, then you have to check the option Upsert on edit. Symmetrically, the option Delete cascade may be activated if you want to automatically delete join features. • Joined fields: instead of adding all the fields from the joined layer, you can specify a subset. • Custom field name prefix for joined fields, in order to avoid name collision QGIS currently has support for joining non-spatial table formats supported by OGR (e.g., CSV, DBF and Excel), delimited text and the PostgreSQL provider. 14.1.11 Auxiliary Storage Properties The regular way to customize styling and labeling is to use data-defined properties as described in Data defined override setup. However, it may not be possible if the underlying data is read only. Moreover, configuring these data-defined properties may be very time consuming or not desirable! For example, if you want to fully use map tools coming with The Label Toolbar, then you need to add and configure more than 20 fields in your original data source (X and Y positions, rotation angle, font style, color and so on). The Auxiliary Storage mechanism provides the solution to these limitations and awkward configurations. Auxiliary fields are a roundabout way to automatically manage and store these data-defined properties (labels, diagram, symbology…) in a SQLite database thanks to editable joins. This allows you to store properties for layers that aren’t editable. A tab is available in vector layer properties dialog to manage auxiliary storage: 308 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.46: Auxiliary Storage tab Labeling Considering that the data source may be customized thanks to data-defined properties without being editable, labeling map tools described in The Label Toolbar are always available as soon as labeling is activated. Actually, the auxiliary storage system needs an auxiliary layer to store these properties in a SQLite database (see Auxiliary storage database). Its creation process is run the first time you click on the map while a labeling map tool is currently activated. Then, a window is displayed, allowing you to select the primary key to use for joining (to ensure that features are uniquely identified): Obr. 14.47: Auxiliary Layer creation dialog As soon as an auxiliary layer is configured for the current data source, you can retrieve its information in the tab: 14.1. The Vector Properties Dialog 309 QGIS Desktop 3.16 User Guide Obr. 14.48: Auxiliary Layer key The auxiliary layer now has these characteristics: • the primary key is ID, • there are 0 features using an auxiliary field, • there are 0 auxiliary fields. Now that the auxiliary layer is created, you can edit the layer labels. Click on a label while the Change Label map tool is activated, then you can update styling properties like sizes, colors, and so on. The corresponding data-defined properties are created and can be retrieved: 310 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.49: Auxiliary Fields As you can see in the figure above, 21 fields are automatically created and configured for labeling. For example, the FontStyle auxiliary field type is a String and is named labeling_fontstyle in the underlying SQLite database. There is also 1 feature which is currently using these auxiliary fields. Notice that the icon is displayed in the Labels properties tab indicating that the data-defined override options are set correctly: 14.1. The Vector Properties Dialog 311 QGIS Desktop 3.16 User Guide Obr. 14.50: Data-defined properties automatically created Otherwise, there’s another way to create an auxiliary field for a specific property thanks to the data-defined override button. By clicking on Store data in the project, an auxiliary field is automatically created for the Opacity field. If you click on this button and the auxiliary layer is not created yet, a window (Obr. 14.47) is first displayed to select the primary key to use for joining. Symbologie Like the method described above for customizing labels, auxiliary fields can also be used to stylize symbols and diagrams. To do this, click on Data-defined override and select Store data in the project for a specific property. For example, the Fill color field: 312 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.51: Data-defined property menu for symbol There are different attributes for each symbol (e.g. fill style, fill color, stroke color, etc…), so each auxiliary field representing an attribute requires a unique name to avoid conflicts. After selecting Store data in the project, a window opens and displays the Type of the field and prompts you to enter a unique name for the auxiliary field. For example, when creating a Fill color auxiliary field the following window opens: Obr. 14.52: Name of the auxiliary field for a symbol Once created, the auxiliary field can be retrieved in the auxiliary storage tab: 14.1. The Vector Properties Dialog 313 QGIS Desktop 3.16 User Guide Obr. 14.53: Auxiliary field symbol Attribute table and widgets Auxiliary fields can be edited using the attribute table. However, not all auxiliary fields are initially visible in the attribute table. Auxiliary fields representing attributes of a layer’s symbology, labeling, appearance, or diagrams will appear automatically in the attribute table. The exception are attributes that can be modified using the Label Toolbar which are hidden by default. Auxiliary fields representing a Color have a widget Color set by default, otherwise auxiliary fields default to the Text Edit widget. Auxiliary fields that represent attributes that can be modified using the Label toolbar are Hidden in the attribute table by default. To make a field visible, open the Attribute Form properties tab and change the value of an auxiliary field Widget Type from Hidden to another relevant value. For example, change the auxiliary_storage_labeling_size to Text Edit or change auxiliary_storage_labeling_color to the Color widget. Those fields will now be visible in the attribute table. Auxiliary fields in the attribute table will appear like the following image: 314 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.54: Form with auxiliary fields Management The Auxiliary Layer menu allows you to manage the auxiliary fields: 14.1. The Vector Properties Dialog 315 QGIS Desktop 3.16 User Guide Obr. 14.55: Auxiliary layer management The first item Create is disabled in this case because the auxiliary layer is already created. But in case of a fresh work, you can use this action to create an auxiliary layer. As explained in Labeling, a primary key will be needed then. The Clear action allows to keep all auxiliary fields, but remove their contents. This way, the number of features using these fields will fall to 0. The Delete action completely removes the auxiliary layer. In other words, the corresponding table is deleted from the underlying SQLite database and properties customization are lost. Finally, the Export action allows to save the auxiliary layer as a new vector layer. Note that geometries are not stored in auxiliary storage. However, in this case, geometries are exported from the original data source too. 316 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Auxiliary storage database When you save your project with the .qgs format, the SQLite database used for auxiliary storage is saved at the same place but with the extension .qgd. For convenience, an archive may be used instead thanks to the .qgz format. In this case, .qgd and .qgs files are both embedded in the archive. 14.1.12 Actions Properties QGIS provides the ability to perform an action based on the attributes of a feature. This can be used to perform any number of actions, for example, running a program with arguments built from the attributes of a feature or passing parameters to a web reporting tool. Obr. 14.56: Overview action dialog with some sample actions Actions are useful when you frequently want to run an external application or view a web page based on one or more values in your vector layer. They are divided into six types and can be used like this: • Generic, Mac, Windows and Unix actions start an external process. • Python actions execute a Python expression. • Generic and Python actions are visible everywhere. • Mac, Windows and Unix actions are visible only on the respective platform (i.e., you can define three ‚Edit‘ actions to open an editor and the users can only see and execute the one ‚Edit‘ action for their platform to run the editor). There are several examples included in the dialog. You can load them by clicking on Create Default Actions. To edit any of the examples, double-click its row. One example is performing a search based on an attribute value. This concept is used in the following discussion. The Show in Attribute Table allows you to display in the attribute table dialog the checked feature-scoped actions, either as Combo Box or as Separate Buttons (see Configuring the columns). 14.1. The Vector Properties Dialog 317 QGIS Desktop 3.16 User Guide Defining Actions To define an attribute action, open the vector Layer Properties dialog and click on the Actions tab. In the Actions tab, click the Add a new action to open the Edit Action dialog. Select the action Type and provide a descriptive name for the action. The action itself must contain the name of the application that will be executed when the action is invoked. You can add one or more attribute field values as arguments to the application. When the action is invoked, any set of characters that start with a % followed by the name of a field will be replaced by the value of that field. The special characters %% will be replaced by the value of the field that was selected from the identify results or attribute table (see using_actions below). Double quote marks can be used to group text into a single argument to the program, script or command. Double quotes will be ignored if preceded by a backslash. The Action Scopes allows you to define where the action should be available. You have 4 different choices: 1. Feature Scope: action is available when right click in the cell within the attribute table. 2. Field Scope: action is available when right click in the cell within the attribute table, in the feature form and in the default action button of the main toolbar. 3. Layer Scope: action is available in the action button in the attribute table toolbar. Be aware that this type of action involves the entire layer and not the single features. 4. Canvas: action is available in the main action button in the toolbar. If you have field names that are substrings of other field names (e.g., col1 and col10), you should indicate that by surrounding the field name (and the % character) with square brackets (e.g., [%col10]). This will prevent the %col10 field name from being mistaken for the %col1 field name with a 0 on the end. The brackets will be removed by QGIS when it substitutes in the value of the field. If you want the substituted field to be surrounded by square brackets, use a second set like this: [[%col10]]. Using the Identify Features tool, you can open the Identify Results dialog. It includes a (Derived) item that contains information relevant to the layer type. The values in this item can be accessed in a similar way to the other fields by proceeding the derived field name with (Derived).. For example, a point layer has an X and Y field, and the values of these fields can be used in the action with %(Derived).X and %(Derived).Y. The derived attributes are only available from the Identify Results dialog box, not the Attribute Table dialog box. Two example actions are shown below: • konqueror https://www.google.com/search?q=%nam • konqueror https://www.google.com/search?q=%% In the first example, the web browser konqueror is invoked and passed a URL to open. The URL performs a Google search on the value of the nam field from our vector layer. Note that the application or script called by the action must be in the path, or you must provide the full path. To be certain, we could rewrite the first example as: / opt/kde3/bin/konqueror https://www.google.com/search?q=%nam. This will ensure that the konqueror application will be executed when the action is invoked. The second example uses the %% notation, which does not rely on a particular field for its value. When the action is invoked, the %% will be replaced by the value of the selected field in the identify results or attribute table. Using Actions QGIS offers many ways to execute actions you enabled on a layer. Depending on their settings, they can be available: • in the drop-down menu of Run Feature Action button from the Attributes toolbar or Attribute table dialog; • when right-clicking a feature with the Identify Features tool (see Identifying Features for more information); • from the Identify Results panel, under the Actions section; • as items of an Actions column in the Attribute Table dialog. 318 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide If you are invoking an action that uses the %% notation, right-click on the field value in the Identify Results dialog or the Attribute Table dialog that you wish to pass to the application or script. Here is another example that pulls data out of a vector layer and inserts it into a file using bash and the echo command (so it will only work on or perhaps ). The layer in question has fields for a species name taxon_name, latitude lat and longitude long. We would like to be able to make a spatial selection of localities and export these field values to a text file for the selected record (shown in yellow in the QGIS map area). Here is the action to achieve this: bash -c "echo \"%taxon_name %lat %long\" >> /tmp/species_localities.txt" After selecting a few localities and running the action on each one, opening the output file will show something like this: Acacia mearnsii -34.0800000000 150.0800000000 Acacia mearnsii -34.9000000000 150.1200000000 Acacia mearnsii -35.2200000000 149.9300000000 Acacia mearnsii -32.2700000000 150.4100000000 As an exercise, we can create an action that does a Google search on the lakes layer. First, we need to determine the URL required to perform a search on a keyword. This is easily done by just going to Google and doing a simple search, then grabbing the URL from the address bar in your browser. From this little effort, we see that the format is https://www.google.com/search?q=QGIS, where QGIS is the search term. Armed with this information, we can proceed: 1. Make sure the lakes layer is loaded. 2. Open the Layer Properties dialog by double-clicking on the layer in the legend, or right-click and choose Properties from the pop-up menu. 3. Click on the Actions tab. 4. Click Add a new action . 5. Choose the Open action type, 6. Enter a name for the action, for example Google Search. 7. Additionally you can add a Short Name or even an Icon. 8. Choose the action Scope. See Defining Actions for further information. Leave the default settings for this example. 9. For the action, we need to provide the name of the external program to run. In this case, we can use Firefox. If the program is not in your path, you need to provide the full path. 10. Following the name of the external application, add the URL used for doing a Google search, up to but not including the search term: https://www.google.com/search?q= 11. The text in the Action field should now look like this: https://www.google.com/search?q= 12. Click on the drop-down box containing the field names for the lakes layer. It’s located just to the left of the Insert button. 13. From the drop-down box, select ‚NAMES‘ and click Insert. 14. Your action text now looks like this: https://www.google.com/search?q=[%NAMES%] 15. To finalize and add the action, click the OK button. 14.1. The Vector Properties Dialog 319 QGIS Desktop 3.16 User Guide Obr. 14.57: Edit action dialog configured with the example This completes the action, and it is ready to use. The final text of the action should look like this: https://www.google.com/search?q=[%NAMES%] We can now use the action. Close the Layer Properties dialog and zoom in to an area of interest. Make sure the lakes layer is active and identify a lake. In the result box you’ll now see that our action is visible: 320 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.58: Select feature and choose action When we click on the action, it brings up Firefox and navigates to the URL https://www.google.com/search?q= Tustumena. It is also possible to add further attribute fields to the action. Therefore, you can add a + to the end of the action text, select another field and click on Insert Field. In this example, there is just no other field available that would make sense to search for. You can define multiple actions for a layer, and each will show up in the Identify Results dialog. You can also invoke actions from the attribute table by selecting a row and right-clicking, then choosing the action from the pop-up menu. There are all kinds of uses for actions. For example, if you have a point layer containing locations of images or photos along with a file name, you could create an action to launch a viewer to display the image. You could also use actions to launch web-based reports for an attribute field or combination of fields, specifying them in the same way we did in our Google search example. We can also make more complex examples, for instance, using Python actions. Usually, when we create an action to open a file with an external application, we can use absolute paths, or eventually relative paths. In the second case, the path is relative to the location of the external program executable file. But what about if we need to use relative paths, relative to the selected layer (a file-based one, like Shapefile or SpatiaLite)? The following code will do the trick: command = "firefox" imagerelpath = "images_test/test_image.jpg" layer = qgis.utils.iface.activeLayer() import os.path layerpath = layer.source() if layer.providerType() == 'ogr' else (qgis.core.QgsDataSourceURI(layer.source()).database() if layer.providerType() == 'spatialite' else None) path = os.path.dirname(str(layerpath)) image = os.path.join(path,imagerelpath) import subprocess subprocess.Popen( [command, image ] ) We just have to remember that the action is one of type Python and the command and imagerelpath variables must be changed to fit our needs. 14.1. The Vector Properties Dialog 321 QGIS Desktop 3.16 User Guide But what about if the relative path needs to be relative to the (saved) project file? The code of the Python action would be: command = "firefox" imagerelpath = "images_test/test_image.jpg" projectpath = qgis.core.QgsProject.instance().fileName() import os.path path = os.path.dirname(str(projectpath)) if projectpath != '' else None image = os.path.join(path, imagerelpath) import subprocess subprocess.Popen( [command, image ] ) Another Python action example is the one that allows us to add new layers to the project. For instance, the following examples will add to the project respectively a vector and a raster. The names of the files to be added to the project and the names to be given to the layers are data driven (filename and layername are column names of the table of attributes of the vector where the action was created): qgis.utils.iface.addVectorLayer('/yourpath/[% "filename" %].shp', '[% "layername" %]', 'ogr') To add a raster (a TIF image in this example), it becomes: qgis.utils.iface.addRasterLayer('/yourpath/[% "filename" %].tif', '[% "layername" %]') 14.1.13 Display Properties The Display tab helps you configure fields to use for feature identification: • The Display name: based on a field or an expression. This is: – the label shown on top of the feature information in the Identify tool results – the field used in the locator bar when looking for features in all layers – the feature identifier in the attribute table form view – the feature identifier when the map or layout is exported to a layered output format such as GeoPDF – the map tip information, i.e. the message displayed in the map canvas when hovering over a feature of the active layer with the Show Map Tips icon pressed. Applicable when no HTML Map Tip is set. • The HTML Map Tip is specifically created for the map tips: it’s a more complex and full HTML text mixing fields, expressions and html tags (multiline, fonts, images, hyperlink…). 322 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.59: HTML code for map tip To activate map tips, select the menu option View ► Show Map Tips or click on the Show Map Tips icon of the Attributes Toolbar. Map tip is a cross-session feature meaning that once activated, it stays on and apply to any layer in any project, even in future QGIS sessions until it’s toggled off. Obr. 14.60: Map tip made with HTML code 14.1. The Vector Properties Dialog 323 QGIS Desktop 3.16 User Guide 14.1.14 Rendering Properties Scale dependent visibility You can set the Maximum (inclusive) and Minimum (exclusive) scale, defining a range of scale in which features will be visible. Out of this range, they are hidden. The Set to current canvas scale button helps you use the current map canvas scale as boundary of the range visibility. See Vykreslování v závislosti na měřítku for more information. Simplify geometry QGIS offers support for on-the-fly feature generalisation. This can improve rendering times when drawing many complex features at small scales. This feature can be enabled or disabled in the layer settings using the Simplify geometry option. There is also a global setting that enables generalisation by default for newly added layers (see global simplification for more information). Obr. 14.61: Layer Geometry Simplification dialog Poznámka: Feature generalisation may introduce artefacts into your rendered output in some cases. These may include slivers between polygons and inaccurate rendering when using offset-based symbol layers. While rendering extremely detailed layers (e.g. polygon layers with a huge number of nodes), this can cause layout exports in PDF/SVG format to be huge as all nodes are included in the exported file. This can also make the resultant file very slow to work with/open in other programs. Checking Force layer to render as raster forces these layers to be rasterised so that the exported files won’t have to include all the nodes contained in these layers and the rendering is therefore sped up. You can also do this by forcing the layout to export as a raster, but that is an all-or-nothing solution, given that the rasterisation is applied to all layers. 324 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Refresh layer at interval (seconds): set a timer to automatically refresh individual layers at a matching interval. Canvas updates are deferred in order to avoid refreshing multiple times if more than one layer has an auto update interval set. Depending on the data provider (e.g. PostgreSQL), notifications can be sent to QGIS when changes are applied to the data source, out of QGIS. Use the Refresh layer on notification option to trigger an update. You can also limit the layer refresh to a specific message set in the Only if message is text box. 14.1.15 Variables Properties The Variables tab lists all the variables available at the layer’s level (which includes all global and project’s variables). It also allows the user to manage layer-level variables. Click the button to add a new custom layer-level variable. Likewise, select a custom layer-level variable from the list and click the button to remove it. More information on variables usage in the General Tools Storing values in Variables section. 14.1.16 Metadata Properties The Metadata tab provides you with options to create and edit a metadata report on your layer. Information to fill concern: • the data Identification: basic attribution of the dataset (parent, identifier, title, abstract, language…); • the Categories the data belongs to. Alongside the ISO categories, you can add custom ones; • the Keywords to retrieve the data and associated concepts following a standard based vocabulary; • the Access to the dataset (licenses, rights, fees, and constraints); • the Extent of the dataset, either spatial one (CRS, map extent, altitudes) or temporal; • the Contact of the owner(s) of the dataset; • the Links to ancillary resources and related information; • the History of the dataset. A summary of the filled information is provided in the Validation tab and helps you identify potential issues related to the form. You can then either fix them or ignore them. Metadata are currently saved in the project file. They can also be saved in a .qmd file alongside file based layers or in a local .sqlite database for remote layers (e.g. PostGIS). 14.1.17 Dependencies Properties The Dependencies tab allows to declare data dependencies between layers. A data dependency occurs when a data modification in a layer, not by direct user manipulation, may modify data of other layers. This is the case for instance when geometry of a layer is updated by a database trigger or custom PyQGIS scripting after modification of another layer’s geometry. In the Dependencies tab, you can select any layers which may externally alter the data in the current layer. Correctly specifying dependent layers allows QGIS to invalidate caches for this layer when the dependent layers are altered. 14.1. The Vector Properties Dialog 325 QGIS Desktop 3.16 User Guide 14.1.18 Legend Properties The Legend properties tab provides you with advanced settings for the Layers panel and/or the print layout legend. These options include: • Text on symbols: In some cases it can be useful to add extra information to the symbols in the legend. With this frame, you can affect to any of the symbols used in the layer symbology a text that is displayed over the symbol, in both Layers panel and print layout legend. This mapping is done by typing each text next to the symbol in the table widget or filling the table using the Set Labels from Expression button. Text appearance is handled through the font and color selector widgets of the Text Format button. Obr. 14.62: Setting text on symbols (left) and its rendering in the Layers panel (right) • a list of widgets you can embed within the layer tree in the Layers panel. The idea is to have a way to quickly access some actions that are often used with the layer (setup transparency, filtering, selection, style or other stuff…). By default, QGIS provides transparency widget but this can be extended by plugins registering their own widgets and assign custom actions to layers they manage. 14.1.19 QGIS Server Properties The QGIS Server tab consists of Description, Attribution, MetadataURL, and LegendUrl sections. From the Description section, you can change the Short name used to reference the layer in requests (to learn more about short names, read server_short_name). You can also add or edit a Title and Abstract for the layer, or define a Keyword list here. These keyword lists can be used in a metadata catalog. If you want to use a title from an XML metadata file, you have to fill in a link in the DataUrl field. Use Attribution to get attribute data from an XML metadata catalog. In MetadataUrl, you can define the general path to the XML metadata catalog. This information will be saved in the QGIS project file for subsequent sessions and will be used for QGIS server. In the LegendUrl section, you can provide the url of a legend image in the url field. You can use the Format drop-down option to apply the appropriate format of the image. Currently png, jpg and jpeg image formats are supported. 326 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.63: QGIS Server tab in vector layers properties dialog To learn more about QGIS Server, read the QGIS-Server-manual. 14.1.20 Digitizing Properties The Digitizing tab gives access to options that help to ensure the quality of digitized geometries. 14.1. The Vector Properties Dialog 327 QGIS Desktop 3.16 User Guide Obr. 14.64: The QGIS Digitizing tab in the vector layers properties dialog Automatic Fixes Options in the Automatic Fixes section will directly affect the vertices of any geometry which is added or modified. If the Remove duplicate nodes option is checked, any two subsequent vertices with exactly the same coordinates will be removed. If the Geometry precision is set, all vertices will be rounded to the closest multiple of the configured geometry precision. The rounding will happen in the layer coordinate reference system. Z and M values are not rounded. With many map tools, a grid is shown on the canvas while digitizing. Geometry Checks In the Geometry checks section, additional validations on a per geometry basis can be activated. Immediately after any geometry modification, failures in these checks are reported to the user in the geometry validation panel. As long as a check is failing, it is not possible to save the layer. The Is valid check will run basic validity checks like self intersection on geometries. 328 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Topology Checks In the Topology checks section, additional topology validation checks can be activated. Topology checks will be executed when the user saves the layer. Check errors will be reported in the geometry validation panel. As long as validation errors are present, the layer can not be saved. Topology checks are executed in the area of the bounding box of the modified features. Since other features may be present in the same area, topological errors concerning these features are reported as well as errors introduced in the current edit session. Topology check option Illustration The Gap check will check for gaps between neighbouring polygons. The Overlap check will check for overlaps between neighbouring polygons. The Missing vertex check will check for shared boundaries of neighbouring polygons where one border misses a vertex which is present on the other one. Gap check exceptions Sometimes it is desirable to keep gaps inside an area in a polygon layer that otherwise is fully covered by polygons. For example, a land use layer may have acceptable holes for lakes. It is possible to define areas that are ignored in the gap check. Since gaps inside these areas are allowed, we will refer to them as Allowed Gaps areas. In the options for the gap checks under Allowed Gaps, an Allowed Gaps layer can be configured. Whenever the gap check is executed, gaps which are covered by one or more polygons in the Allowed Gaps Layer are not reported as topology errors. It is also possible to configure an additional Buffer. This buffer is applied to each polygon on the Allowed Gaps Layer. This makes it possible to make the tests less susceptible to small changes in the outlines at the borders of gaps. When Allowed Gaps are enabled, an additional button (Add Allowed Gap) for detected gap errors is available in the geometry validation dock, where gaps are reported during digitizing. If the Add Allowed Gap button is pushed, a new polygon with the geometry of the detected gap is inserted into the Allowed Gaps Layer. This makes it possible to quickly flag gaps as allowed. 14.1. The Vector Properties Dialog 329 QGIS Desktop 3.16 User Guide 14.2 Výrazy Based on layer data and prebuilt or user defined functions, Expressions offer a powerful way to manipulate attribute value, geometry and variables in order to dynamically change the geometry style, the content or position of the label, the value for diagram, the height of a layout item, select some features, create virtual field, … Poznámka: A list of the default functions and variables for writing expressions can be found at List of functions, with detailed information and examples. 14.2.1 The Expression string builder Main dialog to build expressions, the Expression string builder is available from many parts in QGIS and, can particularly be accessed when: • clicking the button; • selecting features with the Select By Expression… tool; • editing attributes with e.g. the Field calculator tool; • manipulating symbology, label or layout item parameters with the Data defined override tool (see Data defined override setup); • building a geometry generator symbol layer; • doing some geoprocessing. The Expression builder dialog offers access to the: • Expression tab which, thanks to a list of predefined functions, helps to write and check the expression to use; • Function Editor tab which helps to extend the list of functions by creating custom ones. 330 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide The Interface The Expression tab provides the main interface to write expressions using functions, layer fields and values. It contains the following widgets: Obr. 14.65: The Expression tab • An expression editor area for typing or pasting expressions. Autocompletion is available to speed expression writing: – Corresponding variables, function names and field names to the input text are shown below: use the Up and Down arrows to browse the items and press Tab to insert in the expression or simply click on the wished item. – Function parameters are shown while filling them. QGIS also checks the expression rightness and highlights all the errors using: – Underline: for unknown functions, wrong or invalid arguments; – Marker: for every other error (eg, missing parenthesis, unexpected character) at a single location. Tip: Document your expression with comments When using complex expression, it is good practice to add text either as a multiline comment or inline comments to help you remember. /* Labels each region with its highest (in altitude) airport(s) and altitude, eg 'AMBLER : 264m' for the 'Northwest Artic' region */ with_variable( 'airport_alti', -- stores the highest altitude of the region aggregate( 'airports', 'max', "ELEV", -- the field containing the altitude -- and limit the airports to the region they are within filter := within( $geometry, geometry( @parent ) ) ), (continues on next page) 14.2. Výrazy 331 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) aggregate( -- finds airports at the same altitude in the region 'airports', 'concatenate', "NAME", filter := within( $geometry, geometry( @parent ) ) and "ELEV" = @airport_alti ) || ' : ' || @airport_alti || 'm' -- using || allows regions without airports to be skipped ) • Above the expression editor, a set of tools helps you: – Clear the expression editor – create and manage user expressions • Under the expression editor, you find: – a set of basic operators to help you build the expression – an indication of the expected format of output when you are data-defining feature properties – a live Output preview of the expression, evaluated on the first feature of the Layer by default. You can browse and evaluate other features of the layer using the Feature combobox (the values are taken from the display name property of the layer). In case of error, it indicates it and you can access the details with the provided hyperlink. • A function selector displays the list of functions, variables, fields… organized in groups. A search box is available to filter the list and quickly find a particular function or field. Double-clicking an item adds it to the expression editor. • A help panel displays help for each selected item in the function selector. Tip: Press Ctrl+Click when hovering a function name in an expression to automatically display its help in the dialog. A field’s values widget shown when a field is selected in the function selector helps to fetch features attributes: – Look for a particular field value – Display the list of All Unique or 10 Samples values. Also available from right-click. When the field is mapped with another layer or a set of values, i.e. if the field widget is of RelationReference, ValueRelation or ValueMap type, it’s possible to list all the values of the mapped field (from the referenced layer, table or list). Moreover, you can filter this list to Only show values in use in the current field. Double-clicking a field value in the widget adds it to the expression editor. Tip: The right panel, showing functions help or field values, can be collapsed (invisible) in the dialog. Press the Show Values or Show Help button to get it back. 332 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Writing an expression QGIS expressions are used to select features or set values. Writing an expression in QGIS follows some rules: 1. The dialog defines the context: if you are used to SQL, you probably know queries of the type select features from layer where condition or update layer set field = new_value where condition. A QGIS expression also needs all these information but the tool you use to open the expression builder dialog provides parts of them. For example, giving a layer (building) with a field (height): • pressing the Select by expression tool means that you want to „select features from buildings“. The condition is the only information you need to provide in the expression text widget, e.g. type "height" > 20 to select buildings that are higher than 20. • with this selection made, pressing the Field calculator button and choosing „height“ as Update existing field, you already provide the command „update buildings set height = ??? where height > 20“. The only remaining bits you have to provide in this case is the new value, e.g. just enter 50 to set the height of the previously selected buildings. 2. Pay attention to quotes: single quotes return a literal, so a text placed between single quotes ('145') is interpreted as a string. Double quotes will give you the value of that text so use them for fields ("myfield"). Fields can also be used without quotes (myfield). No quotes for numbers (3.16). Poznámka: Functions normally take as argument a string for field name. Do: attribute( @atlas_feature, 'height' ) -- returns the value stored in the →"height" attribute of the current atlas feature And not: attribute( @atlas_feature, "height" ) -- fetches the value of the attribute␣ →named "height" (e.g. 100), and use that value as a field -- from which to return the atlas␣ →feature value. Probably wrong as a field named "100" may not exist. Tip: Use named parameters to ease expression reading Some functions require many parameters to be set. The expression engine supports the use of named parameters. This means that instead of writing the cryptic expression clamp( 1, 2, 9), you can use clamp( min:=1, value:=2, max:=9). This also allows arguments to be switched, e.g. clamp( value:=2, max:=9, min:=1). Using named parameters helps clarify what the arguments for an expression function refer to, which is helpful when you are trying to interpret an expression later! Some use cases of expressions • From the Field Calculator, calculate a „pop_density“ field using the existing „total_pop“ and „area_km2“ fields: "total_pop" / "area_km2" • Label or categorize features based on their area: CASE WHEN $area > 10 000 THEN 'Larger' ELSE 'Smaller' END • Update the field „density_level“ with categories according to the „pop_density“ values: CASE WHEN "pop_density" < 50 THEN 'Low population density' WHEN "pop_density" >= 50 and "pop_density" < 150 THEN 'Medium population␣ →density' (continues on next page) 14.2. Výrazy 333 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) WHEN "pop_density" >= 150 THEN 'High population density' END • Apply a categorized style to all the features according to whether their average house price is smaller or higher than 10000€ per square metre: "price_m2" > 10000 • Using the „Select By Expression…“ tool, select all the features representing areas of “High population density” and whose average house price is higher than 10000€ per square metre: "density_level" = 'High population density' and "price_m2" > 10000 The previous expression could also be used to define which features to label or show on the map. • Create a different symbol (type) for the layer, using the geometry generator: point_on_surface( $geometry ) • Given a point feature, generate a closed line (using make_line) around its geometry: make_line( -- using an array of points placed around the original array_foreach( -- list of angles for placing the projected points (every 90°) array:=generate_series( 0, 360, 90 ), -- translate the point 20 units in the given direction (angle) expression:=project( $geometry, distance:=20, azimuth:=radians( @element )␣ →) ) ) • In a print layout label, display the name of the „airports“ features that are within the layout „Map 1“ item: with_variable( 'extent', map_get( item_variables( 'Map 1' ), 'map_extent' ), aggregate( 'airports', 'concatenate', "NAME", intersects( $geometry, @extent ), ' ,' ) ) Saving Expressions Using the Add current expression to user expressions button above the expression editor frame, you can save important expressions you want to have quick access to. These are available from the User expressions group in the middle panel. They are saved under the user profile (/QGIS/QGIS3.ini file) and available in all expression dialogs inside all projects of the current user profile. A set of tools available above the expression editor frame helps you manage the user expressions: • Add the current expression to user expressions : store the expression in the user profile. A label and a help text can be added for easy identification. • Edit selected expression from user expressions , as well as their help and label • Remove selected expression from user expressions • Import user expressions from a .json file into the active user profile folder 334 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • Export user expressions as a .json file; all the user expressions in the user profile QGIS3.ini file are shared 14.2.2 Function Editor With the Function Editor tab, you are able to write your own functions in Python language. This provides a handy and comfortable way to address particular needs that would not be covered by the predefined functions. Obr. 14.66: The Function Editor tab To create a new function: 1. Press the New File button. 2. Enter a name to use in the form that pops up and press OK. A new item of the name you provide is added in the left panel of the Function Editor tab; this is a Python .py file based on QGIS template file and stored in the /python/expressions folder under the active user profile directory. 3. The right panel displays the content of the file: a python script template. Update the code and its help according to your needs. 4. Press the Save and Load Functions button. The function you wrote is added to the functions tree in the Expression tab, by default under the Custom group. 5. Enjoy your new function. 6. If the function requires improvements, enable the Function Editor tab, do the changes and press again the Save and Load Functions button to make them available in the file, hence in any expression tab. Custom Python functions are stored under the user profile directory, meaning that at each QGIS startup, it will auto load all the functions defined with the current user profile. Be aware that new functions are only saved in the /python/expressions folder and not in the project file. If you share a project that uses one of your custom functions you will need to also share the .py file in the /python/expressions folder. To delete a custom function: 1. Enable the Function Editor tab 14.2. Výrazy 335 QGIS Desktop 3.16 User Guide 2. Select the function in the list 3. Press the Remove selected function . The function is removed from the list and the corresponding .py file deleted from the user profile folder. Example Here’s a short example on how to create your own my_sum function that will operate with two values. from qgis.core import * from qgis.gui import * @qgsfunction(args='auto', group='Custom') def my_sum(value1, value2, feature, parent): """ Calculates the sum of the two parameters value1 and value2.

Example usage:

  • my_sum(5, 8) -> 13
  • my_sum("field1", "field2") -> 42
""" return value1 + value2 When using the args='auto' function argument the number of function arguments required will be calculated by the number of arguments the function has been defined with in Python (minus 2 - feature, and parent). The group='Custom' argument indicates the group in which the function should be listed in the Expression dialog. It is also possible to add keywords arguments like: • usesgeometry=True if the expression requires access to the features geometry. By default False. • handlesnull=True if the expression has custom handling for NULL values. If False (default), the result will always be NULL as soon as any parameter is NULL. • referenced_columns=[list]: An array of attribute names that are required to the function. Defaults to [QgsFeatureRequest.ALL_ATTRIBUTES]. The previous example function can then be used in expressions: Obr. 14.67: Custom Function added to the Expression tab Further information about creating Python code can be found in the PyQGIS-Developer-Cookbook. 336 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide 14.3 List of functions The functions, operators and variables available in QGIS are listed below, grouped by categories. 14.3.1 Aggregates Functions This group contains functions which aggregate values over layers and fields. • aggregate • array_agg • collect • concatenate • concatenate_unique • count • count_distinct • count_missing • iqr • majority • max_length • maximum • mean • median • min_length • minimum • minority • q1 • q3 • range • relation_aggregate • stdev • sum 14.3. List of functions 337 QGIS Desktop 3.16 User Guide aggregate Returns an aggregate value calculated using features from another layer. 338 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax aggregate(layer, aggregate, expression, [filter], [concatenator=‘‘], [order_by]) [] marks optional arguments Arguments • layer - a string, representing either a layer name or layer ID • aggregate - a string corresponding to the aggregate to calculate. Valid options are: – count – count_distinct – count_missing – min – max – sum – mean – median – stdev – stdevsample – range – minority – majority – q1: first quartile – q3: third quartile – iqr: inter quartile range – min_length: minimum string length – max_length: maximum string length – concatenate: join strings with a concatenator – concatenate_unique: join unique strings with a concatenator – collect: create an aggregated multipart geometry – array_agg: create an array of aggregated values • expression - sub expression or field name to aggregate • filter - optional filter expression to limit the features used for calculating the aggregate. Fields and geometry are from the features on the joined layer. The source feature can be accessed with the variable @parent. • concatenator - optional string to use to join values for ‚concatenate‘ aggregate • order_by - optional filter expression to order the features used for calculating the aggregate. Fields and geometry are from the features on the joined layer. By default, the features will be returned in an unspecified order. Examples • aggregate(layer:='rail_stations',aggregate:='sum', expression:="passengers") → sum of all values from the passengers field in the rail_stations layer • aggregate('rail_stations','sum', "passengers"/7) → calculates a daily average of „passengers“ by dividing the „passengers“ field by 7 before summing the values • aggregate(layer:='rail_stations',aggregate:='sum', expression:="passengers",filter:="class">3) → sums up all values from the „passengers“ field from features where the „class“ attribute is greater than 3 only • aggregate(layer:='rail_stations',aggregate:='concatenate', expression:="name", concatenator:=',') → comma separated list of the name field for all features in the rail_stations layer • aggregate(layer:='countries', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry(@parent) ) ) → The country code of an intersecting country on the layer ‚countries‘ • aggregate(layer:='rail_stations',aggregate:='sum', expression:="passengers",filter:=contains( @atlas_geometry, $geometry ) ) → sum of all values from the passengers field in the rail_stations within the current atlas feature • aggregate(layer:='rail_stations', aggregate:='collect', expression:=centroid($geometry), filter:="region_name" = attribute(@parent,'name') ) → aggregates centroid geometries of the rail_stations of the same region as current feature 14.3. List of functions 339 QGIS Desktop 3.16 User Guide array_agg Returns an array of aggregated values from a field or expression. Syntax array_agg(expression, [group_by], [filter], [order_by]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate • order_by - optional expression to use to order features used to calculate aggregate. By default, the features will be returned in an unspecified order. Examples • array_agg("name",group_by:="state") → list of name values, grouped by state field collect Returns the multipart geometry of aggregated geometries from an expression Syntax collect(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - geometry expression to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • collect( $geometry ) → multipart geometry of aggregated geometries • collect( centroid($geometry), group_by:="region", filter:= "use" = 'civilian' ) → aggregated centroids of the civilian features based on their region value concatenate Returns all aggregated strings from a field or expression joined by a delimiter. Syntax concatenate(expression, [group_by], [filter], [concatenator], [order_by]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate • concatenator - optional string to use to join values. Empty by default. • order_by - optional expression to use to order features used to calculate aggregate. By default, the features will be returned in an unspecified order. Examples • concatenate("town_name",group_by:="state", concatenator:=',') → comma separated list of town_names, grouped by state field 340 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide concatenate_unique Returns all unique strings from a field or expression joined by a delimiter. Syntax concatenate_unique(expression, [group_by], [filter], [concatenator], [order_by]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate • concatenator - optional string to use to join values. Empty by default. • order_by - optional expression to use to order features used to calculate aggregate. By default, the features will be returned in an unspecified order. Examples • concatenate_unique("town_name",group_by:="state", concatenator:=',') → comma separated list of unique town_names, grouped by state field count Returns the count of matching features. Syntax count(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • count("stations",group_by:="state") → count of stations, grouped by state field count_distinct Returns the count of distinct values. Syntax count_distinct(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • count_distinct("stations",group_by:="state") → count of distinct stations values, grouped by state field 14.3. List of functions 341 QGIS Desktop 3.16 User Guide count_missing Returns the count of missing (NULL) values. Syntax count_missing(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • count_missing("stations",group_by:="state") → count of missing (NULL) station values, grouped by state field iqr Returns the calculated inter quartile range from a field or expression. Syntax iqr(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • iqr("population",group_by:="state") → inter quartile range of population value, grouped by state field majority Returns the aggregate majority of values (most commonly occurring value) from a field or expression. Syntax majority(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • majority("class",group_by:="state") → most commonly occurring class value, grouped by state field 342 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide max_length Returns the maximum length of strings from a field or expression. Syntax max_length(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • max_length("town_name",group_by:="state") → maximum length of town_name, grouped by state field maximum Returns the aggregate maximum value from a field or expression. Syntax maximum(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • maximum("population",group_by:="state") → maximum population value, grouped by state field mean Returns the aggregate mean value from a field or expression. Syntax mean(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • mean("population",group_by:="state") → mean population value, grouped by state field 14.3. List of functions 343 QGIS Desktop 3.16 User Guide median Returns the aggregate median value from a field or expression. Syntax median(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • median("population",group_by:="state") → median population value, grouped by state field min_length Returns the minimum length of strings from a field or expression. Syntax min_length(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • min_length("town_name",group_by:="state") → minimum length of town_name, grouped by state field minimum Returns the aggregate minimum value from a field or expression. Syntax minimum(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • minimum("population",group_by:="state") → minimum population value, grouped by state field 344 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide minority Returns the aggregate minority of values (least occurring value) from a field or expression. Syntax minority(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • minority("class",group_by:="state") → least occurring class value, grouped by state field q1 Returns the calculated first quartile from a field or expression. Syntax q1(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • q1("population",group_by:="state") → first quartile of population value, grouped by state field q3 Returns the calculated third quartile from a field or expression. Syntax q3(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • q3("population",group_by:="state") → third quartile of population value, grouped by state field 14.3. List of functions 345 QGIS Desktop 3.16 User Guide range Returns the aggregate range of values (maximum - minimum) from a field or expression. Syntax range(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • range("population",group_by:="state") → range of population values, grouped by state field relation_aggregate Returns an aggregate value calculated using all matching child features from a layer relation. 346 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax relation_aggregate(relation, aggregate, expression, [concatenator=‘‘], [order_by]) [] marks optional arguments Arguments • relation - a string, representing a relation ID • aggregate - a string corresponding to the aggregate to calculate. Valid options are: – count – count_distinct – count_missing – min – max – sum – mean – median – stdev – stdevsample – range – minority – majority – q1: first quartile – q3: third quartile – iqr: inter quartile range – min_length: minimum string length – max_length: maximum string length – concatenate: join strings with a concatenator – concatenate_unique: join unique strings with a concatenator – collect: create an aggregated multipart geometry – array_agg: create an array of aggregated values • expression - sub expression or field name to aggregate • concatenator - optional string to use to join values for ‚concatenate‘ aggregate • order_by - optional expression to order the features used for calculating the aggregate. Fields and geometry are from the features on the joined layer. By default, the features will be returned in an unspecified order. Examples • relation_aggregate(relation:='my_relation', aggregate:='mean',expression:="passengers") → mean value of all matching child features using the ‚my_relation‘ relation • relation_aggregate('my_relation','sum', "passengers"/7) → sum of the passengers field divided by 7 for all matching child features using the ‚my_relation‘ relation • relation_aggregate('my_relation','concatenate', "towns", concatenator:=',') → comma separated list of the towns field for all matching child features using the ‚my_relation‘ relation • relation_aggregate('my_relation','array_agg', "id") → array of the id field from all matching child features using the ‚my_relation‘ relation Further reading: Creating one or many to many relations 14.3. List of functions 347 QGIS Desktop 3.16 User Guide stdev Returns the aggregate standard deviation value from a field or expression. Syntax stdev(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • stdev("population",group_by:="state") → standard deviation of population value, grouped by state field sum Returns the aggregate summed value from a field or expression. Syntax sum(expression, [group_by], [filter]) [] marks optional arguments Arguments • expression - sub expression of field to aggregate • group_by - optional expression to use to group aggregate calculations • filter - optional expression to use to filter features used to calculate aggregate Examples • sum("population",group_by:="state") → summed population value, grouped by state field 14.3.2 Array Functions This group contains functions to create and manipulate arrays (also known as list data structures). The order of values within the array matters, unlike the ‚map‘ data structure, where the order of key-value pairs is irrelevant and values are identified by their keys. • array • array_all • array_append • array_cat • array_contains • array_distinct • array_filter • array_find • array_first • array_foreach • array_get • array_insert 348 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • array_intersect • array_last • array_length • array_prepend • array_remove_all • array_remove_at • array_reverse • array_slice • array_sort • array_to_string • generate_series • regexp_matches • string_to_array array Returns an array containing all the values passed as parameter. Syntax array(value1, value2, …) Arguments • value - a value Examples • array(2,10) → [ 2, 10 ] array_all Returns true if an array contains all the values of a given array. Syntax array_all(array_a, array_b) Arguments • array_a - an array • array_b - the array of values to search Examples • array_all(array(1,2,3),array(2,3)) → true • array_all(array(1,2,3),array(1,2,4)) → false 14.3. List of functions 349 QGIS Desktop 3.16 User Guide array_append Returns an array with the given value added at the end. Syntax array_append(array, value) Arguments • array - an array • value - the value to add Examples • array_append(array(1,2,3),4) → [ 1, 2, 3, 4 ] array_cat Returns an array containing all the given arrays concatenated. Syntax array_cat(array1, array2, …) Arguments • array - an array Examples • array_cat(array(1,2),array(2,3)) → [ 1, 2, 2, 3 ] array_contains Returns true if an array contains the given value. Syntax array_contains(array, value) Arguments • array - an array • value - the value to search Examples • array_contains(array(1,2,3),2) → true array_distinct Returns an array containing distinct values of the given array. Syntax array_distinct(array) Arguments • array - an array Examples • array_distinct(array(1,2,3,2,1)) → [ 1, 2, 3 ] 350 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide array_filter Returns an array with only the items for which the expression evaluates to true. Syntax array_filter(array, expression) Arguments • array - an array • expression - an expression to evaluate on each item. The variable @element will be replaced by the current value. Examples • array_filter(array(1,2,3),@element < 3) → [ 1, 2 ] array_find Returns the index (0 for the first one) of a value within an array. Returns -1 if the value is not found. Syntax array_find(array, value) Arguments • array - an array • value - the value to search Examples • array_find(array(1,2,3),2) → 1 array_first Returns the first value of an array. Syntax array_first(array) Arguments • array - an array Examples • array_first(array('a','b','c')) → ‚a‘ array_foreach Returns an array with the given expression evaluated on each item. Syntax array_foreach(array, expression) Arguments • array - an array • expression - an expression to evaluate on each item. The variable @element will be replaced by the current value. Examples • array_foreach(array('a','b','c'),upper(@element)) → [ ‚A‘, ‚B‘, ‚C‘ ] • array_foreach(array(1,2,3),@element + 10) → [ 11, 12, 13 ] 14.3. List of functions 351 QGIS Desktop 3.16 User Guide array_get Returns the Nth value (0 for the first one) of an array. Syntax array_get(array, index) Arguments • array - an array • index - the index to get (0 based) Examples • array_get(array('a','b','c'),1) → ‚b‘ array_insert Returns an array with the given value added at the given position. Syntax array_insert(array, pos, value) Arguments • array - an array • pos - the position where to add (0 based) • value - the value to add Examples • array_insert(array(1,2,3),1,100) → [ 1, 100, 2, 3 ] array_intersect Returns true if at least one element of array1 exists in array2. Syntax array_intersect(array1, array2) Arguments • array1 - an array • array2 - another array Examples • array_intersect(array(1,2,3,4),array(4,0,2,5)) → true array_last Returns the last value of an array. Syntax array_last(array) Arguments • array - an array Examples • array_last(array('a','b','c')) → ‚c‘ 352 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide array_length Returns the number of elements of an array. Syntax array_length(array) Arguments • array - an array Examples • array_length(array(1,2,3)) → 3 array_prepend Returns an array with the given value added at the beginning. Syntax array_prepend(array, value) Arguments • array - an array • value - the value to add Examples • array_prepend(array(1,2,3),0) → [ 0, 1, 2, 3 ] array_remove_all Returns an array with all the entries of the given value removed. Syntax array_remove_all(array, value) Arguments • array - an array • value - the values to remove Examples • array_remove_all(array('a','b','c','b'),'b') → [ ‚a‘, ‚c‘ ] array_remove_at Returns an array with the given index removed. Syntax array_remove_at(array, pos) Arguments • array - an array • pos - the position to remove (0 based) Examples • array_remove_at(array(1,2,3),1) → [ 1, 3 ] 14.3. List of functions 353 QGIS Desktop 3.16 User Guide array_reverse Returns the given array with array values in reversed order. Syntax array_reverse(array) Arguments • array - an array Examples • array_reverse(array(2,4,0,10)) → [ 10, 0, 4, 2 ] array_slice Returns a portion of the array. The slice is defined by the start_pos and end_pos arguments. Syntax array_slice(array, start_pos, end_pos) Arguments • array - an array • start_pos - the index of the start position of the slice (0 based). The start_pos index is included in the slice. If you use a negative start_pos, the index is counted from the end of the list (-1 based). • end_pos - the index of the end position of the slice (0 based). The end_pos index is included in the slice. If you use a negative end_pos, the index is counted from the end of the list (-1 based). Examples • array_slice(array(1,2,3,4,5),0,3) → [ 1, 2, 3, 4 ] • array_slice(array(1,2,3,4,5),0,-1) → [ 1, 2, 3, 4, 5 ] • array_slice(array(1,2,3,4,5),-5,-1) → [ 1, 2, 3, 4, 5 ] • array_slice(array(1,2,3,4,5),0,0) → [ 1 ] • array_slice(array(1,2,3,4,5),-2,-1) → [ 4, 5 ] • array_slice(array(1,2,3,4,5),-1,-1) → [ 5 ] • array_slice(array('Dufour','Valmiera','Chugiak', 'Brighton'),1,2) → [ ‚Valmiera‘, ‚Chugiak‘ ] • array_slice(array('Dufour','Valmiera','Chugiak', 'Brighton'),-2,-1) → [ ‚Chugiak‘, ‚Brighton‘ ] array_sort Returns the provided array with its elements sorted. Syntax array_sort(array, [ascending=true]) [] marks optional arguments Arguments • array - an array • ascending - set this parameter to false to sort the array in descending order Examples • array_sort(array(3,2,1)) → [ 1, 2, 3 ] 354 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide array_to_string Concatenates array elements into a string separated by a delimiter and using optional string for empty values. Syntax array_to_string(array, [delimiter=‘,‘], [empty_value=‘‘]) [] marks optional arguments Arguments • array - the input array • delimiter - the string delimiter used to separate concatenated array elements • empty_value - the optional string to use as replacement for empty (zero length) matches Examples • array_to_string(array('1','2','3')) → ‚1,2,3‘ • array_to_string(array(1,2,3),'-') → ‚1-2-3‘ • array_to_string(array('1','','3'),',','0') → ‚1,0,3‘ generate_series Creates an array containing a sequence of numbers. Syntax generate_series(start, stop, [step=1]) [] marks optional arguments Arguments • start - first value of the sequence • stop - value that ends the sequence once reached • step - value used as the increment between values Examples • generate_series(1,5) → [ 1, 2, 3, 4, 5 ] • generate_series(5,1,-1) → [ 5, 4, 3, 2, 1 ] regexp_matches Returns an array of all strings captured by capturing groups, in the order the groups themselves appear in the supplied regular expression against a string. Syntax regexp_matches(string, regex, [empty_value=‘‘]) [] marks optional arguments Arguments • string - the string to capture groups from against the regular expression • regex - the regular expression used to capture groups • empty_value - the optional string to use as replacement for empty (zero length) matches Examples • regexp_matches('QGIS=>rocks','(.*)=>(.*)') → [ ‚QGIS‘, ‚rocks‘ ] • regexp_matches('key=>','(.*)=>(.*)','empty value') → [ ‚key‘, ‚empty value‘ ] 14.3. List of functions 355 QGIS Desktop 3.16 User Guide string_to_array Splits string into an array using supplied delimiter and optional string for empty values. Syntax string_to_array(string, [delimiter=‘,‘], [empty_value=‘‘]) [] marks optional arguments Arguments • string - the input string • delimiter - the string delimiter used to split the input string • empty_value - the optional string to use as replacement for empty (zero length) matches Examples • string_to_array('1,2,3',',') → [ ‚1‘, ‚2‘, ‚3‘ ] • string_to_array('1,,3',',','0') → [ ‚1‘, ‚0‘, ‚3‘ ] 14.3.3 Funkce barev Tato skupina obsahuje funkce pro manipulaci s barvami. • color_cmyk • color_cmyka • color_grayscale_average • color_hsl • color_hsla • color_hsv • color_hsva • color_mix_rgb • color_part • color_rgb • color_rgba • create_ramp • darker • lighter • project_color • ramp_color • set_color_part 356 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide color_cmyk Returns a string representation of a color based on its cyan, magenta, yellow and black components Syntax color_cmyk(cyan, magenta, yellow, black) Arguments • cyan - cyan component of the color, as a percentage integer value from 0 to 100 • magenta - magenta component of the color, as a percentage integer value from 0 to 100 • yellow - yellow component of the color, as a percentage integer value from 0 to 100 • black - black component of the color, as a percentage integer value from 0 to 100 Examples • color_cmyk(100,50,0,10) → ‚0,115,230‘ color_cmyka Returns a string representation of a color based on its cyan, magenta, yellow, black and alpha (transparency) components Syntax color_cmyka(cyan, magenta, yellow, black, alpha) Arguments • cyan - cyan component of the color, as a percentage integer value from 0 to 100 • magenta - magenta component of the color, as a percentage integer value from 0 to 100 • yellow - yellow component of the color, as a percentage integer value from 0 to 100 • black - black component of the color, as a percentage integer value from 0 to 100 • alpha - alpha component as an integer value from 0 (completely transparent) to 255 (opaque). Examples • color_cmyk(100,50,0,10,200) → ‚0,115,230,200‘ color_grayscale_average Applies a grayscale filter and returns a string representation from a provided color. Syntax color_grayscale_average(color) Arguments • color - a color string Examples • color_grayscale_average('255,100,50') → ‚135,135,135,255‘ color_hsl Returns a string representation of a color based on its hue, saturation, and lightness attributes. 14.3. List of functions 357 QGIS Desktop 3.16 User Guide Syntax color_hsl(hue, saturation, lightness) Arguments • hue - hue of the color, as an integer value from 0 to 360 • saturation - saturation percentage of the color as an integer value from 0 to 100 • lightness - lightness percentage of the color as an integer value from 0 to 100 Examples • color_hsl(100,50,70) → ‚166,217,140‘ color_hsla Returns a string representation of a color based on its hue, saturation, lightness and alpha (transparency) attributes Syntax color_hsla(hue, saturation, lightness, alpha) Arguments • hue - hue of the color, as an integer value from 0 to 360 • saturation - saturation percentage of the color as an integer value from 0 to 100 • lightness - lightness percentage of the color as an integer value from 0 to 100 • alpha - alpha component as an integer value from 0 (completely transparent) to 255 (opaque). Examples • color_hsla(100,50,70,200) → ‚166,217,140,200‘ color_hsv Returns a string representation of a color based on its hue, saturation, and value attributes. Syntax color_hsv(hue, saturation, value) Arguments • hue - hue of the color, as an integer value from 0 to 360 • saturation - saturation percentage of the color as an integer value from 0 to 100 • value - value percentage of the color as an integer from 0 to 100 Examples • color_hsv(40,100,100) → ‚255,170,0‘ color_hsva Returns a string representation of a color based on its hue, saturation, value and alpha (transparency) attributes. Syntax color_hsva(hue, saturation, value, alpha) Arguments • hue - hue of the color, as an integer value from 0 to 360 • saturation - saturation percentage of the color as an integer value from 0 to 100 • value - value percentage of the color as an integer from 0 to 100 • alpha - alpha component as an integer value from 0 (completely transparent) to 255 (opaque) Examples • color_hsva(40,100,100,200) → ‚255,170,0,200‘ 358 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide color_mix_rgb Returns a string representing a color mixing the red, green, blue, and alpha values of two provided colors based on a given ratio. Syntax color_mix_rgb(color1, color2, ratio) Arguments • color1 - a color string • color2 - a color string • ratio - a ratio Examples • color_mix_rgb('0,0,0','255,255,255',0.5) → ‚127,127,127,255‘ color_part Returns a specific component from a color string, e.g., the red component or alpha component. Syntax color_part(color, component) Arguments • color - a color string • component - a string corresponding to the color component to return. Valid options are: – red: RGB red component (0-255) – green: RGB green component (0-255) – blue: RGB blue component (0-255) – alpha: alpha (transparency) value (0-255) – hue: HSV hue (0-360) – saturation: HSV saturation (0-100) – value: HSV value (0-100) – hsl_hue: HSL hue (0-360) – hsl_saturation: HSL saturation (0-100) – lightness: HSL lightness (0-100) – cyan: CMYK cyan component (0-100) – magenta: CMYK magenta component (0-100) – yellow: CMYK yellow component (0-100) – black: CMYK black component (0-100) Examples • color_part('200,10,30','green') → 10 color_rgb Returns a string representation of a color based on its red, green, and blue components. Syntax color_rgb(red, green, blue) Arguments • red - red component as an integer value from 0 to 255 • green - green component as an integer value from 0 to 255 • blue - blue component as an integer value from 0 to 255 Examples • color_rgb(255,127,0) → ‚255,127,0‘ 14.3. List of functions 359 QGIS Desktop 3.16 User Guide color_rgba Returns a string representation of a color based on its red, green, blue, and alpha (transparency) components. Syntax color_rgba(red, green, blue, alpha) Arguments • red - red component as an integer value from 0 to 255 • green - green component as an integer value from 0 to 255 • blue - blue component as an integer value from 0 to 255 • alpha - alpha component as an integer value from 0 (completely transparent) to 255 (opaque). Examples • color_rgba(255,127,0,200) → ‚255,127,0,200‘ create_ramp Returns a gradient ramp from a map of color strings and steps. Syntax create_ramp(map, [discrete=false]) [] marks optional arguments Arguments • map - a map of color strings and steps • discrete - set this parameter to true to create a discrete color ramp Examples • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → ‚255,0,0,255‘ darker Returns a darker (or lighter) color string Syntax darker(color, factor) Arguments • color - a color string • factor - an integer corresponding to the darkening factor: – if the factor is greater than 100, this function returns a darker color (e.g., setting factor to 200 returns a color that is half the brightness); – if the factor is less than 100, the return color is lighter, but using the lighter() function for this purpose is recommended; – if the factor is 0 or negative, the return value is unspecified. Examples • darker('200,10,30', 200) → ‚100,5,15,255‘ Further reading: lighter 360 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide lighter Returns a lighter (or darker) color string Syntax lighter(color, factor) Arguments • color - a color string • factor - an integer corresponding to the lightening factor: – if the factor is greater than 100, this function returns a lighter color (e.g., setting factor to 150 returns a color that is 50% brighter); – if the factor is less than 100, the return color is darker, but using the darker() function for this purpose is recommended; – if the factor is 0 or negative, the return value is unspecified. Examples • lighter('200,10,30', 200) → ‚255,158,168,255‘ Further reading: darker project_color Returns a color from the project’s color scheme. Syntax project_color(name) Arguments • name - a color name Examples • project_color('Logo color') → ‚20,140,50‘ Further reading: setting project colors ramp_color Returns a string representing a color from a color ramp. Saved ramp variant Returns a string representing a color from a saved ramp Syntax ramp_color(ramp_name, value) Arguments • ramp_name - the name of the color ramp as a string, for example ‚Spectral‘ • value - the position on the ramp to select the color from as a real number between 0 and 1 Examples • ramp_color('Spectral',0.3) → ‚253,190,115,255‘ Poznámka: The color ramps available vary between QGIS installations. This function may not give the expected results if you move your QGIS project between installations. Expression-created ramp variant 14.3. List of functions 361 QGIS Desktop 3.16 User Guide Returns a string representing a color from an expression-created ramp Syntax ramp_color(ramp, value) Arguments • ramp - the color ramp • value - the position on the ramp to select the color from as a real number between 0 and 1 Examples • ramp_color(create_ramp(map(0,'0,0,0',1,'255,0,0')),1) → ‚255,0,0,255‘ Further reading: Setting a Color Ramp, The color ramp drop-down shortcut set_color_part Sets a specific color component for a color string, e.g., the red component or alpha component. Syntax set_color_part(color, component, value) Arguments • color - a color string • component - a string corresponding to the color component to set. Valid options are: – red: RGB red component (0-255) – green: RGB green component (0-255) – blue: RGB blue component (0-255) – alpha: alpha (transparency) value (0-255) – hue: HSV hue (0-360) – saturation: HSV saturation (0-100) – value: HSV value (0-100) – hsl_hue: HSL hue (0-360) – hsl_saturation: HSL saturation (0-100) – lightness: HSL lightness (0-100) – cyan: CMYK cyan component (0-100) – magenta: CMYK magenta component (0-100) – yellow: CMYK yellow component (0-100) – black: CMYK black component (0-100) • value - new value for color component, respecting the ranges listed above Examples • set_color_part('200,10,30','green',50) → ‚200,50,30,255‘ 14.3.4 Conditional Functions Tato skupina obsahuje funkce pro zpracování podmíněné kontroly ve výrazech. • CASE • coalesce • if • nullif • regexp_match • try 362 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide CASE CASE is used to evaluate a series of conditions and return a result for the first condition met. The conditions are evaluated sequentially, and if a condition is true, the evaluation stops, and the corresponding result is returned. If none of the conditions are true, the value in the ELSE clause is returned. Furthermore, if no ELSE clause is set and none of the conditions are met, NULL is returned. CASE WHEN condition THEN result [ …n ] [ ELSE result ] END [ ] marks optional components Arguments • WHEN condition - A condition expression to evaluate • THEN result - If condition evaluates to True then result is evaluated and returned. • ELSE result - If none of the above conditions evaluated to True then result is evaluated and returned. Examples • CASE WHEN "name" IS NULL THEN 'None' END → Returns the string ‚None‘ if the „name“ field is NULL • CASE WHEN $area > 10000 THEN 'Big property' WHEN $area > 5000 THEN 'Medium property' ELSE 'Small property' END → Returns the string ‚Big property‘ if the area is bigger than 10000, ‚Medium property‘ if the area is between 5000 and 10000, and ‚Small property‘ for others coalesce Returns the first non-NULL value from the expression list. This function can take any number of arguments. Syntax coalesce(expression1, expression2, …) Arguments • expression - any valid expression or value, regardless of type. Examples • coalesce(NULL, 2) → 2 • coalesce(NULL, 2, 3) → 2 • coalesce(7, NULL, 3*2) → 7 • coalesce("fieldA", "fallbackField", 'ERROR') → value of fieldA if it is non-NULL else the value of „fallbackField“ or the string ‚ERROR‘ if both are NULL 14.3. List of functions 363 QGIS Desktop 3.16 User Guide if Tests a condition and returns a different result depending on the conditional check. Syntax if(condition, result_when_true, result_when_false) Arguments • condition - the condition which should be checked • result_when_true - the result which will be returned when the condition is true or another value that does not convert to false. • result_when_false - the result which will be returned when the condition is false or another value that converts to false like 0 or ‚‘. NULL will also be converted to false. Examples • if( 1+1=2, 'Yes', 'No' ) → ‚Yes‘ • if( 1+1=3, 'Yes', 'No' ) → ‚No‘ • if( 5 > 3, 1, 0) → 1 • if( '', 'It is true (not empty)', 'It is false (empty)' ) → ‚It is false (empty)‘ • if( ' ', 'It is true (not empty)', 'It is false (empty)' ) → ‚It is true (not empty)‘ • if( 0, 'One', 'Zero' ) → ‚Zero‘ • if( 10, 'One', 'Zero' ) → ‚One‘ nullif Returns a NULL value if value1 equals value2; otherwise it returns value1. This can be used to conditionally substitute values with NULL. Syntax nullif(value1, value2) Arguments • value1 - The value that should either be used or substituted with NULL. • value2 - The control value that will trigger the NULL substitution. Examples • nullif('(none)', '(none)') → NULL • nullif('text', '(none)') → ‚text‘ • nullif("name", '') → NULL, if name is an empty string (or already NULL), the name in any other case. regexp_match Return the first matching position matching a regular expression within an unicode string, or 0 if the substring is not found. Syntax regexp_match(input_string, regex) Arguments • input_string - the string to test against the regular expression • regex - The regular expression to test against. Backslash characters must be double escaped (e.g., „\\s“ to match a white space character or „\\b“ to match a word boundary). Examples • regexp_match('QGIS ROCKS','\\sROCKS') → 5 • regexp_match('Budač','udač\\b') → 2 364 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide try Tries an expression and returns its value if error-free. If the expression returns an error, an alternative value will be returned when provided otherwise the function will return NULL. Syntax try(expression, [alternative]) [] marks optional arguments Arguments • expression - the expression which should be run • alternative - the result which will be returned if the expression returns an error. Examples • try( to_int( '1' ), 0 ) → 1 • try( to_int( 'a' ), 0 ) → 0 • try( to_date( 'invalid_date' ) ) → NULL 14.3.5 Conversions Functions This group contains functions to convert one data type to another (e.g., string from/to integer, binary from/to string, string to date, …). • from_base64 • hash • md5 • sha256 • to_base64 • to_date • to_datetime • to_decimal • to_dm • to_dms • to_int • to_interval • to_real • to_string • to_time 14.3. List of functions 365 QGIS Desktop 3.16 User Guide from_base64 Decodes a string in the Base64 encoding into a binary value. Syntax from_base64(string) Arguments • string - the string to decode Examples • from_base64('UUdJUw==') → ‚QGIS‘ hash Creates a hash from a string with a given method. One byte (8 bits) is represented with two hex ‚‘digits‘‘, so ‚md4‘ (16 bytes) produces a 16 * 2 = 32 character long hex string and ‚keccak_512‘ (64 bytes) produces a 64 * 2 = 128 character long hex string. Syntax hash(string, method) Arguments • string - the string to hash • method - The hash method among ‚md4‘, ‚md5‘, ‚sha1‘, ‚sha224‘, ‚sha384‘, ‚sha512‘, ‚sha3_224‘, ‚sha3_256‘, ‚sha3_384‘, ‚sha3_512‘, ‚keccak_224‘, ‚keccak_256‘, ‚keccak_384‘, ‚keccak_512‘ Examples • hash('QGIS', 'md4') → ‚c0fc71c241cdebb6e888cbac0e2b68eb‘ • hash('QGIS', 'md5') → ‚57470aaa9e22adaefac7f5f342f1c6da‘ • hash('QGIS', 'sha1') → ‚f87cfb2b74cdd5867db913237024e7001e62b114‘ • hash('QGIS', 'sha224') → ‚4093a619ada631c770f44bc643ead18fb393b93d6a6af1861fcfece0‘ • hash('QGIS', 'sha256') → ‚eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c • hash('QGIS', 'sha384') → ‚91c1de038cc3d09fdd512e99f9dd9922efadc39ed21d3922e69a4305cc25 • hash('QGIS', 'sha512') → ‚c2c092f2ab743bf8edbeb6d028a745f30fc720408465ed369421f0a4e20 • hash('QGIS', 'sha3_224') → ‚467f49a5039e7280d5d42fd433e80d203439e338eaabd701f0d6c17d • hash('QGIS', 'sha3_256') → ‚540f7354b6b8a6e735f2845250f15f4f3ba4f666c55574d9e9354575d • hash('QGIS', 'sha3_384') → ‚96052da1e77679e9a65f60d7ead961b287977823144786386eb43647 • hash('QGIS', 'sha3_512') → ‚900d079dc69761da113980253aa8ac0414a8bd6d09879a916228f874 • hash('QGIS', 'keccak_224') → ‚5b0ce6acef8b0a121d4ac4f3eaa8503c799ad4e26a3392d1fb20147 • hash('QGIS', 'keccak_256') → ‚991c520aa6815392de24087f61b2ae0fd56abbfeee4a8ca019c1011 • hash('QGIS', 'keccak_384') → ‚c57a3aed9d856fa04e5eeee9b62b6e027cca81ba574116d3cc1f0d4 md5 Creates a md5 hash from a string. Syntax md5(string) Arguments • string - the string to hash Examples • md5('QGIS') → ‚57470aaa9e22adaefac7f5f342f1c6da‘ 366 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide sha256 Creates a sha256 hash from a string. Syntax sha256(string) Arguments • string - the string to hash Examples • sha256('QGIS') → ‚eb045cba7a797aaa06ac58830846e40c8e8c780bc0676d3393605fae50c05309‘ to_base64 Encodes a binary value into a string, using the Base64 encoding. Syntax to_base64(value) Arguments • value - the binary value to encode Examples • to_base64('QGIS') → ‚UUdJUw==‘ to_date Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString for additional documentation on the format. Syntax to_date(string, [format], [language]) [] marks optional arguments Arguments • string - string representing a date value • format - format used to convert the string into a date • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date Examples • to_date('2012-05-04') → 2012-05-04 • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29 • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29 to_datetime Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString and QTime::fromString for additional documentation on the format. 14.3. List of functions 367 QGIS Desktop 3.16 User Guide Syntax to_datetime(string, [format], [language]) [] marks optional arguments Arguments • string - string representing a datetime value • format - format used to convert the string into a datetime • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime Examples • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00 • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34 • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm', 'fr') → 2019-06-29T12:34 to_decimal Converts a degree, minute, second coordinate to its decimal equivalent. Syntax to_decimal(value) Arguments • value - A degree, minute, second string. Examples • to_decimal('6°21\'16.445') → 6.3545680555 to_dm Converts a coordinate to degree, minute. Syntax to_dm(coordinate, axis, precision, [formatting=]) [] marks optional arguments Arguments • coordinate - A latitude or longitude value. • axis - The axis of the coordinate. Either ‚x‘ or ‚y‘. • precision - Number of decimals. • formatting - Designates the formatting type. Acceptable values are NULL (default), ‚aligned‘ or ‚suffix‘. Examples • to_dm(6.1545681, 'x', 3) → 6°9.274′ • to_dm(6.1545681, 'y', 4, 'aligned') → 6°09.2741′ N • to_dm(6.1545681, 'y', 4, 'suffix') → 6°9.2741′ N 368 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide to_dms Converts a coordinate to degree, minute, second. Syntax to_dms(coordinate, axis, precision, [formatting=]) [] marks optional arguments Arguments • coordinate - A latitude or longitude value. • axis - The axis of the coordinate. Either ‚x‘ or ‚y‘. • precision - Number of decimals. • formatting - Designates the formatting type. Acceptable values are NULL (default), ‚aligned‘ or ‚suffix‘. Examples • to_dms(6.1545681, 'x', 3) → 6°9′ 16.445′′ • to_dms(6.1545681, 'y', 4, 'aligned') → 6°09′ 16.4452′′ N • to_dms(6.1545681, 'y', 4, 'suffix') → 6°9′ 16.4452′′ N to_int Converts a string to integer number. Nothing is returned if a value cannot be converted to integer (e.g ‚123asd‘ is invalid). Syntax to_int(string) Arguments • string - string to convert to integer number Examples • to_int('123') → 123 to_interval Converts a string to an interval type. Can be used to take days, hours, month, etc of a date. Syntax to_interval(string) Arguments • string - a string representing an interval. Allowable formats include {n} days {n} hours {n} months. Examples • to_interval('1 day 2 hours') → interval: 1.08333 days • to_interval( '0.5 hours' ) → interval: 30 minutes • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00 14.3. List of functions 369 QGIS Desktop 3.16 User Guide to_real Converts a string to a real number. Nothing is returned if a value cannot be converted to real (e.g ‚123.56asd‘ is invalid). Numbers are rounded after saving changes if the precision is smaller than the result of the conversion. Syntax to_real(string) Arguments • string - string to convert to real number Examples • to_real('123.45') → 123.45 to_string Converts a number to string. Syntax to_string(number) Arguments • number - Integer or real value. The number to convert to string. Examples • to_string(123) → ‚123‘ to_time Converts a string into a time object. An optional format string can be provided to parse the string; see QTime::fromString for additional documentation on the format. Syntax to_time(string, [format], [language]) [] marks optional arguments Arguments • string - string representing a time value • format - format used to convert the string into a time • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a time Examples • to_time('12:30:01') → 12:30:01 • to_time('12:34','HH:mm') → 12:34:00 • to_time('12:34','HH:mm','fr') → 12:34:00 14.3.6 Custom Functions This group contains functions created by the user. See Function Editor for more details. 370 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide 14.3.7 Funkce dat a časů This group contains functions for handling date and time data. This group shares several functions with the Conversions Functions (to_date, to_time, to_datetime, to_interval) and Funkce řetězců (format_date) groups. Poznámka: Storing date, datetime and intervals on fields The ability to store date, time and datetime values directly on fields depends on the data source’s provider (e.g., Shapefile accepts date format, but not datetime or time format). The following are some suggestions to overcome this limitation: • date, datetime and time can be converted and stored in text type fields using the format_date() function. • Intervals can be stored in integer or decimal type fields after using one of the date extraction functions (e.g., day() to get the interval expressed in days) • age • datetime_from_epoch • day • day_of_week • epoch • format_date • hour • make_date • make_datetime • make_interval • make_time • minute • month • now • second • to_date • to_datetime • to_interval • to_time • week • year 14.3. List of functions 371 QGIS Desktop 3.16 User Guide age Returns the difference between two dates or datetimes. The difference is returned as an Interval and needs to be used with one of the following functions in order to extract useful information: • year • month • week • day • hour • minute • second Syntax age(datetime1, datetime2) Arguments • datetime1 - a string, date or datetime representing the later date • datetime2 - a string, date or datetime representing the earlier date Examples • day(age('2012-05-12','2012-05-02')) → 10 • hour(age('2012-05-12','2012-05-02')) → 240 datetime_from_epoch Returns a datetime whose date and time are the number of milliseconds, msecs, that have passed since 1970-01-01T00:00:00.000, Coordinated Universal Time (Qt.UTC), and converted to Qt.LocalTime. Syntax datetime_from_epoch(int) Arguments • int - number (milliseconds) Examples • datetime_from_epoch(1483225200000) → 2017-01-01T00:00:00 day Extracts the day from a date, or the number of days from an interval. Date variant Extracts the day from a date or datetime. Syntax day(date) Arguments • date - a date or datetime value Examples • day('2012-05-12') → 12 Interval variant Calculates the length in days of an interval. 372 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax day(interval) Arguments • interval - interval value to return number of days from Examples • day(to_interval('3 days')) → 3 • day(to_interval('3 weeks 2 days')) → 23 • day(age('2012-01-01','2010-01-01')) → 730 day_of_week Returns the day of the week for a specified date or datetime. The returned value ranges from 0 to 6, where 0 corresponds to a Sunday and 6 to a Saturday. Syntax day_of_week(date) Arguments • date - date or datetime value Examples • day_of_week(to_date('2015-09-21')) → 1 epoch Returns the interval in milliseconds between the unix epoch and a given date value. Syntax epoch(date) Arguments • date - a date or datetime value Examples • epoch(to_date('2017-01-01')) → 1483203600000 format_date Formats a date type or string into a custom string format. Uses Qt date/time format strings. See QDateTime::toString. 14.3. List of functions 373 QGIS Desktop 3.16 User Guide Syntax format_date(datetime, format, [language]) [] marks optional arguments Arguments • datetime - date, time or datetime value • format - String template used to format the string. Výraz Output d the day as number without a leading zero (1 to 31) dd the day as number with a leading zero (01 to 31) ddd the abbreviated localized day name (e.g. ‚Mon‘ to ‚Sun‘) dddd the long localized day name (e.g. ‚Monday‘ to ‚Sunday‘) M the month as number without a leading zero (1-12) MM the month as number with a leading zero (01-12) MMM the abbreviated localized month name (e.g. ‚Jan‘ to ‚Dec‘) MMMM the long localized month name (e.g. ‚January‘ to ‚December‘) yy the year as two digit number (00-99) yyyy the year as four digit number These expressions may be used for the time part of the format string: Výraz Output h the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display) hh the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display) H the hour without a leading zero (0 to 23, even with AM/PM display) HH the hour with a leading zero (00 to 23, even with AM/PM display) m the minute without a leading zero (0 to 59) mm the minute with a leading zero (00 to 59) s the second without a leading zero (0 to 59) ss the second with a leading zero (00 to 59) z the milliseconds without trailing zeroes (0 to 999) zzz the milliseconds with trailing zeroes (000 to 999) AP or A interpret as an AM/PM time. AP must be either ‚AM‘ or ‚PM‘. ap or a Interpret as an AM/PM time. ap must be either ‚am‘ or ‚pm‘. • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string Examples • format_date('2012-05-15','dd.MM.yyyy') → ‚15.05.2012‘ • format_date('2012-05-15','d MMMM yyyy','fr') → ‚15 mai 2012‘ • format_date('2012-05-15','dddd') → ‚Tuesday‘ • format_date('2012-05-15 13:54:20','dd.MM.yy') → ‚15.05.12‘ • format_date('13:54:20','hh:mm AP') → ‚01:54 PM‘ 374 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide hour Extracts the hour part from a datetime or time, or the number of hours from an interval. Time variant Extracts the hour part from a time or datetime. Syntax hour(datetime) Arguments • datetime - a time or datetime value Examples • hour( to_datetime('2012-07-22 13:24:57') ) → 13 Interval variant Calculates the length in hours of an interval. Syntax hour(interval) Arguments • interval - interval value to return number of hours from Examples • hour(to_interval('3 hours')) → 3 • hour(age('2012-07-22T13:00:00','2012-07-22T10:00:00')) → 3 • hour(age('2012-01-01','2010-01-01')) → 17520 make_date Creates a date value from year, month and day numbers. Syntax make_date(year, month, day) Arguments • year - Year number. Years 1 to 99 are interpreted as is. Year 0 is invalid. • month - Month number, where 1=January • day - Day number, beginning with 1 for the first day in the month Examples • make_date(2020,5,4) → date value 2020-05-04 make_datetime Creates a datetime value from year, month, day, hour, minute and second numbers. 14.3. List of functions 375 QGIS Desktop 3.16 User Guide Syntax make_datetime(year, month, day, hour, minute, second) Arguments • year - Year number. Years 1 to 99 are interpreted as is. Year 0 is invalid. • month - Month number, where 1=January • day - Day number, beginning with 1 for the first day in the month • hour - Hour number • minute - Minutes • second - Seconds (fractional values include milliseconds) Examples • make_datetime(2020,5,4,13,45,30.5) → datetime value 2020-05-04 13:45:30.500 make_interval Creates an interval value from year, month, weeks, days, hours, minute and seconds values. Syntax make_interval([years=0], [months=0], [weeks=0], [days=0], [hours=0], [minutes=0], [seconds=0]) [] marks optional arguments Arguments • years - Number of years (assumes a 365.25 day year length). • months - Number of months (assumes a 30 day month length) • weeks - Number of weeks • days - Number of days • hours - Number of hours • minutes - Number of minutes • seconds - Number of seconds Examples • make_interval(hours:=3) → interval: 3 hours • make_interval(days:=2, hours:=3) → interval: 2.125 days • make_interval(minutes:=0.5, seconds:=5) → interval: 35 seconds make_time Creates a time value from hour, minute and second numbers. Syntax make_time(hour, minute, second) Arguments • hour - Hour number • minute - Minutes • second - Seconds (fractional values include milliseconds) Examples • make_time(13,45,30.5) → time value 13:45:30.500 376 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide minute Extracts the minutes part from a datetime or time, or the number of minutes from an interval. Time variant Extracts the minutes part from a time or datetime. Syntax minute(datetime) Arguments • datetime - a time or datetime value Examples • minute( to_datetime('2012-07-22 13:24:57') ) → 24 Interval variant Calculates the length in minutes of an interval. Syntax minute(interval) Arguments • interval - interval value to return number of minutes from Examples • minute(to_interval('3 minutes')) → 3 • minute(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 20 • minute(age('2012-01-01','2010-01-01')) → 1051200 month Extracts the month part from a date, or the number of months from an interval. Date variant Extracts the month part from a date or datetime. Syntax month(date) Arguments • date - a date or datetime value Examples • month('2012-05-12') → 05 Interval variant Calculates the length in months of an interval. Syntax month(interval) Arguments • interval - interval value to return number of months from Examples • month(to_interval('3 months')) → 3 • month(age('2012-01-01','2010-01-01')) → 4.03333 14.3. List of functions 377 QGIS Desktop 3.16 User Guide now Returns the current date and time. The function is static and will return consistent results while evaluating. The time returned is the time when the expression is prepared. Syntax now() Examples • now() → 2012-07-22T13:24:57 second Extracts the seconds part from a datetime or time, or the number of seconds from an interval. Time variant Extracts the seconds part from a time or datetime. Syntax second(datetime) Arguments • datetime - a time or datetime value Examples • second( to_datetime('2012-07-22 13:24:57') ) → 57 Interval variant Calculates the length in seconds of an interval. Syntax second(interval) Arguments • interval - interval value to return number of seconds from Examples • second(to_interval('3 minutes')) → 180 • second(age('2012-07-22T00:20:00','2012-07-22T00:00:00')) → 1200 • second(age('2012-01-01','2010-01-01')) → 63072000 to_date Converts a string into a date object. An optional format string can be provided to parse the string; see QDate::fromString for additional documentation on the format. Syntax to_date(string, [format], [language]) [] marks optional arguments Arguments • string - string representing a date value • format - format used to convert the string into a date • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a date Examples • to_date('2012-05-04') → 2012-05-04 • to_date('June 29, 2019','MMMM d, yyyy') → 2019-06-29 • to_date('29 juin, 2019','d MMMM, yyyy','fr') → 2019-06-29 378 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide to_datetime Converts a string into a datetime object. An optional format string can be provided to parse the string; see QDate::fromString and QTime::fromString for additional documentation on the format. Syntax to_datetime(string, [format], [language]) [] marks optional arguments Arguments • string - string representing a datetime value • format - format used to convert the string into a datetime • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a datetime Examples • to_datetime('2012-05-04 12:50:00') → 2012-05-04T12:50:00 • to_datetime('June 29, 2019 @ 12:34','MMMM d, yyyy @ HH:mm') → 2019-06-29T12:34 • to_datetime('29 juin, 2019 @ 12:34','d MMMM, yyyy @ HH:mm', 'fr') → 2019-06-29T12:34 to_interval Converts a string to an interval type. Can be used to take days, hours, month, etc of a date. Syntax to_interval(string) Arguments • string - a string representing an interval. Allowable formats include {n} days {n} hours {n} months. Examples • to_interval('1 day 2 hours') → interval: 1.08333 days • to_interval( '0.5 hours' ) → interval: 30 minutes • to_datetime('2012-05-05 12:00:00') - to_interval('1 day 2 hours') → 2012-05-04T10:00:00 to_time Converts a string into a time object. An optional format string can be provided to parse the string; see QTime::fromString for additional documentation on the format. Syntax to_time(string, [format], [language]) [] marks optional arguments Arguments • string - string representing a time value • format - format used to convert the string into a time • language - language (lowercase, two- or three-letter, ISO 639 language code) used to convert the string into a time Examples • to_time('12:30:01') → 12:30:01 • to_time('12:34','HH:mm') → 12:34:00 • to_time('12:34','HH:mm','fr') → 12:34:00 14.3. List of functions 379 QGIS Desktop 3.16 User Guide week Extracts the week number from a date, or the number of weeks from an interval. Date variant Extracts the week number from a date or datetime. Syntax week(date) Arguments • date - a date or datetime value Examples • week('2012-05-12') → 19 Interval variant Calculates the length in weeks of an interval. Syntax week(interval) Arguments • interval - interval value to return number of months from Examples • week(to_interval('3 weeks')) → 3 • week(age('2012-01-01','2010-01-01')) → 104.285 year Extracts the year part from a date, or the number of years from an interval. Date variant Extracts the year part from a date or datetime. Syntax year(date) Arguments • date - a date or datetime value Examples • year('2012-05-12') → 2012 Interval variant Calculates the length in years of an interval. Syntax year(interval) Arguments • interval - interval value to return number of years from Examples • year(to_interval('3 years')) → 3 • year(age('2012-01-01','2010-01-01')) → 1.9986 Některé příklady: Besides these functions, subtracting dates, datetimes or times using the - (minus) operator will return an interval. 380 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Adding or subtracting an interval to dates, datetimes or times, using the + (plus) and - (minus) operators, will return a datetime. • Get the number of days until QGIS 3.0 release: to_date('2017-09-29') - to_date(now()) -- Returns • The same with time: to_datetime('2017-09-29 12:00:00') - now() -- Returns • Get the datetime of 100 days from now: now() + to_interval('100 days') -- Returns 14.3.8 Pole a hodnoty Contains a list of fields from the layer. Double-click a field name to have it added to your expression. You can also type the field name (preferably inside double quotes) or its alias. To retrieve fields values to use in an expression, select the appropriate field and, in the shown widget, choose between 10 Samples and All Unique. Requested values are then displayed and you can use the Search box at the top of the list to filter the result. Sample values can also be accessed via right-clicking on a field. To add a value to the expression you are writing, double-click on it in the list. If the value is of a string type, it should be simple quoted, otherwise no quote is needed. 14.3.9 Files and Paths Functions This group contains functions which manipulate file and path names. • base_file_name • file_exists • file_name • file_path • file_size • file_suffix • is_directory • is_file 14.3. List of functions 381 QGIS Desktop 3.16 User Guide base_file_name Returns the base name of the file without the directory or file suffix. Syntax base_file_name(path) Arguments • path - a file path Examples • base_file_name('/home/qgis/data/country_boundaries.shp') → ‚country_boundaries‘ file_exists Returns true if a file path exists. Syntax file_exists(path) Arguments • path - a file path Examples • file_exists('/home/qgis/data/country_boundaries.shp') → true file_name Returns the name of a file (including the file extension), excluding the directory. Syntax file_name(path) Arguments • path - a file path Examples • file_name('/home/qgis/data/country_boundaries.shp') → ‚country_boundaries.shp‘ file_path Returns the directory component of a file path. This does not include the file name. Syntax file_path(path) Arguments • path - a file path Examples • file_path('/home/qgis/data/country_boundaries.shp') → ‚/home/qgis/data‘ 382 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide file_size Returns the size (in bytes) of a file. Syntax file_size(path) Arguments • path - a file path Examples • file_size('/home/qgis/data/country_boundaries.geojson') → 5674 file_suffix Returns the file suffix (extension) from a file path. Syntax file_suffix(path) Arguments • path - a file path Examples • file_suffix('/home/qgis/data/country_boundaries.shp') → ‚shp‘ is_directory Returns true if a path corresponds to a directory. Syntax is_directory(path) Arguments • path - a file path Examples • is_directory('/home/qgis/data/country_boundaries.shp') → false • is_directory('/home/qgis/data/') → true is_file Returns true if a path corresponds to a file. Syntax is_file(path) Arguments • path - a file path Examples • is_file('/home/qgis/data/country_boundaries.shp') → true • is_file('/home/qgis/data/') → false 14.3. List of functions 383 QGIS Desktop 3.16 User Guide 14.3.10 Form Functions This group contains functions that operate exclusively under the attribute form context. For example, in field’s widgets settings. • current_parent_value • current_value current_parent_value Only usable in an embedded form context, this function returns the current, unsaved value of a field in the parent form currently being edited. This will differ from the parent feature’s actual attribute values for features which are currently being edited or have not yet been added to a parent layer. When used in a value-relation widget filter expression, this function should be wrapped into a ‚coalesce()‘ that can retrieve the actual parent feature from the layer when the form is not used in an embedded context. Syntax current_parent_value(field_name) Arguments • field_name - a field name in the current parent form Examples • current_parent_value( 'FIELD_NAME' ) → The current value of a field ‚FIELD_NAME‘ in the parent form. current_value Returns the current, unsaved value of a field in the form or table row currently being edited. This will differ from the feature’s actual attribute values for features which are currently being edited or have not yet been added to a layer. Syntax current_value(field_name) Arguments • field_name - a field name in the current form or table row Examples • current_value( 'FIELD_NAME' ) → The current value of field ‚FIELD_NAME‘. 14.3.11 Fuzzy Matching Functions This group contains functions for fuzzy comparisons between values. • hamming_distance • levenshtein • longest_common_substring • soundex 384 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide hamming_distance Returns the Hamming distance between two strings. This equates to the number of characters at corresponding positions within the input strings where the characters are different. The input strings must be the same length, and the comparison is case-sensitive. Syntax hamming_distance(string1, string2) Arguments • string1 - a string • string2 - a string Examples • hamming_distance('abc','xec') → 2 • hamming_distance('abc','ABc') → 2 • hamming_distance(upper('abc'),upper('ABC')) → 0 levenshtein Returns the Levenshtein edit distance between two strings. This equates to the minimum number of character edits (insertions, deletions or substitutions) required to change one string to another. The Levenshtein distance is a measure of the similarity between two strings. Smaller distances mean the strings are more similar, and larger distances indicate more different strings. The distance is case sensitive. Syntax levenshtein(string1, string2) Arguments • string1 - a string • string2 - a string Examples • levenshtein('kittens','mitten') → 2 • levenshtein('Kitten','kitten') → 1 • levenshtein(upper('Kitten'),upper('kitten')) → 0 longest_common_substring Returns the longest common substring between two strings. This substring is the longest string that is a substring of the two input strings. For example, the longest common substring of „ABABC“ and „BABCA“ is „BABC“. The substring is case sensitive. Syntax longest_common_substring(string1, string2) Arguments • string1 - a string • string2 - a string Examples • longest_common_substring('ABABC','BABCA') → ‚BABC‘ • longest_common_substring('abcDeF','abcdef') → ‚abc‘ • longest_common_substring(upper('abcDeF'),upper('abcdex')) → ‚ABCDE‘ 14.3. List of functions 385 QGIS Desktop 3.16 User Guide soundex Returns the Soundex representation of a string. Soundex is a phonetic matching algorithm, so strings with similar sounds should be represented by the same Soundex code. Syntax soundex(string) Arguments • string - a string Examples • soundex('robert') → ‚R163‘ • soundex('rupert') → ‚R163‘ • soundex('rubin') → ‚R150‘ 14.3.12 General Functions This group contains general assorted functions. • env • eval • eval_template • is_layer_visible • layer_property • var • with_variable env Gets an environment variable and returns its content as a string. If the variable is not found, NULL will be returned. This is handy to inject system specific configuration like drive letters or path prefixes. Definition of environment variables depends on the operating system, please check with your system administrator or the operating system documentation how this can be set. Syntax env(name) Arguments • name - The name of the environment variable which should be retrieved. Examples • env( 'LANG' ) → ‚en_US.UTF-8‘ • env( 'MY_OWN_PREFIX_VAR' ) → ‚Z:‘ • env( 'I_DO_NOT_EXIST' ) → NULL 386 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide eval Evaluates an expression which is passed in a string. Useful to expand dynamic parameters passed as context variables or fields. Syntax eval(expression) Arguments • expression - an expression string Examples • eval('\'nice\'') → ‚nice‘ • eval(@expression_var) → [whatever the result of evaluating @expression_var might be…] eval_template Evaluates a template which is passed in a string. Useful to expand dynamic parameters passed as context variables or fields. Syntax eval_template(template) Arguments • template - a template string Examples • eval_template('QGIS [% upper(\'rocks\') %]') → QGIS ROCKS is_layer_visible Returns true if a specified layer is visible. Syntax is_layer_visible(layer) Arguments • layer - a string, representing either a layer name or layer ID Examples • is_layer_visible('baseraster') → True 14.3. List of functions 387 QGIS Desktop 3.16 User Guide layer_property Returns a matching layer property or metadata value. Syntax layer_property(layer, property) Arguments • layer - a string, representing either a layer name or layer ID • property - a string corresponding to the property to return. Valid options are: – name: layer name – id: layer ID – title: metadata title string – abstract: metadata abstract string – keywords: metadata keywords – data_url: metadata URL – attribution: metadata attribution string – attribution_url: metadata attribution URL – source: layer source – min_scale: minimum display scale for layer – max_scale: maximum display scale for layer – is_editable: if layer is in edit mode – crs: layer CRS – crs_definition: layer CRS full definition – crs_description: layer CRS description – extent: layer extent (as a geometry object) – distance_units: layer distance units – type: layer type, e.g., Vector or Raster – storage_type: storage format (vector layers only) – geometry_type: geometry type, e.g., Point (vector layers only) – feature_count: approximate feature count for layer (vector layers only) – path: File path to the layer data source. Only available for file based layers. Examples • layer_property('streets','title') → ‚Basemap Streets‘ • layer_property('airports','feature_count') → 120 • layer_property('landsat','crs') → ‚EPSG:4326‘ Further reading: vector, raster and mesh layer properties var Returns the value stored within a specified variable. Syntax var(name) Arguments • name - a variable name Examples • var('qgis_version') → ‚2.12‘ Further reading: List of default variables 388 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide with_variable This function sets a variable for any expression code that will be provided as 3rd argument. This is only useful for complicated expressions, where the same calculated value needs to be used in different places. Syntax with_variable(name, value, expression) Arguments • name - the name of the variable to set • value - the value to set • expression - the expression for which the variable will be available Examples • with_variable('my_sum', 1 + 2 + 3, @my_sum * 2 + @my_sum * 5) → 42 14.3.13 Funkce geometrie This group contains functions that operate on geometry objects (e.g. buffer, transform, $area). • angle_at_vertex • $area • area • azimuth • boundary • bounds • bounds_height • bounds_width • buffer • buffer_by_m • centroid • close_line • closest_point • collect_geometries • combine • contains • convex_hull • crosses • difference • disjoint • distance • distance_to_vertex • end_point • extend 14.3. List of functions 389 QGIS Desktop 3.16 User Guide • exterior_ring • extrude • flip_coordinates • force_rhr • geom_from_gml • geom_from_wkb • geom_from_wkt • geom_to_wkb • geom_to_wkt • $geometry • geometry • geometry_n • hausdorff_distance • inclination • interior_ring_n • intersection • intersects • intersects_bbox • is_closed • is_empty • is_empty_or_null • is_multipart • is_valid • $length • length • line_interpolate_angle • line_interpolate_point • line_locate_point • line_merge • line_substring • m • m_max • m_min • main_angle • make_circle • make_ellipse • make_line • make_point 390 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • make_point_m • make_polygon • make_rectangle_3points • make_regular_polygon • make_square • make_triangle • minimal_circle • nodes_to_points • num_geometries • num_interior_rings • num_points • num_rings • offset_curve • order_parts • oriented_bbox • overlaps • overlay_contains • overlay_crosses • overlay_disjoint • overlay_equals • overlay_intersects • overlay_nearest • overlay_touches • overlay_within • $perimeter • perimeter • point_n • point_on_surface • pole_of_inaccessibility • project • relate • reverse • rotate • segments_to_lines • shortest_line • simplify • simplify_vw • single_sided_buffer 14.3. List of functions 391 QGIS Desktop 3.16 User Guide • smooth • start_point • sym_difference • tapered_buffer • touches • transform • translate • union • wedge_buffer • within • $x • x • $x_at • x_max • x_min • $y • y • $y_at • y_max • y_min • z • z_max • z_min angle_at_vertex Returns the bisector angle (average angle) to the geometry for a specified vertex on a linestring geometry. Angles are in degrees clockwise from north. Syntax angle_at_vertex(geometry, vertex) Arguments • geometry - a linestring geometry • vertex - vertex index, starting from 0; if the value is negative, the selected vertex index will be its total count minus the absolute value Examples • angle_at_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 45.0 392 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide $area Returns the area of the current feature. The area calculated by this function respects both the current project’s ellipsoid setting and area unit settings. For example, if an ellipsoid has been set for the project then the calculated area will be ellipsoidal, and if no ellipsoid is set then the calculated area will be planimetric. Syntax $area Examples • $area → 42 area Returns the area of a geometry polygon object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned area will match the units for the SRS. This differs from the calculations performed by the $area function, which will perform ellipsoidal calculations based on the project’s ellipsoid and area unit settings. Syntax area(geometry) Arguments • geometry - polygon geometry object Examples • area(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 8.0 azimuth Returns the north-based azimuth as the angle in radians measured clockwise from the vertical on point_a to point_b. Syntax azimuth(point_a, point_b) Arguments • point_a - point geometry • point_b - point geometry Examples • degrees( azimuth( make_point(25, 45), make_point(75, 100) ) ) → 42.273689 • degrees( azimuth( make_point(75, 100), make_point(25,45) ) ) → 222.273689 boundary Returns the closure of the combinatorial boundary of the geometry (ie the topological boundary of the geometry). For instance, a polygon geometry will have a boundary consisting of the linestrings for each ring in the polygon. Some geometry types do not have a defined boundary, e.g., points or geometry collections, and will return NULL. 14.3. List of functions 393 QGIS Desktop 3.16 User Guide Syntax boundary(geometry) Arguments • geometry - a geometry Examples • geom_to_wkt(boundary(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → ‚LineString(1 1,0 0,-1 1,1 1)‘ • geom_to_wkt(boundary(geom_from_wkt('LineString(1 1,0 0,-1 1)'))) → ‚MultiPoint ((1 1),(-1 1))‘ Further reading: Boundary algorithm bounds Returns a geometry which represents the bounding box of an input geometry. Calculations are in the Spatial Reference System of this geometry. Syntax bounds(geometry) Arguments • geometry - a geometry Examples • bounds($geometry) → bounding box of the current feature’s geometry • geom_to_wkt(bounds(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → ‚Polygon ((-1 0, 1 0, 1 1, -1 1, -1 0))‘ Further reading: Bounding boxes algorithm bounds_height Returns the height of the bounding box of a geometry. Calculations are in the Spatial Reference System of this geometry. Syntax bounds_height(geometry) Arguments • geometry - a geometry Examples • bounds_height($geometry) → height of bounding box of the current feature’s geometry • bounds_height(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 1 bounds_width Returns the width of the bounding box of a geometry. Calculations are in the Spatial Reference System of this geometry. 394 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax bounds_width(geometry) Arguments • geometry - a geometry Examples • bounds_width($geometry) → width of bounding box of the current feature’s geometry • bounds_width(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')) → 2 buffer Returns a geometry that represents all points whose distance from this geometry is less than or equal to distance. Calculations are in the Spatial Reference System of this geometry. Syntax buffer(geometry, distance, [segments=8]) [] marks optional arguments Arguments • geometry - a geometry • distance - buffer distance in layer units • segments - number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother buffer with more nodes. Examples • buffer($geometry, 10.5) → polygon of the current feature’s geometry buffered by 10.5 units Further reading: Buffer algorithm buffer_by_m Creates a buffer along a line geometry where the buffer diameter varies according to the m-values at the line vertices. Syntax buffer_by_m(geometry, [segments=8]) [] marks optional arguments Arguments • geometry - input geometry. Must be a (multi)line geometry with m values. • segments - number of segments to approximate quarter-circle curves in the buffer. Examples • buffer_by_m(geometry:=geom_from_wkt('LINESTRINGM(1 2 0.5, 4 2 0.2)'),segments:=8) → A variable width buffer starting with a diameter of 0.5 and ending with a diameter of 0.2 along the linestring geometry. Further reading: Variable width buffer (by M value) algorithm 14.3. List of functions 395 QGIS Desktop 3.16 User Guide centroid Returns the geometric center of a geometry. Syntax centroid(geometry) Arguments • geometry - a geometry Examples • centroid($geometry) → a point geometry Further reading: Centroids algorithm close_line Returns a closed line string of the input line string by appending the first point to the end of the line, if it is not already closed. If the geometry is not a line string or multi line string then the result will be NULL. Syntax close_line(geometry) Arguments • geometry - a line string geometry Examples • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1)'))) → ‚LineString (0 0, 1 0, 1 1, 0 0)‘ • geom_to_wkt(close_line(geom_from_wkt('LINESTRING(0 0, 1 0, 1 1, 0 0)'))) → ‚LineString (0 0, 1 0, 1 1, 0 0)‘ closest_point Returns the point on geometry1 that is closest to geometry2. Syntax closest_point(geometry1, geometry2) Arguments • geometry1 - geometry to find closest point on • geometry2 - geometry to find closest point to Examples • geom_to_wkt(closest_point(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → ‚Point(73.0769 115.384)‘ collect_geometries Collects a set of geometries into a multi-part geometry object. List of arguments variant Geometry parts are specified as separate arguments to the function. 396 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax collect_geometries(geometry1, geometry2, …) Arguments • geometry - a geometry Examples • geom_to_wkt(collect_geometries(make_point(1,2), make_point(3,4), make_point(5,6))) → ‚MultiPoint ((1 2),(3 4),(5 6))‘ Array variant Geometry parts are specified as an array of geometry parts. Syntax collect_geometries(array) Arguments • array - array of geometry objects Examples • geom_to_wkt(collect_geometries(array(make_point(1,2), make_point(3,4), make_point(5,6)))) → ‚MultiPoint ((1 2),(3 4),(5 6))‘ Further reading: Collect geometries algorithm combine Returns the combination of two geometries. Syntax combine(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 2 1)' ) ) ) → ‚MULTILINESTRING((4 4, 2 1), (3 3, 4 4), (4 4, 5 5))‘ • geom_to_wkt( combine( geom_from_wkt( 'LINESTRING(3 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 6 6, 2 1)' ) ) ) → ‚LINESTRING(3 3, 4 4, 6 6, 2 1)‘ contains Tests whether a geometry contains another. Returns true if and only if no points of geometry2 lie in the exterior of geometry1, and at least one point of the interior of geometry2 lies in the interior of geometry1. Syntax contains(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'POINT(0.5 0.5 )' ) ) → true • contains( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false 14.3. List of functions 397 QGIS Desktop 3.16 User Guide Further reading: overlay_contains convex_hull Returns the convex hull of a geometry. It represents the minimum convex geometry that encloses all geometries within the set. Syntax convex_hull(geometry) Arguments • geometry - a geometry Examples • geom_to_wkt( convex_hull( geom_from_wkt( 'LINESTRING(3 3, 4 4, 4 10)' ) ) ) → ‚POLYGON((3 3, 4 10, 4 4, 3 3))‘ Further reading: Convex hull algorithm crosses Tests whether a geometry crosses another. Returns true if the supplied geometries have some, but not all, interior points in common. Syntax crosses(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • crosses( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true • crosses( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false Further reading: overlay_crosses difference Returns a geometry that represents that part of geometry1 that does not intersect with geometry2. Syntax difference(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • geom_to_wkt( difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → ‚LINESTRING(4 4, 5 5)‘ Further reading: Difference algorithm 398 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide disjoint Tests whether geometries do not spatially intersect. Returns true if the geometries do not share any space together. Syntax disjoint(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • disjoint( geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true • disjoint( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'POINT(4 4)' )) → false Further reading: overlay_disjoint distance Returns the minimum distance (based on spatial ref) between two geometries in projected units. Syntax distance(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • distance( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(4 8)' ) ) → 4 distance_to_vertex Returns the distance along the geometry to a specified vertex. Syntax distance_to_vertex(geometry, vertex) Arguments • geometry - a linestring geometry • vertex - vertex index, starting from 0; if the value is negative, the selected vertex index will be its total count minus the absolute value Examples • distance_to_vertex(geometry:=geom_from_wkt('LineString(0 0, 10 0, 10 10)'),vertex:=1) → 10.0 14.3. List of functions 399 QGIS Desktop 3.16 User Guide end_point Returns the last node from a geometry. Syntax end_point(geometry) Arguments • geometry - geometry object Examples • geom_to_wkt(end_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → ‚Point (0 2)‘ Further reading: Extract specific vertices algorithm extend Extends the start and end of a linestring geometry by a specified amount. Lines are extended using the bearing of the first and last segment in the line. For a multilinestring, all the parts are extended. Distances are in the Spatial Reference System of this geometry. Syntax extend(geometry, start_distance, end_distance) Arguments • geometry - a (multi)linestring geometry • start_distance - distance to extend the start of the line • end_distance - distance to extend the end of the line. Examples • geom_to_wkt(extend(geom_from_wkt('LineString(0 0, 1 0, 1 1)'),1,2)) → ‚LineString (-1 0, 1 0, 1 3)‘ • geom_to_wkt(extend(geom_from_wkt('MultiLineString((0 0, 1 0, 1 1), (2 2, 0 2, 0 5))'),1,2)) → ‚MultiLineString ((-1 0, 1 0, 1 3),(3 2, 0 2, 0 7))‘ Further reading: Extend lines algorithm exterior_ring Returns a line string representing the exterior ring of a polygon geometry. If the geometry is not a polygon then the result will be NULL. Syntax exterior_ring(geometry) Arguments • geometry - a polygon geometry Examples • geom_to_wkt(exterior_ring(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2, 0.1, 0.1 0.1))'))) → ‚LineString (-1 -1, 4 0, 4 2, 0 2, -1 -1)‘ 400 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide extrude Returns an extruded version of the input (Multi-)Curve or (Multi-)Linestring geometry with an extension specified by x and y. Syntax extrude(geometry, x, y) Arguments • geometry - a polygon geometry • x - x extension, numeric value • y - y extension, numeric value Examples • geom_to_wkt(extrude(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), 1, 2)) → ‚Polygon ((1 2, 3 2, 4 3, 5 5, 4 4, 2 4, 1 2))‘ • geom_to_wkt(extrude(geom_from_wkt('MultiLineString((1 2, 3 2), (4 3, 8 3))'), 1, 2)) → ‚MultiPolygon (((1 2, 3 2, 4 4, 2 4, 1 2)),((4 3, 8 3, 9 5, 5 5, 4 3)))‘ flip_coordinates Returns a copy of the geometry with the x and y coordinates swapped. Useful for repairing geometries which have had their latitude and longitude values reversed. Syntax flip_coordinates(geometry) Arguments • geometry - a geometry Examples • geom_to_wkt(flip_coordinates(make_point(1, 2))) → ‚Point (2 1)‘ Further reading: Swap X and Y coordinates algorithm force_rhr Forces a geometry to respect the Right-Hand-Rule, in which the area that is bounded by a polygon is to the right of the boundary. In particular, the exterior ring is oriented in a clockwise direction and the interior rings in a counter-clockwise direction. Syntax force_rhr(geometry) Arguments • geometry - a geometry. Any non-polygon geometries are returned unchanged. Examples • geom_to_wkt(force_rhr(geometry:=geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'))) → ‚Polygon ((-1 -1, 0 2, 4 2, 4 0, -1 -1))‘ Further reading: Force right-hand-rule algorithm 14.3. List of functions 401 QGIS Desktop 3.16 User Guide geom_from_gml Returns a geometry from a GML representation of geometry. Syntax geom_from_gml(gml) Arguments • gml - GML representation of a geometry as a string Examples • geom_from_gml('4, 4 5,5 6,6') → a line geometry object geom_from_wkb Returns a geometry created from a Well-Known Binary (WKB) representation. Syntax geom_from_wkb(binary) Arguments • binary - Well-Known Binary (WKB) representation of a geometry (as a binary blob) Examples • geom_from_wkb( geom_to_wkb( make_point(4,5) ) ) → a point geometry object geom_from_wkt Returns a geometry created from a Well-Known Text (WKT) representation. Syntax geom_from_wkt(text) Arguments • text - Well-Known Text (WKT) representation of a geometry Examples • geom_from_wkt( 'POINT(4 5)' ) → a geometry object geom_to_wkb Returns the Well-Known Binary (WKB) representation of a geometry Syntax geom_to_wkb(geometry) Arguments • geometry - a geometry Examples • geom_to_wkb( $geometry ) → binary blob containing a geometry object 402 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide geom_to_wkt Returns the Well-Known Text (WKT) representation of the geometry without SRID metadata. Syntax geom_to_wkt(geometry, [precision=8]) [] marks optional arguments Arguments • geometry - a geometry • precision - numeric precision Examples • geom_to_wkt( make_point(6, 50) ) → ‚POINT(6 50)‘ • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))'))) → ‚POINT(0 0.66666667)‘ • geom_to_wkt(centroid(geom_from_wkt('Polygon((1 1, 0 0, -1 1, 1 1))')), 2) → ‚POINT(0 0.67)‘ $geometry Returns the geometry of the current feature. Can be used for processing with other functions. Syntax $geometry Examples • geom_to_wkt( $geometry ) → ‚POINT(6 50)‘ geometry Returns a feature’s geometry. Syntax geometry(feature) Arguments • feature - a feature object Examples • geom_to_wkt( geometry( get_feature( layer, attributeField, value ) ) ) → ‚POINT(6 50)‘ • intersects( $geometry, geometry( get_feature( layer, attributeField, value ) ) ) → true geometry_n Returns a specific geometry from a geometry collection, or NULL if the input geometry is not a collection. Syntax geometry_n(geometry, index) Arguments • geometry - geometry collection • index - index of geometry to return, where 1 is the first geometry in the collection Examples • geom_to_wkt(geometry_n(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))'),3)) → ‚Point (1 0)‘ 14.3. List of functions 403 QGIS Desktop 3.16 User Guide hausdorff_distance Returns the Hausdorff distance between two geometries. This is basically a measure of how similar or dissimilar 2 geometries are, with a lower distance indicating more similar geometries. The function can be executed with an optional densify fraction argument. If not specified, an approximation to the standard Hausdorff distance is used. This approximation is exact or close enough for a large subset of useful cases. Examples of these are: • computing distance between Linestrings that are roughly parallel to each other, and roughly equal in length. This occurs in matching linear networks. • Testing similarity of geometries. If the default approximate provided by this method is insufficient, specify the optional densify fraction argument. Specifying this argument performs a segment densification before computing the discrete Hausdorff distance. The parameter sets the fraction by which to densify each segment. Each segment will be split into a number of equal-length subsegments, whose fraction of the total length is closest to the given fraction. Decreasing the densify fraction parameter will make the distance returned approach the true Hausdorff distance for the geometries. Syntax hausdorff_distance(geometry1, geometry2, [densify_fraction]) [] marks optional arguments Arguments • geometry1 - a geometry • geometry2 - a geometry • densify_fraction - densify fraction amount Examples • hausdorff_distance( geometry1:= geom_from_wkt('LINESTRING (0 0, 2 1)'),geometry2:=geom_from_wkt('LINESTRING (0 0, 2 0)')) → 2 • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)')) → 14.142135623 • hausdorff_distance( geom_from_wkt('LINESTRING (130 0, 0 0, 0 150)'),geom_from_wkt('LINESTRING (10 10, 10 150, 130 10)'),0.5) → 70.0 inclination Returns the inclination measured from the zenith (0) to the nadir (180) on point_a to point_b. Syntax inclination(point_a, point_b) Arguments • point_a - point geometry • point_b - point geometry Examples • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 5 ) ) → 0.0 • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 0 ) ) → 90.0 • inclination( make_point( 5, 10, 0 ), make_point( 50, 100, 0 ) ) → 90.0 • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, -5 ) ) → 180.0 404 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide interior_ring_n Returns a specific interior ring from a polygon geometry, or NULL if the geometry is not a polygon. Syntax interior_ring_n(geometry, index) Arguments • geometry - polygon geometry • index - index of interior to return, where 1 is the first interior ring Examples • geom_to_wkt(interior_ring_n(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1),(-1 -1, 4 0, 4 2, 0 2, -1 -1))'),1)) → ‚LineString (-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))‘ intersection Returns a geometry that represents the shared portion of two geometries. Syntax intersection(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4)' ) ) ) → ‚LINESTRING(3 3, 4 4)‘ • geom_to_wkt( intersection( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'MULTIPOINT(3.5 3.5, 4 5)' ) ) ) → ‚POINT(3.5 3.5)‘ Further reading: Intersection algorithm intersects Tests whether a geometry intersects another. Returns true if the geometries spatially intersect (share any portion of space) and false if they do not. Syntax intersects(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • intersects( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true • intersects( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'POINT(5 5)' ) ) → false Further reading: overlay_intersects 14.3. List of functions 405 QGIS Desktop 3.16 User Guide intersects_bbox Tests whether a geometry’s bounding box overlaps another geometry’s bounding box. Returns true if the geometries spatially intersect the bounding box defined and false if they do not. Syntax intersects_bbox(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • intersects_bbox( geom_from_wkt( 'POINT(4 5)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true • intersects_bbox( geom_from_wkt( 'POINT(6 5)' ), geom_from_wkt( 'POLYGON((3 3, 4 4, 5 5, 3 3))' ) ) → false is_closed Returns true if a line string is closed (start and end points are coincident), or false if a line string is not closed. If the geometry is not a line string then the result will be NULL. Syntax is_closed(geometry) Arguments • geometry - a line string geometry Examples • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → false • is_closed(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → true is_empty Returns true if a geometry is empty (without coordinates), false if the geometry is not empty and NULL if there is no geometry. See also is_empty_or_null. Syntax is_empty(geometry) Arguments • geometry - a geometry Examples • is_empty(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → false • is_empty(geom_from_wkt('LINESTRING EMPTY')) → true • is_empty(geom_from_wkt('POINT(7 4)')) → false • is_empty(geom_from_wkt('POINT EMPTY')) → true 406 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide is_empty_or_null Returns true if a geometry is NULL or empty (without coordinates) or false otherwise. This function is like the expression ‚$geometry IS NULL or is_empty($geometry)‘ Syntax is_empty_or_null(geometry) Arguments • geometry - a geometry Examples • is_empty_or_null(NULL) → true • is_empty_or_null(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)')) → false • is_empty_or_null(geom_from_wkt('LINESTRING EMPTY')) → true • is_empty_or_null(geom_from_wkt('POINT(7 4)')) → false • is_empty_or_null(geom_from_wkt('POINT EMPTY')) → true is_multipart Returns true if the geometry is of Multi type. Syntax is_multipart(geometry) Arguments • geometry - a geometry Examples • is_multipart(geom_from_wkt('MULTIPOINT ((0 0),(1 1),(2 2))')) → true • is_multipart(geom_from_wkt('POINT (0 0)')) → false is_valid Returns true if a geometry is valid; if it is well-formed in 2D according to the OGC rules. Syntax is_valid(geometry) Arguments • geometry - a geometry Examples • is_valid(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2, 0 0)')) → true • is_valid(geom_from_wkt('LINESTRING(0 0)')) → false $length Returns the length of a linestring. If you need the length of a border of a polygon, use $perimeter instead. The length calculated by this function respects both the current project’s ellipsoid setting and distance unit settings. For example, if an ellipsoid has been set for the project then the calculated length will be ellipsoidal, and if no ellipsoid is set then the calculated length will be planimetric. Syntax $length Examples • $length → 42.4711 14.3. List of functions 407 QGIS Desktop 3.16 User Guide length Returns the number of characters in a string or the length of a geometry linestring. String variant Returns the number of characters in a string. Syntax length(string) Arguments • string - string to count length of Examples • length('hello') → 5 Geometry variant Calculate the length of a geometry line object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned length will match the units for the SRS. This differs from the calculations performed by the $length function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings. Syntax length(geometry) Arguments • geometry - line geometry object Examples • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0 line_interpolate_angle Returns the angle parallel to the geometry at a specified distance along a linestring geometry. Angles are in degrees clockwise from north. Syntax line_interpolate_angle(geometry, distance) Arguments • geometry - a linestring geometry • distance - distance along line to interpolate angle at Examples • line_interpolate_angle(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),distance:=5) → 90.0 line_interpolate_point Returns the point interpolated by a specified distance along a linestring geometry. Syntax line_interpolate_point(geometry, distance) Arguments • geometry - a linestring geometry • distance - distance along line to interpolate Examples • geom_to_wkt(line_interpolate_point(geometry:=geom_from_wkt('LineString( 0, 10 0)'),distance:=5)) → ‚Point (5 0)‘ 408 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Further reading: Interpolate point on line algorithm line_locate_point Returns the distance along a linestring corresponding to the closest position the linestring comes to a specified point geometry. Syntax line_locate_point(geometry, point) Arguments • geometry - a linestring geometry • point - point geometry to locate closest position on linestring to Examples • line_locate_point(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),point:=geom_from_wkt('Point(5 0)')) → 5.0 line_merge Returns a LineString or MultiLineString geometry, where any connected LineStrings from the input geometry have been merged into a single linestring. This function will return NULL if passed a geometry which is not a LineString/MultiLineString. Syntax line_merge(geometry) Arguments • geometry - a LineString/MultiLineString geometry Examples • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(1 1, 2 2))'))) → ‚LineString(0 0,1 1,2 2)‘ • geom_to_wkt(line_merge(geom_from_wkt('MULTILINESTRING((0 0, 1 1),(11 1, 21 2))'))) → ‚MultiLineString((0 0, 1 1),(11 1, 21 2)‘ line_substring Returns the portion of a line (or curve) geometry which falls between the specified start and end distances (measured from the beginning of the line). Z and M values are linearly interpolated from existing values. Syntax line_substring(geometry, start_distance, end_distance) Arguments • geometry - a linestring or curve geometry • start_distance - distance to start of substring • end_distance - distance to end of substring Examples • geom_to_wkt(line_substring(geometry:=geom_from_wkt('LineString(0 0, 10 0)'),start_distance:=2,end_distance=6)) → ‚LineString (2 0,6 0)‘ Further reading: Line substring algorithm 14.3. List of functions 409 QGIS Desktop 3.16 User Guide m Returns the m value of a point geometry. Syntax m(geometry) Arguments • geometry - a point geometry Examples • m( geom_from_wkt( 'POINTM(2 5 4)' ) ) → 4 m_max Returns the maximum m (measure) value of a geometry. Syntax m_max(geometry) Arguments • geometry - a geometry containing m values Examples • m_max( make_point_m( 0,0,1 ) ) → 1 • m_max(make_line( make_point_m( 0,0,1 ), make_point_m( -1, -1,2 ), make_point_m( -2,-2,0 ) ) ) → 2 m_min Returns the minimum m (measure) value of a geometry. Syntax m_min(geometry) Arguments • geometry - a geometry containing m values Examples • m_min( make_point_m( 0,0,1 ) ) → 1 • m_min(make_line( make_point_m( 0,0,1 ), make_point_m( -1, -1,2 ), make_point_m( -2,-2,0 ) ) ) → 0 main_angle Returns the main angle of a geometry (clockwise, in degrees from North), which represents the angle of the oriented minimal bounding rectangle which completely covers the geometry. Syntax main_angle(geometry) Arguments • geometry - a geometry Examples • main_angle(geom_from_wkt('Polygon ((321577 129614, 321581 129618, 321585 129615, 321581 129610, 321577 129614))')) → 38.66 410 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide make_circle Creates a circular polygon. Syntax make_circle(center, radius, [segments=36]) [] marks optional arguments Arguments • center - center point of the circle • radius - radius of the circle • segments - optional argument for polygon segmentation. By default this value is 36 Examples • geom_to_wkt(make_circle(make_point(10,10), 5, 4)) → ‚Polygon ((10 15, 15 10, 10 5, 5 10, 10 15))‘ • geom_to_wkt(make_circle(make_point(10,10,5), 5, 4)) → ‚PolygonZ ((10 15 5, 15 10 5, 10 5 5, 5 10 5, 10 15 5))‘ • geom_to_wkt(make_circle(make_point(10,10,5,30), 5, 4)) → ‚PolygonZM ((10 15 5 30, 15 10 5 30, 10 5 5 30, 5 10 5 30, 10 15 5 30))‘ make_ellipse Creates an elliptical polygon. Syntax make_ellipse(center, semi_major_axis, semi_minor_axis, azimuth, [segments=36]) [] marks optional arguments Arguments • center - center point of the ellipse • semi_major_axis - semi-major axis of the ellipse • semi_minor_axis - semi-minor axis of the ellipse • azimuth - orientation of the ellipse • segments - optional argument for polygon segmentation. By default this value is 36 Examples • geom_to_wkt(make_ellipse(make_point(10,10), 5, 2, 90, 4)) → ‚Polygon ((15 10, 10 8, 5 10, 10 12, 15 10))‘ • geom_to_wkt(make_ellipse(make_point(10,10,5), 5, 2, 90, 4)) → ‚PolygonZ ((15 10 5, 10 8 5, 5 10 5, 10 12 5, 15 10 5))‘ • geom_to_wkt(make_ellipse(make_point(10,10,5,30), 5, 2, 90, 4)) → ‚PolygonZM ((15 10 5 30, 10 8 5 30, 5 10 5 30, 10 12 5 30, 15 10 5 30))‘ make_line Creates a line geometry from a series of point geometries. List of arguments variant Line vertices are specified as separate arguments to the function. 14.3. List of functions 411 QGIS Desktop 3.16 User Guide Syntax make_line(point1, point2, …) Arguments • point - a point geometry (or array of points) Examples • geom_to_wkt(make_line(make_point(2,4),make_point(3,5))) → ‚LineString (2 4, 3 5)‘ • geom_to_wkt(make_line(make_point(2,4),make_point(3,5), make_point(9,7))) → ‚LineString (2 4, 3 5, 9 7)‘ Array variant Line vertices are specified as an array of points. Syntax make_line(array) Arguments • array - array of points Examples • geom_to_wkt(make_line(array(make_point(2,4),make_point(3, 5),make_point(9,7)))) → ‚LineString (2 4, 3 5, 9 7)‘ make_point Creates a point geometry from an x and y (and optional z and m) value. Syntax make_point(x, y, [z], [m]) [] marks optional arguments Arguments • x - x coordinate of point • y - y coordinate of point • z - optional z coordinate of point • m - optional m value of point Examples • geom_to_wkt(make_point(2,4)) → ‚Point (2 4)‘ • geom_to_wkt(make_point(2,4,6)) → ‚PointZ (2 4 6)‘ • geom_to_wkt(make_point(2,4,6,8)) → ‚PointZM (2 4 6 8)‘ make_point_m Creates a point geometry from an x, y coordinate and m value. Syntax make_point_m(x, y, m) Arguments • x - x coordinate of point • y - y coordinate of point • m - m value of point Examples • geom_to_wkt(make_point_m(2,4,6)) → ‚PointM (2 4 6)‘ 412 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide make_polygon Creates a polygon geometry from an outer ring and optional series of inner ring geometries. Syntax make_polygon(outerRing, [innerRing1], [innerRing2], …) [] marks optional arguments Arguments • outerRing - closed line geometry for polygon’s outer ring • innerRing - optional closed line geometry for inner ring Examples • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'))) → ‚Polygon ((0 0, 0 1, 1 1, 1 0, 0 0))‘ • geom_to_wkt(make_polygon(geom_from_wkt('LINESTRING( 0 0, 0 1, 1 1, 1 0, 0 0 )'),geom_from_wkt('LINESTRING( 0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1 )'), geom_from_wkt('LINESTRING( 0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8 )'))) → ‚Polygon ((0 0, 0 1, 1 1, 1 0, 0 0),(0.1 0.1, 0.1 0.2, 0.2 0.2, 0.2 0.1, 0.1 0.1),(0.8 0.8, 0.8 0.9, 0.9 0.9, 0.9 0.8, 0.8 0.8))‘ make_rectangle_3points Creates a rectangle from 3 points. Syntax make_rectangle_3points(point1, point2, point3, [option=0]) [] marks optional arguments Arguments • point1 - First point. • point2 - Second point. • point3 - Third point. • option - An optional argument to construct the rectangle. By default this value is 0. Value can be 0 (distance) or 1 (projected). Option distance: Second distance is equal to the distance between 2nd and 3rd point. Option projected: Second distance is equal to the distance of the perpendicular projection of the 3rd point on the segment or its extension. Examples • geom_to_wkt(make_rectangle(make_point(0, 0), make_point(0, 5), make_point(5, 5), 0))) → ‚Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))‘ • geom_to_wkt(make_rectangle(make_point(0, 0), make_point(0, 5), make_point(5, 3), 1))) → ‚Polygon ((0 0, 0 5, 5 5, 5 0, 0 0))‘ 14.3. List of functions 413 QGIS Desktop 3.16 User Guide make_regular_polygon Creates a regular polygon. Syntax make_regular_polygon(center, radius, number_sides, [circle=0]) [] marks optional arguments Arguments • center - center of the regular polygon • radius - second point. The first if the regular polygon is inscribed. The midpoint of the first side if the regular polygon is circumscribed. • number_sides - Number of sides/edges of the regular polygon • circle - Optional argument to construct the regular polygon. By default this value is 0. Value can be 0 (inscribed) or 1 (circumscribed) Examples • geom_to_wkt(make_regular_polygon(make_point(0,0), make_point(0,5), 5)) → ‚Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 - 4.05, -4.76 1.55, 0 5))‘ • geom_to_wkt(make_regular_polygon(make_point(0,0), project(make_point(0,0), 4.0451, radians(36)), 5)) → ‚Polygon ((0 5, 4.76 1.55, 2.94 -4.05, -2.94 -4.05, -4.76 1.55, 0 5))‘ make_square Creates a square from a diagonal. Syntax make_square(point1, point2) Arguments • point1 - First point of the diagonal • point2 - Last point of the diagonal Examples • geom_to_wkt(make_square( make_point(0,0), make_point(5, 5))) → ‚Polygon ((0 0, -0 5, 5 5, 5 0, 0 0))‘ • geom_to_wkt(make_square( make_point(5,0), make_point(5, 5))) → ‚Polygon ((5 0, 2.5 2.5, 5 5, 7.5 2.5, 5 0))‘ make_triangle Creates a triangle polygon. Syntax make_triangle(point1, point2, point3) Arguments • point1 - first point of the triangle • point2 - second point of the triangle • point3 - third point of the triangle Examples • geom_to_wkt(make_triangle(make_point(0,0), make_point(5, 5), make_point(0,10))) → ‚Triangle ((0 0, 5 5, 0 10, 0 0))‘ • geom_to_wkt(boundary(make_triangle(make_point(0,0), make_point(5,5), make_point(0,10)))) → ‚LineString (0 0, 5 5, 0 10, 0 0)‘ 414 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide minimal_circle Returns the minimal enclosing circle of a geometry. It represents the minimum circle that encloses all geometries within the set. Syntax minimal_circle(geometry, [segments=36]) [] marks optional arguments Arguments • geometry - a geometry • segments - optional argument for polygon segmentation. By default this value is 36 Examples • geom_to_wkt( minimal_circle( geom_from_wkt( 'LINESTRING(0 5, 0 -5, 2 1)' ), 4 ) ) → ‚Polygon ((0 5, 5 -0, -0 -5, -5 0, 0 5))‘ • geom_to_wkt( minimal_circle( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ), 4 ) ) → ‚Polygon ((3 4, 3 2, 1 2, 1 4, 3 4))‘ Further reading: Minimum enclosing circles algorithm nodes_to_points Returns a multipoint geometry consisting of every node in the input geometry. Syntax nodes_to_points(geometry, [ignore_closing_nodes=false]) [] marks optional arguments Arguments • geometry - geometry object • ignore_closing_nodes - optional argument specifying whether to include duplicate nodes which close lines or polygons rings. Defaults to false, set to true to avoid including these duplicate nodes in the output collection. Examples • geom_to_wkt(nodes_to_points(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → ‚MultiPoint ((0 0),(1 1),(2 2))‘ • geom_to_wkt(nodes_to_points(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1))'),true)) → ‚MultiPoint ((-1 -1),(4 0),(4 2),(0 2))‘ Further reading: Extract vertices algorithm num_geometries Returns the number of geometries in a geometry collection, or NULL if the input geometry is not a collection. Syntax num_geometries(geometry) Arguments • geometry - geometry collection Examples • num_geometries(geom_from_wkt('GEOMETRYCOLLECTION(POINT(0 1), POINT(0 0), POINT(1 0), POINT(1 1))')) → 4 14.3. List of functions 415 QGIS Desktop 3.16 User Guide num_interior_rings Returns the number of interior rings in a polygon or geometry collection, or NULL if the input geometry is not a polygon or collection. Syntax num_interior_rings(geometry) Arguments • geometry - input geometry Examples • num_interior_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0. 1))')) → 1 num_points Returns the number of vertices in a geometry. Syntax num_points(geometry) Arguments • geometry - a geometry Examples • num_points($geometry) → number of vertices in the current feature’s geometry num_rings Returns the number of rings (including exterior rings) in a polygon or geometry collection, or NULL if the input geometry is not a polygon or collection. Syntax num_rings(geometry) Arguments • geometry - input geometry Examples • num_rings(geom_from_wkt('POLYGON((-1 -1, 4 0, 4 2, 0 2, -1 -1),(-0.1 -0.1, 0.4 0, 0.4 0.2, 0 0.2, -0.1 -0.1))')) → 2 offset_curve Returns a geometry formed by offsetting a linestring geometry to the side. Distances are in the Spatial Reference System of this geometry. 416 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax offset_curve(geometry, distance, [segments=8], [join=1], [miter_limit=2.0]) [] marks optional arguments Arguments • geometry - a (multi)linestring geometry • distance - offset distance. Positive values will be buffered to the left of lines, negative values to the right • segments - number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother line with more nodes. • join - join style for corners, where 1 = round, 2 = miter and 3 = bevel • miter_limit - limit on the miter ratio used for very sharp corners (when using miter joins only) Examples • offset_curve($geometry, 10.5) → line offset to the left by 10.5 units • offset_curve($geometry, -10.5) → line offset to the right by 10.5 units • offset_curve($geometry, 10.5, segments=16, join=1) → line offset to the left by 10.5 units, using more segments to result in a smoother curve • offset_curve($geometry, 10.5, join=3) → line offset to the left by 10.5 units, using a beveled join Further reading: Offset lines algorithm order_parts Orders the parts of a MultiGeometry by a given criteria Syntax order_parts(geometry, orderby, ascending) Arguments • geometry - a multi-type geometry • orderby - an expression string defining the order criteria • ascending - boolean, True for ascending, False for descending Examples • geom_to_wkt(order_parts(geom_from_wkt('MultiPolygon (((1 1, 5 1, 5 5, 1 5, 1 1)),((1 1, 9 1, 9 9, 1 9, 1 1)))'), 'area($geometry)', False)) → ‚MultiPolygon (((1 1, 9 1, 9 9, 1 9, 1 1)),((1 1, 5 1, 5 5, 1 5, 1 1)))‘ • geom_to_wkt(order_parts(geom_from_wkt('LineString(1 2, 3 2, 4 3)'), '1', True)) → ‚LineString(1 2, 3 2, 4 3)‘ oriented_bbox Returns a geometry which represents the minimal oriented bounding box of an input geometry. Syntax oriented_bbox(geometry) Arguments • geometry - a geometry Examples • geom_to_wkt( oriented_bbox( geom_from_wkt( 'MULTIPOINT(1 2, 3 4, 3 2)' ) ) ) → ‚Polygon ((3 2, 3 4, 1 4, 1 2, 3 2))‘ Further reading: Oriented minimum bounding box algorithm 14.3. List of functions 417 QGIS Desktop 3.16 User Guide overlaps Tests whether a geometry overlaps another. Returns true if the geometries share space, are of the same dimension, but are not completely contained by each other. Syntax overlaps(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • overlaps( geom_from_wkt( 'LINESTRING(3 5, 4 4, 5 5, 5 3)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true • overlaps( geom_from_wkt( 'LINESTRING(0 0, 1 1)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → false overlay_contains Returns whether the current feature spatially contains at least one feature from a target layer, or an array of expression-based results for the features in the target layer contained in the current feature. Read more on the underlying GEOS „Contains“ predicate, as described in PostGIS ST_Contains function. Syntax overlay_contains(layer, [expression], [filter], [limit], [cache=false]) [] marks optional arguments Arguments • layer - the layer whose overlay is checked • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match. • filter - an optional expression to filter the target features to check. If not set, all the features will be checked. • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned. • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider) Examples • overlay_contains('regions') → true if the current feature spatially contains a region • overlay_contains('regions', filter:= population > 10000) → true if the current feature spatially contains a region with a population greater than 10000 • overlay_contains('regions', name) → an array of names, for the regions contained in the current feature • array_to_string(overlay_contains('regions', name)) → a string as a comma separated list of names, for the regions contained in the current feature • array_length(overlay_contains('regions', name)) → the number of regions contained in the current feature • array_sort(overlay_contains(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions contained in the current feature and with a population greater than 10000 • overlay_contains(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions contained in the current feature Further reading: contains, array manipulation, Select by location algorithm 418 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide overlay_crosses Returns whether the current feature spatially crosses at least one feature from a target layer, or an array of expression-based results for the features in the target layer crossed by the current feature. Read more on the underlying GEOS „Crosses“ predicate, as described in PostGIS ST_Crosses function. Syntax overlay_crosses(layer, [expression], [filter], [limit], [cache=false]) [] marks optional arguments Arguments • layer - the layer whose overlay is checked • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match. • filter - an optional expression to filter the target features to check. If not set, all the features will be checked. • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned. • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider) Examples • overlay_crosses('regions') → true if the current feature spatially crosses a region • overlay_crosses('regions', filter:= population > 10000) → true if the current feature spatially crosses a region with a population greater than 10000 • overlay_crosses('regions', name) → an array of names, for the regions crossed by the current feature • array_to_string(overlay_crosses('regions', name)) → a string as a comma separated list of names, for the regions crossed by the current feature • array_sort(overlay_crosses(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions crossed by the current feature and with a population greater than 10000 • overlay_crosses(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions crossed by the current feature Further reading: crosses, array manipulation, Select by location algorithm overlay_disjoint Returns whether the current feature is spatially disjoint from all the features of a target layer, or an array of expression-based results for the features in the target layer that are disjoint from the current feature. Read more on the underlying GEOS „Disjoint“ predicate, as described in PostGIS ST_Disjoint function. 14.3. List of functions 419 QGIS Desktop 3.16 User Guide Syntax overlay_disjoint(layer, [expression], [filter], [limit], [cache=false]) [] marks optional arguments Arguments • layer - the layer whose overlay is checked • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match. • filter - an optional expression to filter the target features to check. If not set, all the features will be checked. • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned. • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider) Examples • overlay_disjoint('regions') → true if the current feature is spatially disjoint from all the regions • overlay_disjoint('regions', filter:= population > 10000) → true if the current feature is spatially disjoint from all the regions with a population greater than 10000 • overlay_disjoint('regions', name) → an array of names, for the regions spatially disjoint from the current feature • array_to_string(overlay_disjoint('regions', name)) → a string as a comma separated list of names, for the regions spatially disjoint from the current feature • array_sort(overlay_disjoint(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions spatially disjoint from the current feature and with a population greater than 10000 • overlay_disjoint(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions spatially disjoint from the current feature Further reading: disjoint, array manipulation, Select by location algorithm overlay_equals Returns whether the current feature spatially equals to at least one feature from a target layer, or an array of expression-based results for the features in the target layer that are spatially equal to the current feature. Read more on the underlying GEOS „Equals“ predicate, as described in PostGIS ST_Equals function. 420 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax overlay_equals(layer, [expression], [filter], [limit], [cache=false]) [] marks optional arguments Arguments • layer - the layer whose overlay is checked • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match. • filter - an optional expression to filter the target features to check. If not set, all the features will be checked. • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned. • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider) Examples • overlay_equals('regions') → true if the current feature is spatially equal to a region • overlay_equals('regions', filter:= population > 10000) → true if the current feature is spatially equal to a region with a population greater than 10000 • overlay_equals('regions', name) → an array of names, for the regions spatially equal to the current feature • array_to_string(overlay_equals('regions', name)) → a string as a comma separated list of names, for the regions spatially equal to the current feature • array_sort(overlay_equals(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions spatially equal to the current feature and with a population greater than 10000 • overlay_equals(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions spatially equal to the current feature Further reading: array manipulation, Select by location algorithm overlay_intersects Returns whether the current feature spatially intersects at least one feature from a target layer, or an array of expression-based results for the features in the target layer intersected by the current feature. Read more on the underlying GEOS „Intersects“ predicate, as described in PostGIS ST_Intersects function. 14.3. List of functions 421 QGIS Desktop 3.16 User Guide Syntax overlay_intersects(layer, [expression], [filter], [limit], [cache=false]) [] marks optional arguments Arguments • layer - the layer whose overlay is checked • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match. • filter - an optional expression to filter the target features to check. If not set, all the features will be checked. • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned. • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider) Examples • overlay_intersects('regions') → true if the current feature spatially intersects a region • overlay_intersects('regions', filter:= population > 10000) → true if the current feature spatially intersects a region with a population greater than 10000 • overlay_intersects('regions', name) → an array of names, for the regions intersected by the current feature • array_to_string(overlay_intersects('regions', name)) → a string as a comma separated list of names, for the regions intersected by the current feature • array_sort(overlay_intersects(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions intersected by the current feature and with a population greater than 10000 • overlay_intersects(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions intersected by the current feature Further reading: intersects, array manipulation, Select by location algorithm overlay_nearest Returns whether the current feature has feature(s) from a target layer within a given distance, or an array of expression-based results for the features in the target layer within a distance from the current feature. Note: This function can be slow and consume a lot of memory for large layers. 422 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax overlay_nearest(layer, [expression], [filter], [limit=1], [max_distance], [cache=false]) [] marks optional arguments Arguments • layer - the target layer • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match. • filter - an optional expression to filter the target features to check. If not set, all the features in the target layer will be used. • limit - an optional integer to limit the number of matching features. If not set, only the nearest feature will be returned. If set to -1, returns all the matching features. • max_distance - an optional distance to limit the search of matching features. If not set, all the features in the target layer will be used. • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider) Examples • overlay_nearest('airports') → true if the „airports“ layer has at least one feature • overlay_nearest('airports', max_distance:= 5000) → true if there is an airport within a distance of 5000 map units from the current feature • overlay_nearest('airports', name) → the name of the closest airport to the current feature, as an array • array_to_string(overlay_nearest('airports', name)) → the name of the closest airport to the current feature, as a string • overlay_nearest(layer:='airports', expression:= name, max_distance:= 5000) → the name of the closest airport within a distance of 5000 map units from the current feature, as an array • overlay_nearest(layer:='airports', expression:="name", filter:= "Use"='Civilian', limit:=3) → an array of names, for up to the three closest civilian airports ordered by distance • overlay_nearest(layer:='airports', expression:="name", limit:= -1, max_distance:= 5000) → an array of names, for all the airports within a distance of 5000 map units from the current feature, ordered by distance Further reading: array manipulation, Join attributes by nearest algorithm overlay_touches Returns whether the current feature spatially touches at least one feature from a target layer, or an array of expression-based results for the features in the target layer touched by the current feature. Read more on the underlying GEOS „Touches“ predicate, as described in PostGIS ST_Touches function. 14.3. List of functions 423 QGIS Desktop 3.16 User Guide Syntax overlay_touches(layer, [expression], [filter], [limit], [cache=false]) [] marks optional arguments Arguments • layer - the layer whose overlay is checked • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match. • filter - an optional expression to filter the target features to check. If not set, all the features will be checked. • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned. • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider) Examples • overlay_touches('regions') → true if the current feature spatially touches a region • overlay_touches('regions', filter:= population > 10000) → true if the current feature spatially touches a region with a population greater than 10000 • overlay_touches('regions', name) → an array of names, for the regions touched by the current feature • string_to_array(overlay_touches('regions', name)) → a string as a comma separated list of names, for the regions touched by the current feature • array_sort(overlay_touches(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions touched by the current feature and with a population greater than 10000 • overlay_touches(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions touched by the current feature Further reading: touches, array manipulation, Select by location algorithm overlay_within Returns whether the current feature is spatially within at least one feature from a target layer, or an array of expression-based results for the features in the target layer that contain the current feature. Read more on the underlying GEOS „Within“ predicate, as described in PostGIS ST_Within function. 424 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax overlay_within(layer, [expression], [filter], [limit], [cache=false]) [] marks optional arguments Arguments • layer - the layer whose overlay is checked • expression - an optional expression to evaluate on the features from the target layer. If not set, the function will just return a boolean indicating whether there is at least one match. • filter - an optional expression to filter the target features to check. If not set, all the features will be checked. • limit - an optional integer to limit the number of matching features. If not set, all the matching features will be returned. • cache - set this to true to build a local spatial index (most of the time, this is unwanted, unless you are working with a particularly slow data provider) Examples • overlay_within('regions') → true if the current feature is spatially within a region • overlay_within('regions', filter:= population > 10000) → true if the current feature is spatially within a region with a population greater than 10000 • overlay_within('regions', name) → an array of names, for the regions containing the current feature • array_to_string(overlay_within('regions', name)) → a string as a comma separated list of names, for the regions containing the current feature • array_sort(overlay_within(layer:='regions', expression:="name", filter:= population > 10000)) → an ordered array of names, for the regions containing the current feature and with a population greater than 10000 • overlay_within(layer:='regions', expression:= geom_to_wkt($geometry), limit:=2) → an array of geometries (in WKT), for up to two regions containing the current feature Further reading: within, array manipulation, Select by location algorithm $perimeter Returns the perimeter length of the current feature. The perimeter calculated by this function respects both the current project’s ellipsoid setting and distance unit settings. For example, if an ellipsoid has been set for the project then the calculated perimeter will be ellipsoidal, and if no ellipsoid is set then the calculated perimeter will be planimetric. Syntax $perimeter Examples • $perimeter → 42 perimeter Returns the perimeter of a geometry polygon object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned perimeter will match the units for the SRS. This differs from the calculations performed by the $perimeter function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings. 14.3. List of functions 425 QGIS Desktop 3.16 User Guide Syntax perimeter(geometry) Arguments • geometry - polygon geometry object Examples • perimeter(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))')) → 12.0 point_n Returns a specific node from a geometry. Syntax point_n(geometry, index) Arguments • geometry - geometry object • index - index of node to return, where 1 is the first node; if the value is negative, the selected vertex index will be its total count minus the absolute value Examples • geom_to_wkt(point_n(geom_from_wkt('POLYGON((0 0, 4 0, 4 2, 0 2, 0 0))'),2)) → ‚Point (4 0)‘ Further reading: Extract specific vertices algorithm point_on_surface Returns a point guaranteed to lie on the surface of a geometry. Syntax point_on_surface(geometry) Arguments • geometry - a geometry Examples • point_on_surface($geometry) → a point geometry Further reading: Point on Surface algorithm pole_of_inaccessibility Calculates the approximate pole of inaccessibility for a surface, which is the most distant internal point from the boundary of the surface. This function uses the ‚polylabel‘ algorithm (Vladimir Agafonkin, 2016), which is an iterative approach guaranteed to find the true pole of inaccessibility within a specified tolerance. More precise tolerances require more iterations and will take longer to calculate. Syntax pole_of_inaccessibility(geometry, tolerance) Arguments • geometry - a geometry • tolerance - maximum distance between the returned point and the true pole location Examples • geom_to_wkt(pole_of_inaccessibility( geom_from_wkt('POLYGON((0 1, 0 9, 3 10, 3 3, 10 3, 10 1, 0 1))'), 0.1))' → ‚Point(1.546875 2.546875)‘ 426 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Further reading: Pole of inaccessibility algorithm project Returns a point projected from a start point using a distance, a bearing (azimuth) and an elevation in radians. Syntax project(point, distance, azimuth, [elevation]) [] marks optional arguments Arguments • point - start point • distance - distance to project • azimuth - azimuth in radians clockwise, where 0 corresponds to north • elevation - angle of inclination in radians Examples • geom_to_wkt(project(make_point(1, 2), 3, radians(270))) → ‚Point(-2, 2)‘ Further reading: Project points (Cartesian) algorithm relate Tests the Dimensional Extended 9 Intersection Model (DE-9IM) representation of the relationship between two geometries. Relationship variant Returns the Dimensional Extended 9 Intersection Model (DE-9IM) representation of the relationship between two geometries. Syntax relate(geometry, geometry) Arguments • geometry - a geometry • geometry - a geometry Examples • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ) ) → ‚FF1F00102‘ Pattern match variant Tests whether the DE-9IM relationship between two geometries matches a specified pattern. Syntax relate(geometry, geometry, pattern) Arguments • geometry - a geometry • geometry - a geometry • pattern - DE-9IM pattern to match Examples • relate( geom_from_wkt( 'LINESTRING(40 40,120 120)' ), geom_from_wkt( 'LINESTRING(40 40,60 120)' ), '**1F001**' ) → True 14.3. List of functions 427 QGIS Desktop 3.16 User Guide reverse Reverses the direction of a line string by reversing the order of its vertices. Syntax reverse(geometry) Arguments • geometry - a geometry Examples • geom_to_wkt(reverse(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → ‚LINESTRING(2 2, 1 1, 0 0)‘ Further reading: Reverse line direction algorithm rotate Returns a rotated version of a geometry. Calculations are in the Spatial Reference System of this geometry. Syntax rotate(geometry, rotation, [center]) [] marks optional arguments Arguments • geometry - a geometry • rotation - clockwise rotation in degrees • center - rotation center point. If not specified, the center of the geometry’s bounding box is used. Examples • rotate($geometry, 45, make_point(4, 5)) → geometry rotated 45 degrees clockwise around the (4, 5) point • rotate($geometry, 45) → geometry rotated 45 degrees clockwise around the center of its bounding box segments_to_lines Returns a multi line geometry consisting of a line for every segment in the input geometry. Syntax segments_to_lines(geometry) Arguments • geometry - geometry object Examples • geom_to_wkt(segments_to_lines(geom_from_wkt('LINESTRING(0 0, 1 1, 2 2)'))) → ‚MultiLineString ((0 0, 1 1),(1 1, 2 2))‘ Further reading: Explode lines algorithm 428 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide shortest_line Returns the shortest line joining geometry1 to geometry2. The resultant line will start at geometry1 and end at geometry2. Syntax shortest_line(geometry1, geometry2) Arguments • geometry1 - geometry to find shortest line from • geometry2 - geometry to find shortest line to Examples • geom_to_wkt(shortest_line(geom_from_wkt('LINESTRING (20 80, 98 190, 110 180, 50 75 )'),geom_from_wkt('POINT(100 100)'))) → ‚LineString(73.0769 115.384, 100 100)‘ simplify Simplifies a geometry by removing nodes using a distance based threshold (ie, the Douglas Peucker algorithm). The algorithm preserves large deviations in geometries and reduces the number of vertices in nearly straight segments. Syntax simplify(geometry, tolerance) Arguments • geometry - a geometry • tolerance - maximum deviation from straight segments for points to be removed Examples • geom_to_wkt(simplify(geometry:=geom_from_wkt('LineString(0 0, 5 0.1, 10 0)'),tolerance:=5)) → ‚LineString(0 0, 10 0)‘ Further reading: Simplify algorithm simplify_vw Simplifies a geometry by removing nodes using an area based threshold (ie, the Visvalingam-Whyatt algorithm). The algorithm removes vertices which create small areas in geometries, e.g., narrow spikes or nearly straight segments. Syntax simplify_vw(geometry, tolerance) Arguments • geometry - a geometry • tolerance - a measure of the maximum area created by a node for the node to be removed Examples • geom_to_wkt(simplify_vw(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5.01 10, 5.02 0, 10 0)'),tolerance:=5)) → ‚LineString(0 0, 10 0)‘ Further reading: Simplify algorithm 14.3. List of functions 429 QGIS Desktop 3.16 User Guide single_sided_buffer Returns a geometry formed by buffering out just one side of a linestring geometry. Distances are in the Spatial Reference System of this geometry. Syntax single_sided_buffer(geometry, distance, [segments=8], [join=1], [miter_limit=2.0]) [] marks optional arguments Arguments • geometry - a (multi)linestring geometry • distance - buffer distance. Positive values will be buffered to the left of lines, negative values to the right • segments - number of segments to use to represent a quarter circle when a round join style is used. A larger number results in a smoother buffer with more nodes. • join - join style for corners, where 1 = round, 2 = miter and 3 = bevel • miter_limit - limit on the miter ratio used for very sharp corners (when using miter joins only) Examples • single_sided_buffer($geometry, 10.5) → line buffered to the left by 10.5 units • single_sided_buffer($geometry, -10.5) → line buffered to the right by 10.5 units • single_sided_buffer($geometry, 10.5, segments=16, join=1) → line buffered to the left by 10.5 units, using more segments to result in a smoother buffer • single_sided_buffer($geometry, 10.5, join=3) → line buffered to the left by 10.5 units, using a beveled join Further reading: Single sided buffer algorithm smooth Smooths a geometry by adding extra nodes which round off corners in the geometry. If input geometries contain Z or M values, these will also be smoothed and the output geometry will retain the same dimensionality as the input geometry. Syntax smooth(geometry, [iterations=1], [offset=0.25], [min_length=-1], [max_angle=180]) [] marks optional arguments Arguments • geometry - a geometry • iterations - number of smoothing iterations to apply. Larger numbers result in smoother but more complex geometries. • offset - value between 0 and 0.5 which controls how tightly the smoothed geometry follow the original geometry. Smaller values result in a tighter smoothing, larger values result in looser smoothing. • min_length - minimum length of segments to apply smoothing to. This parameter can be used to avoid placing excessive additional nodes in shorter segments of the geometry. • max_angle - maximum angle at node for smoothing to be applied (0-180). By lowering the maximum angle intentionally sharp corners in the geometry can be preserved. For instance, a value of 80 degrees will retain right angles in the geometry. Examples • geom_to_wkt(smooth(geometry:=geom_from_wkt('LineString(0 0, 5 0, 5 5)'),iterations:=1,offset:=0.2,min_length:=-1, max_angle:=180)) → ‚LineString (0 0, 4 0, 5 1, 5 5)‘ 430 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Further reading: Smooth algorithm start_point Returns the first node from a geometry. Syntax start_point(geometry) Arguments • geometry - geometry object Examples • geom_to_wkt(start_point(geom_from_wkt('LINESTRING(4 0, 4 2, 0 2)'))) → ‚Point (4 0)‘ Further reading: Extract specific vertices algorithm sym_difference Returns a geometry that represents the portions of two geometries that do not intersect. Syntax sym_difference(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • geom_to_wkt( sym_difference( geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ), geom_from_wkt( 'LINESTRING(3 3, 8 8)' ) ) ) → ‚LINESTRING(5 5, 8 8)‘ Further reading: Symmetrical difference algorithm tapered_buffer Creates a buffer along a line geometry where the buffer diameter varies evenly over the length of the line. Syntax tapered_buffer(geometry, start_width, end_width, [segments=8]) [] marks optional arguments Arguments • geometry - input geometry. Must be a (multi)line geometry. • start_width - width of buffer at start of line, • end_width - width of buffer at end of line. • segments - number of segments to approximate quarter-circle curves in the buffer. Examples • tapered_buffer(geometry:=geom_from_wkt('LINESTRING(1 2, 4 2)'),start_width:=1,end_width:=2,segments:=8) → A tapered buffer starting with a diameter of 1 and ending with a diameter of 2 along the linestring geometry. Further reading: Tapered buffers algorithm 14.3. List of functions 431 QGIS Desktop 3.16 User Guide touches Tests whether a geometry touches another. Returns true if the geometries have at least one point in common, but their interiors do not intersect. Syntax touches(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • touches( geom_from_wkt( 'LINESTRING(5 3, 4 4)' ), geom_from_wkt( 'LINESTRING(3 3, 4 4, 5 5)' ) ) → true • touches( geom_from_wkt( 'POINT(4 4)' ), geom_from_wkt( 'POINT(5 5)' ) ) → false Further reading: overlay_touches transform Returns the geometry transformed from a source CRS to a destination CRS. Syntax transform(geometry, source_auth_id, dest_auth_id) Arguments • geometry - a geometry • source_auth_id - the source auth CRS ID • dest_auth_id - the destination auth CRS ID Examples • geom_to_wkt( transform( make_point(488995.53240249, 7104473.38600835), 'EPSG:2154', 'EPSG:4326' ) ) → ‚POINT(0 51)‘ Further reading: Reproject layer algorithm translate Returns a translated version of a geometry. Calculations are in the Spatial Reference System of this geometry. Syntax translate(geometry, dx, dy) Arguments • geometry - a geometry • dx - delta x • dy - delta y Examples • translate($geometry, 5, 10) → a geometry of the same type like the original one Further reading: Translate algorithm 432 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide union Returns a geometry that represents the point set union of the geometries. Syntax union(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • geom_to_wkt( union( make_point(4, 4), make_point(5, 5) ) ) → ‚MULTIPOINT(4 4, 5 5)‘ wedge_buffer Returns a wedge shaped buffer originating from a point geometry. Syntax wedge_buffer(center, azimuth, width, outer_radius, [inner_radius=0.0]) [] marks optional arguments Arguments • center - center point (origin) of buffer. Must be a point geometry. • azimuth - angle (in degrees) for the middle of the wedge to point. • width - buffer width (in degrees). Note that the wedge will extend to half of the angular width either side of the azimuth direction. • outer_radius - outer radius for buffers • inner_radius - optional inner radius for buffers Examples • wedge_buffer(center:=geom_from_wkt('POINT(1 2)'), azimuth:=90,width:=180,outer_radius:=1) → A wedge shaped buffer centered on the point (1,2), facing to the East, with a width of 180 degrees and outer radius of 1. Further reading: Create wedge buffers algorithm within Tests whether a geometry is within another. Returns true if the geometry1 is completely within geometry2. Syntax within(geometry1, geometry2) Arguments • geometry1 - a geometry • geometry2 - a geometry Examples • within( geom_from_wkt( 'POINT( 0.5 0.5)' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))' ) ) → true • within( geom_from_wkt( 'POINT( 5 5 )' ), geom_from_wkt( 'POLYGON((0 0, 0 1, 1 1, 1 0, 0 0 ))' ) ) → false Further reading: overlay_within 14.3. List of functions 433 QGIS Desktop 3.16 User Guide $x Returns the x coordinate of the current point feature. If the feature is a multipoint feature, then the x-coordinate of the first point will be returned. Syntax $x Examples • $x → 42 x Returns the x coordinate of a point geometry, or the x coordinate of the centroid for a non-point geometry. Syntax x(geometry) Arguments • geometry - a geometry Examples • x( geom_from_wkt( 'POINT(2 5)' ) ) → 2 • x( $geometry ) → x coordinate of the current feature’s centroid $x_at Retrieves a x coordinate of the current feature’s geometry. Syntax $x_at(i) Arguments • i - index of point of a line (indices start at 0; negative values apply from the last index, starting at -1) Examples • $x_at(1) → 5 x_max Returns the maximum x coordinate of a geometry. Calculations are in the spatial reference system of this geometry. Syntax x_max(geometry) Arguments • geometry - a geometry Examples • x_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 4 434 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide x_min Returns the minimum x coordinate of a geometry. Calculations are in the spatial reference system of this geometry. Syntax x_min(geometry) Arguments • geometry - a geometry Examples • x_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 2 $y Returns the y coordinate of the current point feature. If the feature is a multipoint feature, then the y-coordinate of the first point will be returned. Syntax $y Examples • $y → 42 y Returns the y coordinate of a point geometry, or the y coordinate of the centroid for a non-point geometry. Syntax y(geometry) Arguments • geometry - a geometry Examples • y( geom_from_wkt( 'POINT(2 5)' ) ) → 5 • y( $geometry ) → y coordinate of the current feature’s centroid $y_at Retrieves a y coordinate of the current feature’s geometry. Syntax $y_at(i) Arguments • i - index of point of a line (indices start at 0; negative values apply from the last index, starting at -1) Examples • $y_at(1) → 2 14.3. List of functions 435 QGIS Desktop 3.16 User Guide y_max Returns the maximum y coordinate of a geometry. Calculations are in the spatial reference system of this geometry. Syntax y_max(geometry) Arguments • geometry - a geometry Examples • y_max( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 8 y_min Returns the minimum y coordinate of a geometry. Calculations are in the spatial reference system of this geometry. Syntax y_min(geometry) Arguments • geometry - a geometry Examples • y_min( geom_from_wkt( 'LINESTRING(2 5, 3 6, 4 8)') ) → 5 z Returns the z coordinate of a point geometry, or NULL if the geometry has no z value. Syntax z(geometry) Arguments • geometry - a point geometry Examples • z( geom_from_wkt( 'POINTZ(2 5 7)' ) ) → 7 z_max Returns the maximum z coordinate of a geometry, or NULL if the geometry has no z value. Syntax z_max(geometry) Arguments • geometry - a geometry with z coordinate Examples • z_max( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1 • z_max( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 3 • z_max( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → 0 • z_max( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → 2 • z_max( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL 436 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide z_min Returns the minimum z coordinate of a geometry, or NULL if the geometry has no z value. Syntax z_min(geometry) Arguments • geometry - a geometry with z coordinate Examples • z_min( geom_from_wkt( 'POINT ( 0 0 1 )' ) ) → 1 • z_min( geom_from_wkt( 'MULTIPOINT ( 0 0 1 , 1 1 3 )' ) ) → 1 • z_min( make_line( make_point( 0,0,0 ), make_point( -1,-1,-2 ) ) ) → -2 • z_min( geom_from_wkt( 'LINESTRING( 0 0 0, 1 0 2, 1 1 -1 )' ) ) → -1 • z_min( geom_from_wkt( 'POINT ( 0 0 )' ) ) → NULL 14.3.14 Layout Functions This group contains functions to manipulate print layout items properties. • item_variables item_variables Returns a map of variables from a layout item inside this print layout. Syntax item_variables(id) Arguments • id - layout item ID Examples • map_get( item_variables('Map 0'), 'map_scale') → scale of the item ‚Map 0‘ in the current print layout Further reading: List of default variables 14.3.15 Map Layers This group contains a list of the available layers in the current project. This offers a convenient way to write expressions referring to multiple layers, such as when performing aggregates, attribute or spatial queries. It also provides some convenient functions to manipulate layers. • decode_uri 14.3. List of functions 437 QGIS Desktop 3.16 User Guide decode_uri Takes a layer and decodes the uri of the underlying data provider. It depends on the dataprovider, which data is available. Syntax decode_uri(layer, [part]) [] marks optional arguments Arguments • layer - The layer for which the uri should be decoded. • part - The part of the uri to return. If unspecified, a map with all uri parts will be returned. Examples • decode_uri(@layer) → {‚layerId‘: ‚0‘, ‚layerName‘: ‚‘, ‚path‘: ‚/home/qgis/shapefile.shp‘} • decode_uri(@layer) → {‚layerId‘: NULL, ‚layerName‘: ‚layer‘, ‚path‘: ‚/home/qgis/geopackage.gpkg‘} • decode_uri(@layer, 'path') → ‚C:\my_data\qgis\shape.shp‘ 14.3.16 Maps Functions This group contains functions to create or manipulate keys and values of map data structures (also known as dictionary objects, key-value pairs, or associative arrays). Unlike the list data structure where values order matters, the order of the key-value pairs in the map object is not relevant and values are identified by their keys. • from_json • hstore_to_map • json_to_map • map • map_akeys • map_avals • map_concat • map_delete • map_exist • map_get • map_insert • map_to_hstore • map_to_json • to_json 438 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide from_json Loads a JSON formatted string. Syntax from_json(string) Arguments • string - JSON string Examples • from_json('{"qgis":"rocks"}') → { ‚qgis‘: ‚rocks‘ } • from_json('[1,2,3]') → [1,2,3] hstore_to_map Creates a map from a hstore-formatted string. Syntax hstore_to_map(string) Arguments • string - the input string Examples • hstore_to_map('qgis=>rocks') → { ‚qgis‘: ‚rocks‘ } json_to_map Creates a map from a json-formatted string. Syntax json_to_map(string) Arguments • string - the input string Examples • json_to_map('{"qgis":"rocks"}') → { ‚qgis‘: ‚rocks‘ } map Returns a map containing all the keys and values passed as pair of parameters. Syntax map(key1, value1, key2, value2, …) Arguments • key - a key (string) • value - a value Examples • map('1','one','2', 'two') → { ‚1‘: ‚one‘, ‚2‘: ‚two‘ } 14.3. List of functions 439 QGIS Desktop 3.16 User Guide map_akeys Returns all the keys of a map as an array. Syntax map_akeys(map) Arguments • map - a map Examples • map_akeys(map('1','one','2','two')) → [ ‚1‘, ‚2‘ ] map_avals Returns all the values of a map as an array. Syntax map_avals(map) Arguments • map - a map Examples • map_avals(map('1','one','2','two')) → [ ‚one‘, ‚two‘ ] map_concat Returns a map containing all the entries of the given maps. If two maps contain the same key, the value of the second map is taken. Syntax map_concat(map1, map2, …) Arguments • map - a map Examples • map_concat(map('1','one', '2','overridden'),map('2','two', '3','three')) → { ‚1‘: ‚one‘, ‚2‘: ‚two‘, ‚3‘: ‚three‘ } map_delete Returns a map with the given key and its corresponding value deleted. Syntax map_delete(map, key) Arguments • map - a map • key - the key to delete Examples • map_delete(map('1','one','2','two'),'2') → { ‚1‘: ‚one‘ } 440 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide map_exist Returns true if the given key exists in the map. Syntax map_exist(map, key) Arguments • map - a map • key - the key to lookup Examples • map_exist(map('1','one','2','two'),'3') → false map_get Returns the value of a map, given its key. Returns NULL if the key does not exist. Syntax map_get(map, key) Arguments • map - a map • key - the key to lookup Examples • map_get(map('1','one','2','two'),'2') → ‚two‘ • map_get( item_variables('Map 0'), 'map_scale') → scale of the item ‚Map 0‘ (if it exists) in the current print layout map_insert Returns a map with an added key/value. If the key already exists, its value is overridden. Syntax map_insert(map, key, value) Arguments • map - a map • key - the key to add • value - the value to add Examples • map_insert(map('1','one'),'3','three') → { ‚1‘: ‚one‘, ‚3‘: ‚three‘ } • map_insert(map('1','one','2','overridden'),'2','two') → { ‚1‘: ‚one‘, ‚2‘: ‚two‘ } map_to_hstore Merge map elements into a hstore-formatted string. Syntax map_to_hstore(map) Arguments • map - the input map Examples • map_to_hstore(map('qgis','rocks')) → ‚„qgis“=>“rocks“‘ 14.3. List of functions 441 QGIS Desktop 3.16 User Guide map_to_json Merge map elements into a json-formatted string. Syntax map_to_json(map) Arguments • map - the input map Examples • map_to_json(map('qgis','rocks')) → {„qgis“:“rocks“} to_json Create a JSON formatted string from a map, array or other value. Syntax to_json(value) Arguments • value - The input value Examples • to_json(map('qgis','rocks')) → {„qgis“:“rocks“} • to_json(array(1,2,3)) → [1,2,3] 14.3.17 Matematické funkce Tato skupina obsahuje matematické funkce (např. odmocnina, sin a cos). • abs • acos • asin • atan • atan2 • azimuth • ceil • clamp • cos • degrees • exp • floor • inclination • ln • log • log10 • max • min 442 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • pi • radians • rand • randf • round • scale_exp • scale_linear • sin • sqrt • tan abs Returns the absolute value of a number. Syntax abs(value) Arguments • value - a number Examples • abs(-2) → 2 acos Returns the inverse cosine of a value in radians. Syntax acos(value) Arguments • value - cosine of an angle in radians Examples • acos(0.5) → 1.0471975511966 asin Returns the inverse sine of a value in radians. Syntax asin(value) Arguments • value - sine of an angle in radians Examples • asin(1.0) → 1.5707963267949 14.3. List of functions 443 QGIS Desktop 3.16 User Guide atan Returns the inverse tangent of a value in radians. Syntax atan(value) Arguments • value - tan of an angle in radians Examples • atan(0.5) → 0.463647609000806 atan2 Returns the inverse tangent of dy/dx by using the signs of the two arguments to determine the quadrant of the result. Syntax atan2(dy, dx) Arguments • dy - y coordinate difference • dx - x coordinate difference Examples • atan2(1.0, 1.732) → 0.523611477769969 azimuth Returns the north-based azimuth as the angle in radians measured clockwise from the vertical on point_a to point_b. Syntax azimuth(point_a, point_b) Arguments • point_a - point geometry • point_b - point geometry Examples • degrees( azimuth( make_point(25, 45), make_point(75, 100) ) ) → 42.273689 • degrees( azimuth( make_point(75, 100), make_point(25,45) ) ) → 222.273689 ceil Rounds a number upwards. Syntax ceil(value) Arguments • value - a number Examples • ceil(4.9) → 5 • ceil(-4.9) → -4 444 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide clamp Restricts an input value to a specified range. Syntax clamp(minimum, input, maximum) Arguments • minimum - the smallest value input is allowed to take. • input - a value which will be restricted to the range specified by minimum and maximum • maximum - the largest value input is allowed to take Examples • clamp(1,5,10) → 5 input is between 1 and 10 so is returned unchanged • clamp(1,0,10) → 1 input is less than minimum value of 1, so function returns 1 • clamp(1,11,10) → 10 input is greater than maximum value of 10, so function returns 10 cos Returns cosine of an angle. Syntax cos(angle) Arguments • angle - angle in radians Examples • cos(1.571) → 0.000796326710733263 degrees Converts from radians to degrees. Syntax degrees(radians) Arguments • radians - numeric value Examples • degrees(3.14159) → 180 • degrees(1) → 57.2958 exp Returns exponential of an value. Syntax exp(value) Arguments • value - number to return exponent of Examples • exp(1.0) → 2.71828182845905 14.3. List of functions 445 QGIS Desktop 3.16 User Guide floor Rounds a number downwards. Syntax floor(value) Arguments • value - a number Examples • floor(4.9) → 4 • floor(-4.9) → -5 inclination Returns the inclination measured from the zenith (0) to the nadir (180) on point_a to point_b. Syntax inclination(point_a, point_b) Arguments • point_a - point geometry • point_b - point geometry Examples • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 5 ) ) → 0.0 • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, 0 ) ) → 90.0 • inclination( make_point( 5, 10, 0 ), make_point( 50, 100, 0 ) ) → 90.0 • inclination( make_point( 5, 10, 0 ), make_point( 5, 10, -5 ) ) → 180.0 ln Returns the natural logarithm of a value. Syntax ln(value) Arguments • value - numeric value Examples • ln(1) → 0 • ln(2.7182818284590452354) → 1 log Returns the value of the logarithm of the passed value and base. 446 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax log(base, value) Arguments • base - any positive number • value - any positive number Examples • log(2, 32) → 5 • log(0.5, 32) → -5 log10 Returns the value of the base 10 logarithm of the passed expression. Syntax log10(value) Arguments • value - any positive number Examples • log10(1) → 0 • log10(100) → 2 max Returns the largest value in a set of values. Syntax max(value1, value2, …) Arguments • value - a number Examples • max(2,10.2,5.5) → 10.2 • max(20.5,NULL,6.2) → 20.5 min Returns the smallest value in a set of values. Syntax min(value1, value2, …) Arguments • value - a number Examples • min(20.5,10,6.2) → 6.2 • min(2,-10.3,NULL) → -10.3 14.3. List of functions 447 QGIS Desktop 3.16 User Guide pi Returns value of pi for calculations. Syntax pi() Examples • pi() → 3.14159265358979 radians Converts from degrees to radians. Syntax radians(degrees) Arguments • degrees - numeric value Examples • radians(180) → 3.14159 • radians(57.2958) → 1 rand Returns a random integer within the range specified by the minimum and maximum argument (inclusive). If a seed is provided, the returned will always be the same, depending on the seed. Syntax rand(min, max, [seed=NULL]) [] marks optional arguments Arguments • min - an integer representing the smallest possible random number desired • max - an integer representing the largest possible random number desired • seed - any value to use as seed Examples • rand(1, 10) → 8 randf Returns a random float within the range specified by the minimum and maximum argument (inclusive). If a seed is provided, the returned will always be the same, depending on the seed. Syntax randf([min=0.0], [max=1.0], [seed=NULL]) [] marks optional arguments Arguments • min - an float representing the smallest possible random number desired • max - an float representing the largest possible random number desired • seed - any value to use as seed Examples • randf(1, 10) → 4.59258286403147 448 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide round Rounds a number to number of decimal places. Syntax round(value, [places=0]) [] marks optional arguments Arguments • value - decimal number to be rounded • places - Optional integer representing number of places to round decimals to. Can be negative. Examples • round(1234.567, 2) → 1234.57 • round(1234.567) → 1235 scale_exp Transforms a given value from an input domain to an output range using an exponential curve. This function can be used to ease values in or out of the specified output range. Syntax scale_exp(value, domain_min, domain_max, range_min, range_max, exponent) Arguments • value - A value in the input domain. The function will return a corresponding scaled value in the output range. • domain_min - Specifies the minimum value in the input domain, the smallest value the input value should take. • domain_max - Specifies the maximum value in the input domain, the largest value the input value should take. • range_min - Specifies the minimum value in the output range, the smallest value which should be output by the function. • range_max - Specifies the maximum value in the output range, the largest value which should be output by the function. • exponent - A positive value (greater than 0), which dictates the way input values are mapped to the output range. Large exponents will cause the output values to ‚ease in‘, starting slowly before accelerating as the input values approach the domain maximum. Smaller exponents (less than 1) will cause output values to ‚ease out‘, where the mapping starts quickly but slows as it approaches the domain maximum. Examples • scale_exp(5,0,10,0,100,2) → 25 easing in, using an exponent of 2 • scale_exp(3,0,10,0,100,0.5) → 54.772 easing out, using an exponent of 0.5 scale_linear Transforms a given value from an input domain to an output range using linear interpolation. 14.3. List of functions 449 QGIS Desktop 3.16 User Guide Syntax scale_linear(value, domain_min, domain_max, range_min, range_max) Arguments • value - A value in the input domain. The function will return a corresponding scaled value in the output range. • domain_min - Specifies the minimum value in the input domain, the smallest value the input value should take. • domain_max - Specifies the maximum value in the input domain, the largest value the input value should take. • range_min - Specifies the minimum value in the output range, the smallest value which should be output by the function. • range_max - Specifies the maximum value in the output range, the largest value which should be output by the function. Examples • scale_linear(5,0,10,0,100) → 50 • scale_linear(0.2,0,1,0,360) → 72 scaling a value between 0 and 1 to an angle between 0 and 360 • scale_linear(1500,1000,10000,9,20) → 9.6111111 scaling a population which varies between 1000 and 10000 to a font size between 9 and 20 sin Returns the sine of an angle. Syntax sin(angle) Arguments • angle - angle in radians Examples • sin(1.571) → 0.999999682931835 sqrt Returns square root of a value. Syntax sqrt(value) Arguments • value - a number Examples • sqrt(9) → 3 450 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide tan Returns the tangent of an angle. Syntax tan(angle) Arguments • angle - angle in radians Examples • tan(1.0) → 1.5574077246549 14.3.18 Operátory This group contains operators (e.g., +, -, *). Note that for most of the mathematical functions below, if one of the inputs is NULL then the result is NULL. Function Popis a + b Addition of two values (a plus b) a - b Subtraction of two values (a minus b). a * b Multiplication of two values (a multiplied by b) a / b Division of two values (a divided by b) a % b Remainder of division of a by b (eg, 7 % 2 = 1, or 2 fits into 7 three times with remainder 1) a ^ b Power of two values (for example, 2^2=4 or 2^3=8) a < b Compares two values and evaluates to 1 if the left value is less than the right value (a is smaller than b) a <= b Compares two values and evaluates to 1 if the left value is less than or equal to the right value a <> b Compares two values and evaluates to 1 if they are not equal a = b Compares two values and evaluates to 1 if they are equal a != b a and b are not equal a > b Compares two values and evaluates to 1 if the left value is greater than the right value (a is larger than b) a >= b Compares two values and evaluates to 1 if the left value is greater than or equal to the right value a ~ b a matches the regular expression b || Joins two values together into a string. If one of the values is NULL the result will be NULL ‚\n‘ Inserts a new line in a string LIKE Returns 1 if the first parameter matches the supplied pattern ILIKE Returns 1 if the first parameter matches case-insensitive the supplied pattern (ILIKE can be used instead of LIKE to make the match case-insensitive) a IS b Tests whether two values are identical. Returns 1 if a is the same as b a OR b Returns 1 when condition a or condition b is true a AND b Returns 1 when conditions a and b are true NOT Negates a condition „Column_name“ Value of the field Column_name, take care to not be confused with simple quote, see below ‚string‘ a string value, take care to not be confused with double quote, see above NULL null value a IS NULL a has no value a IS NOT NULL a has a value a IN (value[,value]) a is below the values listed a NOT IN (value[,value]) a is not below the values listed 14.3. List of functions 451 QGIS Desktop 3.16 User Guide Některé příklady: • Připojí řetězec a hodnotu z názvu sloupce: 'My feature''s id is: ' || "gid" • Test if the „description“ attribute field starts with the ‚Hello‘ string in the value (note the position of the % character): "description" LIKE 'Hello%' 14.3.19 Processing Functions This group contains functions that operate on processing algorithms. • parameter parameter Returns the value of a processing algorithm input parameter. Syntax parameter(name) Arguments • name - name of the corresponding input parameter Examples • parameter('BUFFER_SIZE') → 5.6 14.3.20 Rasters Functions This group contains functions to operate on raster layer. • raster_statistic • raster_value raster_statistic Returns statistics from a raster layer. 452 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax raster_statistic(layer, band, property) Arguments • layer - a string, representing either a raster layer name or layer ID • band - integer representing the band number from the raster layer, starting at 1 • property - a string corresponding to the property to return. Valid options are: – min: minimum value – max: maximum value – avg: average (mean) value – stdev: standard deviation of values – range: range of values (max - min) – sum: sum of all values from raster Examples • raster_statistic('lc',1,'avg') → Average value from band 1 from ‚lc‘ raster layer • raster_statistic('ac2010',3,'min') → Minimum value from band 3 from ‚ac2010‘ raster layer raster_value Returns the raster value found at the provided point. Syntax raster_value(layer, band, point) Arguments • layer - the name or id of a raster layer • band - the band number to sample the value from. • point - point geometry (for multipart geometries having more than one part, a NULL value will be returned) Examples • raster_value('dem', 1, make_point(1,1)) → 25 14.3.21 Record and Attributes Functions Tato skupina obsahuje funkce, které operují se záznamy identifikátorů. • attribute • attributes • $currentfeature • display_expression • get_feature • get_feature_by_id • $id • is_selected • maptip • num_selected • represent_value • sqlite_fetch_and_increment 14.3. List of functions 453 QGIS Desktop 3.16 User Guide • uuid attribute Returns an attribute from a feature. Variant 1 Returns the value of an attribute from the current feature. Syntax attribute(attribute_name) Arguments • attribute_name - name of attribute to be returned Examples • attribute( 'name' ) → value stored in ‚name‘ attribute for the current feature Variant 2 Allows the target feature and attribute name to be specified. Syntax attribute(feature, attribute_name) Arguments • feature - a feature • attribute_name - name of attribute to be returned Examples • attribute( @atlas_feature, 'name' ) → value stored in ‚name‘ attribute for the current atlas feature attributes Returns a map containing all attributes from a feature, with field names as map keys. Variant 1 Returns a map of all attributes from the current feature. Syntax attributes() Examples • attributes()['name'] → value stored in ‚name‘ attribute for the current feature Variant 2 Allows the target feature to be specified. Syntax attributes(feature) Arguments • feature - a feature Examples • attributes( @atlas_feature )['name'] → value stored in ‚name‘ attribute for the current atlas feature Further reading: Maps Functions 454 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide $currentfeature Returns the current feature being evaluated. This can be used with the ‚attribute‘ function to evaluate attribute values from the current feature. Syntax $currentfeature Examples • attribute( $currentfeature, 'name' ) → value stored in ‚name‘ attribute for the current feature display_expression Returns the display expression for a given feature in a layer. The expression is evaluated by default. Can be used with zero, one or more arguments, see below for details. No parameters If called with no parameters, the function will evaluate the display expression of the current feature in the current layer. Syntax display_expression() Examples • display_expression() → The display expression of the current feature in the current layer. One ‚feature‘ parameter If called with a ‚feature‘ parameter only, the function will evaluate the specified feature from the current layer. Syntax display_expression(feature) Arguments • feature - The feature which should be evaluated. Examples • display_expression(@atlas_feature) → The display expression of the current atlas feature. Layer and feature parameters If the function is called with both a layer and a feature, it will evaluate the specified feature from the specified layer. Syntax display_expression(layer, feature, [evaluate=true]) [] marks optional arguments Arguments • layer - The layer (or its ID or name) • feature - The feature which should be evaluated. • evaluate - If the expression must be evaluated. If false, the expression will be returned as a string literal only (which could potentially be later evaluated using the ‚eval‘ function). Examples • display_expression( 'streets', get_feature_by_id('streets', 1)) → The display expression of the feature with the ID 1 on the layer ‚streets‘. • display_expression('a_layer_id', $currentfeature, 'False') → The display expression of the given feature not evaluated. 14.3. List of functions 455 QGIS Desktop 3.16 User Guide get_feature Returns the first feature of a layer matching a given attribute value. Syntax get_feature(layer, attribute, value) Arguments • layer - layer name or ID • attribute - attribute name • value - attribute value to match Examples • get_feature('streets','name','main st') → first feature found in „streets“ layer with „main st“ value in the „name“ field get_feature_by_id Returns the feature with an id on a layer. Syntax get_feature_by_id(layer, feature_id) Arguments • layer - layer, layer name or layer id • feature_id - the id of the feature which should be returned Examples • get_feature_by_id('streets', 1) → the feature with the id 1 on the layer „streets“ Further reading: $id $id Returns the feature id of the current row. Syntax $id Examples • $id → 42 is_selected Returns True if a feature is selected. Can be used with zero, one or two arguments, see below for details. No parameters If called with no parameters, the function will return true if the current feature in the current layer is selected. Syntax is_selected() Examples • is_selected() → True if the current feature in the current layer is selected. One ‚feature‘ parameter If called with a ‚feature‘ parameter only, the function returns true if the specified feature from the current layer is selected. 456 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax is_selected(feature) Arguments • feature - The feature which should be checked for selection. Examples • is_selected(@atlas_feature) → True if a selected feature on the current layer is the active atlas feature. • is_selected(get_feature(@layer, 'name', 'Main St.'))) → True if the unique named „Main St.“ feature on the current layer is selected. • is_selected(get_feature_by_id(@layer, 1)) → True if the feature with the id 1 on the current layer is selected. Two parameters If the function is called with both a layer and a feature, it will return true if the specified feature from the specified layer is selected. Syntax is_selected(layer, feature) Arguments • layer - The layer (its ID or name) on which the selection will be checked. • feature - The feature which should be checked for selection. Examples • is_selected( 'streets', get_feature('streets', 'name', "street_name")) → True if the current building’s street is selected (assuming the building layer has a field named ‚street_name‘ and the ‚streets‘ layer has a field called ‚name‘ with unique values). • is_selected( 'streets', get_feature_by_id('streets', 1)) → True if the feature with the id 1 on the „streets“ layer is selected. maptip Returns the maptip for a given feature in a layer. The expression is evaluated by default. Can be used with zero, one or more arguments, see below for details. No parameters If called with no parameters, the function will evaluate the maptip of the current feature in the current layer. Syntax maptip() Examples • maptip() → The maptip of the current feature in the current layer. One ‚feature‘ parameter If called with a ‚feature‘ parameter only, the function will evaluate the specified feature from the current layer. Syntax maptip(feature) Arguments • feature - The feature which should be evaluated. Examples • maptip(@atlas_feature) → The maptip of the current atlas feature. Layer and feature parameters 14.3. List of functions 457 QGIS Desktop 3.16 User Guide If the function is called with both a layer and a feature, it will evaluate the specified feature from the specified layer. Syntax maptip(layer, feature, [evaluate=true]) [] marks optional arguments Arguments • layer - The layer (or its ID or name) • feature - The feature which should be evaluated. • evaluate - If the expression must be evaluated. If false, the expression will be returned as a string literal only (which could potentially be later evaluated using the ‚eval_template‘ function). Examples • maptip('streets', get_feature_by_id('streets', 1)) → The maptip of the feature with the ID 1 on the layer ‚streets‘. • maptip('a_layer_id', $currentfeature, 'False') → The maptip of the given feature not evaluated. num_selected Returns the number of selected features on a given layer. By default works on the layer on which the expression is evaluated. Syntax num_selected([layer=current layer]) [] marks optional arguments Arguments • layer - The layer (or its id or name) on which the selection will be checked. Examples • num_selected() → The number of selected features on the current layer. • num_selected('streets') → The number of selected features on the layer streets represent_value Returns the configured representation value for a field value. It depends on the configured widget type. Often, this is useful for ‚Value Map‘ widgets. Syntax represent_value(value, fieldName) Arguments • value - The value which should be resolved. Most likely a field. • fieldName - The field name for which the widget configuration should be loaded. (Optional) Examples • represent_value("field_with_value_map") → Description for value • represent_value('static value', 'field_name') → Description for static value Further reading: widget types 458 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide sqlite_fetch_and_increment Manage autoincrementing values in sqlite databases. SQlite default values can only be applied on insert and not prefetched. This makes it impossible to acquire an incremented primary key via AUTO_INCREMENT before creating the row in the database. Sidenote: with postgres, this works via the option evaluate default values. When adding new features with relations, it is really nice to be able to already add children for a parent, while the parents form is still open and hence the parent feature uncommitted. To get around this limitation, this function can be used to manage sequence values in a separate table on sqlite based formats like gpkg. The sequence table will be filtered for a sequence id (filter_attribute and filter_value) and the current value of the id_field will be incremented by 1 and the incremented value returned. If additional columns require values to be specified, the default_values map can be used for this purpose. Note This function modifies the target sqlite table. It is intended for usage with default value configurations for attributes. When the database parameter is a layer and the layer is in transaction mode, the value will only be retrieved once during the lifetime of a transaction and cached and incremented. This makes it unsafe to work on the same database from several processes in parallel. Syntax sqlite_fetch_and_increment(database, table, id_field, filter_attribute, filter_value, [default_values]) [] marks optional arguments Arguments • database - Path to the sqlite file or geopackage layer • table - Name of the table that manages the sequences • id_field - Name of the field that contains the current value • filter_attribute - Name the field that contains a unique identifier for this sequence. Must have a UNIQUE index. • filter_value - Name of the sequence to use. • default_values - Map with default values for additional columns on the table. The values need to be fully quoted. Functions are allowed. Examples • sqlite_fetch_and_increment(@layer, 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0 • sqlite_fetch_and_increment(layer_property(@layer, 'path'), 'sequence_table', 'last_unique_id', 'sequence_id', 'global', map('last_change', 'date(''now'')', 'user', '''' || @user_account_name || '''')) → 0 Further reading: Data Sources Properties, Creating one or many to many relations 14.3. List of functions 459 QGIS Desktop 3.16 User Guide uuid Generates a Universally Unique Identifier (UUID) for each row using the Qt QUuid::createUuid method. Each UUID is 38 characters long. Syntax uuid() Examples • uuid() → ‚{0bd2f60f-f157-4a6d-96af-d4ba4cb366a1}‘ 14.3.22 Relations This group contains the list of the relations available in the current project, with their description. It provides a quick access to the relation ID for writing an expression (with e.g. the relation_aggregate function) or customizing a form. 14.3.23 Funkce řetězců Tato skupina obsahuje funkce, které pracují s řetězci (např. které nahrazují, převádí na velká písmena). • ascii • char • concat • format • format_date • format_number • left • length • lower • lpad • regexp_match • regexp_replace • regexp_substr • replace • right • rpad • strpos • substr • title • to_string • trim • upper • wordwrap 460 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide ascii Returns the unicode code associated with the first character of a string. Syntax ascii(string) Arguments • string - the string to convert to unicode code Examples • ascii('Q') → 81 char Returns the character associated with a unicode code. Syntax char(code) Arguments • code - a unicode code number Examples • char(81) → ‚Q‘ concat Concatenates several strings to one. NULL values are converted to empty strings. Other values (like numbers) are converted to strings. Syntax concat(string1, string2, …) Arguments • string - a string value Examples • concat('sun', 'set') → ‚sunset‘ • concat('a','b','c','d','e') → ‚abcde‘ • concat('Anno ', 1984) → ‚Anno 1984‘ • concat('The Wall', NULL) → ‚The Wall‘ About fields concatenation You can also concatenate strings or field values using either || or + operators, with some special characteristics: • The + operator also means sum up expression, so if you have an integer (field or numeric value) operand, this can be error prone and you better use the others: 'My feature id is: ' + "gid" => triggers an error as gid returns an integer • When any of the arguments is a NULL value, either || or + will return a NULL value. To return the other arguments regardless the NULL value, you may want to use the concat function: 'My feature id is: ' + NULL ==> NULL 'My feature id is: ' || NULL => NULL concat('My feature id is: ', NULL) => 'My feature id is: ' 14.3. List of functions 461 QGIS Desktop 3.16 User Guide format Format a string using supplied arguments. Syntax format(string, arg1, arg2, …) Arguments • string - A string with place holders for the arguments. Use %1, %2, etc for placeholders. Placeholders can be repeated. • arg - any type. Any number of arguments. Examples • format('This %1 a %2','is', 'test') → ‚This is a test‘ format_date Formats a date type or string into a custom string format. Uses Qt date/time format strings. See QDateTime::toString. 462 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax format_date(datetime, format, [language]) [] marks optional arguments Arguments • datetime - date, time or datetime value • format - String template used to format the string. Výraz Output d the day as number without a leading zero (1 to 31) dd the day as number with a leading zero (01 to 31) ddd the abbreviated localized day name (e.g. ‚Mon‘ to ‚Sun‘) dddd the long localized day name (e.g. ‚Monday‘ to ‚Sunday‘) M the month as number without a leading zero (1-12) MM the month as number with a leading zero (01-12) MMM the abbreviated localized month name (e.g. ‚Jan‘ to ‚Dec‘) MMMM the long localized month name (e.g. ‚January‘ to ‚December‘) yy the year as two digit number (00-99) yyyy the year as four digit number These expressions may be used for the time part of the format string: Výraz Output h the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display) hh the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display) H the hour without a leading zero (0 to 23, even with AM/PM display) HH the hour with a leading zero (00 to 23, even with AM/PM display) m the minute without a leading zero (0 to 59) mm the minute with a leading zero (00 to 59) s the second without a leading zero (0 to 59) ss the second with a leading zero (00 to 59) z the milliseconds without trailing zeroes (0 to 999) zzz the milliseconds with trailing zeroes (000 to 999) AP or A interpret as an AM/PM time. AP must be either ‚AM‘ or ‚PM‘. ap or a Interpret as an AM/PM time. ap must be either ‚am‘ or ‚pm‘. • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the date into a custom string Examples • format_date('2012-05-15','dd.MM.yyyy') → ‚15.05.2012‘ • format_date('2012-05-15','d MMMM yyyy','fr') → ‚15 mai 2012‘ • format_date('2012-05-15','dddd') → ‚Tuesday‘ • format_date('2012-05-15 13:54:20','dd.MM.yy') → ‚15.05.12‘ • format_date('13:54:20','hh:mm AP') → ‚01:54 PM‘ 14.3. List of functions 463 QGIS Desktop 3.16 User Guide format_number Returns a number formatted with the locale separator for thousands. Also truncates the decimal places to the number of supplied places. Syntax format_number(number, places, [language]) [] marks optional arguments Arguments • number - number to be formatted • places - integer representing the number of decimal places to truncate the string to. • language - language (lowercase, two- or three-letter, ISO 639 language code) used to format the number into a string Examples • format_number(10000000.332,2) → ‚10,000,000.33‘ • format_number(10000000.332,2,'fr') → ‚10 000 000,33‘ left Returns a substring that contains the n leftmost characters of the string. Syntax left(string, length) Arguments • string - a string • length - integer. The number of characters from the left of the string to return. Examples • left('Hello World',5) → ‚Hello‘ length Returns the number of characters in a string or the length of a geometry linestring. String variant Returns the number of characters in a string. Syntax length(string) Arguments • string - string to count length of Examples • length('hello') → 5 Geometry variant Calculate the length of a geometry line object. Calculations are always planimetric in the Spatial Reference System (SRS) of this geometry, and the units of the returned length will match the units for the SRS. This differs from the calculations performed by the $length function, which will perform ellipsoidal calculations based on the project’s ellipsoid and distance unit settings. 464 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Syntax length(geometry) Arguments • geometry - line geometry object Examples • length(geom_from_wkt('LINESTRING(0 0, 4 0)')) → 4.0 lower Converts a string to lower case letters. Syntax lower(string) Arguments • string - the string to convert to lower case Examples • lower('HELLO World') → ‚hello world‘ lpad Returns a string padded on the left to the specified width, using a fill character. If the target width is smaller than the string’s length, the string is truncated. Syntax lpad(string, width, fill) Arguments • string - string to pad • width - length of new string • fill - character to pad the remaining space with Examples • lpad('Hello', 10, 'x') → ‚xxxxxHello‘ • lpad('Hello', 3, 'x') → ‚Hel‘ regexp_match Return the first matching position matching a regular expression within an unicode string, or 0 if the substring is not found. Syntax regexp_match(input_string, regex) Arguments • input_string - the string to test against the regular expression • regex - The regular expression to test against. Backslash characters must be double escaped (e.g., „\\s“ to match a white space character or „\\b“ to match a word boundary). Examples • regexp_match('QGIS ROCKS','\\sROCKS') → 5 • regexp_match('Budač','udač\\b') → 2 14.3. List of functions 465 QGIS Desktop 3.16 User Guide regexp_replace Returns a string with the supplied regular expression replaced. Syntax regexp_replace(input_string, regex, replacement) Arguments • input_string - the string to replace matches in • regex - The regular expression to replace. Backslash characters must be double escaped (e.g., „\\s“ to match a white space character). • replacement - The string that will replace any matching occurrences of the supplied regular expression. Captured groups can be inserted into the replacement string using \\1, \\2, etc. Examples • regexp_replace('QGIS SHOULD ROCK','\\sSHOULD\\s',' DOES ') → ‚QGIS DOES ROCK‘ • regexp_replace('ABC123','\\d+','') → ‚ABC‘ • regexp_replace('my name is John','(.*) is (.*)','\\2 is \\ 1') → ‚John is my name‘ regexp_substr Returns the portion of a string which matches a supplied regular expression. Syntax regexp_substr(input_string, regex) Arguments • input_string - the string to find matches in • regex - The regular expression to match against. Backslash characters must be double escaped (e.g., „\\s“ to match a white space character). Examples • regexp_substr('abc123','(\\d+)') → ‚123‘ replace Returns a string with the supplied string, array, or map of strings replaced. String & array variant Returns a string with the supplied string or array of strings replaced by a string or an array of strings. Syntax replace(string, before, after) Arguments • string - the input string • before - the string or array of strings to replace • after - the string or array of strings to use as a replacement Examples • replace('QGIS SHOULD ROCK','SHOULD','DOES') → ‚QGIS DOES ROCK‘ • replace('QGIS ABC',array('A','B','C'),array('X','Y','Z')) → ‚QGIS XYZ‘ • replace('QGIS',array('Q','S'),'') → ‚GI‘ Map variant 466 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Returns a string with the supplied map keys replaced by paired values. Syntax replace(string, map) Arguments • string - the input string • map - the map containing keys and values Examples • replace('APP SHOULD ROCK',map('APP','QGIS','SHOULD', 'DOES')) → ‚QGIS DOES ROCK‘ right Returns a substring that contains the n rightmost characters of the string. Syntax right(string, length) Arguments • string - a string • length - integer. The number of characters from the right of the string to return. Examples • right('Hello World',5) → ‚World‘ rpad Returns a string padded on the right to the specified width, using a fill character. If the target width is smaller than the string’s length, the string is truncated. Syntax rpad(string, width, fill) Arguments • string - string to pad • width - length of new string • fill - character to pad the remaining space with Examples • rpad('Hello', 10, 'x') → ‚Helloxxxxx‘ • rpad('Hello', 3, 'x') → ‚Hel‘ strpos Return the first matching position of a substring within another string, or 0 if the substring is not found. Syntax strpos(haystack, needle) Arguments • haystack - string that is to be searched • needle - string to search for Examples • strpos('HELLO WORLD','WORLD') → 7 • strpos('HELLO WORLD','GOODBYE') → 0 14.3. List of functions 467 QGIS Desktop 3.16 User Guide substr Returns a part of a string. Syntax substr(string, start, [length]) [] marks optional arguments Arguments • string - the full input string • start - integer representing start position to extract beginning with 1; if start is negative, the return string will begin at the end of the string minus the start value • length - integer representing length of string to extract; if length is negative, the return string will omit the given length of characters from the end of the string Examples • substr('HELLO WORLD',3,5) → ‚LLO W‘ • substr('HELLO WORLD',6) → ‚ WORLD‘ • substr('HELLO WORLD',-5) → ‚WORLD‘ • substr('HELLO',3,-1) → ‚LL‘ • substr('HELLO WORLD',-5,2) → ‚WO‘ • substr('HELLO WORLD',-5,-1) → ‚WORL‘ title Converts all words of a string to title case (all words lower case with leading capital letter). Syntax title(string) Arguments • string - the string to convert to title case Examples • title('hello WOrld') → ‚Hello World‘ to_string Converts a number to string. Syntax to_string(number) Arguments • number - Integer or real value. The number to convert to string. Examples • to_string(123) → ‚123‘ trim Removes all leading and trailing whitespace (spaces, tabs, etc) from a string. Syntax trim(string) Arguments • string - string to trim Examples • trim(' hello world ') → ‚hello world‘ 468 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide upper Converts a string to upper case letters. Syntax upper(string) Arguments • string - the string to convert to upper case Examples • upper('hello WOrld') → ‚HELLO WORLD‘ wordwrap Returns a string wrapped to a maximum/minimum number of characters. Syntax wordwrap(string, wrap_length, [delimiter_string]) [] marks optional arguments Arguments • string - the string to be wrapped • wrap_length - an integer. If wrap_length is positive the number represents the ideal maximum number of characters to wrap; if negative, the number represents the minimum number of characters to wrap. • delimiter_string - Optional delimiter string to wrap to a new line. Examples • wordwrap('UNIVERSITY OF QGIS',13) → ‚UNIVERSITY OF
QGIS‘ • wordwrap('UNIVERSITY OF QGIS',-3) → ‚UNIVERSITY
OF QGIS‘ 14.3.24 User Expressions This group contains the expressions saved as user expressions. 14.3.25 Variables This group contains dynamic variables related to the application, the project file and other settings. The availability of variables depends on the context: • from the Select by expression dialog • from the Field calculator dialog • from the layer properties dialog • from the print layout To use these variables in an expression, they should be preceded by the @ character (e.g, @row_number). Variable Popis algorithm_id The unique ID of an algorithm animation_end_time End of the animation’s overall temporal time range (as a datetime value) animation_interval Duration of the animation’s overall temporal time range (as an interval value) animation_start_time Start of the animation’s overall temporal time range (as a datetime value) atlas_feature The current atlas feature (as feature object) atlas_featureid The current atlas feature ID continues on next page 14.3. List of functions 469 QGIS Desktop 3.16 User Guide Tabulka 14.2 – pokračujte na předchozí stránce Variable Popis atlas_featurenumber The current atlas feature number in the layout atlas_filename The current atlas file name atlas_geometry The current atlas feature geometry atlas_layerid The current atlas coverage layer ID atlas_layername The current atlas coverage layer name atlas_pagename The current atlas page name atlas_totalfeatures The total number of features in atlas canvas_cursor_point The last cursor position on the canvas in the project’s geographical coordinates cluster_color The color of symbols within a cluster, or NULL if symbols have mixed colors cluster_size The number of symbols contained within a cluster current_feature The feature currently being edited in the attribute form or table row current_geometry The geometry of the feature currently being edited in the form or the table row current_parent_feature represents the feature currently being edited in the parent form. Only usable in an embedded form context. current_parent_geometry represents the geometry of the feature currently being edited in the parent form. Only usable in an embedded form context. form_mode What the form is used for, like AddFeatureMode, SingleEditMode, MultiEditMode, SearchMode, AggregateSearchMode or IdentifyMode as string. frame_duration Temporal duration of each animation frame (as an interval value) frame_number Current frame number during animation playback frame_rate Number of frames per second during animation playback fullextent_maxx Maximum x value from full canvas extent (including all layers) fullextent_maxy Maximum y value from full canvas extent (including all layers) fullextent_minx Minimum x value from full canvas extent (including all layers) fullextent_miny Minimum y value from full canvas extent (including all layers) geometry_part_count The number of parts in rendered feature’s geometry geometry_part_num The current geometry part number for feature being rendered geometry_point_count The number of points in the rendered geometry’s part geometry_point_num The current point number in the rendered geometry’s part grid_axis The current grid annotation axis (eg, ‚x‘ for longitude, ‚y‘ for latitude) grid_number The current grid annotation value item_id The layout item user ID (not necessarily unique) item_uuid The layout item unique ID layer The current layer layer_id The ID of current layer layer_ids The IDs of all the map layers in the current project as a list layer_name The name of current layer layers All the map layers in the current project as a list layout_dpi The composition resolution (DPI) layout_name The layout name layout_numpages The number of pages in the layout layout_page The page number of the current item in the layout layout_pageheight The active page height in the layout (in mm) layout_pagewidth The active page width in the layout (in mm) legend_column_count The number of columns in the legend legend_filter_by_map Indicates if the content of the legend is filtered by the map legend_filter_out_atlas Indicates if the atlas is filtered out of the legend legend_split_layers Indicates if layers can be split in the legend legend_title The title of the legend legend_wrap_string The character(s) used to wrap the legend text map_crs The Coordinate reference system of the current map map_crs_acronym The acronym of the Coordinate reference system of the current map map_crs_definition The full definition of the Coordinate reference system of the current map continues on next page 470 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Tabulka 14.2 – pokračujte na předchozí stránce Variable Popis map_crs_description The name of the Coordinate reference system of the current map map_crs_ellipsoid The acronym of the ellipsoid of the Coordinate reference system of the current map map_crs_proj4 The Proj4 definition of the Coordinate reference system of the current map map_crs_wkt The WKT definition of the Coordinate reference system of the current map map_end_time The end of the map’s temporal time range (as a datetime value) map_extent The geometry representing the current extent of the map map_extent_center The point feature at the center of the map map_extent_height The current height of the map map_extent_width The current width of the map map_id The ID of current map destination. This will be ‚canvas‘ for canvas renders, and the item ID for layout map renders map_interval The duration of the map’s temporal time range (as an interval value) map_layer_ids The list of map layer IDs visible in the map map_layers The list of map layers visible in the map map_rotation The current rotation of the map map_scale The current scale of the map map_start_time The start of the map’s temporal time range (as a datetime value) map_units The units of map measurements model_path Full path (including file name) of current model (or project path if model is embedded in a project). model_folder Folder containing current model (or project folder if model is embedded in a project). model_name Name of current model model_group Group for current model notification_message Content of the notification message sent by the provider (available only for actions triggered by provider notifications). parent Refers to the current feature in the parent layer, providing access to its attributes and geometry when filtering an aggregate function project_abstract The project abstract, taken from project metadata project_area_units The area unit for the current project, used when calculating areas of geometries project_author The project author, taken from project metadata project_basename The basename of current project’s filename (without path and extension) project_creation_date The project creation date, taken from project metadata project_crs The Coordinate reference system of the project project_crs_arconym The acronym of the Coordinate reference system of the project project_crs_definition The full definition of the Coordinate reference system of the project project_crs_description The description of the Coordinate reference system of the project project_crs_ellipsoid The ellipsoid of the Coordinate reference system of the project project_crs_proj4 The Proj4 representation of the Coordinate reference system of the project project_crs_wkt The WKT (well known text) representation of the coordinate reference system of the project project_distance_units The distance unit for the current project, used when calculating lengths of geometries and distances project_ellipsoid The name of the ellipsoid of the current project, used when calculating geodetic areas or lengths of geometries project_filename The filename of the current project project_folder The folder of the current project project_home The home path of the current project project_identifier The project identifier, taken from the project’s metadata project_keywords The project keywords, taken from the project’s metadata project_last_saved Date/time when project was last saved. project_path The full path (including file name) of the current project project_title The title of current project project_units The units of the project’s CRS continues on next page 14.3. List of functions 471 QGIS Desktop 3.16 User Guide Tabulka 14.2 – pokračujte na předchozí stránce Variable Popis qgis_locale The current language of QGIS qgis_os_name The current Operating system name, eg ‚windows‘, ‚linux‘ or ‚osx‘ qgis_platform The QGIS platform, eg ‚desktop‘ or ‚server‘ qgis_release_name The current QGIS release name qgis_short_version The current QGIS version short string qgis_version The current QGIS version string qgis_version_no The current QGIS version number row_number Stores the number of the current row snapping_results Gives access to snapping results while digitizing a feature (only available in add feature) scale_value The current scale bar distance value symbol_angle The angle of the symbol used to render the feature (valid for marker symbols only) symbol_color The color of the symbol used to render the feature symbol_count The number of features represented by the symbol (in the layout legend) symbol_id The Internal ID of the symbol (in the layout legend) symbol_label The label for the symbol (either a user defined label or the default autogenerated label - in the layout legend) symbol_layer_count Total number of symbol layers in the symbol symbol_layer_index Current symbol layer index symbol_marker_column Column number for marker (valid for point pattern fills only). symbol_marker_row Row number for marker (valid for point pattern fills only). user_account_name The current user’s operating system account name user_full_name The current user’s operating system user name value The current value with_variable Allows setting a variable for usage within an expression and avoid recalculating the same value repeatedly zoom_level Zoom level of the tile that is being rendered (derived from the current map scale). Normally in interval [0, 20]. Některé příklady: • Return the X coordinate of a map item center in layout: x( map_get( item_variables( 'map1'), 'map_extent_center' ) ) • Return, for each feature in the current layer, the number of overlapping airport features: aggregate( layer:='airport', aggregate:='count', expression:="code", filter:=intersects( $geometry, geometry( @parent ) ) ) • Get the object_id of the first snapped point of a line: with_variable( 'first_snapped_point', array_first( @snapping_results ), attribute( get_feature_by_id( map_get( @first_snapped_point, 'layer' ), map_get( @first_snapped_point, 'feature_id' ) ), 'object_id' ) ) 472 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide 14.3.26 Recent Functions This group contains recently used functions. Depending on the context of its usage (feature selection, field calculator, generic), recently applied expressions are added to the corresponding list (up to ten expressions), sorted from more to less recent. This makes it easy to quickly retrieve and reapply previously used expressions. 14.4 Working with the Attribute Table The attribute table displays information on features of a selected layer. Each row in the table represents a feature (with or without geometry), and each column contains a particular piece of information about the feature. Features in the table can be searched, selected, moved or even edited. 14.4.1 Foreword: Spatial and non-spatial tables QGIS allows you to load spatial and non-spatial layers. This currently includes tables supported by OGR and delimited text, as well as the PostgreSQL, MSSQL, SpatiaLite, DB2 and Oracle provider. All loaded layers are listed in the Layers panel. Whether a layer is spatially enabled or not determines whether you can interact with it on the map. Non-spatial tables can be browsed and edited using the attribute table view. Furthermore, they can be used for field lookups. For example, you can use columns of a non-spatial table to define attribute values, or a range of values that are allowed, to be added to a specific vector layer during digitizing. Have a closer look at the edit widget in section Attributes Form Properties to find out more. 14.4.2 Introducing the attribute table interface To open the attribute table for a vector layer, activate the layer by clicking on it in the Layers Panel. Then, from the main Layer menu, choose Open Attribute Table. It is also possible to right-click on the layer and choose Open Attribute Table from the drop-down menu, or to click on the Open Attribute Table button in the Attributes toolbar. If you prefer shortcuts, F6 will open the attribute table. Shift+F6 will open the attribute table filtered to selected features and Ctrl+F6 will open the attribute table filtered to visible features. This will open a new window that displays the feature attributes for the layer (figure_attributes_table). According to the setting in Settings ► Options ► Data sources menu, the attribute table will open in a docked window or a regular window. The total number of features in the layer and the number of currently selected/filtered features are shown in the attribute table title, as well as if the layer is spatially limited. 14.4. Working with the Attribute Table 473 QGIS Desktop 3.16 User Guide Obr. 14.68: Attribute Table for regions layer The buttons at the top of the attribute table window provide the following functionality: Tabulka 14.3: Available Tools Ikona Label Účel Default Shortcut Toggle editing mode Enable editing functionalities Ctrl+E Toggle multi edit mode Update multiple fields of many features Save Edits Save current modifications Reload the table Add feature Add new geometryless feature Delete selected features Remove selected features from the layer Cut selected features to clipboard Ctrl+X Copy selected features to clipboard Ctrl+C Paste features from clipboard Insert new features from copied ones Ctrl+V Select features using an Expression Select All Select all features in the layer Ctrl+A Invert selection Invert the current selection in the layer Ctrl+R Deselect all Deselect all features in the current layer Ctrl+Shift+A Filter/Select features using form Ctrl+F Move selected to top Move selected rows to the top of the table Pan map to the selected rows Ctrl+P continues on next page 474 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Tabulka 14.3 – pokračujte na předchozí stránce Ikona Label Účel Default Shortcut Zoom map to the selected rows Ctrl+J New field Add a new field to the data source Ctrl+W Delete field Remove a field from the data source Open field calculator Update field for many features in a row Ctrl+I Conditional formatting Enable table formatting Dock attribute table Allows to dock/undock the attribute table Actions Lists the actions related to the layer Poznámka: Depending on the format of the data and the OGR library built with your QGIS version, some tools may not be available. Below these buttons is the Quick Field Calculation bar (enabled only in edit mode), which allows to quickly apply calculations to all or part of the features in the layer. This bar uses the same expressions as the Field Calculator (see Editing attribute values). Table view vs Form view QGIS provides two view modes to easily manipulate data in the attribute table: • The Table view , displays values of multiple features in a tabular mode, each row representing a feature and each column a field. • The Form view shows feature identifiers in a first panel and displays only the attributes of the clicked identifier in the second one. There is a pull-down menu at the top of the first panel where the „identifier“ can be specified using an attribute (Column preview) or an Expression. The pull-down also includes the last 10 expressions for re-use. Form view uses the layer fields configuration (see Attributes Form Properties). You can browse through the feature identifiers with the arrows on the bottom of the first panel. Once you markered the feature in yellow in the list it is selected in yellow on the canvas. Use the on top of the attribute table to zoom to the feature. Clicking on an entry in the list (without using the rectangles) makes a feature flash in red color once so you can see where it is situated. You can switch from one mode to the other by clicking the corresponding icon at the bottom right of the dialog. You can also specify the Default view mode at the opening of the attribute table in Settings ► Options ► Data Sources menu. It can be ‚Remember last view‘, ‚Table view‘ or ‚Form view‘. 14.4. Working with the Attribute Table 475 QGIS Desktop 3.16 User Guide Obr. 14.69: Attribute table in table view (top) vs form view (bottom) Configuring the columns Right-click in a column header when in table view to have access to tools that help you configure what can be displayed in the attribute table and how. Hiding and organizing columns and enabling actions By right-clicking in a column header, you can choose to hide it from the attribute table. To change several columns behavior at once, unhide a column or change the order of the columns, choose Organize columns …. In the new dialog, you can: • check/uncheck columns you want to show or hide • drag-and-drop items to reorder the columns in the attribute table. Note that this change is for the table rendering and does not alter the fields order in the layer datasource • enable a new virtual Actions column that displays in each row a drop-down box or button list of actions for each row, see Actions Properties for more information about actions. 476 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Resizing columns widths Columns width can be set through a right-click on the column header and select either: • Set width… to enter the desired value. By default, the current value is displayed in the widget • Autosize to resize at the best fit the column. It can also be changed by dragging the boundary on the right of the column heading. The new size of the column is maintained for the layer, and restored at the next opening of the attribute table. Sorting columns The table can be sorted by any column, by clicking on the column header. A small arrow indicates the sort order (downward pointing means descending values from the top row down, upward pointing means ascending values from the top row down). You can also choose to sort the rows with the sort option of the column header context menu and write an expression, e.g. to sort the row using multiple columns you can write concat(col0, col1). In form view, features identifier can be sorted using the Sort by preview expression option. Tip: Sorting based on columns of different types Trying to sort an attribute table based on columns of string and numeric types may lead to unexpected result because of the concat("USE", "ID") expression returning string values (ie, 'Borough105' < 'Borough6'). You can workaround this by using eg concat("USE", lpad("ID", 3, 0)) which returns 'Borough105' > 'Borough006'. Formatting of table cells using conditions Conditional formatting settings can be used to highlight in the attribute table features you may want to put a particular focus on, using custom conditions on feature’s: • geometry (e.g., identifying multi-parts features, small area ones or in a defined map extent…); • or field value (e.g., comparing values to a threshold, identifying empty cells…). You can enable the conditional formatting panel clicking on at the top right of the attributes window in table view (not available in form view). The new panel allows user to add new rules to format rendering of Field or Full row. Adding new rule opens a form to define: • the name of the rule; • a condition using any of the expression builder functions; • the formatting: it can be choosen from a list of predefined formats or created based on properties like: – background and text colors; – use of icon; – bold, italic, underline, or strikeout; – font. 14.4. Working with the Attribute Table 477 QGIS Desktop 3.16 User Guide Obr. 14.70: Conditional Formatting of an attribute table 14.4.3 Interacting with features in an attribute table Selecting features In table view, each row in the attribute table displays the attributes of a unique feature in the layer. Selecting a row selects the feature and likewise, selecting a feature in the map canvas (in case of geometry enabled layer) selects the row in the attribute table. If the set of features selected in the map canvas (or attribute table) is changed, then the selection is also updated in the attribute table (or map canvas) accordingly. Rows can be selected by clicking on the row number on the left side of the row. Multiple rows can be marked by holding the Ctrl key. A continuous selection can be made by holding the Shift key and clicking on several row headers on the left side of the rows. All rows between the current cursor position and the clicked row are selected. Moving the cursor position in the attribute table, by clicking a cell in the table, does not change the row selection. Changing the selection in the main canvas does not move the cursor position in the attribute table. In form view of the attribute table, features are by default identified in the left panel by the value of their displayed field (see Display Properties). This identifier can be replaced using the drop-down list at the top of the panel, either by selecting an existing field or using a custom expression. You can also choose to sort the list of features from the drop-down menu. Click a value in the left panel to display the feature’s attributes in the right one. To select a feature, you need to click inside the square symbol at the left of the identifier. By default, the symbol turns into yellow. Like in the table view, you can perform multiple feature selection using the keyboard combinations previously exposed. Beyond selecting features with the mouse, you can perform automatic selection based on feature’s attribute using tools available in the attribute table toolbar, such as (see section Automatic selection and following one for more information and use case): • Select By Expression… 478 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • Select Features By Value… • Deselect All Features from the Layer • Select All Features • Invert Feature Selection. It is also possible to select features using the Filtering and selecting features using forms. Filtering features Once you have selected features in the attribute table, you may want to display only these records in the table. This can be easily done using the Show Selected Features item from the drop-down list at the bottom left of the attribute table dialog. This list offers the following filters: • Show All Features • Show Selected Features • Show Features visible on map • Show Edited and New Features • Field Filter - allows the user to filter based on value of a field: choose a column from a list, type a value and press Enter to filter. Then, only the matching features are shown in the attribute table. • Advanced filter (Expression) - Opens the expression builder dialog. Within it, you can create complex expressions to match table rows. For example, you can filter the table using more than one field. When applied, the filter expression will show up at the bottom of the form. It is also possible to filter features using forms. Poznámka: Filtering records out of the attribute table does not filter features out of the layer; they are simply momentaneously hidden from the table and can be accessed from the map canvas or by removing the filter. For filters that do hide features from the layer, use the Query Builder. Tip: Update datasource filtering with Show Features Visible on Map When for performance reasons, features shown in attribute table are spatially limited to the canvas extent at its opening (see Data Source Options for a how-to), selecting Show Features Visible on Map on a new canvas extent updates the spatial restriction. Filtering and selecting features using forms Clicking the Filter/Select features using form or pressing Ctrl+F will make the attribute table dialog switch to form view and replace each widget with its search variant. From this point onwards, this tool functionality is similar to the one described in Select Features By Value, where you can find descriptions of all operators and selecting modes. 14.4. Working with the Attribute Table 479 QGIS Desktop 3.16 User Guide Obr. 14.71: Attribute table filtered by the filter form When selecting / filtering features from the attribute table, there is a Filter features button that allows defining and refining filters. Its use triggers the Advanced filter (Expression) option and displays the corresponding filter expression in an editable text widget at the bottom of the form. If there are already filtered features, you can refine the filter using the drop-down list next to the Filter features button. The options are: • Filter within („AND“) • Extend filter („OR“) To clear the filter, either select the Show all features option from the bottom left pull-down menu, or clear the expression and click Apply or press Enter. 14.4.4 Using action on features Users have several possibilities to manipulate feature with the contextual menu like: • Select all (Ctrl+A) the features; • Copy the content of a cell in the clipboard with Copy cell content; • Zoom to feature without having to select it beforehand; • Pan to feature without having to select it beforehand; • Flash feature, to highlight it in the map canvas; • Open form: it toggles attribute table into form view with a focus on the clicked feature. 480 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.72: Copy cell content button If you want to use attribute data in external programs (such as Excel, LibreOffice, QGIS or a custom web application), select one or more row(s) and use the Copy selected rows to clipboard button or press Ctrl+C. In Settings ► Options ► Data Sources menu you can define the format to paste to with Copy features as dropdown list: • Plain text, no geometry, • Plain text, WKT geometry, • GeoJSON You can also display a list of actions in this contextual menu. This is enabled in the Layer properties ► Actions tab. See Actions Properties for more information on actions. Saving selected features as new layer The selected features can be saved as any OGR-supported vector format and also transformed into another coordinate reference system (CRS). In the contextual menu of the layer, from the Layers panel, click on Export ► Save selected features as… to define the name of the output dataset, its format and CRS (see section Creating new layers from an existing layer). You’ll notice that Save only selected features is checked. It is also possible to specify OGR creation options within the dialog. 14.4. Working with the Attribute Table 481 QGIS Desktop 3.16 User Guide 14.4.5 Editing attribute values Editing attribute values can be done by: • typing the new value directly in the cell, whether the attribute table is in table or form view. Changes are hence done cell by cell, feature by feature; • using the field calculator: update in a row a field that may already exist or to be created but for multiple features. It can be used to create virtual fields; • using the quick field calculation bar: same as above but for only existing field; • or using the multi edit mode: update in a row multiple fields for multiple features. Using the Field Calculator The Field Calculator button in the attribute table allows you to perform calculations on the basis of existing attribute values or defined functions, for instance, to calculate length or area of geometry features. The results can be used to update an existing field, or written to a new field (that can be a virtual one). The field calculator is available on any layer that supports edit. When you click on the field calculator icon the dialog opens (see Obr. 14.73). If the layer is not in edit mode, a warning is displayed and using the field calculator will cause the layer to be put in edit mode before the calculation is made. Based on the Expression Builder dialog, the field calculator dialog offers a complete interface to define an expression and apply it to an existing or a newly created field. To use the field calculator dialog, you must select whether you want to: 1. apply calculation on the whole layer or on selected features only 2. create a new field for the calculation or update an existing one. Obr. 14.73: Field Calculator 482 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide If you choose to add a new field, you need to enter a field name, a field type (integer, real, date or string) and if needed, the total field length and the field precision. For example, if you choose a field length of 10 and a field precision of 3, it means you have 7 digits before the dot, and 3 digits for the decimal part. A short example illustrates how field calculator works when using the Expression tab. We want to calculate the length in km of the railroads layer from the QGIS sample dataset: 1. Load the shapefile railroads.shp in QGIS and press Open Attribute Table . 2. Click on Toggle editing mode and open the Field Calculator dialog. 3. Select the Create a new field checkbox to save the calculations into a new field. 4. Set Output field name to length_km 5. Select Decimal number (real) as Output field type 6. Set the Output field length to 10 and the Precision to 3 7. Double click on $length in the Geometry group to add the length of the geometry into the Field calculator expression box. 8. Complete the expression by typing / 1000 in the Field calculator expression box and click OK. 9. You can now find a new length_km field in the attribute table. Creating a Virtual Field A virtual field is a field based on an expression calculated on the fly, meaning that its value is automatically updated as soon as an underlying parameter changes. The expression is set once; you no longer need to recalculate the field each time underlying values change. For example, you may want to use a virtual field if you need area to be evaluated as you digitize features or to automatically calculate a duration between dates that may change (e.g., using now() function). Poznámka: Use of Virtual Fields • Virtual fields are not permanent in the layer attributes, meaning that they’re only saved and available in the project file they’ve been created. • A field can be set virtual only at its creation. Virtual fields are marked with a purple background in the fields tab of the layer properties dialog to distinguish them from regular physical or joined fields. Their expression can be edited later by pressing the expression button in the Comment column. An expression editor window will be opened to adjust the expression of the virtual field. Using the Quick Field Calculation Bar While Field calculator is always available, the quick field calculation bar on top of the attribute table is only visible if the layer is in edit mode. Thanks to the expression engine, it offers a quicker access to edit an already existing field: 1. Select the field to update in the drop-down list. 2. Fill the textbox with a value, an expression you directly write or build using the expression button. 3. Click on Update All, Update Selected or Update Filtered button according to your need. 14.4. Working with the Attribute Table 483 QGIS Desktop 3.16 User Guide Obr. 14.74: Quick Field Calculation Bar Editing multiple fields Unlike the previous tools, multi edit mode allows multiple attributes of different features to be edited simultaneously. When the layer is toggled to edit, multi edit capabilities are accessible: • using the Toggle multi edit mode button from the toolbar inside the attribute table dialog; • or selecting Edit ► Modify attributes of selected features menu. Poznámka: Unlike the tool from the attribute table, hitting the Edit ► Modify Attributes of Selected Features option provides you with a modal dialog to fill attributes changes. Hence, features selection is required before execution. In order to edit multiple fields in a row: 1. Select the features you want to edit. 2. From the attribute table toolbar, click the button. This will toggle the dialog to its form view. Feature selection could also be made at this step. 3. At the right side of the attribute table, fields (and values) of selected features are shown. New widgets appear next to each field allowing for display of the current multi edit state: • The field contains different values for selected features. It’s shown empty and each feature will keep its original value. You can reset the value of the field from the drop-down list of the widget. • All selected features have the same value for this field and the value displayed in the form will be kept. • The field has been edited and the entered value will be applied to all the selected features. A message appears at the top of the dialog, inviting you to either apply or reset your modification. Clicking any of these widgets allows you to either set the current value for the field or reset to original value, meaning that you can roll back changes on a field-by-field basis. 484 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.75: Editing fields of multiple features 4. Make the changes to the fields you want. 5. Click on Apply changes in the upper message text or any other feature in the left panel. Changes will apply to all selected features. If no feature is selected, the whole table is updated with your changes. Modifications are made as a single edit command. So pressing Undo will rollback the attribute changes for all selected features at once. Poznámka: Multi edit mode is only available for auto generated and drag and drop forms (see Customizing a form for your data); it is not supported by custom ui forms. 14.4.6 Creating one or many to many relations Relations are a technique often used in databases. The concept is that features (rows) of different layers (tables) can belong to each other. Introducing 1-N relations As an example you have a layer with all regions of alaska (polygon) which provides some attributes about its name and region type and a unique id (which acts as primary key). Then you get another point layer or table with information about airports that are located in the regions and you also want to keep track of these. If you want to add them to the regions layer, you need to create a one to many relation using foreign keys, because there are several airports in most regions. 14.4. Working with the Attribute Table 485 QGIS Desktop 3.16 User Guide Obr. 14.76: Alaska region with airports Layers in 1-N relations QGIS makes no difference between a table and a vector layer. Basically, a vector layer is a table with a geometry. So you can add your table as a vector layer. To demonstrate the 1-n relation, you can load the regions shapefile and the airports shapefile which has a foreign key field (fk_region) to the layer regions. This means, that each airport belongs to exactly one region while each region can have any number of airports (a typical one to many relation). Foreign keys in 1-N relations In addition to the already existing attributes in the airports attribute table, you’ll need another field fk_region which acts as a foreign key (if you have a database, you will probably want to define a constraint on it). This field fk_region will always contain an id of a region. It can be seen like a pointer to the region it belongs to. And you can design a custom edit form for editing and QGIS takes care of the setup. It works with different providers (so you can also use it with shape and csv files) and all you have to do is to tell QGIS the relations between your tables. Defining 1-N relations The first thing we are going to do is to let QGIS know about the relations between the layers. This is done in Project ► Properties…. Open the Relations tab and click on Add Relation. • Name is going to be used as a title. It should be a human readable string, describing, what the relation is used for. We will just call say airport_relation in this case. • Referenced Layer (Parent) also considered as parent layer, is the one with the primary key, pointed to, so here it is the regions layer. You need to define the primary key of the referenced layer, so it is ID. • Referencing Layer (Child) also considered as child layer, is the one with the foreign key field on it. In our case, this is the airports layer. For this layer you need to add a referencing field which points to the other layer, so this is fk_region. Poznámka: Sometimes, you need more than a single field to uniquely identify features in a layer. Creating a relation with such a layer requires a composite key, ie more than a single pair of matching fields. Use the Add new field pair as part of a composite foreign key button to add as many pairs as necessary. 486 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide • Id will be used for internal purposes and has to be unique. You may need it to build custom forms. If you leave it empty, one will be generated for you but you can assign one yourself to get one that is easier to handle • Relationship strength sets the strength of the relation between the parent and the child layer. The default Association type means that the parent layer is simply linked to the child one while the Composition type allows you to duplicate also the child features when duplicating the parent ones. Obr. 14.77: Adding a relation between regions and airports layers From the Relations tab, you can also press the Discover Relation button to fetch the relations available from the providers of the loaded layers. This is possible for layers stored in data providers like PostgreSQL or SpatiaLite. Forms for 1-N relations Now that QGIS knows about the relation, it will be used to improve the forms it generates. As we did not change the default form method (autogenerated) it will just add a new widget in our form. So let’s select the layer region in the legend and use the identify tool. Depending on your settings, the form might open directly or you will have to choose to open it in the identification dialog under actions. 14.4. Working with the Attribute Table 487 QGIS Desktop 3.16 User Guide Obr. 14.78: Identification dialog regions with relation to airports As you can see, the airports assigned to this particular region are all shown in a table. And there are also some buttons available. Let’s review them shortly: • The button is for toggling the edit mode. Be aware that it toggles the edit mode of the airport layer, although we are in the feature form of a feature from the region layer. But the table is representing features of the airport layer. • The button is for saving all the edits. • The button will add a new record to the airport layer attribute table. And it will assign the new airport to the current region by default. • The is the same as but lets you digitize the airport geometry in the map canvas beforehand. Note that the icon will change according to geometry type. • The button allows you to copy one or more child features. • The button will delete the selected airport permanently. • The symbol will open a new dialog where you can select any existing airport which will then be assigned to the current region. This may be handy if you created the airport on the wrong region by accident. • The symbol will unlink the selected airport from the current region, leaving them unassigned (the foreign key is set to NULL) effectively. • With the button you can zoom the map to the selected child features. • The two buttons and to the right switch between table view and form view where the later let’s you view all the airports in their respective form. 488 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide In the above example the referencing layer has geometries (so it isn’t just an alphanumeric table) so the above steps will create an entry in the layer attribute table that has no corresponding geometric feature. To add the geometry: 1. Choose Open Attribute Table for the referencing layer. 2. Select the record that has been added previously within the feature form of the referenced layer. 3. Use the Add Part digitizing tool to attach a geometry to the selected attributes table record. If you work on the airport table, the widget Relation Reference is automatically set up for the fk_region field (the one used to create the relation), see Relation Reference widget. In the airport form you will see the button at the right side of the fk_region field: if you click on the button the form of the region layer will be opened. This widget allows you to easily and quickly open the forms of the linked parent features. Obr. 14.79: Identification dialog airport with relation to regions The Relation Reference widget has also an option to embed the form of the parent layer within the child one. It is available in the Properties ► Attributes Form menu of the airport layer: select the fk_region field and check the Show embedded form option. If you look at the feature dialog now, you will see, that the form of the region is embedded inside the airports form and will even have a combobox, which allows you to assign the current airport to another region. 14.4. Working with the Attribute Table 489 QGIS Desktop 3.16 User Guide Moreover if you toggle the editing mode of the airport layer, the fk_region field has also an autocompleter function: while typing you will see all the values of the id field of the region layer. Here it is possible to digitize a polygon for the region layer using the button if you chose the option Allow adding new features in the Properties ► Attributes Form menu of the airport layer. The child layer can also be used in the Select Features By Value tool in order to select features of the parent layer based on attributes of their children. In Obr. 14.80, all the regions where the mean altitude of the airports is greater than 500 meters above sea level are selected. You will find that many different aggregation functions are available in the form. Obr. 14.80: Select parent features with child values Introducing many-to-many (N-M) relations N-M relations are many-to-many relations between two tables. For instance, the airports and airlines layers: an airport receives several airline companies and an airline company flies to several airports. This SQL code creates the three tables we need for an N-M relationship in a PostgreSQL/PostGIS schema named locations. You can run the code using the Database ► DB Manager… for PostGIS or external tools such as pgAdmin. The airports table stores the airports layer and the airlines table stores the airlines layer. In both tables few fields are used for clarity. The tricky part is the airports_airlines table. We need it to list all airlines for all airports (or vice versa). This kind of table is known as a pivot table. The constraints in this table force that an airport can be associated with an airline only if both already exist in their layers. CREATE SCHEMA locations; CREATE TABLE locations.airports ( id serial NOT NULL, geom geometry(Point, 4326) NOT NULL, airport_name text NOT NULL, CONSTRAINT airports_pkey PRIMARY KEY (id) (continues on next page) 490 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) ); CREATE INDEX airports_geom_idx ON locations.airports USING gist (geom); CREATE TABLE locations.airlines ( id serial NOT NULL, geom geometry(Point, 4326) NOT NULL, airline_name text NOT NULL, CONSTRAINT airlines_pkey PRIMARY KEY (id) ); CREATE INDEX airlines_geom_idx ON locations.airlines USING gist (geom); CREATE TABLE locations.airports_airlines ( id serial NOT NULL, airport_fk integer NOT NULL, airline_fk integer NOT NULL, CONSTRAINT airports_airlines_pkey PRIMARY KEY (id), CONSTRAINT airports_airlines_airport_fk_fkey FOREIGN KEY (airport_fk) REFERENCES locations.airports (id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, CONSTRAINT airports_airlines_airline_fk_fkey FOREIGN KEY (airline_fk) REFERENCES locations.airlines (id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED ); Instead of PostgreSQL you can also use GeoPackage. In this case, the three tables can be created manually using the Database ► DB Manager…. In GeoPackage there are no schemas so the locations prefix is not needed. Foreign key constraints in airports_airlines table can´t be created using Table ► Create Table… or Table ► Edit Table… so they should be created using Database ► SQL Window…. GeoPackage doesn’t support ADD CONSTRAINT statements so the airports_airlines table should be created in two steps: 1. Set up the table only with the id field using Table ► Create Table… 2. Using Database ► SQL Window…, type and execute this SQL code: ALTER TABLE airports_airlines ADD COLUMN airport_fk INTEGER REFERENCES airports (id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED; ALTER TABLE airports_airlines ADD COLUMN airline_fk INTEGER REFERENCES airlines (id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED; Then in QGIS, you should set up two one-to-many relations as explained above: • a relation between airlines table and the pivot table; • and a second one between airports table and the pivot table. An easier way to do it (only for PostgreSQL) is using the Discover Relations in Project ► Properties ► Relations. 14.4. Working with the Attribute Table 491 QGIS Desktop 3.16 User Guide QGIS will automatically read all relations in your database and you only have to select the two you need. Remember to load the three tables in the QGIS project first. Obr. 14.81: Relations and autodiscover In case you want to remove an airport or an airline, QGIS won’t remove the associated record(s) in airports_airlines table. This task will be made by the database if we specify the right constraints in the pivot table creation as in the current example. Poznámka: Combining N-M relation with automatic transaction group You should enable the transaction mode in Project Properties ► Data Sources ► when working on such context. QGIS should be able to add or update row(s) in all tables (airlines, airports and the pivot tables). Finally we have to select the right cardinalilty in the Layer Properties ► Attributes Form for the airports and airlines layers. For the first one we should choose the airlines (id) option and for the second one the airports (id) option. Obr. 14.82: Set relationship cardinality Now you can associate an airport with an airline (or an airline with an airport) using Add child feature or Link existing child feature in the subforms. A record will automatically be inserted in the airports_airlines table. 492 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.83: N-M relationship between airports and airlines Poznámka: Using Many to one relation cardinality Sometimes hiding the pivot table in an N-M relationship is not desirable. Mainly because there are attributes in the relationship that can only have values when a relationship is established. If your tables are layers (have a geometry field) it could be interesting to activate the On map identification option (Layer Properties ► Attributes Form ► Available widgets ► Fields) for the foreign key fields in the pivot table. Poznámka: Pivot table primary key Avoid using multiple fields in the primary key in a pivot table. QGIS assumes a single primary key so a constraint like constraint airports_airlines_pkey primary key (airport_fk, airline_fk) will not work. 14.4. Working with the Attribute Table 493 QGIS Desktop 3.16 User Guide 14.5 Editování QGIS has various capabilities for editing OGR, SpatiaLite, PostGIS, MSSQL Spatial and Oracle Spatial vector layers and tables. Poznámka: The procedure for editing GRASS layers is different - see section Digitizing and editing a GRASS vector layer for details. Tip: Souběžné editace This version of QGIS does not track if somebody else is editing the same feature at the same time as you are. The last person to save the edits wins. 14.5.1 Nastavení přichytávací tolerance a vyhledání poloměru For optimal and accurate editing of vector layer geometries, we need to set an appropriate value of snapping tolerance and search radius for features vertices. Přichytávací tolerance When you add a new vertex or move an existing one, the snapping tolerance is the distance QGIS uses to search for the closest vertex or segment you are trying to connect to. If you are not within the snapping tolerance, QGIS will leave the vertex where you release the mouse button, instead of snapping it to an existing vertex or segment. The snapping tolerance setting affects all tools that work with tolerance. You can enable / disable snapping by using the Enable snapping button on the Snapping Toolbar or pressing s. The snapping mode, tolerance value, and units can also be configured in this toolbar. The snapping configuration can also be set in Project ► Snapping Options…. There are three options to select the layer(s) to snap to: • All layers: quick setting for all visible layers in the project so that the pointer snaps to all vertices and/or segments. In most cases, it is sufficient to use this snapping mode, but beware when using it for projects with many vector layers, as it may affect performance. • Current layer: only the active layer is used, a convenient way to ensure topological consistency within the layer being edited. • Advanced Configuration: allows you to enable and adjust snapping mode and tolerance on a layer basis (see Obr. 14.84). If you need to edit a layer and snap its vertices to another, make sure that the target layer is checked and increase the snapping tolerance to a higher value. Snapping will not occur to a layer that is not checked in the snapping options dialog. As for snapping mode, you can choose between To vertex, To segment, and To vertex and segment. The tolerance values can be set either in the project’s map units or in pixels. The advantage of choosing pixels is that it keeps the snapping constant at different map scales. 10 to 12 pixels is normally a good value, but it depends on the DPI of your screen. Using map units allows the tolerance to be related to real ground distances. For example, if you have a minimum distance between elements, this option can be useful to ensure that you don’t add vertices too close to each other. 494 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.84: Snapping options (Advanced Configuration mode) Poznámka: By default, only visible features (the features whose style is displayed, except for layers where the symbology is „No symbols“) can be snapped. You can enable the snapping on invisible features by checking Enable snapping on invisible features under the Settings ► Options ► Digitizing tab. Tip: Enable snapping by default You can set snapping to be enabled by default on all new projects in the Settings ► Options ► Digitizing tab. You can also set the default snapping mode, tolerance value, and units, which will populate the Snapping Options dialog. Enable snapping on intersections Another available option is to use snapping on intersection, which allows you to snap to geometry intersections of snapping enabled layers, even if there are no vertices at the intersections. Snapping icons QGIS will show different snap icons depending on the kind of snap: Snapping to a vertex: box icon Snapping to a segment: hourglass icon Snapping to an intersection: cross icon Note that it is possible to change the color of these icons in the Digitizing part of your settings. 14.5. Editování 495 QGIS Desktop 3.16 User Guide Vyhledání poloměru Search radius for vertex edits is the distance QGIS uses to search for the vertex to select when you click on the map. If you are not within the search radius, QGIS will not find and select any vertex for editing. The search radius for vertex edits can be defined under the Settings ► Options ► Digitizing tab (this is where you define the snapping default values). Snap tolerance and search radius are set in map units or pixels. You may need to experiment to get them right. If you specify a too big tolerance, QGIS may snap to the wrong vertex, especially if you are dealing with a large number of vertices in close proximity. The smaller the search radius, the more difficult it will be to hit what you want to move. Limit snapping to a scale range In some cases snapping can become very slow. This is often caused by the amount of features in some layers that require a heavy index to compute and maintain. Some parameters exist to enable snapping only when the map view is inside a relevant scale range. This allows to only do the costly index computation related to snapping at a scale where drawing is relevant. Scale limit to snapping is configured in Project ► Snapping Options…. Limiting snapping to scale is only available in Advanced Configuration mode. To limit snapping to a scale range you have three modes available: • Disabled: Snapping is enabled whatever the current map scale is. This is the default mode. • Global: Snapping is limited and only enabled when the current scale of the map is between a global minimum and a global maximum value. When selecting this mode two widgets become available to configure the range of scales in which snapping is enabled. • Per layer: The snapping scale range limit is defined for each layer. When selecting this mode two columns become available to configure the minimum and maximum scales for each layer. Please note that the minimum and maximum scales follow the QGIS convention: minimum scale is the most „zoomed out“ scale while maximum scale is the most „zoomed in“. A minimum or maximum scale that is set to „0“ or „not set“ is considered not limiting. 14.5.2 Topologická editace In addition to these snapping options, the Snapping options… dialog (Project ► Snapping options) and the Snapping toolbar allow you to enable / disable some other topological functionalities. Povolení topologické editace The Topological editing button helps when editing and maintaining features with common boundaries. With this option enabled, QGIS ‚detects‘ shared boundaries. When you move common vertices/segments, QGIS will also move them in the geometries of the neighboring features. Topological editing works with features from different layers, as long as the layers are visible and in editing mode. 496 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Avoid overlap of new polygons When the snapping mode is set to Advanced configuration, for polygon layers, there’s an option called Avoid overlap. This option prevents you from drawing new features that overlap existing ones in the selected layer, speeding up digitizing of adjacent polygons. With avoid overlap enabled, if you already have one polygon, you can digitize a second one such that they intersect. QGIS will then cut the second polygon to the boundary of the existing one. The advantage is that you don’t have to digitize all vertices of the common boundary. Poznámka: If the new geometry is totally covered by existing ones, it gets cleared, and QGIS will show an error message. Varování: Use cautiously the Avoid overlap option Since this option will cut new overlapping geometries of any polygon layer, you can get unexpected geometries if you forget to uncheck it when no longer needed. Geometry Checker A core plugin can help the user to find the geometry invalidity. You can find more information on this plugin at Geometry Checker Plugin. Automatic Tracing Usually, when using capturing map tools (add feature, add part, add ring, reshape and split), you need to click each vertex of the feature. With the automatic tracing mode, you can speed up the digitization process as you no longer need to manually place all the vertices during digitization: 1. Enable the Tracing tool (in the Snapping toolbar) by pushing the icon or pressing T key. 2. Snap to a vertex or segment of a feature you want to trace along. 3. Move the mouse over another vertex or segment you’d like to snap and, instead of the usual straight line, the digitizing rubber band represents a path from the last point you snapped to the current position. The tool also works with curved geometries. QGIS actually uses the underlying features topology to build the shortest path between the two points. Tracing requires snapping to be activated in traceable layers to build the path. You should also snap to an existing vertex or segment while digitizing and ensure that the two nodes are topologically connectable through existing features edges, otherwise QGIS is unable to connect them and thus traces a single straight line. 4. Click and QGIS places the intermediate vertices following the displayed path. Unfold the Enable Tracing icon and set the Offset option to digitize a path parallel to the features instead of tracing along them. A positive value shifts the new drawing to the left side of the tracing direction and a negative value does the opposite. Poznámka: Adjust map scale or snapping settings for an optimal tracing If there are too many features in map display, tracing is disabled to avoid potentially long tracing structure preparation and large memory overhead. After zooming in or disabling some layers the tracing is enabled again. Poznámka: Does not add topological points 14.5. Editování 497 QGIS Desktop 3.16 User Guide This tool does not add points to existing polygon geometries even if Topological editing is enabled. If geometry precision is activated on the edited layer, the resulting geometry might not exactly follow an existing geometry. Tip: Quickly enable or disable automatic tracing by pressing the T key By pressing the T key, tracing can be enabled/disabled anytime (even while digitizing a feature), so it is possible to digitize parts of the feature with tracing enabled and other parts with tracing disabled. Tools behave as usual when tracing is disabled. Tip: Convert tracing to curved geometries By using Settings ► Options ► Digitizing ► Tracing you can create curved geometries while digitizing. See digitizing options. 14.5.3 Digitizing an existing layer By default, QGIS loads layers read-only. This is a safeguard to avoid accidentally editing a layer if there is a slip of the mouse. However, you can choose to edit any layer as long as the data provider supports it (see Exploring Data Formats and Fields), and the underlying data source is writable (i.e., its files are not read-only). Tip: Restrict edit permission on layers within a project From the Project ► Properties… ► Data Sources ► Layers Capabilities table, you can choose to set any layer read-only regardless the provider permission. This can be a handy way, in a multi-users environment to avoid unauthorized users to mistakenly edit layers (e.g., Shapefile), hence potentially corrupt data. Note that this setting only applies inside the current project. In general, tools for editing vector layers are divided into a digitizing and an advanced digitizing toolbar, described in section Advanced digitizing. You can select and unselect both under View ► Toolbars ►. Using the basic digitizing tools, you can perform the following functions: Ikona Účel Ikona Účel Current edits Přepnout editaci Save layer edits Add new record Add Feature: Capture Point Add Feature: Capture Line Add Feature: Capture Polygon Vertex Tool (All Layers) Vertex Tool (Current Layer) Modify the attributes of all selected features simultaneously Vymazat vybrané Vyjmout prvky Kopírovat prvky Vložit prvky Zpět Znovu Table Editing: Vector layer basic editing toolbar Note that while using any of the digitizing tools, you can still zoom or pan in the map canvas without losing the focus on the tool. 498 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide All editing sessions start by choosing the Toggle editing option found in the context menu of a given layer, from the attribute table dialog, the digitizing toolbar or the Edit menu. Once the layer is in edit mode, additional tool buttons on the editing toolbar will become available and markers will appear at the vertices of all features unless Show markers only for selected features option under Settings ► Options… ► Digitizing menu is checked. Tip: Save Regularly Remember to Save Layer Edits regularly. This will also check that your data source can accept all the changes. Adding Features Depending on the layer type, you can use the Add Record , Add Point Feature , Add Line Feature or Add Polygon Feature icons on the toolbar to add new features into the current layer. To add a geometryless feature, click on the Add Record button and you can enter attributes in the feature form that opens. To create features with the spatially enabled tools, you first digitize the geometry then enter its attributes. To digitize the geometry: 1. Left-click on the map area to create the first point of your new feature. For point features, this should be enough and trigger, if required, the feature form to fill in their attributes. Having set the geometry precision in the layer properties you can use snap to grid here to create features based on a regular distance. 2. For line or polygon geometries, keep on left-clicking for each additional point you wish to capture or use automatic tracing capability to accelerate the digitization. This will create consecutive straight lines between the vertices you place. Poznámka: Pressing Delete or Backspace key reverts the last node you add. 3. When you have finished adding points, right-click anywhere on the map area to confirm you have finished entering the geometry of that feature. Poznámka: While digitizing line or polygon geometries, you can switch back and forth between the linear Add feature tools and circular string tools to create compound curved geometries. Tip: Customize the digitizing rubber band While capturing polygon, the by-default red rubber band can hide underlying features or places you’d like to capture a point. This can be fixed by setting a lower opacity (or alpha channel) to the rubber band’s Fill Color in Settings ► Options ► Digitizing menu. You can also avoid the use of the rubber band by checking Don’t update rubber band during node editing. 4. The attribute window will appear, allowing you to enter the information for the new feature. Obr. 14.85 shows setting attributes for a fictitious new river in Alaska. However, in the Digitizing menu under the Settings ► Options menu, you can also activate: • Suppress attributes pop-up windows after each created feature to avoid the form opening; • or Reuse last entered attribute values to have fields automatically filled at the opening of the form and just have to type changing values. 14.5. Editování 499 QGIS Desktop 3.16 User Guide Obr. 14.85: Enter Attribute Values Dialog after digitizing a new vector feature Vertex tool Poznámka: QGIS 3 major changes In QGIS 3, the node tool has been fully redesigned and renamed to vertex tool. It was previously working with „click and drag“ ergonomy, and now uses a „click - click“ workflow. This allows major improvements like taking profit of the advanced digitizing panel with the vertex tool while digitizing or editing objects of multiple layers at the same time. For any editable vector layer, the Vertex tool (Current Layer) provides manipulation capabilities of feature vertices similar to CAD programs. It is possible to simply select multiple vertices at once and to move, add or delete them altogether. The vertex tool also supports the topological editing feature. This tool is selection persistent, so when some operation is done, selection stays active for this feature and tool. It is important to set the property Settings ► Options ► Digitizing ► Search Radius: to a number greater than zero. Otherwise, QGIS will not be able to tell which vertex is being edited and will display a warning. Tip: Vertex Markers The current version of QGIS supports three kinds of vertex markers: ‚Semi-transparent circle‘, ‚Cross‘ and ‚None‘. To change the marker style, choose Options from the Settings menu, click on the Digitizing tab and select the appropriate entry. Basic operations Start by activating the Vertex Tool (Current Layer) . Red circles will appear when hovering vertices. • Selecting vertices: You can select vertices by clicking on them one at a time holding Shift key pressed, or by clicking and dragging a rectangle around some vertices. When a vertex is selected, its color changes to blue. To add more vertices to the current selection, hold down the Shift key while clicking. To remove vertices from the selection, hold down Ctrl. • Batch vertex selection mode: The batch selection mode can be activated by pressing Shift+R. Select a first node with one single click, and then hover without clicking another vertex. This will dynamically select all the nodes in between using the shortest path (for polygons). 500 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.86: Batch vertex selection using Shift+R Press Ctrl will invert the selection, selecting the longest path along the feature boundary. Ending your node selection with a second click, or pressing Esc will escape the batch mode. • Adding vertices: To add a vertex, a virtual new node appears on the segment center. Simply grab it to add a new vertex. A double-click on any location of the boundary also creates a new node. For lines, a virtual node is also proposed at both extremities of a line to extend it. Obr. 14.87: Virtual nodes for adding vertices • Deleting vertices: Select the vertices and click the Delete key. Deleting all the vertices of a feature generates, if compatible with the datasource, a geometryless feature. Note that this doesn’t delete the complete feature, just the geometry part. To delete a complete feature use the Delete Selected tool. • Moving vertices: Select all the vertices you want to move, click on a selected vertex or edge, and click again on the desired new location. All the selected vertices will move together. If snapping is enabled, the whole selection can jump to the nearest vertex or line. You can use Advanced Digitizing Panel constraints for distance, angles, exact X Y location before the second click. 14.5. Editování 501 QGIS Desktop 3.16 User Guide Here you can use the snap-to-grid feature. Having set a value for the geometry precision in the layer properties, a grid appears on a zoom level according to the Geometry precision. Obr. 14.88: Selecting a vertex and moving the vertices to grid Each change made with the vertex is stored as a separate entry in the Undo dialog. Remember that all operations support topological editing when this is turned on. On-the-fly projection is also supported, and the vertex tool provides tooltips to identify a vertex by hovering the pointer over it. The Vertex Editor Panel When using the Vertex tool on a feature, it is possible to right click to open the Vertex Editor panel listing all the vertices of the feature with their x, y (z, m if applicable) coordinates and r (for the radius, in case of circular geometry). Simply select a row in the table does select the corresponding vertex in the map canvas, and vice versa. Simply change a coordinate in the table and your vertex position is updated. You can also select multiple rows and delete them altogether. Poznámka: Changed behavior in QGIS 3.4 Right click on a feature will immediately show the vertex editor and lock this feature, thus disabling the editing of any other features. While being locked, a feature is exclusive for editing: Selecting and moving of vertices and segments by clicking or dragging is only possible for this feature. New vertices can only be added to the locked feature. Also, the vertex editor panel now opens itself automatically upon activating the vertex tool, and its position/docked state remembered across uses. 502 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Obr. 14.89: Vertex editor panel showing selected nodes Cutting, Copying and Pasting Features Selected features can be cut, copied and pasted between layers in the same QGIS project, as long as destination layers are set to Toggle editing beforehand. Tip: Transform polygon into line and vice-versa using copy/paste Copy a line feature and paste it in a polygon layer: QGIS pastes in the target layer a polygon whose boundary corresponds to the closed geometry of the line feature. This is a quick way to generate different geometries of the same data. Features can also be pasted to external applications as text. That is, the features are represented in CSV format, with the geometry data appearing in the OGC Well-Known Text (WKT) format. WKT and GeoJSON features from outside QGIS can also be pasted to a layer within QGIS. When would the copy and paste function come in handy? Well, it turns out that you can edit more than one layer at a time and copy/paste features between layers. Why would we want to do this? Say we need to do some work on a new layer but only need one or two lakes, not the 5,000 on our big_lakes layer. We can create a new layer and use copy/paste to plop the needed lakes into it. As an example, we will copy some lakes to a new layer: 1. Load the layer you want to copy from (source layer) 2. Load or create the layer you want to copy to (target layer) 3. Start editing for target layer 4. Make the source layer active by clicking on it in the legend 5. Use the Select Features by area or single click tool to select the feature(s) on the source layer 6. Click on the Copy Features tool 7. Make the destination layer active by clicking on it in the legend 8. Click on the Paste Features tool 9. Stop editing and save the changes 14.5. Editování 503 QGIS Desktop 3.16 User Guide What happens if the source and target layers have different schemas (field names and types are not the same)? QGIS populates what matches and ignores the rest. If you don’t care about the attributes being copied to the target layer, it doesn’t matter how you design the fields and data types. If you want to make sure everything - the feature and its attributes - gets copied, make sure the schemas match. Poznámka: Congruency of Pasted Features If your source and destination layers use the same projection, then the pasted features will have geometry identical to the source layer. However, if the destination layer is a different projection, then QGIS cannot guarantee the geometry is identical. This is simply because there are small rounding-off errors involved when converting between projections. Tip: Copy string attribute into another If you have created a new column in your attribute table with type ‚string‘ and want to paste values from another attribute column that has a greater length the length of the column size will be extended to the same amount. This is because the GDAL Shapefile driver starting with GDAL/OGR 1.10 knows to auto-extend string and integer fields to dynamically accommodate for the length of the data to be inserted. Deleting Selected Features If we want to delete an entire feature (attribute and geometry), we can do that by first selecting the geometry using the regular Select Features by area or single click tool. Selection can also be done from the attribute table. Once you have the selection set, press Delete or Backspace key or use the Delete Selected tool to delete the features. Multiple selected features can be deleted at once. The Cut Features tool on the digitizing toolbar can also be used to delete features. This effectively deletes the feature but also places it on a „spatial clipboard“. So, we cut the feature to delete. We could then use the Paste Features tool to put it back, giving us a one-level undo capability. Cut, copy, and paste work on the currently selected features, meaning we can operate on more than one at a time. Zpět a znovu The Undo and Redo tools allows you to undo or redo vector editing operations. There is also a dockable widget, which shows all operations in the undo/redo history (see Obr. 14.90). This widget is not displayed by default; it can be displayed by right-clicking on the toolbar and activating the Undo/Redo Panel checkbox. The Undo/Redo capability is however active, even if the widget is not displayed. Obr. 14.90: Redo and Undo digitizing steps When Undo is hit or Ctrl+Z (or Cmd+Z) pressed, the state of all features and attributes are reverted to the state before the reverted operation happened. Changes other than normal vector editing operations (for example, changes 504 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide done by a plugin) may or may not be reverted, depending on how the changes were performed. To use the undo/redo history widget, simply click to select an operation in the history list. All features will be reverted to the state they were in after the selected operation. Saving Edited Layers When a layer is in editing mode, any changes remain in the memory of QGIS. Therefore, they are not committed/saved immediately to the data source or disk. If you want to save edits to the current layer but want to continue editing without leaving the editing mode, you can click the Save Layer Edits button. When you turn editing mode off with Toggle editing (or quit QGIS for that matter), you are also asked if you want to save your changes or discard them. If the changes cannot be saved (e.g., disk full, or the attributes have values that are out of range), the QGIS in-memory state is preserved. This allows you to adjust your edits and try again. Tip: Data Integrity It is always a good idea to back up your data source before you start editing. While the authors of QGIS have made every effort to preserve the integrity of your data, we offer no warranty in this regard. Saving multiple layers at once This feature allows the digitization of multiple layers. Choose Save for Selected Layers to save all changes you made in multiple layers. You also have the opportunity to Rollback for Selected Layers, so that the digitization may be withdrawn for all selected layers. If you want to stop editing the selected layers, Cancel for Selected Layer(s) is an easy way. The same functions are available for editing all layers of the project. Tip: Use transaction group to edit, save or rollback multiple layers changes at once When working with layers from the same PostGreSQL database, activate the Automatically create transaction groups where possible option in Project ► Properties… ► Data Sources to sync their behavior (enter or exit the edit mode, save or rollback changes at the same time). 14.5.4 Advanced digitizing 14.5. Editování 505 QGIS Desktop 3.16 User Guide Ikona Účel Ikona Účel Enable Advanced Digitizing Tools Enable Tracing Move Feature(s) Copy and Move Feature(s) Rotovat prvek(prvky) Zjednodušit prvek Přidat prstenec Přidat část Fill Ring Swap direction Smazat prstenec Smazat část Odsazení křivky Změnit tvar prvků Split Parts Rozdělit objekt Sloučit atributy vybraných prvků Sloučit vybrané prvky Rotovat symboly bodů Offset Point Symbols Trim or Extend Feature Table Advanced Editing: Vector layer advanced editing toolbar Move Feature(s) The Move Feature(s) tool allows you to move existing features: 1. Select the feature(s) to move. 2. Click on the map canvas to indicate the origin point of the displacement; you can rely on snapping capabilities to select an accurate point. You can also take advantages of the advanced digitizing constraints to accurately set the origin point coordinates. In that case: 1. First click on the button to enable the panel. 2. Type x and enter the corresponding value for the origin point you’d like to use. Then press the button next to the option to lock the value. 3. Do the same for the y coordinate. 4. Click on the map canvas and your origin point is placed at the indicated coordinates. 3. Move over the map canvas to indicate the destination point of the displacement, still using snapping mode or, as above, use the advanced digitizing panel which would provide complementary distance and angle placement constraints to place the end point of the translation. 4. Click on the map canvas: the whole features are moved to new location. Likewise, you can create a translated copy of the feature(s) using the Copy and Move Feature(s) tool. Poznámka: If no feature is selected when you first click on the map canvas with any of the Move Feature(s) or Copy and Move Feature(s) tools, then only the feature under the mouse is affected by the action. So, if you want to move several features, they should be selected first. 506 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Rotovat prvek(prvky) Use the Rotate Feature(s) tool to rotate one or multiple features in the map canvas: 1. Press the Rotate Feature(s) icon 2. Then click on the feature to rotate. The feature’s centroid is referenced as rotation center, a preview of the rotated feature is displayed and a widget opens showing the current Rotation angle. 3. Click on the map canvas when you are satisfied with the new placement or manually enter the rotation angle in the text box. You can also use the Snap to ° box to constrain the rotation values. 4. If you want to rotate several features at once, they shall be selected first, and the rotation is by default around the centroid of their combined geometries. You can also use an anchor point different from the default feature centroid: press the Ctrl button, click on the map canvas and that point will be used as the new rotation center. If you hold Shift before clicking on the map, the rotation will be done in 45 degree steps, which can be modified afterwards in the user input widget. To abort feature rotation, press the ESC button or click on the Rotate Feature(s) icon. Zjednodušit prvek The Simplify Feature tool allows you to interactively reshape a line or polygon geometry by reducing or densifying the number of vertices, as long as the geometry remains valid: 1. Select the Simplify Feature tool. 2. Click on the feature or drag a rectangle over the features. 3. A dialog pops up allowing you to define the Method to apply, ie whether you would like to: • simplify the geometry, meaning less vertices than the original. Available methods are Simplify by distance, Simplify by snapping to grid or simplify by area (Visvalingam). You’d then need to indicate the value of Tolerance in Layer units, Pixels or map units to use for simplification. The higher the tolerance is the more vertices can be deleted. • or densify the geometries with new vertices thanks to the Smooth option: for each existing vertex, two vertices are placed on each of the segments originated from it, at an Offset distance representing the percentage of the segment length. You can also set the number of Iterations the placement would be processed: the more iterations, the more vertices and smoother is the feature. Settings that you used will be saved when leaving a project or an edit session. So you can go back to the same parameters the next time you simplify a feature. 4. A summary of the modifications that would apply is shown at the bottom of the dialog, listing number of features and number of vertices (before and after the operation and the ratio the change represents). Also, in the map canvas, the expected geometry is displayed over the existing one, using the rubberband color. 5. When the expected geometry fits your needs, click OK to apply the modification. Otherwise, to abort the operation, you can either press Cancel or right-click in the map canvas. Poznámka: Unlike the feature simplification option in Settings ► Options ► Rendering menu which simplifies the geometry just for rendering, the Simplify Feature tool permanently modifies feature’s geometry in data source. 14.5. Editování 507 QGIS Desktop 3.16 User Guide Přidat část You can Add Part to a selected feature generating a multipoint, multiline or multipolygon feature. The new part must be digitized outside the existing one which should be selected beforehand. The Add Part can also be used to add a geometry to a geometryless feature. First, select the feature in the attribute table and digitize the new geometry with the Add Part tool. Smazat část The Delete Part tool allows you to delete parts from multifeatures (e.g., to delete polygons from a multi-polygon feature). This tool works with all multi-part geometries: point, line and polygon. Furthermore, it can be used to totally remove the geometric component of a feature. To delete a part, simply click within the target part. Přidat prstenec You can create ring polygons using the Add Ring icon in the toolbar. This means that inside an existing area, it is possible to digitize further polygons that will occur as a ‚hole‘, so only the area between the boundaries of the outer and inner polygons remains as a ring polygon. Fill Ring The Fill Ring tool helps you create polygon feature that totally falls within another one without any overlapping area; that is the new feature covers a hole within the existing one. To create such a feature: 1. Select the Fill Ring tool. 2. Draw a new polygon over the existing feature: QGIS adds a ring to its geometry (like if you used the Add Ring tool) and creates a new feature whose geometry matches the ring (like if you traced over the interior boundaries with the Add polygon feature tool). 3. Or alternatively, if the ring already exists on the feature, place the mouse over the ring and left-click while pressing Shift: a new feature filling the hole is drawn at that place. The Feature Attributes form of the new feature opens, pre-filled with values of the „parent“ feature and/or fields constraints. Smazat prstenec The Delete Ring tool allows you to delete rings within an existing polygon, by clicking inside the hole. This tool only works with polygon and multi-polygon features. It doesn’t change anything when it is used on the outer ring of the polygon. 508 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Změnit tvar prvků You can reshape line and polygon features using the Reshape Features tool on the toolbar. For lines, it replaces the line part from the first to the last intersection with the original line. Obr. 14.91: Reshape line Tip: Extend linestring geometries with reshape tool Use the Reshape Features tool to extend existing linestring geometries: snap to the first or last vertex of the line and draw a new one. Validate and the feature’s geometry becomes the combination of the two lines. For polygons, it will reshape the polygon’s boundary. For it to work, the reshape tool’s line must cross the polygon’s boundary at least twice. To draw the line, click on the map canvas to add vertexes. To finish it, just right-click. Like with the lines, only the segment between the first and the last intersections is considered. The reshape line’s segments that are inside the polygon will result in cropping it, where the ones outside the polygon will extend it. Obr. 14.92: Reshape polygon With polygons, reshaping can sometimes lead to unintended results. It is mainly useful to replace smaller parts of 14.5. Editování 509 QGIS Desktop 3.16 User Guide a polygon, not for major overhauls, and the reshape line is not allowed to cross several polygon rings, as this would generate an invalid polygon. Poznámka: The reshape tool may alter the starting position of a polygon ring or a closed line. So, the point that is represented ‚twice‘ will not be the same any more. This may not be a problem for most applications, but it is something to consider. Odsazení křivek The Offset Curve tool creates parallel shifts of line layers. The tool can be applied to the edited layer (the geometries are modified) or also to background layers (in which case it creates copies of the lines / rings and adds them to the edited layer). It is thus ideally suited for the creation of distance line layers. The User Input dialog pops-up, showing the displacement distance. To create a shift of a line layer, you must first go into editing mode and activate the Offset Curve tool. Then click on a feature to shift it. Move the mouse and click where wanted or enter the desired distance in the user input widget. Your changes may then be saved with the Save Layer Edits tool. QGIS options dialog (Digitizing tab then Curve offset tools section) allows you to configure some parameters like Join style, Quadrant segments, Miter limit. Reverse Line Changing the direction of a line geometry can be useful for cartographical purposes or when preparing for network analysis. To change a line direction: 1. Activate the reverse line tool by clicking Reverse line . 2. Click on the line. The direction of the line is reversed. Rozdělit objekt Use the Split Features tool to split a feature into two or more new and independent features, ie. each geometry corresponding to a new row in the attribute table. To split line or polygon features: 1. Select the Split Features tool. 2. Draw a line across the feature(s) you want to split. If a selection is active, only selected features are split. When set, default values or clauses are applied to corresponding fields and other attributes of the parent feature are by default copied to the new features. 3. You can then as usually modify any of the attributes of any resulting feature. Tip: Split a polyline into new features in one-click Using the Split Features tool, snap and click on an existing vertex of a polyline feature to split that feature into two new features. 510 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Split parts In QGIS it is possible to split the parts of a multi part feature so that the number of parts is increased. Just draw a line across the part you want to split using the Split Parts icon. Tip: Split a polyline into new parts in one-click Using the Split Parts tool, snap and click on an existing vertex of a polyline feature to split the feature into two new polylines belonging to the same feature. Sloučit vybrané prvky The Merge Selected Features tool allows you to create a new feature by merging existing ones: their geometries are merged to generate a new one. If features don’t have common boundaries, a multipolygon/multipolyline/multipoint feature is created. 1. First, select the features you’d like to combine. 2. Then press the Merge Selected Features button. 3. In the new dialog, the Merge line at the bottom of the table shows the attributes of the resulting feature. You can alter any of these values either by: • manually replacing the value in the corresponding cell; • selecting a row in the table and pressing Take attributes from selected feature to use the values of this initial feature; • pressing Skip all fields to use empty attributes; • or, expanding the drop down menu at the top of the table, select any of the above options to apply to the corresponding field only. There, you can also choose to aggregate the initial features attributes (Minimum, Maximum, Median, Sum, Count, Concatenation… depending on the type of the field. see Statistical Summary Panel for the full list of functions). Poznámka: If the layer has default values or clauses present on fields, these are used as the initial value for the merged feature. 4. Press OK to apply the modifications. A single (multi)feature is created in the layer, replacing the previously selected ones. Sloučit atributy vybraných prvků The Merge Attributes of Selected Features tool allows you to apply same attributes to features without merging their boundaries. The dialog is the same as the Merge Selected Features tool’s except that unlike that tool, selected objects are kept with their geometry while some of their attributes are made identical. 14.5. Editování 511 QGIS Desktop 3.16 User Guide Rotovat symboly bodů The Rotate Point Symbols allows you to individually change the rotation of point symbols in the map canvas. 1. First, you need to indicate the field to store the rotation value in. This is made by assigning a field to the symbol data-defined rotation property: 1. In the Layer Properties ► Symbology dialog, browse to the symbol editor dialog. 2. Click the Data-defined override widget near the Rotation option of the top Marker level (preferably) of the symbol layers. 3. Choose a field in the Field Type combobox. Values of this field are hence used to rotate each feature’s symbol accordingly. You can also check the Store data in project entry to generate an auxiliary data storage field to control the rotation value. Poznámka: Make sure that the same field is assigned to all the symbol layers Setting the data-defined rotation field at the topmost level of the symbol tree automatically propagates it to all the symbol layers, a prerequisite to perform graphical symbol rotation with the Rotate Point Symbols tool. Indeed, if a symbol layer does not have the same field attached to its rotation property, the tool will not work. Obr. 14.93: Rotating a point symbol 2. Then click on a point symbol in the map canvas with the Rotate Point Symbols tool 3. Move the mouse around. A red arrow with the rotation value will be visualized (see Obr. 14.93). If you hold the Ctrl key while moving, the rotation will be done in 15 degree steps. 4. When you get the expected angle value, click again. The symbol is rendered with this new rotation and the associated field is updated accordingly. You can right-click to abort symbol rotation. 512 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Offset Point Symbols The Offset Point Symbols allows you to interactively change the rendered position of point symbols in the map canvas. This tool behaves like the Rotate Point Symbols tool except that it requires you to connect a field to the data-defined Offset (X,Y) property of each layer of the symbol. The field will then be populated with the offset coordinates for the features whose symbol is moved in the map canvas. 1. Associate a field to the data-defined widget of the Offset (X,Y) property of the symbol. If the symbol is made with many layers, you may want to assign the field to each of them 2. Select the Offset Point Symbols tool 3. Click a point symbol 4. Move to a new location 5. Click again. The symbol is moved to the new place. Offset values from the original position are stored in the linked field. You can right-click to abort symbol offset. Poznámka: The Offset Point Symbols tool doesn’t move the point feature itself; you should use the Vertex Tool (Current Layer) or Move Feature tool for this purpose. Trim/Extend Feature When a digitized line is too short or too long to snap to another line (missing or crossing the line), it is necessary to be able to extend or shorten the segment. The Trim/Extend tool allows you to also modify (multi)lines AND (multi)polygons. Moreover, it is not necessarily the end of the lines that is concerned; any segment of a geometry can be modified. Poznámka: This can lead to invalid geometries. Poznámka: You must activate segment snapping for this tool to work. The tool asks you to select a limit (a segment) with respect to which another segment will be extended or trimmed. Unlike the vertex tool, a check is performed to modify only the layer being edited. When both segments are in 3D, the tool performs an interpolation on the limit segment to get the Z value. In the case of a trim, you must select the part that will be shortened by clicking on it. 14.5.5 Shape digitizing The Shape Digitizing toolbar offers a set of tools to draw regular shapes and curved geometries. 14.5. Editování 513 QGIS Desktop 3.16 User Guide Add Circular string The Add circular string or Add circular string by radius buttons allow users to add line or polygon features with a circular geometry. Creating features with these tools follow the same rule as of other digitizing tools: left-click to place vertices and right-click to finish the geometry. While drawing the geometry, you can switch from one tool to the other as well as to the linear geometry tools, creating some coumpound geometries. Poznámka: Curved geometries are stored as such only in compatible data provider Although QGIS allows to digitize curved geometries within any editable data format, you need to be using a data provider (e.g. PostGIS, memory layer, GML or WFS) that supports curves to have features stored as curved, otherwise QGIS segmentizes the circular arcs. Draw Circles There is a set of tools for drawing circles. The tools are described below. Circles are converted into circular strings. Therefore, as explained in Add Circular string, if allowed by the data provider, it will be saved as a curved geometry, if not, QGIS will segmentize the circular arcs. • Add circle from 2 points : The two points define the diameter and the orientation of the circle. (Left-click, right- -click) • Add circle from 3 points : Draws a circle from three known points on the circle. (Left-click, left-click, right-click) • Add circle from center and a point : Draws a circle with a given center and a point on the circle (Left-click, right-click). When used with the The Advanced Digitizing panel this tool can become a „Add circle from center and radius“ tool by setting and locking the distance value after first click. • Add circle from 3 tangents : Draws a circle that is tangential to three segments. Note that you must activate snapping to segments (See Nastavení přichytávací tolerance a vyhledání poloměru). Click on a segment to add a tangent. If two tangents are parallel, an error message appears and the input is cleared. (Left-click, left-click, right-click) • Add circle from 2 tangents and a point : Similar to circle from 3 tangents, except that you have to select two tangents, enter a radius and select the desired center. Draw Ellipses There is a set of tools for drawing ellipses. The tools are described below. Ellipses cannot be converted as circular strings, so they will always be segmented. • Add Ellipse from center and two points : Draws an ellipse with a given center, major axis and minor axis. (Left-click, left-click, right-click) • Add Ellipse from center and a point : Draws an ellipse into a bounding box with the center and a corner. (Left-click, right-click) • Add Ellipse from extent : Draws an ellipse into a bounding box with two opposite corners. (Left-click, right-click) • Add Ellipse from foci : Draws an ellipse by 2 points for foci and a point on the ellipse. (Left-click, left-click, right-click) 514 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Draw Rectangles There is a set of tools for drawing rectangles. The tools are described below. • Rectangle from center and a point : Draws a rectangle from the center and a corner. (Left-click, right-click) • Rectangle from extent : Draws a rectangle from two opposite corners. (Left-click, right-click) • Rectangle from 3 points (distance) : Draws an oriented rectangle from three points. The first and second points determine the length and angle of the first edge. The third point determines the length of the other edge. One can use The Advanced Digitizing panel to set the length of the edges. (Left-click, left-click, right-click) • Rectangle from 3 points (projected) : Same as the preceding tool, but the length of the second edge is computed from the projection of the third point on the first edge. (Left-click, left-click, right-click) Obr. 14.94: Draw rectangle from 3 points using distance (right) and projected (left) Draw Regular Polygons There is a set of tools for drawing regular polygons. The tools are described below. Left-click to place the first point. A dialog appears, where you can set the number of polygon edges. Right-click to finish the regular polygon. • Regular polygon from two points : Draws a regular polygon where the two points determine the length and angle of the first edge. • Regular polygon from center and a point : Draws a regular polygon from the provided center point. The second point determines the angle and distance to the middle of an edge. • Regular polygon from center and a corner : Same as the preceding tool, but the second point determines the angle and distante to a vertex. 14.5. Editování 515 QGIS Desktop 3.16 User Guide 14.5.6 The Advanced Digitizing panel When capturing, reshaping, splitting new or existing geometries you also have the possibility to use the Advanced Digitizing panel. You can digitize lines exactly parallel or perpendicular to a particular angle or lock lines to specific angles. Furthermore, you can enter coordinates directly so that you can make a precise definition of your new geometry. Obr. 14.95: The Advanced Digitizing panel The Advanced Digitizing panel can be open either with a right-click on the toolbar, from View ► Panels ► menu or pressing Ctrl+4. Once the panel is visible, click the Enable advanced digitizing tools button to activate the set of tools. Poznámka: The tools are not enabled if the map view is in geographic coordinates. Concepts The aim of the Advanced Digitizing tool is to lock coordinates, lengths, and angles when moving the mouse during the digitalizing in the map canvas. You can also create constraints with relative or absolute reference. Relative reference means that the next vertex constraints‘ values will be relative to the previous vertex or segment. Snapping Settings Click the button to set the Advanced Digitizing Tool snapping settings. You can make the tool snap to common angles. The options are: • Do not snap to common angles • Snap to 30º angles • Snap to 45º angles • Snap to 90º angles You can also control the snapping to features. The options are: • Do not snap to vertices or segments • Snap according to project configuration • Snap to all layers 516 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Keyboard shortcuts To speed up the use of Advanced Digitizing Panel, there are a couple of keyboard shortcuts available: Key Simple Ctrl+ or Alt+ Shift+ D Set distance Lock distance A Set angle Lock angle Toggle relative angle to last segment X Set X coordinate Lock X coordinate Toggle relative X to last vertex Y Set Y coordinate Lock Y coordinate Toggle relative Y to last vertex C Toggle construction mode P Toggle perpendicular and parallel modes Absolute reference digitizing When drawing a new geometry from scratch, it is very useful to have the possibility to start digitizing vertexes at given coordinates. For example, to add a new feature to a polygonal layer, click the button. You can choose the X and Y coordinates where you want to start editing the feature, then: • Click the x text box (or use the X keyboard shortcut). • Type the X coordinate value you want and press Enter or click the button to their right to lock the mouse to the X axis on the map canvas. • Click the y text box (or use the Y keyboard shortcut). • Type the Y coordinate value you want and press Enter or click the button to their right to lock the mouse to the Y axis on the map canvas. Two blue dotted lines and a green cross identify the exact coordinates you entered. Start digitizing by clicking on the map canvas; the mouse position is locked at the green cross. Obr. 14.96: Start drawing at given coordinates You can continue digitizing by free hand, adding a new pair of coordinates, or you can type the segment’s length (distance) and angle. If you want to draw a segment of a given length, click the d (distance) text box (keyboard shortcut D), type the distance value (in map units) and press Enter or click the button on the right to lock the mouse in the map canvas to 14.5. Editování 517 QGIS Desktop 3.16 User Guide the length of the segment. In the map canvas, the clicked point is surrounded by a circle whose radius is the value entered in the distance text box. Obr. 14.97: Fixed length segment Finally, you can also choose the angle of the segment. As described before , click the a (angle) text box (keyboard shortcut A), type the angle value (in degrees), and press Enter or click the buttons on the right to lock it. In this way the segment will follow the desired angle: Obr. 14.98: Fixed angle segment Relative reference digitizing Instead of using absolute values of angles or coordinates, you can also use values relative to the last digitized vertex or segment. For angles, you can click the button on the left of the a text box (or press Shift+A) to toggle relative angles to the previous segment. With that option on, angles are measured between the last segment and the mouse pointer. For coordinates, click the buttons to the left of the x or y text boxes (or press Shift+X or Shift+Y) to toggle relative coordinates to the previous vertex. With these options on, coordinates measurement will consider the last vertex to be the X and Y axes origin. 518 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Continuous lock Both in absolute or relative reference digitizing, angle, distance, X and Y constraints can be locked continuously by clicking the Continuous lock buttons. Using continuous lock allows you to digitize several points or vertexes using the same constraints. Parallel and perpendicular lines All the tools described above can be combined with the Perpendicular and Parallel tools. These two tools allow drawing segments perfectly perpendicular or parallel to another segment. To draw a perpendicular segment, during the editing click the Perpendicular icon (keyboard shortcut P) to activate it. Before drawing the perpendicular line, click on the segment of an existing feature that you want to be perpendicular to (the line of the existing feature will be colored in light orange); you should see a blue dotted line where your feature will be snapped: Obr. 14.99: Perpendicular digitizing To draw a parallel feature, the steps are the same: click on the Parallel icon (keyboard shortcut P twice), click on the segment you want to use as reference and start drawing your feature: 14.5. Editování 519 QGIS Desktop 3.16 User Guide Obr. 14.100: Parallel digitizing These two tools just find the right angle of the perpendicular and parallel angle and lock this parameter during your editing. Construction mode You can enable and disable construction mode by clicking on the Construction icon or with the C keyboard shortcut. While in construction mode, clicking the map canvas won’t add new vertexes, but will capture the clicks‘ positions so that you can use them as reference points to then lock distance, angle or X and Y relative values. As an example, the construction mode can be used to draw some point at an exact distance from an existing point. With an existing point in the map canvas and the snapping mode correctly activated, you can easily draw other points at given distances and angles from it. In addition to the button, you have to activate also the construction mode by clicking the Construction icon or with the C keyboard shortcut. Click next to the point from which you want to calculate the distance and click on the d box (D shortcut) type the desired distance and press Enter to lock the mouse position in the map canvas: Obr. 14.101: Distance from point 520 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Before adding the new point, press C to exit the construction mode. Now, you can click on the map canvas, and the point will be placed at the distance entered. You can also use the angle constraint to, for example, create another point at the same distance of the original one, but at a particular angle from the newly added point. Click the Construction icon or with the C keyboard shortcut to enter construction mode. Click the recently added point, and then the other one to set a direction segment. Then, click on the d text box (D shortcut) type the desired distance and press Enter. Click the a text box (A shortcut) type the angle you want and press Enter. The mouse position will be locked both in distance and angle. Obr. 14.102: Distance and angle from points Before adding the new point, press C to exit the construction mode. Now, you can click on the map canvas, and the point will be placed at the distance and angle entered. Repeating the process, several points can be added. Obr. 14.103: Points at given distance and angle 14.5. Editování 521 QGIS Desktop 3.16 User Guide 14.5.7 The Processing in-place layer modifier The Processing menu provides access to a large set of tools to analyze and create new features based on the properties of the input features or their relations with other features (within the same layer or not). While the common behavior is to create new layers as outputs, some algorithms also allow modifications to the input layer. This is a handy way to automate multiple features modification using advanced and complex operations. To edit features in-place: 1. Select the layer to edit in the Layers panel. 2. Select the concerned features. You can skip this step, in which case the modification will apply to the whole layer. 3. Press the Edit Features In-Place button at the top of the Processing toolbox. The list of algorithms is filtered, showing only those compatible with in-place modifications, i.e.: • They work at the feature source and not at the layer level. • They do not change the layer structure, e.g. adding or removing fields. • They do not change the geometry type, e.g. from line to point layer. Obr. 14.104: Processing algorithms: all (left) vs polygon in-place editors (right) 4. Find the algorithm you’d like to run and double-click it. 522 Kapitola 14. Working with Vector Data QGIS Desktop 3.16 User Guide Poznámka: If the algorithm does not need any additional user-set parameters (excluding the usual input and output layer parameters), then the algorithm is run immediately without any dialog popup. 1. If parameters other than the usual input or output layers are needed, the algorithm dialog pops up. Fill in the required information. 2. Click Modify Selected Features or Modify All Features depending on whether there’s an active selection. Changes are applied to the layer and placed in the edit buffer: the layer is indeed toggled to editing mode with unsaved modification as indicated by the icon next to the layer name. 5. As usual, press Save layer edits to commit the changes in the layer. You can also press Undo to rollback the whole modification. 14.5. Editování 523 QGIS Desktop 3.16 User Guide 524 Kapitola 14. Working with Vector Data KAPITOLA 15 Working with Raster Data 15.1 Raster Properties Dialog To view and set the properties for a raster layer, double click on the layer name in the map legend, or right click on the layer name and choose Properties from the context menu. This will open the Raster Layer Properties dialog. There are several tabs in the dialog: • Information • Source • Symbology • Transparency • Histogram • Rendering • Pyramids • Metadata • Legend • QGIS Server Tip: Live update rendering The Layer Styling Panel provides you with some of the common features of the Layer properties dialog and is a good modeless widget that you can use to speed up the configuration of the layer styles and view your changes on the map canvas. Poznámka: Because properties (symbology, label, actions, default values, forms…) of embedded layers (see Vnořování projektů) are pulled from the original project file, and to avoid changes that may break this behavior, 525 QGIS Desktop 3.16 User Guide the layer properties dialog is made unavailable for these layers. 15.1.1 Information Properties The Information tab is read-only and represents an interesting place to quickly grab summarized information and metadata for the current layer. Provided information are: • based on the provider of the layer (format of storage, path, data type, extent, width/height, compression, pixel size, statistics on bands, number of columns, rows and no-data values of the raster…); • picked from the provided metadata: access, links, contacts, history… as well as dataset information (CRS, Extent, bands…). 15.1.2 Source Properties The Source tab displays basic information about the selected raster, including: • the Layer name to display in the Layers Panel; • the Coordinate Reference System: Displays the layer’s Coordinate Reference System (CRS). You can change the layer’s CRS, by selecting a recently used one in the drop-down list or clicking on the Select CRS button (see Coordinate Reference System Selector). Use this process only if the layer CRS is a wrong or not specified. If you wish to reproject your data, use a reprojection algorithm from Processing or Save it as new dataset. Obr. 15.1: Raster Layer Properties - Source Dialog 526 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide 15.1.3 Symbology Properties Band rendering QGIS offers many different Render types. The choice of renderer depends on the data type and the information you’d like to highlight. 1. Multiband color - if the file comes with several bands (e.g. a satellite image with several bands). 2. Paletted/Unique values - for single band files that come with an indexed palette (e.g. a digital topographic map) or for general use of palettes for rendering raster layers. 3. Singleband gray - (one band of) the image will be rendered as gray. QGIS will choose this renderer if the file is neither multiband nor paletted (e.g. a shaded relief map). 4. Singleband pseudocolor - this renderer can be used for files with a continuous palette or color map (e.g. an elevation map). 5. Hillshade - Creates hillshade from a band. 6. Contours - Generates contours on the fly for a source raster band. Multiband color With the multiband color renderer, three selected bands from the image will be used as the red, green or blue component of the color image. QGIS automatically fetches Min and Max values for each band of the raster and scales the coloring accordingly. You can control the value ranges in the Min/Max Value Settings section. A Contrast enhancement method can be applied to the values: ‚No enhancement‘, ‚Stretch to MinMax‘, ‚Stretch and clip to MinMax‘ and ‚Clip to min max‘. Poznámka: Contrast enhancement When adding GRASS rasters, the option Contrast enhancement will always be set automatically to stretch to min max, even if this is set to another value in the QGIS general options. 15.1. Raster Properties Dialog 527 QGIS Desktop 3.16 User Guide Obr. 15.2: Raster Symbology - Multiband color rendering Tip: Viewing a Single Band of a Multiband Raster If you want to view a single band of a multiband image (for example, Red), you might think you would set the Green and Blue bands to Not Set. But the preferred way of doing this is to set the image type to Singleband gray, and then select Red as the Gray band to use. Paletted/Unique values This is the standard render option for singleband files that include a color table, where a certain color is assigned to each pixel value. In that case, the palette is rendered automatically. It can be used for all kinds of raster bands, assigning a color to each unique raster value. If you want to change a color, just double-click on the color and the Select color dialog appears. It is also possible to assign labels to the colors. The label will then appear in the legend of the raster layer. Right-clicking over selected rows in the color table shows a contextual menu to: • Change Color… for the selection • Change Opacity… for the selection • Change Label… for the selection 528 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide Obr. 15.3: Raster Symbology - Paletted unique value rendering The pulldown menu, that opens when clicking the … (Advanced options) button below the color map to the right, offers color map loading (Load Color Map from File…) and exporting (Export Color Map to File…), and loading of classes (Load Classes from Layer). Singleband gray This renderer allows you to render a single band layer with a Color gradient: ‚Black to white‘ or ‚White to black‘. You can change the range of values to color (Min and Max) in the Min/Max Value Settings. A Contrast enhancement method can be applied to the values: ‚No enhancement‘, ‚Stretch to MinMax‘, ‚Stretch and clip to MinMax‘ and ‚Clip to min max‘. 15.1. Raster Properties Dialog 529 QGIS Desktop 3.16 User Guide Obr. 15.4: Raster Symbology - Singleband gray rendering Singleband pseudocolor This is a render option for single-band files that include a continuous palette. You can also create color maps for a bands of a multiband raster. Obr. 15.5: Raster Symbology - Singleband pseudocolor rendering Using a Band of the layer and a values range, three types of color Interpolation are available: • Discrete (a <= symbol appears in the header of the Value column) • Linear 530 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide • Exact (an = symbol appears in the header of the Value column) The Color ramp drop down lists the available color ramps. You can create a new one and edit or save the currently selected one. The name of the color ramp will be saved in the configuration and in the QML file. The Label unit suffix is a label added after the value in the legend. For classification Mode ‚Equal interval‘, you only need to select the number of classes and press the button Classify. For Mode ‚Continuous‘, QGIS creates classes automatically depending on Min and Max. The button Add values manually adds a value to the table. The button Remove selected row deletes a value from the table. Double clicking in the Value column lets you insert a specific value. Double clicking in the Color column opens the dialog Change color, where you can select a color to apply for that value. Further, you can also add labels for each color, but this value won’t be displayed when you use the identify feature tool. Right-clicking over selected rows in the color table shows a contextual menu to: • Change Color… for the selection • Change Opacity… for the selection You can use the buttons Load color map from file or Export color map to file to load an existing color table or to save the color table for later use. The Clip out of range values allows QGIS to not render pixel greater than the Max value. Hillshade Render a band of the raster layer using hillshading. Obr. 15.6: Raster Symbology - Hillshade rendering Options: • Band: The raster band to use. • Altitude: The elevation angle of the light source (default is 45°). • Azimuth: The azimuth of the light source (default is 315°). • Z Factor: Scaling factor for the values of the raster band (default is 1). 15.1. Raster Properties Dialog 531 QGIS Desktop 3.16 User Guide • Multidirectional: Specify if multidirectional hillshading is to be used (default is off). Contours This renderer draws contour lines that are calculated on the fly from the source raster band. Obr. 15.7: Raster Symbology - Contours rendering Options: • Input band: the raster band to use. • Contour interval: the distance between two consecutive contour lines • Contour symbol: the symbol to apply to the common contour lines. • Index contour interval: the distance between two consecutive index contours, that is the lines shown in a distinctive manner for ease of identification, being commonly printed more heavily than other contour lines and generally labeled with a value along its course. • Index contour symbol: the symbol to apply to the index contour lines • Input downscaling: Indicates by how much the renderer will scale down the request to the data provider (default is 4.0). For example, if you generate contour lines on input raster block with the same size as the output raster block, the generated lines would contain too much detail. This detail can be reduced by the „downscale“ factor, requesting lower resolution of the source raster. For a raster block 1000x500 with downscale 10, the renderer will request raster 100x50 from provider. Higher downscale makes contour lines more simplified (at the expense of losing some detail). 532 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide Setting the min and max values By default, QGIS reports the Min and Max values of the band(s) of the raster. A few very low and/or high values can have a negative impact on the rendering of the raster. The Min/Max Value Settings frame helps you control the rendering. Obr. 15.8: Raster Symbology - Min and Max Value Settings Available options are: • User defined: The default Min and Max values of the band(s) can be overridden • Cumulative count cut: Removes outliers. The standard range of values is 2% to 98%, but it can be adapted manually. • Min / max: Uses the whole range of values in the image band. • Mean +/- standard deviation x: Creates a color table that only considers values within the standard deviation or within multiple standard deviations. This is useful when you have one or two cells with abnormally high values in a raster layer that impact the rendering of the raster negatively. Calculations of the min and max values of the bands are made based on the: • Statistics extent: it can be Whole raster, Current canvas or Updated canvas. Updated canvas means that min/max values used for the rendering will change with the canvas extent (dynamic stretching). • Accuracy, which can be either Estimate (faster) or Actual (slower). Poznámka: For some settings, you may need to press the Apply button of the layer properties dialog in order to display the actual min and max values in the widgets. Color rendering For all kinds of Band rendering, the Color rendering set. You can achieve special rendering effects for your raster file(s) by using one of the blending modes (see Režim míchání). Further settings can be made by modifying the Brightness, Saturation, Gamma and Contrast. You can also use a Grayscale option, where you can choose between ‚Off‘, ‚By lightness‘, ‚By luminosity‘ and ‚By average‘. For one Hue in the color table, you can modify the ‚Strength‘. 15.1. Raster Properties Dialog 533 QGIS Desktop 3.16 User Guide Resampling The Resampling option has effect when you zoom in and out of an image. Resampling modes can optimize the appearance of the map. They calculate a new gray value matrix through a geometric transformation. Obr. 15.9: Raster Symbology - Color rendering and Resampling settings When applying the ‚Nearest neighbour‘ method, the map can get a pixelated structure when zooming in. This appearance can be improved by using the ‚Bilinear‘ or ‚Cubic‘ method, which cause sharp edges to be blurred. The effect is a smoother image. This method can be applied to for instance digital topographic raster maps. At the bottom of the Symbology tab, you can see a thumbnail of the layer, its legend symbol, and the palette. 15.1.4 Transparency Properties QGIS has the ability to set the transparency level of a raster layer. Use the transparency slider to set to what extent the underlying layers (if any) should be visible through the current raster layer. This is very useful if you overlay raster layers (e.g., a shaded relief map overlayed by a classified raster map). This will make the look of the map more three dimensional. 534 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide Obr. 15.10: Raster Transparency Additionally, you can enter a raster value that should be treated as an Additional no data value. An even more flexible way to customize the transparency is available in the Custom transparency options section: • Use Transparency band to apply transparency for an entire band. • Provide a list of pixels to make transparent with corresponding levels of transparency: 1. Click the Add values manually button. A new row will appear in the pixel list. 2. Enter the Red, Green and Blue values of the pixel and adjust the Percent Transparent to apply. 3. Alternatively, you can fetch the pixel values directly from the raster using the Add values from display button. Then enter the transparency value. 4. Repeat the steps to adjust more values with custom transparency. 5. Press the Apply button and have a look at the map. As you can see, it is quite easy to set custom transparency, but it can be quite a lot of work. Therefore, you can use the button Export to file to save your transparency list to a file. The button Import from file loads your transparency settings and applies them to the current raster layer. 15.1. Raster Properties Dialog 535 QGIS Desktop 3.16 User Guide 15.1.5 Histogram Properties The Histogram tab allows you to view the distribution of the values in your raster. The histogram is generated when you press the Compute Histogram button. All existing bands will be displayed together. You can save the histogram as an image with the button. At the bottom of the histogram, you can select a raster band in the drop-down menu and Set min/max style for it. The Prefs/Actions drop-down menu gives you advanced options to customize the histogram: • With the Visibility option, you can display histograms for individual bands. You will need to select the option Show selected band. • The Min/max options allow you to ‚Always show min/max markers‘, to ‚Zoom to min/max‘ and to ‚Update style to min/max‘. • The Actions option allows you to ‚Reset‘ or ‚Recompute histogram‘ after you have changed the min or max values of the band(s). Obr. 15.11: Raster Histogram 536 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide 15.1.6 Rendering Properties In the Rendering tab, it’s possible to: • set Scale dependent visibility for the layer: You can set the Maximum (inclusive) and Minimum (exclusive) scale, defining a range of scales in which the layer will be visible. It will be hidden outside this range. The Set to current canvas scale button helps you use the current map canvas scale as a boundary. See Vykreslování v závislosti na měřítku for more information. • Refresh layer at interval (seconds): set a timer to automatically refresh individual layers. Canvas updates are deferred in order to avoid refreshing multiple times if more than one layer has an auto update interval set. Obr. 15.12: Raster Rendering 15.1.7 Pyramids Properties High resolution raster layers can slow navigation in QGIS. By creating lower resolution copies of the data (pyramids), performance can be considerably improved, as QGIS selects the most suitable resolution to use depending on the zoom level. You must have write access in the directory where the original data is stored to build pyramids. From the Resolutions list, select resolutions at which you want to create pyramid levels by clicking on them. If you choose Internal (if possible) from the Overview format drop-down menu, QGIS tries to build pyramids internally. Poznámka: Please note that building pyramids may alter the original data file, and once created they cannot be removed. If you wish to preserve a ‚non-pyramided‘ version of your raster, make a backup copy prior to pyramid building. If you choose External and External (Erdas Imagine) the pyramids will be created in a file next to the original raster with the same name and a .ovr extension. 15.1. Raster Properties Dialog 537 QGIS Desktop 3.16 User Guide Several Resampling methods can be used for pyramid calculation: • Nearest Neighbour • Average • Gauss • Cubic • Cubic Spline • Laczos • Mode • Žádná Finally, click Build Pyramids to start the process. Obr. 15.13: Raster Pyramids 15.1.8 Metadata Properties The Metadata tab provides you with options to create and edit a metadata report on your layer. See vector layer metadata properties for more information. 538 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide Obr. 15.14: Raster Metadata 15.1.9 Legend Properties The Legend tab provides you with a list of widgets you can embed within the layer tree in the Layers panel. The idea is to have a way to quickly access some actions that are often used with the layer (setup transparency, filtering, selection, style or other stuff…). By default, QGIS provides a transparency widget but this can be extended by plugins that register their own widgets and assign custom actions to layers they manage. 15.1. Raster Properties Dialog 539 QGIS Desktop 3.16 User Guide Obr. 15.15: Raster Legend 15.1.10 QGIS Server Properties From the QGIS Server tab, information can be provided for Description, Attribution, MetadataUrl and LegendUrl. 540 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide Obr. 15.16: QGIS Server in Raster Properties 15.2 Raster Analysis 15.2.1 Raster Calculator The Raster Calculator in the Raster menu allows you to perform calculations on the basis of existing raster pixel values (see Obr. 15.17). The results are written to a new raster layer in a GDAL-supported format. 15.2. Raster Analysis 541 QGIS Desktop 3.16 User Guide Obr. 15.17: Raster Calculator The Raster bands list contains all loaded raster layers that can be used. To add a raster to the raster calculator expression field, double click its name in the Fields list. You can then use the operators to construct calculation expressions, or you can just type them into the box. In the Result layer section, you will need to define an output layer. You can then define the extent of the calculation area based on an input raster layer, or based on X,Y coordinates and on columns and rows, to set the resolution of the output layer. If the input layer has a different resolution, the values will be resampled with the nearest neighbor algorithm. The Operators section contains all available operators. To add an operator to the raster calculator expression box, click the appropriate button. Mathematical calculations (+, -, *, … ) and trigonometric functions (sin, cos, tan, … ) are available. Conditional expressions (=, !=, <, >=, … ) return either 0 for false or 1 for true, and therefore can be used with other operators and functions. With the Add result to project checkbox, the result layer will automatically be added to the legend area and can be visualized. Rada: See also the Raster calculator algorithm. 542 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide Examples Convert elevation values from meters to feet Creating an elevation raster in feet from a raster in meters, you need to use the conversion factor for meters to feet: 3.28. The expression is: "elevation@1" * 3.28 Using a mask If you want to mask out parts of a raster – say, for instance, because you are only interested in elevations above 0 meters – you can use the following expression to create a mask and apply the result to a raster in one step. ("elevation@1" >= 0) * "elevation@1" In other words, for every cell greater than or equal to 0 the conditional expression evaluates to 1, which keeps the original value by multiplying it by 1. Otherwise the conditional expression evaluates to 0, which sets the raster value to 0. This creates the mask on the fly. If you want to classify a raster – say, for instance into two elevation classes, you can use the following expression to create a raster with two values 1 and 2 in one step. ("elevation@1" < 50) * 1 + ("elevation@1" >= 50) * 2 In other words, for every cell less than 50 set its value to 1. For every cell greater than or equal 50 set its value to 2. 15.2.2 Raster Alignment This tool is able to take several rasters as input and to align them perfectly, that means: • reproject to the same CRS, • resample to the same cell size and offset in the grid, • clip to a region of interest, • rescale values when required. All rasters will be saved in another files. First, open the tools from Raster ► Align Raster… and click on the Add new raster button to choose one existing raster in QGIS. Select an output file to save the raster after the alignment, the resampling method and if the tools need to Rescale values according to the cell size. The resampling method can be (see Obr. 15.18): • Nearest Neighbor • Bilinear (2x2 kernel) • Cubic (4x4 kernel): Cubic Convolution Approximation • Cubic B-Spline (4x4 kernel): Cubic B-Spline Approximation • Lanczos (6x6 kernel): Lanczos windowed sinc interpolation • Average: computes the average of all non-NODATA contributing pixels • Mode: selects the value which appears most often of all the sampled points • Maximum, Minimum, Mediane, First Quartile (Q1) or Third Quartile (Q3) of all non-NODATA contributing pixels 15.2. Raster Analysis 543 QGIS Desktop 3.16 User Guide Obr. 15.18: Select Raster Resampling Options In the main Align raster dialog, you can still Edit file settings or Remove an existing file from the list of raster layers. You can also choose one or more other options (see Obr. 15.19): • Select the Reference Layer, • Transform into a new CRS, • Setup a different Cell size, • Setup a different Grid Offset, • Clip to Extent: it can be user-defined, bound to a layer or to the map canvas • Output Size, • Add aligned raster to the map canvas. 544 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide Obr. 15.19: Raster Alignment 15.3 Georeferencer The Georeferencer is a tool for generating world files for rasters. It allows you to reference rasters to geographic or projected coordinate systems by creating a new GeoTiff or by adding a world file to the existing image. The basic approach to georeferencing a raster is to locate points on the raster for which you can accurately determine coordinates. Features Ikona Účel Ikona Účel Open raster Start georeferencing Generate GDAL Script Load GCP Points Save GCP Points As Transformation settings Add Point Delete Point Move GCP Point Pan Zoom In Zoom Out Zoom To Layer Zoom Last Zoom Next Link Georeferencer to QGIS Link QGIS to Georeferencer Full histogram stretch Local histogram stretch 15.3. Georeferencer 545 QGIS Desktop 3.16 User Guide Table Georeferencer: Georeferencer Tools 15.3.1 Usual procedure As X and Y coordinates (DMS (dd mm ss.ss), DD (dd.dd) or projected coordinates (mmmm.mm)), which correspond with the selected point on the image, two alternative procedures can be used: • The raster itself sometimes provides crosses with coordinates „written“ on the image. In this case, you can enter the coordinates manually. • Using already georeferenced layers. This can be either vector or raster data that contain the same objects/features that you have on the image that you want to georeference and with the projection that you want for your image. In this case, you can enter the coordinates by clicking on the reference dataset loaded in the QGIS map canvas. The usual procedure for georeferencing an image involves selecting multiple points on the raster, specifying their coordinates, and choosing a relevant transformation type. Based on the input parameters and data, the Georeferencer will compute the world file parameters. The more coordinates you provide, the better the result will be. The first step is to start QGIS and click on Raster ► Georeferencer, which appears in the QGIS menu bar. The Georeferencer dialog appears as shown in Obr. 15.20. For this example, we are using a topo sheet of South Dakota from SDGS. It can later be visualized together with the data from the GRASS spearfish60 location. You can download the topo sheet here: https://grass.osgeo.org/ sampledata/spearfish_toposheet.tar.gz. Obr. 15.20: Georeferencer Dialog 546 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide Entering ground control points (GCPs) 1. To start georeferencing an unreferenced raster, we must load it using the button. The raster will show up in the main working area of the dialog. Once the raster is loaded, we can start to enter reference points. 2. Using the Add Point button, add points to the main working area and enter their coordinates (see Figure Obr. 15.21). For this procedure you have three options: • Click on a point in the raster image and enter the X and Y coordinates manually. • Click on a point in the raster image and choose the From map canvas button to add the X and Y coordinates with the help of a georeferenced map already loaded in the QGIS map canvas. • With the button, you can move the GCPs in both windows, if they are at the wrong place. 3. Continue entering points. You should have at least four points, and the more coordinates you can provide, the better the result will be. There are additional tools for zooming and panning the working area in order to locate a relevant set of GCP points. Obr. 15.21: Add points to the raster image The points that are added to the map will be stored in a separate text file ([filename].points) usually together with the raster image. This allows us to reopen the Georeferencer at a later date and add new points or delete existing ones to optimize the result. The points file contains values of the form: mapX, mapY, pixelX, pixelY. You can use the Load GCP points and Save GCP points as buttons to manage the files. Defining the transformation settings After you have added your GCPs to the raster image, you need to define the transformation settings for the georeferencing process. 15.3. Georeferencer 547 QGIS Desktop 3.16 User Guide Obr. 15.22: Defining the georeferencer transformation settings Available Transformation algorithms A number of transformation algorithms are available, dependent on the type and quality of input data, the nature and amount of geometric distortion that you are willing to introduce to the final result, and the number of ground control points (GCPs). Currently, the following Transformation types are available: • The Linear algorithm is used to create a world file and is different from the other algorithms, as it does not actually transform the raster pixels. It allows positioning (translating) the image and uniform scaling, but no rotation or other transformations. It is the most suitable if your image is a good quality raster map, in a known CRS, but is just missing georeferencing information. At least 2 GCPs are needed. • The Helmert transformation also allows rotation. It is particularly useful if your raster is a good quality local map or orthorectified aerial image, but not aligned with the grid bearing in your CRS. At least 2 GCPs are needed. • The Polynomial 1 algorithm allows a more general affine transformation, in particular also a uniform shear. Straight lines remain straight (i.e., collinear points stay collinear) and parallel lines remain parallel. This is particularly useful for georeferencing data cartograms, which may have been plotted (or data collected) with different ground pixel sizes in different directions. At least 3 GCP’s are required. • The Polynomial algorithms 2-3 use more general 2nd or 3rd degree polynomials instead of just affine transformation. This allows them to account for curvature or other systematic warping of the image, for instance photographed maps with curving edges. At least 6 (respectively 10) GCP’s are required. Angles and local scale are not preserved or treated uniformly across the image. In particular, straight lines may become curved, and there may be significant distortion introduced at the edges or far from any GCPs arising from extrapolating the data-fitted polynomials too far. • The Projective algorithm generalizes Polynomial 1 in a different way, allowing transformations representing a central projection between 2 non-parallel planes, the image and the map canvas. Straight lines stay straight, but parallelism is not preserved and scale across the image varies consistently with the change in perspective. 548 Kapitola 15. Working with Raster Data QGIS Desktop 3.16 User Guide This transformation type is most useful for georeferencing angled photographs (rather than flat scans) of good quality maps, or oblique aerial images. A minimum of 4 GCPs is required. • Finally, the Thin Plate Spline (TPS) algorithm „rubber sheets“ the raster using multiple local polynomials to match the GCPs specified, with overall surface curvature minimized. Areas away from GCPs will be moved around in the output to accommodate the GCP matching, but will otherwise be minimally locally deformed. TPS is most useful for georeferencing damaged, deformed, or otherwise slightly inaccurate maps, or poorly orthorectified aerials. It is also useful for approximately georeferencing and implicitly reprojecting maps with unknown projection type or parameters, but where a regular grid or dense set of ad-hoc GCPs can be matched with a reference map layer. It technically requires a minimum of 10 GCPs, but usually more to be successful. In all of the algorithms except TPS, if more than the minimum GCPs are specified, parameters will be fitted so that the overall residual error is minimized. This is helpful to minimize the impact of registration errors, i.e. slight imprecisions in pointer clicks or typed coordinates, or other small local image deformations. Absent other GCPs to compensate, such errors or deformations could translate into significant distortions, especially near the edges of the georeferenced image. However, if more than the minimum GCPs are specified, they will match only approximately in the output. In contrast, TPS will precisely match all specified GCPs, but may introduce significant deformations between nearby GCPs with registration errors. Define the Resampling method The type of resampling you choose will likely depend on your input data and the ultimate objective of the exercise. If you don’t want to change statistics of the raster (other than as implied by nonuniform geometric scaling if using other than the Linear, Helmert, or Polynomial 1 transformations), you might want to choose ‚Nearest neighbour‘. In contrast, ‚cubic resampling‘, for instance, will usually generate a visually smoother result. It is possible to choose between five different resampling methods: 1. Nearest neighbour 2. Linear 3. Cubic 4. Cubic Spline 5. Lanczos Define the transformation settings There are several options that need to be defined for the georeferenced output raster. • The Create world file checkbox is only available if you decide to use the linear transformation type, because this means that the raster image actually won’t be transformed. In this case, the Output raster field is not activated, because only a new world file will be created. • For all other transformation types, you have to define an Output raster. As default, a new file ([filename]_modified) will be created in the same folder together with the original raster image. • As a next step, you have to define the Target SRS (Spatial Reference System) for the georeferenced raster (see Práce s projekcemi). • If you like, you can generate a pdf map and also a pdf report. The report includes information about the used transformation parameters, an image of the residuals and a list with all GCPs and their RMS errors. • Furthermore, you can activate the Set Target Resolution checkbox and define the pixel resolution of the output raster. Default horizontal and vertical resolution is 1. • The Use 0 for transparency when needed can be activated, if pixels with the value 0 shall be visualized transparent. In our example toposheet, all white areas would be transparent. 15.3. Georeferencer 549 QGIS Desktop 3.16 User Guide • Finally, Load in QGIS when done loads the output raster automatically into the QGIS map canvas when the transformation is done. Show and adapt raster properties Clicking on the Raster properties option in the Settings menu opens the Layer properties dialog of the raster file that you want to georeference. Configure the georeferencer • You can define whether you want to show GCP coordinates and/or IDs. • As residual units, pixels and map units can be chosen. • For the PDF report, a left and right margin can be defined and you can also set the paper size for the PDF map. • Finally, you can activate to Show Georeferencer window docked. Running the transformation After all GCPs have been collected and all transformation settings are defined, just press the Start georeferencing button to create the new georeferenced raster. 550 Kapitola 15. Working with Raster Data KAPITOLA 16 Working with Mesh Data 16.1 What’s a mesh? A mesh is an unstructured grid usually with temporal and other components. The spatial component contains a collection of vertices, edges and faces in 2D or 3D space: • vertices - XY(Z) points (in the layer’s coordinate reference system) • edges - connect pairs of vertices • faces - a face is a set of edges forming a closed shape - typically a triangle or a quadrilateral (quad), rarely polygons with more vertices Obr. 16.1: Different mesh types QGIS can currently render mesh data using triangles or regular quads. Mesh provides information about the spatial structure. In addition, the mesh can have datasets (groups) that assign a value to every vertex. For example, having a triangular mesh with numbered vertices as shown in the image below: 551 QGIS Desktop 3.16 User Guide Obr. 16.2: Triangular grid with numbered vertices Each vertex can store different datasets (typically multiple quantities), and those datasets can also have a temporal dimension. Thus, a single file may contain multiple datasets. The following table gives an idea about the information that can be stored in mesh datasets. Table columns represent indices of mesh vertices, each row represents one dataset. Datasets can have different datatypes. In this case, it stores wind velocity at 10m at a particular moments in time (t1, t2, t3). In a similar way, the mesh dataset can also store vector values for each vertex. For example, wind direction vector at the given time stamps: 10 metre wind 1 2 3 … 10 metre speed at time=t1 17251 24918 32858 … 10 metre speed at time=t2 19168 23001 36418 … 10 metre speed at time=t3 21085 30668 17251 … … … … … … 10m wind direction time=t1 [20,2] [20,3] [20,4.5] … 10m wind direction time=t2 [21,3] [21,4] [21,5.5] … 10m wind direction time=t3 [22,4] [22,5] [22,6.5] … … … … … … We can visualize the data by assigning colors to values (similarly to how it is done with Singleband pseudocolor raster rendering) and interpolating data between vertices according to the mesh topology. It is common that some quantities are 2D vectors rather than being simple scalar values (e.g. wind direction). For such quantities it is desirable to display arrows indicating the directions. 552 Kapitola 16. Working with Mesh Data QGIS Desktop 3.16 User Guide Obr. 16.3: Possible visualisation of mesh data 16.2 Supported formats QGIS accesses mesh data using the MDAL drivers. Hence, the natively supported formats are: • NetCDF: Generic format for scientific data • GRIB: Format commonly used in meteorology • XMDF: As an example, hydraulic outputs from TUFLOW modelling package • DAT: Outputs of various hydrodynamic modelling packages (e.g. BASEMENT, HYDRO_AS-2D, TUFLOW) • 3Di: 3Di modelling package format based on Climate and Forecast Conventions (http://cfconventions.org/) • Some examples of mesh datasets can be found at https://apps.ecmwf.int/datasets/data/interim-full-daily/ levtype=sfc/ To load a mesh dataset into QGIS, use the Mesh tab in the Data Source Manager dialog. Read Loading a mesh layer for more details. 16.2. Supported formats 553 QGIS Desktop 3.16 User Guide 16.3 Mesh Dataset Properties 16.3.1 Information Properties Obr. 16.4: Mesh Layer Properties The Information tab is read-only and represents an interesting place to quickly grab summarized information and metadata on the current layer. Provided information are (based on the provider of the layer) uri, vertex count, face count and dataset groups count. 16.3.2 Source Properties The Source tab displays basic information about the selected mesh, including: • the Layer name to display in the Layers panel • setting the Coordinate Reference System: Displays the layer’s Coordinate Reference System (CRS). You can change the layer’s CRS by selecting a recently used one in the drop-down list or clicking on Select CRS button (see Coordinate Reference System Selector). Use this process only if the CRS applied to the layer is wrong or if none was applied. Use the Assign Extra Dataset to Mesh button to add more groups to the current mesh layer. 16.3.3 Symbology Properties Click the Symbology button to activate the dialog as shown in the following image: 554 Kapitola 16. Working with Mesh Data QGIS Desktop 3.16 User Guide Obr. 16.5: Mesh Layer Symbology Symbology properties are divided in several tabs: • General • Contours Symbology • Vectors Symbology • Rendering General The tab presents the following items: • groups available in the mesh dataset • dataset in the selected group(s), for example, if the layer has a temporal dimension • metadata if available • blending mode available for the selected dataset. The slider , the combo box and the |<, <, >, >| buttons allow to explore another dimension of the data, if available. As the slider moves, the metadata is presented accordingly. See the figure Mesh groups below as an example. The map canvas will display the selected dataset group as well. 16.3. Mesh Dataset Properties 555 QGIS Desktop 3.16 User Guide Obr. 16.6: Dataset in Selected Group(s) You can apply symbology to each group using the tabs. Contours Symbology Under Groups, click on to show contours with default visualization parameters. In the tab you can see and change the current visualization options of contours for the selected group, as shown in Obr. 16.7 below: 556 Kapitola 16. Working with Mesh Data QGIS Desktop 3.16 User Guide Obr. 16.7: Styling Contours in a Mesh Layer Use the slide bar or combo box to set the opacity of the current group. Use Load to adjust the min and max values of the current group. The Interpolation list contains three options to render contours: Linear, Discrete and Exact. The Color ramp widget opens the color ramp drop-down shortcut. The Label unit suffix is a label added after the value in the legend. By selecting Continuous in the classification Mode, QGIS creates classes automatically considering the Min and Max values. With ‘Equal interval’, you only need to select the number of classes using the combo box Classes and press the button Classify. The button Add values manually adds a value to the individual color table. The button Remove selected row deletes a value from the individual color table. Double clicking on the value column lets you insert a specific value. Double clicking on the color column opens the dialog Change color, where you can select a color to apply on that value. 16.3. Mesh Dataset Properties 557 QGIS Desktop 3.16 User Guide Vectors Symbology In the tab , click on to display vectors if available. The map canvas will display the vectors in the selected group with default parameters. Click on the tab to change the visualization parameters for vectors as shown in the image below: Obr. 16.8: Styling Vectors in a Mesh Layer The line width can be set using the combo box or typing the value. The color widget opens the dialog Change color, where you can select a color to apply to vectors. Enter values for Min and Max to filter vectors according to their magnitude. Check on the box Display Vectors on User Grid and specify the X spacing and the Y spacing, QGIS will render the vector considering the given spacing. With the Head Options Head Options, QGIS allows the shape of the arrow head to be set by specifying width and length (in percentage). Vector’s Arrow length can be rendered in QGIS in three different ways: 558 Kapitola 16. Working with Mesh Data QGIS Desktop 3.16 User Guide • Defined by Min and Max: You specify the minimum and maximum length for the vectors, QGIS will adjust their visualization accordingly • Scale to magnitude: You specify the (multiplying) factor to use • Fixed: all the vectors are shown with the same length Vykreslování In the tab , QGIS offers two possibilities to display the grid, as shown in Obr. 16.9: • Native Mesh Rendering that shows quadrants • Triangular Mesh Rendering that display triangles Obr. 16.9: Mesh Rendering The line width and color can be changed in this dialog, and both the grid renderings can be turned off. 16.3. Mesh Dataset Properties 559 QGIS Desktop 3.16 User Guide 560 Kapitola 16. Working with Mesh Data KAPITOLA 17 Working with Vector Tiles 17.1 What are Vector Tiles? Vector tiles are packets of geographic data, packaged into pre-defined roughly-square shaped „tiles“ for transfer over the web. They combine pre-rendered raster map tiles and vector map tiles. The vector tile server returns vector map data, which has been clipped to the boundaries of each tile, instead of a pre-rendered map image. The clipped tiles represent the zoom-levels of the vector tile service, derived from a pyramid approach. Using this structure, the data-transfer is reduced in comparison to un-tiled vector maps. Only data within the current map view, and at the current zoom level need to be transferred. Also, compared to a tiled raster map, data transfer is also greatly reduced, as vector data is typically much smaller than a rendered bitmap. Vector tiles do not have any styling information assigned so QGIS needs to apply a cartographic style in order to display the data. 561 QGIS Desktop 3.16 User Guide Obr. 17.1: Pyramid structure of vector tiles with zoom-levels 17.2 Supported Formats There is support for vector tiles through: • remote sources (HTTP/S) - with XYZ template - type=xyz&url=http://example.com/{z}/{x}/ {y}.pbf • local files - with XYZ template - e.g. type=xyz&url=file:///path/to/tiles/{z}/{x}/{y}. pbf • local MBTiles database - e.g. type=mbtiles&url=file:///path/to/file.mbtiles 562 Kapitola 17. Working with Vector Tiles KAPITOLA 18 Laying out the maps With Print Layouts and Reports you can create maps and atlases, and print them or save them as image, PDF or SVG files. 18.1 Overview of the Print Layout The print layout provides growing layout and printing capabilities. It allows you to add elements such as the QGIS map canvas, text labels, images, legends, scale bars, basic shapes, arrows, attribute tables and HTML frames. You can size, group, align, position and rotate each element and adjust their properties to create your layout. The layout can be printed or exported to image formats, PostScript, PDF or to SVG. You can save the layout as a template and load it again in another session. Finally, generating several maps based on a template can be done through the atlas generator. 18.1.1 Sample Session for beginners Before you start to work with the print layout, you need to load some raster or vector layers in the QGIS map canvas and adapt their properties to suit your own convenience. After everything is rendered and symbolized to your liking, click the New Print Layout icon in the toolbar or choose File ► New Print Layout. You will be prompted to choose a title for the new layout. To demonstrate how to create a map please follow the next instructions. 1. On the left side, select the Add map toolbar button and draw a rectangle on the canvas holding down the left mouse button. Inside the drawn rectangle the QGIS map view to the canvas. 2. Select the Add scalebar toolbar button and click with the left mouse button on the print layout canvas. A scalebar will be added to the canvas. 3. Select the Add legend toolbar button and draw a rectangle on the canvas holding down the left mouse button. Inside the drawn rectangle the legend will be drawn. 4. Select the Select/Move item icon to select the map on the canvas and move it a bit. 563 QGIS Desktop 3.16 User Guide 5. While the map item is still selected you can also change the size of the map item. Click while holding down the left mouse button, in a white little rectangle in one of the corners of the map item and drag it to a new location to change its size. 6. Click the Item Properties panel on the left down side and find the setting for the orientation. Change the value of the setting Map orientation to ‚15.00° ‚. You should see the orientation of the map item change. 7. Now, you can print or export your print layout to image formats, PDF or to SVG with the export tools in Layout menu. 8. Finally, you can save your print layout within the project file with the Save Project button. You can add multiple elements to the print layout. It is also possible to have more than one map view or legend or scale bar in the print layout canvas, on one or several pages. Each element has its own properties and, in the case of the map, its own extent. If you want to remove any elements from the layout canvas you can do that with the Delete or the Backspace key. 18.1.2 The Layout Manager The Layout Manager is the main window to manage print layouts in the project. It gives you an overview of existing print layouts and reports in the project and offers tools to: • search for a layout; • add new print layout or new report from scratch, template or duplicating an existing one; • rename or delete any of them; • open them in the project. To open the layout manager dialog: • from the main QGIS dialog, select Project ► Layout Manager… menu or click on the Layout Manager button in the Project Toolbar; • from a print layout or report dialog, select Layout ► Layout Manager… menu or click on the Layout Manager button in the Layout Toolbar. Obr. 18.1: The Print Layout Manager The layout manager lists in its upper part all the available print layouts or reports in the project with tools to: • show the selection: you can select multiple reports and/or print layout(s) and open them in one-click. Double-click a name also opens it; 564 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide • duplicate the selected print layout or report (available only if one item is selected): it creates a new dialog using the selected one as template. You’ll be prompted to choose a new title for the new layout; • rename the report or layout (available only if one item is selected): you’ll be prompted to choose a new title for the layout; • remove the layout: the selected print layout(s) will be deleted from the project. In the lower part, it’s possible to create new print layouts or reports from scratch or a template. By default, QGIS will look for templates in the user profile and the application template directories (accessible with the two buttons at the bottom of the frame) but also in any folder declared as Path(s) to search for extra print templates in Settings ► Options ► Layouts. Found templates are listed in the combobox. Select an item and press the Create button to generate a new report or print layout. You can also use layout templates from a custom folder; in that case, select specific in the templates drop-down list, browse to the template and press Create. Tip: Creating template-based print layouts from Browser panel Drag-and-drop a print layout template .qpt file from any file browser onto the map canvas or double-click it in the Browser panel generates a new print layout from the template. 18.1.3 Menus, tools and panels of the print layout Opening the print layout provides you with a blank canvas that represents the paper surface when using the print option. Initially you find buttons on the left beside the canvas to add print layout items: the current QGIS map canvas, text labels, images, legends, scale bars, basic shapes, arrows, attribute tables and HTML frames. In this toolbar you also find buttons to navigate, zoom in on an area and pan the view on the layout a well as buttons to select any layout item and to move the contents of the map item. Obr. 18.2 shows the initial view of the print layout before any elements are added. Obr. 18.2: Print Layout On the right beside the canvas you find two set of panels. The upper one holds the panels Items and Undo History and the lower holds the panels Layout, Item properties and Atlas generation. 18.1. Overview of the Print Layout 565 QGIS Desktop 3.16 User Guide • The Items panel provides a list of all the print layout items added to the canvas and ways to globally interact with them (see The Items Panel for more information). • The Undo History panel displays a history of all changes applied to the layout. With a mouse click, it is possible to undo and redo layout steps back and forth to a certain status. • The Layout panel allows you to set general parameters to apply to the layout when exporting or working within (see The Layout Panel for more details); • The Item Properties panel displays the properties for the selected item. Click the Select/Move item icon to select an item (e.g., legend, scale bar or label) on the canvas. Then click the Item Properties panel and customize the settings for the selected item (see Layout Items for detailed information on each item settings). • The Atlas panel allows you to enable the generation of an atlas for the current layout and gives access to its parameters (see Generate an Atlas for detailed information on atlas generation usage). In the bottom part of the print layout window, you can find a status bar with mouse position, current page number, a combo box to set the zoom level, the number of selected items if applicable and, in the case of atlas generation, the number of features. In the upper part of the print layout window, you can find menus and other toolbars. All print layout tools are available in menus and as icons in a toolbar. The toolbars and the panels can be switched off and on using the right mouse button over any toolbar or through View ► Toolbars ► or View ► Panels ►. Menus and Tools Layout menu The Layout provides action to manage the layout: • Save the project file directly from the print layout window. • Create a new and blank print layout with New Layout…. • Duplicate Layout… : Create a new print layout by duplicating the current one. • Remove the current layout with Delete Layout…. • Open the Layout Manager…. • Layouts ► : Open an existing print layout. Once the layout is designed, with Save as Template and Add Items from Template icons, you can save the current state of a print layout session as a .qpt template file and load its items again in another session/print layout. In the Layout menu, there are also powerful ways to share geographical information produced with QGIS that can be included in reports or published. These tools are Export as Image…, Export as PDF…, Export as SVG… and Print…. Below is a list of all the available tools in this menu with some convenient information. 566 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Tool Zkratka Panel nástrojů Reference Save Project Ctrl+S Layout Introducing QGIS projects New Layout Ctrl+N Layout The Layout Manager Duplicate Layout Layout The Layout Manager Delete Layout Layout Manager… Layout The Layout Manager Layouts ► Layout Properties… The Layout Panel Rename Layout… Add Pages… Layout Working with the page properties Add Items from Template Layout Creating a layout item Save as Template… Layout The Layout Manager Export as Image… Layout Export as Image Export as SVG… Layout Export as SVG Export as PDF… Layout Export as PDF Page Setup… Ctrl+Shift+P Print… Ctrl+P Layout Creating an Output Close Ctrl+Q Edit menu The Edit menu offers tools to manipulate print layout items. It includes common actions like selection tools, Copy/Cut/Paste and undo/redo (see The Undo History Panel: Revert and Restore actions) functionality for the items in the layout. When using the Paste action, the elements will be pasted according to the current mouse position. Using the Edit ► Paste in Place action or pressing Ctrl+Shift+V will paste the items into the current page, at the same position they were in their initial page. It ensures to copy/paste items at the same place, from page to page. Below is a list of all the available tools in this menu with some convenient information. 18.1. Overview of the Print Layout 567 QGIS Desktop 3.16 User Guide Tabulka 18.1: Available Tools Tool Zkratka Panel nástrojů Reference Undo (last change) Ctrl+Z Layout The Undo History Panel: Revert and Restore actions Redo (last reverted change) Ctrl+Y Layout The Undo History Panel: Revert and Restore actions Delete Del Cut Ctrl+X Copy Ctrl+C Paste Ctrl+V Paste in place Ctrl+Shift+V Select All Ctrl+A Deselect all Ctrl+Shift+A Invert Selection Select Next Item Below Ctrl+Alt+[ Select Next Item above Ctrl+Alt+] Pan Layout P Toolbox Zoom Z Toolbox Select/Move Item V Toolbox Interacting with layout items Move Content C Toolbox The Map Item Edit Nodes Item Toolbox The Node-Based Shape Items View menu The View menu gives access to navigation tools and helps to configure general behavior of the print layout. Beside the common zoom tools, you have means to: • Refresh view (if you find the view in an inconsistent state); • enable a grid you could snap items to when moving or creating them. Grids setting is done in Settings ► Layout Options… or in the Layout Panel; • enable guides you could snap items to when moving or creating them. Guides are red lines that you can create by clicking in the ruler (above or at the left side of the layout) and drag and drop to the desired location; • Smart Guides: uses other layout items as guides to dynamically snap to as you move or reshape an item; • Clear Guides to remove all current guides; • Show Bounding box around the items to better identify your selection; • Show Rules around the layout; • Show Pages or set up pages to transparent. Often layout is used to create non-print layouts, e.g. for inclusion in presentations or other documents, and it’s desirable to export the composition using a totally transparent background. It’s sometimes referred to as „infinite canvas“ in other editing packages. In the print layout, you can change the zoom level using the mouse wheel or the slider and combo box in the status bar. If you need to switch to pan mode while working in the layout area, you can hold the Spacebar or the mouse 568 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide wheel. With Ctrl+Spacebar, you can temporarily switch to Zoom In mode, and with Ctrl+Alt+Spacebar, to Zoom Out mode. Panels and toolbars can be enabled from the View ► menu. To maximise the space available to interact with a composition you can check the View ► Toggle Panel Visibility option or press Ctrl+Tab; all panels are hidden and only previously visible panels are restored when unchecked. It’s also possible to switch to a full screen mode to have more space to interact with by pressing F11 or using View ► Toggle Full Screen. Tool Zkratka Panel nástrojů Reference Refresh F5 Navigation Preview ► Přiblížit Ctrl++ Navigation Oddálit Ctrl+- Navigation Zoom to 100% Ctrl+1 Navigation Přiblížit na rozměry okna Ctrl+0 Navigation Zoom to Width Show Grid Ctrl+' Guides and Grid Snap to Grid Ctrl+Shift+' Guides and Grid Show Guides Ctrl+; Guides and Grid Snap to Guides Ctrl+Shift+; Guides and Grid Smart Guides Ctrl+Alt+; Manage Guides… The Guides Panel Clear Guides The Guides Panel Show Rulers Ctrl+R Show Bounding Boxes Ctrl+Shift+B Show Pages Nástrojové lišty ► Panely a nástrojové lišty Panely ► Panely a nástrojové lišty Toggle Full Screen F11 Zobrazit Toggle Panel Visibility Ctrl+Tab Zobrazit 18.1. Overview of the Print Layout 569 QGIS Desktop 3.16 User Guide Items menu The Items helps you configure items‘ position in the layout and the relations between them (see Interacting with layout items). Tool Zkratka Panel nástrojů Reference Group Ctrl+G Actions Grouping items Ungroup Ctrl+Shift+G Actions Grouping items Raise Ctrl+] Actions Alignment Lower Ctrl+[ Actions Alignment Bring to Front Ctrl+Shift+] Actions Alignment Send to Back Ctrl+Shift+[ Actions Alignment Lock Selected Items Ctrl+L Actions Locking items Unlock All Ctrl+Shift+L Actions Locking items Align Items ► Actions Alignment Distribute Items ► Actions Moving and resizing items Resize ► Actions Moving and resizing items Add Item menu These are tools to create layout items. Each of them is deeply described in Layout Items chapter. 570 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Tool Panel nástrojů Reference Add Map Toolbox The Map Item Add Picture Toolbox The Picture Item Add Label Toolbox The Label Item Add Legend Toolbox The Legend Item Add Scale Bar Toolbox The Scale Bar Item Add North Arrow Toolbox The North Arrow Item Add Shape ► Toolbox The Regular Shape Item ► Add Rectangle Toolbox The Regular Shape Item ► Add Ellipse Toolbox The Regular Shape Item ► Add Triangle Toolbox The Regular Shape Item Add Marker Toolbox Add Arrow Toolbox The Arrow Item Add Node Item ► Toolbox The Node-Based Shape Items ► Add Polygon Toolbox The Node-Based Shape Items ► Add Polyline Toolbox The Node-Based Shape Items Add HTML Toolbox The HTML Frame Item Add Attribute Table Toolbox Položka atributové tabulky Add Fixed Table Toolbox The fixed table item Add 3D Map Toolbox The 3D Map Item Atlas menu Tool Zkratka Panel nástrojů Reference Preview Atlas Ctrl+ALt+/ Atlas Preview and generate an atlas First Feature Ctrl+< Atlas Preview and generate an atlas Previous Feature Ctrl+, Atlas Preview and generate an atlas Next Feature Ctrl+. Atlas Preview and generate an atlas Last feature Ctrl+> Atlas Preview and generate an atlas Print Atlas… Atlas Preview and generate an atlas Export Atlas as Images… Atlas Preview and generate an atlas Export Atlas as SVG… Atlas Preview and generate an atlas Export Atlas as PDF… Atlas Preview and generate an atlas Atlas Settings Atlas Generate an Atlas 18.1. Overview of the Print Layout 571 QGIS Desktop 3.16 User Guide Settings Menu The Settings ► Layout Options… menu is a shortcut to Settings ► Options ► Layouts menu of QGIS main canvas. Here, you can set some options that will be used as default on any new print layout: • Layout defaults let you specify the default font to use; • With Grid appearance, you can set the grid style and its color. There are three types of grid: Dots, Solid lines and Crosses; • Grid and guide defaults defines spacing, offset and tolerance of the grid (see Guides and Grid for more details); • Layout Paths: to manage list of custom paths to search print templates. Contextual menus Depending on where you right-click in the print layout dialog, you open a contextual menu with various features: • Right-click on the menu bar or any toolbar and you get the list of layout panels and toolbars you can enable or disable in one-click. • Right-click over a ruler and you can Show Guides, Snap to Guides, Manage Guides… opening the Guides panel or Clear Guides. It’s also possible to hide the rulers. • Right-click in the print layout canvas and: – You’ll be able to Undo and Redo recent changes, or Paste any copied item (only available if no item is selected). – If you click over a page, you can additionally access the current Page Properties panel or Remove Page. – If you click on a selected item then you can cut or copy it as well as open the Item Properties panel. – If more than one item are selected, then you can either group them and/or ungroup if at least one group is already in the selection. • Right-click inside a text box or spinbox widget of any layout panel provides edit options to manipulate its content. 572 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide The Layout Panel In the Layout panel, you can define the global settings of your print layout. Obr. 18.3: Layout Settings in the Print Layout General settings In a print layout, you can use more than one map item. The Reference map represents the map item to use as the layout’s master map. It’s assigned as long as there’s a map item in the layout. The layout will use this map in any of their properties and variables calculating units or scale. This includes exporting the print layout to georeferenced formats. Moreover, new layout items such as scale bar, legend or north arrow have by default their settings (orientation, displayed layers, scale, …) bound to the map item they are drawn over, and fall back to the reference map if no overlapping map. 18.1. Overview of the Print Layout 573 QGIS Desktop 3.16 User Guide Guides and Grid You can put some reference marks on your paper sheet to help you accurately place some items. These marks can be: • simple horizontal or vertical lines (called Guides) put at the position you want (see The Guides Panel for guides creation). • or regular Grid: a network of horizontal and vertical lines superimposed over the layout. Settings like Grid spacing or Grid offset can be adjusted in this group as well as the Snap tolerance to use for items. The tolerance is the maximum distance below which the mouse cursor is snapped to a grid or a guide, while moving, resizing or creating an item. Whether grid or guides should be shown is set in View menu. There, you can also decide if they might be used to snap layout items. When both a grid line and a guide line are within tolerance of a point, guides will always take precedence - since they have been manually set (hence, assumption that they have been explicitly placed at highly desirable snapping locations, and should be selected over the general grid). Poznámka: In the Settings ► Layout Options menu, you can also set the grid and guides parameters exposed above. However, these options will only apply as defaults to new print layouts. Export settings You can define a resolution to use for all exported maps in Export resolution. This setting can then be overridden each time you export a map. Because of some advanced rendering options (blending mode, effects…), a layout item may need rasterization in order to be exported correctly. QGIS will individually rasterize it without forcing every other item to also be rasterized. This allows printing or saving as PostScript or PDF to keep items as much as possible as vectors, e.g. a map item with layer opacity won’t force labels, scale bars, etc to be rasterized too. You can however: • force all the items to be rasterized checking the Print as raster box; • or use the opposite option, i.e. Always export as vectors, to force the export to keep items as vectors when exported to a compatible format. Note that in some cases, this could cause the output to look different to layout. Where the format makes it possible (e.g., .TIF, .PDF) exporting a print layout results by default in a georeferenced file (based on the Reference map item in the General settings group). For other formats, georeferenced output requires you to generate a world file by checking Save world file. The world file is created beside the exported map(s), has the name of the page output with the reference map item and contains information to georeference it easily. Resize layout to content Using the Resize page tool in this group, you create a unique page composition whose extent covers the current contents of the print layout (with some optional margins around the cropped bounds). Note that this behavior is different from the crop to content option in that all the items are placed on a real and unique page in replacement of all the existing pages. 574 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Variables The Variables lists all the variables available at the layout’s level (which includes all global and project’s variables). It also allows the user to manage layout-level variables. Click the button to add a new custom layout-level variable. Likewise, select a custom layout-level variable from the list and click the button to remove it. More information on variables usage in the General Tools section. Obr. 18.4: Variables Editor in the Print Layout Working with the page properties A layout can be composed of several pages. For instance, a first page can show a map canvas, and a second page can show the attribute table associated with a layer, while a third one shows an HTML frame linking to your organization website. Or you can add many types of items on each page. Adding a new page Futhermore, a layout can be made using different size and/or orientation of pages. To add a page, select the Add Pages… tool from the Layout menu or Layout Toolbar. The Insert Pages dialog opens and you are asked to fill: • the number of pages to insert; • the position of the page(s): before or after a given page or at the end of the print layout; • The Page size: it could be of a preset format page (A4, B0, Legal, Letter, ANSI A, Arch A and their derivatives as well as a resolution type, such as 1920x1080 or 1024x768) with associated Orientation (Portrait or Landscape). The page size can also be of a custom format; In that case, you’d need to enter its Width and Height (with locked size ratio if needed) and select the unit to use among mm, cm, px, pt, in, ft… Conversion of entered values is automatically applied when switching from one unit to another. 18.1. Overview of the Print Layout 575 QGIS Desktop 3.16 User Guide Obr. 18.5: Creating a new page in the Print Layout Updating page properties Any page can be later customized through the Page Item Properties panel. Right-click on a page and select Page Properties…. The Item Properties panel opens with settings such as: • the Page size frame described above. You can modify each property using the data defined override options (see Explore Data-defined override buttons with atlas for a use case); • the Exclude page from exports to control whether the current page with its content should be included in the layout output; • the Background of the current page using the color or symbol you want. Obr. 18.6: Page properties dialog The Guides Panel Guides are vertical or horizontal line references you can place on a layout page to assist you on items placement, when creating, moving or resizing them. To be active, guides require the View ► Show Guides and View ► Snap to Guides options to be checked. To create a guide, there are two different methods: • if the View ► Show Rulers option is set, drag out a ruler and release the mouse button within the page area, at the desired position. • for more precision, use the Guides panel from the View ► Toolbox ► or by selecting Manage guides for page… from the page’s contextual menu. 576 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.7: The Guides panel The Guides panel allows creation of snap lines at specific locations: 1. Select the Page you’d like to add the guides to 2. Click the Add new guide button and enter the coordinates of the horizontal or vertical line. The origin is at the top left corner. Different units are available for this. The panel also allows adjusting the position of existing guides to exact coordinates: double-click and replace the value. 3. The Guides panel lists only the items for the current page. It allows creation or removal of guides only in the current page. However, you can use the Apply to All Pages button to replicate the guide configuration of the current page to the other pages in the layout. 4. To delete a guide, select it and press the Remove selected guide button. Use Clear All Guides to remove all the guides in the current page. Tip: Snapping to existing layout items Other than guides and grids, you can use existing items as snapping references when moving, resizing or creating new items; these are called smart guides and require View ► Smart Guides option to be checked. Anytime the mouse pointer is close to an item’s bound, a snapping cross appears. 18.1. Overview of the Print Layout 577 QGIS Desktop 3.16 User Guide The Items Panel The Items panel offers some options to manage selection and visibility of items. All the items added to the print layout canvas (including items group) are shown in a list and selecting an item makes the corresponding row selected in the list as well as selecting a row does select the corresponding item in the print layout canvas. This is thus a handy way to select an item placed behind another one. Note that a selected row is shown as bold. For any selected item, you can : • set it visible or not; • lock or unlock its position; • sort its Z position. You can move up and down each item in the list with a click and drag. The upper item in the list will be brought to the foreground in the print layout canvas. By default, a newly created item is placed in the foreground. • change the item ID by double-clicking the text; • right-click an item and copy or delete it or open its properties panel. Once you have found the correct position for an item, you can lock it by ticking the box in column. Locked items are not selectable on the canvas. Locked items can be unlocked by selecting the item in the Items panel and unchecking the tickbox or you can use the icons on the toolbar. The Undo History Panel: Revert and Restore actions During the layout process, it is possible to revert and restore changes. This can be done with the revert and restore tools available in the Edit menu, the Layout toolbar or the contextual menu any time you right-click in the print layout area: • Revert last change • Restore last change This can also be done by mouse click within the Undo history panel (see Obr. 18.8). The History panel lists the last actions done within the print layout. Just select the point you want to revert to and once you do new action all the actions done after the selected one will be removed. Obr. 18.8: Undo History in the Print Layout 578 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide 18.2 Layout Items 18.2.1 Layout Items Common Options QGIS provides a large set of items to layout a map. They can be of map, legend, scale bar, picture, table, north arrow, image type… They however share some common options and behavior that are exposed below. Creating a layout item Items can be created using different tools, either from scratch or based on existing items. To create a layout item from scratch: 1. Select the corresponding tool either from the Add Item menu or the Toolbox bar. 2. Then: • Click on the page and fill the size and placement information requested in the New Item Properties dialog that pops up (for details, see Position and Size); Obr. 18.9: New Item properties dialog • Or click-and-drag to define the initial size and placement of the item. You can rely on grids and guides snapping for a better position. Poznámka: Because they can have particular shapes, drawing node or arrow items does not work with one-click nor click-and-drag methods; you need to click and place each node of the item. See The Node-Based Shape Items for more details. You can also: 1. Select an existing item with the Select/Move item button from the Toolbox toolbar 2. Use the contextual menu or the Edit menu tools to copy/cut the item and paste it at the mouse position as a new item. You can also use the Paste in Place (Ctrl+Shift+V) command to duplicate an item from one page to another and place it in the new page at the same coordinates as the original. Moreover, you can create items using a print layout template (for details, see The Layout Manager) through the Layout ► Add Items from Template… command. Tip: Add layout items using the file browser 18.2. Layout Items 579 QGIS Desktop 3.16 User Guide From your file browser or using the Browser panel, drag-and-drop a print layout template (.qpt file) onto a print layout dialog and QGIS automatically adds all items from that template to the layout. Interacting with layout items Each item inside the print layout can be moved and resized to create a perfect layout. For both operations the first step is to activate the Select/Move item tool and click on the item. You can select multiple items with the Select/Move item button: click and drag over the items or hold the Shift button and click on each of the items you want. To deselect an item, click on it holding the Shift button. Each time there’s a selection, count of selected items is displayed on the status bar. Inside the Edit menu, you can find actions to select all the items, clear all selections, invert the current selection and more… Moving and resizing items Unless View ► Show Bounding Boxes option is unchecked, a selected item will show squares on its boundaries ; moving one of them with the mouse will resize the item in the corresponding direction. While resizing, holding Shift will maintain the aspect ratio. Holding Alt will resize from the item center. To move a layout item, select it with the mouse and move while holding the left button. If you need to constrain the movements to the horizontal or vertical axis, just hold the Shift button on the keyboard while moving the mouse. You can also move a selected item using the Arrow keys on the keyboard; if the movement is too slow, you can speed it up by holding Shift. If you need better precision, use the Position and size properties, or grid/guides snapping as explained above for item’s creation. Resizing or moving several items at once is made the same way as for a single item. QGIS however provides some advanced tools to automatically resize a selection of items following different rules: • each item height matches the tallest or the shortest selected item; • each item width matches the widest or the narrowest selected item; • resizes items to squares: each item is enlarged to form a square. Likewise, automated tools are available to organize multiple items position by distributing equidistantly: • edges (left, right, top or bottom) of items; • centers of items either horizontally or vertically. Grouping items Grouping items allows you to manipulate a set of items like a single one: you can easily resize, move, delete, copy the items as a whole. To create a group of items, select more than one and press the Group button on the View menu or the Actions toolbar or from the right-click menu. A row named Group is added to the Items panel and can be locked or hidden like any other Items panel’s object. Grouped items are not individually selectable on the canvas; use the Items panel for direct selection and access the item’s properties panel. 580 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Locking items Once you have found the correct position for an item, you can lock it by using the Lock selected items button in the Items menu or the Actions toolbar or ticking the box next to the item in the Items panel. Locked items are not selectable on the canvas. Locked items can be unlocked by selecting the item in the Items panel and unchecking the tickbox or you can use the icons on the toolbar. Alignment Raising or lowering the visual hierarchy for elements are inside the Raise selected items pull-down menu. Choose an element on the print layout canvas and select the matching functionality to raise or lower the selected element compared to the other elements. This order is shown in the Items panel. You can also raise or lower objects in the Items panel by clicking and dragging an object’s label in this list. Obr. 18.10: Alignment helper lines in the print layout There are several alignment options available within the Align selected items pull-down menu (see Obr. 18.10). To use an alignment function, you first select the elements and then click on one of the alignment icons: • Align Left or Align Right; • Align Top or Align Bottom; • Align Center horizontally or Align Center Vertical. All selected elements will then be aligned to their common bounding box. When moving items on the layout canvas, alignment helper lines appear when borders, centers or corners are aligned. 18.2. Layout Items 581 QGIS Desktop 3.16 User Guide Items Common Properties Layout items have a set of common properties you will find at the bottom of the Item Properties panel: Position and size, Rotation, Frame, Background, Item ID, Variables and Rendering (See Obr. 18.11). Obr. 18.11: Common Item Properties groups Poznámka: The Data defined override icon next to most of the options means that you can associate that property with a layer, features attributes, geometry or with any other layout item’s property, using expressions or variables. For more information see Data defined override setup. • The Position and size group lets you define the size and position of the frame which contains the item (see Position and Size for more information). • The Rotation sets the rotation of the element (in degrees). • The Frame shows or hides the frame around the item. Use the Color, Thickness and Join style widgets to adjust those properties. • Use the Background color menu for setting a background color. Click on the [Color…] button to display a dialog where you can pick a color or choose from a custom setting. Transparency can be adjusted through altering the alpha field settings. 582 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide • Use the Item ID to create a relationship to other print layout items. This is used with QGIS server and other potential web clients. You can set an ID on an item (for example, a map or a label), and then the web client can send data to set a property (e.g., label text) for that specific item. The GetProjectSettings command will list the items and IDs which are available in a layout. • Rendering mode helps you set whether and how the item can be displayed: you can, for instance, apply blending mode, adjust the opacity of the item or Exclude item from exports. Position and Size Extending the features of the New Item Properties dialog with data-defined capabilities, this group allows you to place the items accurately. Obr. 18.12: Position and size • the actual number of the page to place the item on; • the reference point of the item; • the X and Y coordinates of the Reference point of the item on the chosen page. The ratio between these values can be locked by clicking on the button. Changes made to a value using the widget or the Select/Move item tool will be reflected in both of them; • the Width and Height of the item bounding box. As for coordinates, the ratio between width and height can be locked. Rendering mode QGIS allows advanced rendering for layout items just like vector and raster layers. Obr. 18.13: Rendering mode • Blending mode: With this tool you can achieve effects which would otherwise only be achieved using graphic rendering software. The pixels of your overlaying and underlaying items can be mixed according to the mode set (see Režim míchání for description of each effect). 18.2. Layout Items 583 QGIS Desktop 3.16 User Guide • Transparency : You can make the underlying item in the layout visible with this tool. Use the slider to adapt the visibility of your item to your needs. You can also make a precise definition of the percentage of visibility in the menu beside the slider. • Exclude item from exports: You can decide to make an item invisible in all exports. After activating this checkbox, the item will not be included in export to PDF, print etc.. Variables The Variables lists all the variables available at the layout item’s level (which includes all global, project and composition’s variables). Map items also include Map settings variables that provide easy access to values like the map’s scale, extent, and so on. In Variables, it’s also possible to manage item-level variables. Click the button to add a new custom variable. Likewise, select any custom item-level variable from the list and click the button to remove it. More information on variables usage in the Storing values in Variables section. 18.2.2 The Map Item The map item is the main frame that displays the map you’ve designed in the map canvas. Use the Add Map tool following items creation instructions to add a new map item that you can later manipulate the same way as exposed in Interacting with layout items. By default, a new map item shows the current status of the map canvas with its extent and visible layers. You can customize it thanks to the Item Properties panel. Other than the items common properties, this feature has the following functionalities: 584 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.14: Map Item Properties Panel The Toolbar The Map Item Properties panel embeds a toolbar with the following functionalities: • Update map preview • Set map canvas to match main canvas extent • View current map extent in main canvas • Set map scale to match main canvas scale • Set main canvas to match current map scale • Bookmarks : set the map item extent to match an existing spatial bookmark • Interactively edit map extent : pan and zoom interactively within the map item • Labeling settings : control feature label behaviour (placement, visibility…) in the layout map item extent: – set a Margin from map edges, a data definable distance from the map item’s limits inside which no label should be displayed – Allow truncated labels on edges of map: controls whether labels which fall partially outside of the map item allowed extent should be rendered. If checked, these labels will be shown (when there’s no way to place them fully within the visible area). If unchecked then partially visible labels will be skipped. – Label blocking items: allows other layout items (such as scalebars, north arrows, inset maps, etc) to be marked as a blockers for the map labels in the active map item. This prevents any map labels from being 18.2. Layout Items 585 QGIS Desktop 3.16 User Guide placed under those items - causing the labeling engine to either try alternative placement for these labels or discard them altogether. If a Margin from map edges is set, the map labels are not placed closer than the specified distance from the checked layout items. – Show unplaced labels: can be used to determine whether labels are missing from the layout map (e.g. due to conflicts with other map labels or due to insufficient space to place the label) by highlighting them in a predefined color. • Clipping settings : allows to clip the map item to the atlas feature and to shape and polygon items: – Clip to atlas feature: you can determine that the layout map item will be clipped automatically to the current atlas feature. There are different clipping modes available: ∗ Clip During Render Only: applies a painter based clip, so that portions of vector features which sit outside the atlas feature become invisible ∗ Clip Feature Before Render: applies the clip before rendering features, so borders of features which fall partially outside the atlas feature will still be visible on the boundary of the atlas feature ∗ Render Intersecting Features Unchanged: renders all features which intersect the current atlas feature, but without clipping their their geometry. You can Force labels inside atlas feature. If you don’t want to Clip all layers to the atlas feature you can use the Clip selected layers option. – Clip to item: it is possible to change the shape of the map item by using a shape or polygon item from the print layout. When you enable this option the map will be automatically clipped to the selected shape in the combobox. Again, the above mentioned clipping modes are available and labels can be forced to display only inside the clipping shape. Main properties In the Main properties group (see Obr. 18.14) of the map Item Properties panel, available options are: • The Update Preview button to refresh the map item rendering if the view in map canvas has been modified. Note that most of the time, the map item refresh is automatically triggered by the changes; • The Scale to manually set the map item scale; • The Map rotation allows you to rotate the map item content clockwise in degrees. The rotation of the map canvas can be imitated here; • The CRS allows you to display the map item content in any CRS. It defaults to Use project CRS; • Draw map canvas items lets you show in the print layout annotations that are placed on the main map canvas. Layers By default, map item appearance is synced with the map canvas rendering meaning that toggling visibility of the layers or modifying their style in the Layers Panel is automatically applied to the map item. Because, like any other item, you may want to add multiple map items to a print layout, there’s a need to break this synchronization in order to allow showing different areas, layer combinations, at different scales… The Layers properties group (see Obr. 18.15) helps you do that. 586 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.15: Map Layers group If you want to keep the map item consistent with an existing map theme, check Follow map theme and select the desired theme in the drop-down list. Any changes applied to the theme in QGIS‘ main window (using the replace theme function) will automatically affect the map item. If a map theme is selected, the Lock styles for layers option is disabled because Follow map theme also updates the style (symbology, labels, diagrams) of the layers. To lock the layers shown in a map item to the current map canvas visibility, check Lock layers. When this option is enabled, any changes on the layers‘ visibility in QGIS‘ main window will not affect the layout’s map item. Nevertheless, style and labels of locked layers are still refreshed according to QGIS‘ main window. You can prevent this by using Lock styles for layers. Instead of using the current map canvas, you can also lock the layers of the map item to those of an existing map theme: select a map theme from the Set layer list from a map theme drop-down button, and the Lock layers is activated. The set of visible layers in the map theme is from now on used for the map item until you select another map theme or uncheck the Lock layers option. You then may need to refresh the view using the Refresh view button of the Navigation toolbar or the Update Preview button seen above. Note that, unlike the Follow map theme option, if the Lock layers option is enabled and set to a map theme, the layers in the map item will not be refreshed even if the map theme is updated (using the replace theme function) in QGIS‘ main window. Locked layers in the map item can also be data-defined, using the icon beside the option. When used, this overrides the selection set in the drop-down list. You need to pass a list of layers separated by | character. The following example locks the map item to use only layers layer 1 and layer 2: concat ('layer 1', '|', 'layer 2') Extents The Extents group of the map item properties panel provides the following functionalities (see Obr. 18.16): Obr. 18.16: Map Extents group The Extents area displays X and Y coordinates of the area shown in the map item. Each of these values can be manually replaced, modifying the map canvas area displayed and/or map item size. Clicking the Set to Map Canvas Extent button sets the extent of the layout map item to the extent of the main map canvas. The button View Extent in Map Canvas does exactly the opposite; it updates the extent of the main map canvas to the extent of the layout map item. 18.2. Layout Items 587 QGIS Desktop 3.16 User Guide You can also alter a map item extent using the Move item content tool: click-and-drag within the map item to modify its current view, keeping the same scale. With the tool enabled, use the mouse wheel to zoom in or out, modifying the scale of the shown map. Combine the movement with Ctrl key pressed to have a smaller zoom. Controlled by atlas The Controlled by atlas group properties is available only if an atlas is active in the print layout. Check this option if you want the map item being ruled by the atlas; when iterating over the coverage layer, the map item extent is panned/zoomed to the atlas feature following: • Margin around features: zooms to the feature at the best scale, keeping around each a margin representing a percentage of the map item width or height. The margin can be the same for all features or set variable, e.g., depending on map scale; • Predefined scale (best fit): zooms to the feature at the project predefined scale where the atlas feature best fits; • Fixed scale: atlas features are panned from one to another, keeping the same scale of the map item. Ideal when working with features of same size (e.g., a grid) or willing to highlight size differences among atlas features. Grids With grids, you can add, over your map, information relative to its extent or coordinates, either in the map item projection or a different one. The Grids group provides the possibility to add several grids to a map item. • With the and buttons you can add or remove a selected grid; • With the and buttons you can move up and down a grid in the list, hence move it on top or bottom of another one, over the map item. Double-click the added grid to rename it. Obr. 18.17: Map Grids Dialog To modify a grid, select it and press the Modify Grid… button to open the Map Grid Properties panel and access its configuration options. 588 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Grid Appearance In the Map Grid Properties panel, check Grid enabled to show the grid on the map item. As grid type, you can specify to use a: • Solid: shows a line across the grid frame. The Line style can be customized using color and symbol selector widget; • Cross: displays segment at the grid lines intersection for which you can set the Line style and the Cross width; • Markers: only displays customizable markers symbol at grid lines intersection; • or Frame and annotations only. Other than the grid type, you can define: • the CRS of the grid. If not changed, it will follow the Map CRS. The Change button lets you set it to a different CRS. Once set, it can be changed back to default by selecting any group heading (e.g Geographic Coordinate System) under Predefined Coordinate Reference Systems in the CRS selection dialog. • the Interval type to use for the grid references. Available options are Map Unit, Fit Segment Width, Millimeter or Centimeter: – choosing Fit Segment Width will dynamically select the grid interval based on the map extent to a „pretty“ interval. When selected, the Minimum and Maximum intervals can be set. – the other options allow you to set the distance between two consecutive grid references in the X and Y directions. • the Offset from the map item edges, in the X and/or the Y direction • and the Blend mode of the grid (see Režim míchání) when compatible. Obr. 18.18: Grid Appearance Dialog 18.2. Layout Items 589 QGIS Desktop 3.16 User Guide Grid Frame There are different options to style the frame that holds the map. The following options are available: No Frame, Zebra, Zebra (nautical), Interior ticks, Exterior ticks, Interior and Exterior ticks, Line border and Line border (nautical). When compatible, it’s possible to set the Frame size, a Frame margin, the Frame line thickness with associated color and the Frame fill colors. Using Latitude/Y only and Longitude/X only values in the divisions section you can prevent a mix of latitude/Y and longitude/X coordinates showing on each side when working with rotated maps or reprojected grids. Also you can choose to set visible or not each side of the grid frame. Obr. 18.19: Grid Frame Dialog Coordinates The Draw coordinates checkbox allows you to add coordinates to the map frame. You can choose the annotation numeric format, the options range from decimal to degrees, minute and seconds, with or without suffix, aligned or not and a custom format using the expression dialog. You can choose which annotation to show. The options are: show all, latitude only, longitude only, or disable(none). This is useful when the map is rotated. The annotation can be drawn inside or outside the map frame. The annotation direction can be defined as horizontal, vertical ascending or vertical descending. Finally, you can define the annotation font, font color, distance from the map frame and the precision of the drawn coordinates. 590 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.20: Grid Draw Coordinates dialog Overviews Sometimes you may have more than one map in the print layout and would like to locate the study area of one map item on another one. This could be for example to help map readers identify the area in relation with its larger geographic context shown in the second map. The Overviews group of the map panel helps you create the link between two different maps extent and provides the following functionalities: 18.2. Layout Items 591 QGIS Desktop 3.16 User Guide Obr. 18.21: Map Overviews group To create an overview, select the map item on which you want to show the other map item’s extent and expand the Overviews option in the Item Properties panel. Then press the button to add an overview. Initially this overview is named ‚Overview 1‘ (see Obr. 18.21). You can: • Rename it with a double-click • With the and buttons, add or remove overviews • With the and buttons, move an overview up and down in the list, placing it above or below other overviews in the map item (when they are at the same stack position). Then select the overview item in the list and check the Draw „“ overview to enable the drawing of the overview on the selected map frame. You can customize it with: • The Map frame selects the map item whose extents will be shown on the present map item. • The Frame Style uses the symbol properties to render the overview frame. • The Blending mode allows you to set different transparency blend modes. • The Invert overview creates a mask around the extents when activated: the referenced map extents are shown clearly, whereas the rest of the map item is blended with the frame fill color (if a fill color is used). • The Center on overview pans the map item content so that the overview frame is displayed at the center of the map. You can only use one overview item to center, when you have several overviews. • The Position controls exactly where in the map item’s layer stack the overview will be placed, e.g. allowing an overview extent to be drawn below some feature layers such as roads whilst drawing it above other background layers. Available options are: – Below map – Below map layer and Above map layer: place the overview frame below and above the geometries of a layer, respectively. The layer is selected in the Stacking layer option. – Below map labels: given that labels are always rendered above all the feature geometries in a map item, places the overview frame above all the geometries and below any label. – Above map labels: places the overview frame above all the geometries and labels in the map item. 592 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide 18.2.3 The 3D Map Item The 3D Map item is used to display a 3D map view. Use the Add 3D Map button, and follow items creation instructions to add a new 3D Map item that you can later manipulate the same way as demonstrated in Interacting with layout items. By default, a new 3D Map item is empty. You can set the properties of the 3D view and customize it in the Item Properties panel. In addition to the common properties, this feature has the following functionalities (Obr. 18.22): Obr. 18.22: 3D Map Item Properties Scene settings Press Copy Settings from a 3D View… to choose the 3D map view to display. The 3D map view is rendered with its current configuration (layers, terrain, lights, camera position and angle…). Camera pose • Center X sets the X coordinate of the point the camera is pointing at • Center Y sets the Y coordinate of the point the camera is pointing at • Center Z sets the Z coordinate of the point the camera is pointing at • Distance sets the distance from the camera center to the point the camera is pointing at • Pitch sets the rotation of the camera around the X-axis (vertical rotation). Values from 0 to 360 (degrees). 0°: terrain seen straight from above; 90°: horizontal (from the side); 180°: straight from below; 270°: horizontal, upside down; 360°: straight from above. 18.2. Layout Items 593 QGIS Desktop 3.16 User Guide • Heading sets the rotation of the camera around the Y-axis (horizontal rotation - 0 to 360 degrees). 0°/360°: north; 90°: west; 180°: south; 270°: east. The Set from a 3D View… pull-down menu lets you populate the items with the parameters of a 3D View. 18.2.4 The Label Item The Label item is a tool that helps decorate your map with texts that would help to understand it; it can be the title, author, data sources or any other information… You can add a label with the Add Label tool following items creation instructions and manipulate it the same way as exposed in Interacting with layout items. By default, the label item provides a default text that you can customize using its Item Properties panel. Other than the items common properties, this feature has the following functionalities (see Obr. 18.23): Obr. 18.23: Label Item Properties Panel Main properties The Main properties group is the place to provide the text (it can be in HTML) or the expression to build the label. Expressions need to be surrounded by [% and %] in order to be interpreted as such. • Labels can be interpreted as HTML code: check Render as HTML. You can now insert a URL, a clickable image that links to a web page or something more complex. • You can also use expressions: click on Insert or Edit an expression… button, write your formula as usual and when the dialog is applied, QGIS automatically adds the surrounding characters. Poznámka: Clicking the Insert or Edit an Expression… button when no selection is made in the textbox will append the new expression to the existing text. If you want to update an existing text, you need to select it the part of interest beforehand. You can combine HTML rendering with expressions, leading to advanced labeling. The following code will output Obr. 18.24: 594 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Feature Information
  • Feature Id: [% ID %]
  • Airport: [% NAME %]
  • Main use: [% USE %]
Last check: [% concat( format_date( "control_date", 'yyyy-MM-dd'), ' by ', → @user_full_name, '' ) %]

→"QGIS Obr. 18.24: Leveraging a label with HTML styling Appearance • Define Font by clicking on the Font… button or a Font color by pushing the color widget. • You can specify different horizontal and vertical margins in mm. This is the margin from the edge of the layout item. The label can be positioned outside the bounds of the label e.g. to align label items with other items. In this case you have to use negative values for the margin. • Using the text alignment is another way to position your label. It can be: – Left, Center, Right or Justify for Horizontal alignment – and Top, Middle, Bottom for Vertical alignment. 18.2. Layout Items 595 QGIS Desktop 3.16 User Guide Exploring expressions in a label item Below some examples of expressions you can use to populate the label item with interesting information - remember that the code, or at least the calculated part, should be surrounded by [% and %] in the Main properties frame: • Display a title with the current atlas feature value in „field1“: 'This is the map for ' || "field1" or, written in the Main properties section: This is the map for [% "field1" %] • Add a pagination for processed atlas features (eg, Page 1/10): concat( 'Page ', @atlas_featurenumber, '/', @atlas_totalfeatures ) • Return the name of the airports of the current atlas region feature, based on their common attributes: aggregate( layer := 'airports', aggregate := 'concatenate', expression := "NAME", filter := fk_regionId = attribute( @atlas_feature, 'ID' ), concatenator := ', ' ) Or, if an attributes relation is set: relation_aggregate( relation := 'airports_in_region_relation', aggregate := 'concatenate', expression := "NAME", concatenator := ', ' ) • Return the name of the airports contained in the current atlas region feature, based on their spatial relationship: aggregate( layer := 'airports', aggregate := 'concatenate', expression := "NAME", filter := contains( geometry( @parent ), $geometry ), concatenator := ', ' ) OR: array_to_string( array:= overlay_contains( layer := 'airports', expression := "NAME" ), delimiter:= ', ' ) • Return the lower X coordinate of the Map 1 item’s extent: x_min( map_get( item_variables( 'Map 1' ), 'map_extent' ) ) • Retrieve the name of the layers in the current layout Map 1 item, and formats in one name by line: array_to_string( array_foreach( map_get( item_variables( 'Map 1' ), 'map_layers' ), -- retrieve the layers␣ →list layer_property( @element, 'name' ) -- retrieve each layer name ), (continues on next page) 596 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) '\n' -- converts the list to string separated by breaklines ) 18.2.5 The Legend Item The Legend item is a box or a table that explains the meanings of the symbols used on the map. A legend is then bound to a map item. You can add a legend item with the Add Legend tool following items creation instructions and manipulate it the same way as exposed in Interacting with layout items. By default, the legend item displays all available layers and can be refined using its Item Properties panel. Other than the items common properties, this feature has the following functionalities (see Obr. 18.25): Obr. 18.25: Legend Item Properties Panel Main properties The Main properties group of the legend Item Properties panel provides the following functionalities (see Obr. 18.26): Obr. 18.26: Legend Main properties group In Main properties you can: 18.2. Layout Items 597 QGIS Desktop 3.16 User Guide • Change the Title of the legend. It can be made dynamic using the data-defined override setting, useful for example when generating an atlas; • Choose which Map item the current legend will refer to. By default, the map over which the legend item is drawn is picked. If none, then it falls back to the reference map. Poznámka: Variables of the linked map item (@map_id, @map_scale, @map_extent…) are also accessible from data-defined properties of the legend. • Wrap the text of the legend on a given character: each time the character appears, it’s replaced with a line break; • Set the symbols and text placement in the legend: the Arrangement can be Symbols on left or Symbols on right. The default value depends on the locale in use (right-to-left based or not). • Use Resize to fit contents to control whether or not a legend should be automatically resized to fit its contents. If unchecked, then the legend will never resize and instead just stick to whatever size the user has set. Any content which doesn’t fit the size is cropped out. Legend items The Legend items group of the legend Item Properties panel provides the following functionalities (see Obr. 18.27): Obr. 18.27: Legend Items group • The legend will be updated automatically if Auto update is checked. When Auto update is unchecked this will give you more control over the legend items. All the icons below the legend items list will be activated. • The legend items window lists all legend items and allows you to change item order, group layers, remove and restore items in the list, edit layer names and add a filter. – The item order can be changed using the and buttons or with ‚drag-and-drop‘ functionality. The order can not be changed for WMS legend graphics. – Use the button to add a legend group. – Use the button to add layers and button to remove groups, layers or symbol classes. 598 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide – The button is used to edit the layer, group name or title. First you need to select the legend item. Double-clicking the item also opens the text box to rename it. – The button uses expressions to customize each symbol label of the selected layer (see Data-define the legend labels) – The button adds a feature count for each class of vector layer. – The Filter legend by expression helps you filter which of the legend items of a layer will be displayed, i.e. using a layer that has different legend items (e.g., from a rule-based or categorized symbology), you can specify a boolean expression to remove from the legend tree, styles that have no feature satisfying a condition. Note that the features are nevertheless kept and shown in the layout map item. While the default behavior of the legend item is to mimic the Layers panel tree, displaying the same groups, layers and classes of symbology, right-click any item offers you options to hide layer’s name or raise it as a group or subgroup. In case you have made some changes to a layer, you can revert them by choosing Reset to defaults from the contextual menu of the legend entry. After changing the symbology in the QGIS main window, you can click on Update All to adapt the changes in the legend element of the print layout. • With the Only show items inside linked map, only the legend items visible in the linked map will be listed in the legend. This tool remains available when Auto-update is active • While generating an atlas with polygon features, you can filter out legend items that lie outside the current atlas feature. To do that, check the Only show items inside current atlas feature option. Data-define the legend labels allows you to add expressions to each symbol label of a given layer. New variables (@symbol_label, @symbol_id and @symbol_count) help you interact with the legend entry. For example, given a regions layer categorized by its type field, you can append to each class in the legend their number of features and total area, e.g. Borough (3) - 850ha: 1. Select the layer entry in the legend tree 2. Press the button, opening the Expression String Builder dialog 3. Enter the following expression (assuming symbol labels have not been edited): concat( @symbol_label, ' (', @symbol_count, ') - ', round( aggregate(@layer, 'sum', $area, filter:= "type"=@symbol_label)/ →10000 ), 'ha' ) 4. Press OK 18.2. Layout Items 599 QGIS Desktop 3.16 User Guide Fonts The Fonts group of the legend Item Properties panel provides the following functionalities: Obr. 18.28: Legend Fonts properties • You can change the font of the legend title, group, subgroup and item (feature) in the legend item using the font selector widget • For each of these levels you can set the text Alignment: it can be Left (default for left-to-right based locales), Center or Right (default for right-to-left based locales). • You set the Color of the labels using the color selector widget. The selected color will apply to all the font items in the legend. 600 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Columns Under the Columns group of the legend Item Properties panel, legend items can be arranged over several columns: • Set the number of columns in the Count field. This value can be made dynamic e.g., following atlas features, legend contents, the frame size… • Equal column widths sets how legend columns should be adjusted. • The Split layers option allows a categorized or a graduated layer legend to be divided between columns. Obr. 18.29: Legend Columns settings Symbol The Symbol group of the legend Item Properties panel configures the size of symbols displayed next to the legend labels. You can: • Set the Symbol width and Symbol height • Set the markers‘ Min symbol size and Max symbol size: 0.00mm means there is no value set. • Draw stroke for raster symbols: this adds an outline to the symbol representing the band color of the raster layer; you can set both the Stroke color and Tickness. 18.2. Layout Items 601 QGIS Desktop 3.16 User Guide Obr. 18.30: Legend Symbol configuration WMS LegendGraphic and Spacing The WMS LegendGraphic and Spacing groups of the legend Item Properties panel provide the following functionalities (see Obr. 18.31): 602 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.31: WMS LegendGraphic and Spacing groups When you have added a WMS layer and you insert a legend item, a request will be sent to the WMS server to provide a WMS legend. This Legend will only be shown if the WMS server provides the GetLegendGraphic capability. The WMS legend content will be provided as a raster image. WMS LegendGraphic is used to be able to adjust the Legend width and the Legend height of the WMS legend raster 18.2. Layout Items 603 QGIS Desktop 3.16 User Guide image. Spacing around title, groups, subgroups, symbols, labels, boxes, columns and lines can be customized through this dialog. 18.2.6 The Scale Bar Item Scale bars provide a visual indication of the size of features, and distance between features, on the map item. A scale bar item requires a map item. Use the Add Scale Bar tool following items creation instructions to add a new scale bar item that you can later manipulate the same way as exposed in Interacting with layout items. By default, a new scale bar item shows the scale of the map item over which it is drawn. If there is no map item below, the reference map is used. You can customize it in the Item Properties panel. Other than the items common properties, this feature has the following functionalities (see Obr. 18.32): Obr. 18.32: Scale Bar Item Properties Panel Main properties The Main properties group of the scale bar Item Properties panel provides the following functionalities (see Obr. 18.33): Obr. 18.33: Scale Bar Main properties group 1. First, choose the map the scale bar will be attached to 2. Then, choose the style of the scale bar. Available styles are: • Single box and Double box styles, which contain one or two lines of boxes alternating colors; • Middle, Up or Down line ticks; • Stepped line style that draws a stepped line representation of a scalebar 604 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide • Hollow style that draws a single box with alternating color for the segments, with horizontal lines through alternating segments • Numeric, where the scale ratio is printed (e.g., 1:50000). 3. Set properties as appropriate Units The Units group of the scale bar Item Properties panel provides the functionalities to set the units of display and some text formatting (see Obr. 18.34): Obr. 18.34: Scale Bar Units group • Select the units you want to use with Scalebar units. There are many possible choices: Map Units (the default one), Meters, Feet, Miles or Nautical Miles… and some derivatives. Units conversion is handled automatically. • The Label unit multiplier specifies how many scale bar units per labeled unit. Eg, if your scale bar units are set to „meters“, a multiplier of 1000 will result in the scale bar labels in „kilometers“. • The Label for units field defines the text used to describe the units of the scale bar, eg m or km. This should be matched to reflect the multiplier above. • Press Customize next to Number format to have control over all the formatting properties for the numbers in the scale bar, including thousand separators, decimal places, scientific notation, etc. (see Number Formatting for more details). Very useful in the case of making maps for audiences outside of the current QGIS locale, or when you would like to vary the style from the locale defaults (e.g. adding thousands separators when the locale default is to hide them). Segments The Segments group of the scale bar Item Properties panel provides the functionalities to configure the number and size of segments and subdivisions (see Obr. 18.35): Obr. 18.35: Scale Bar Segments group 18.2. Layout Items 605 QGIS Desktop 3.16 User Guide • You can define the number of Segments that will be drawn at the left and right sides of the 0 of the scale bar: – number of subdivisions of a unique segment on the Left side – number of segments on the Right side • You can set how long a segment will be (Fixed width), or limit the scale bar size in mm with Fit segment width option. In the latter case, each time the map scale changes, the scale bar is resized (and its label updated) to fit the range set. • Height is used to define the height of the bar. • Right segment subdivisions is used to define the number of sections the right-side segments of the scale bar can have (for Line Ticks Down, Line Ticks Middle and Line Ticks Up scale bar styles) . • Subdivision height is used to define the height of the subdivision segment. Display The Display group of the scale bar Item Properties panel provides the following functionalities: Obr. 18.36: Scale Bar Display group You can define how the scale bar will be displayed in its frame. • Box margin : space between text and frame borders • Label margin : space between text and scale bar drawing • Vertical label placement: it can be above or below the scale bar segment • Horizontal label placement: which would be centered at the scale bar segment’s edge or center • Primary fill and Secondary fill of the scale bar drawing using fill symbols properties (color, opacity, patterns, effects…) — for Single Box, Double Box and Hollow styles • Line style of the scale bar drawing using line symbols properties (color, stroke, join, cap style, patterns, effects…) — for all but Numeric style • Division style and Subdivision style respectively for division and subdivision segments in Line Ticks Up, Line Ticks Middle and Line Ticks Down scale bar styles using line symbols properties (color, stroke, join, cap style, patterns, effects…) • Alignment puts text on the left, center or right side of the frame (only for Numeric scale bar style) 606 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide • Font to set the properties (size, font, color, letter spacing, shadow, background…) of the scale bar label. Since most of the display properties of the scale bar rely on symbols whose properties can be data-defined, it’s possible to render data-defined scale bars. Example: The following code applied to the bold property of the scale labels will display numbers in bold when they are a multiple of 500: -- returns True (or 1) if the value displayed on the bar -- is a multiple of 500 @scale_value % 500 = 0 18.2.7 Položky tabulky Můžete použít položky tabulky pro ozdobení a vysvětlení Vaší mapy. • Attribute table: shows a subset of the attributes of a layer, based on predefined rules • Fixed table: inserts a manual text table where information can be independent from the layers. Položka atributové tabulky Atributy z jakékoliv vrstvy v projektu mohou být zobrazeny v náhledu pro tisk. By default, a new attribute table item loads first rows of the first (alphabetically sorted) layer, with all the fields. You can however customize the table thanks to its Item Properties panel. Other than the items common properties, this feature has the following functionalities (see Obr. 18.37): Obr. 18.37: Atributová tabulka Položka Panel nastavení 18.2. Layout Items 607 QGIS Desktop 3.16 User Guide Hlavní nastavení The Main properties group of the attribute table provides the following functionalities (see Obr. 18.38): Obr. 18.38: Attribute table Main properties Group • For Source you can by default only select Layer features allowing you to select a Layer from the vector layers loaded in the project. The data-defined override button near the layer list allows you to dynamically change the layer which is used to populate the table, e.g. you could fill the attribute table with different layer attributes per atlas page. Note that the table structure used (Obr. 18.41) is the one of the layer shown in the Layer drop-down list and it is left intact, meaning that setting a data defined table to a layer with different field(s) will result in empty column(s) in the table. In case you activate the Generate an atlas option in the Atlas panel (see Generate an Atlas), there are two additional Source possible: – Current atlas feature (see Obr. 18.39): you won’t see any option to choose the layer, and the table item will only show a row with the attributes from the current feature of the atlas coverage layer. – and Relation children (see Obr. 18.40): an option with the relation names will show up. This feature can only be used if you have defined a relation using your atlas coverage layer as parent, and the table will show the children rows of the atlas coverage layer’s current feature. • The button Refresh Table Data can be used to refresh the table when the actual contents of the table has changed. Obr. 18.39: Attribute table Main properties for ‚Current atlas feature‘ Obr. 18.40: Attribute table Main properties for ‚Relation children‘ • The button Attributes… starts the Select Attributes dialog, (see Obr. 18.41) that can be used to change the visible contents of the table. The upper part of the window shows the list of the attributes to display and the lower part helps you sort the data. 608 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.41: Attribute table Select attributes Dialog In the Columns section you can: – Move attributes up or down the list by selecting the rows and then using the and buttons to shift the rows. Multiple rows can be selected and moved at any one time. – Add an attribute with the button. This will add an empty row at the bottom of the table where you can select a field to be the attribute value or create an attribute via a regular expression. – Remove an attribute with the button. Multiple rows can be selected and removed at any one time. – Reset the attribute table back to its default state with the Reset button. – Clear the table using the Clear button. This is useful when you have a large table but only want to show a small number of attributes. Instead of manually removing each row, it may be quicker to clear the table and add the rows needed. – Cell headings can be altered by adding the custom text in the Heading column. – Cell alignment can be managed with the Alignment column which will dictate the texts position within the table cell. – Cell width can be manually managed by adding custom values to the width column. In the Sorting section you can: – Add an attribute to sort the table with: press the button and a new empty row is added. Insert a field or an expression in the Attribute column and set the Sort order to Ascending or Descending. – Select a row in the list and use the and buttons to change the sort priority on attribute level. Selecting a cell in the Sort Order column helps you change the sorting order of the attribute field. – Use the button to remove an attribute from the sorting list. 18.2. Layout Items 609 QGIS Desktop 3.16 User Guide Feature filtering The Feature filtering group of the attribute table provides the following functionalities (see Obr. 18.42): Obr. 18.42: Attribute table Feature filtering Group You can: • Define the Maximum rows to be displayed. • Activate Remove duplicate rows from table to show unique records only. • Activate Show only visible features within a map and select the corresponding Linked map whose visible features attributes will be displayed. • Activate Show only features intersecting Atlas feature is only available when Generate an atlas is activated. When activated it will show a table with only the features which intersect the current atlas feature. • Activate Filter with and provide a filter by typing in the input line or insert a regular expression using the given expression button. A few examples of filtering statements you can use when you have loaded the airports layer from the Sample dataset: – ELEV > 500 – NAME = 'ANIAK' – NAME NOT LIKE 'AN%' – regexp_match( attribute( $currentfeature, 'USE' ) , '[i]') The last regular expression will include only the airports that have a letter ‚i‘ in the attribute field ‚USE‘. 610 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Appearance The Appearance group of the attribute table provides the following functionalities (see Obr. 18.43): Obr. 18.43: Attribute table appearance Group • Click Show empty rows to fill the attribute table with empty cells. This option can also be used to provide additional empty cells when you have a result to show! • With Cell margins you can define the margin around text in each cell of the table. • With Display header you can select from a list one of ‚On first frame‘, ‚On all frames‘ default option, or ‚No header‘. • The option Empty table controls what will be displayed when the result selection is empty. – Draw headers only, will only draw the header except if you have chosen ‚No header‘ for Display header. – Hide entire table, will only draw the background of the table. You can activate Don’t draw background if frame is empty in Frames to completely hide the table. – Show set message, will draw the header and adds a cell spanning all columns and display a message like ‚No result‘ that can be provided in the option Message to display • The option Message to display is only activated when you have selected Show set message for Empty table. The message provided will be shown in the table in the first row, when the result is an empty table. • With Background color you can set the background color of the table using the color selector widget. The Advanced customization option helps you define different background colors for each cell (see Obr. 18.44) 18.2. Layout Items 611 QGIS Desktop 3.16 User Guide Obr. 18.44: Attribute table Advanced Background Dialog • Apply layer conditional styling colors: the conditional table formatting present in the layer is applied inside the layout attribute table (only background and foreground colors are currently supported). Conditional formatting rules take precedence over other layout table formatting settings, e.g. they will override other cell background color settings such as alternating row colors. • With the Wrap text on option, you can define a character on which the cell content will be wraped each time it is met • With Oversized text you define the behavior when the width set for a column is smaller than its content’s length. It can be Wrap text or Truncate text. Poznámka: More properties of the attribute table item are described in the Tables common functionalities section. The fixed table item Additional information about the map can be inserted manually into a table by choosing Add Fixed Table and by following items creation instructions to add a new table item that you can later manipulate the same way as exposed in Interacting with layout items. By default, an empty table with two minimized columns and rows appears in the map layout. You have to customize the table in the Item Properties panel. Other than the items common properties, this feature has the following functionalities: 612 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Hlavní nastavení Obr. 18.45: Fixed table Item Properties Panel with Table designer In Main properties you can work with the Table designer when clicking the Edit table …: • You can click into the table and insert texts manually. • Through the menus on top it is possible to: – Import Content From Clipboard by going to File (it overrides given inputs). – work with selection functionalities for rows and columns by going to Edit. – Insert rows, Insert columns, Delete Rows, Delete Columns as well as using the option to Include Header Row. • You can work with the Cell Contents section on the right and: – Define the text format of selected cells in Formatting ∗ by clicking on the given expression button and using a regular expression for the input of the cell ∗ by choosing the Text format ∗ by Format as number (several formats are available) ∗ by defining the Horizontal alignment and the Vertical alignment ∗ by choosing a Background color 18.2. Layout Items 613 QGIS Desktop 3.16 User Guide – Define the Cell Size with Row height and Column width. Appearance The Appearance group of the fixed table provides the following functionalities: • Click Show empty rows to fill the attribute table with empty cells. • With Cell margins you can define the margin around text in each cell of the table. • With Display header you can select from a list one of ‚On first frame‘, ‚On all frames‘ default option, or ‚No header‘. • With Background color you can set the background color of the table using the color selector widget. The Advanced customization option helps you define different background colors for each cell. • With Oversized text you define the behavior when the width set for a column is smaller than its content’s length. It can be Wrap text or Truncate text. Poznámka: More properties of the fixed table item are described in the Tables common functionalities section. Tables common functionalities Show grid The Show grid group of the table items provides the following functionalities (see Obr. 18.46): Obr. 18.46: Attribute table Show grid Group • Activate Show grid when you want to display the grid, the outlines of the table cells. You can also select to either Draw horizontal lines or Draw vertical lines or both. • With Line width you can set the thickness of the lines used in the grid. • The Color of the grid can be set using the color selection widget. Fonts and text styling The Fonts and text styling group of the table items provides the following functionalities (see Obr. 18.47): 614 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.47: Attribute table Fonts and text styling Group • You can define Font properties for Table heading and Table contents, using the advanced text settings widget (with buffer, shadow, paint effects, transparence, background, coloring, …). Note that these changes do not affect the cells that have custom font assigned, either from the Appearance section or the Table Designer dialog. Only cells with the default rendering are overwritten. • For Table heading you can additionally set the Alignment to Follow column alignment or override this setting by choosing Left, Center or Right. The column alignment is set using the Select Attributes dialog (see Obr. 18.41 ). Frames The Frames group of the table item properties provides the following functionalities (see Obr. 18.48): Obr. 18.48: Attribute table Frames Group • With Resize mode you can select how to render the attribute table contents: – Use existing frames displays the result in the first frame and added frames only. – Extend to next page will create as many frames (and corresponding pages) as necessary to display the full selection of attribute table. Each frame can be moved around on the layout. If you resize a frame, the resulting table will be divided up between the other frames. The last frame will be trimmed to fit the table. – Repeat until finished will also create as many frames as the Extend to next page option, except all frames will have the same size. • Use the Add Frame button to add another frame with the same size as selected frame. The result of the table that will not fit in the first frame will continue in the next frame when you use the Resize mode Use existing frames. • Activate Don’t export page if frame is empty prevents the page to be exported when the table frame has no contents. This means all other layout items, maps, scalebars, legends etc. will not be visible in the result. • Activate Don’t draw background if frame is empty prevents the background to be drawn when the table frame has no contents. 18.2. Layout Items 615 QGIS Desktop 3.16 User Guide 18.2.8 The Picture and the North Arrow Items The Picture item is a tool that helps decorate your map with pictures, logos… It can also be used to add north arrows, despite the dedicated North arrow tool. The Picture Item You can add a picture by dragging it from your file manager onto the canvas, or by using the Add Picture , following items creation instructions. Then you can manipulate it, as explained in Interacting with layout items. When using Add Picture , the picture item will be a blank frame that you can customize using its Item Properties panel. Other than the items common properties, this feature has the following functionalities (see Obr. 18.49): Obr. 18.49: Picture Item Properties panel There are several ways to set the Image source (to select the image you want to display): 1. In the Main properties group, use the … Browse button of image source to select a file on your computer. The browser will start in the SVG-libraries provided with QGIS. You can also select other image formats (like .png or .jpg). 2. You can enter the source directly in the Image source text field. You can even provide a remote URL that points to a picture. 3. From the Search directories area you can select an image from the loaded previews to set the image source. These images are by default provided by folders set in Settings ► Options ► System ► SVG Paths. 4. Use the data defined override button to set the image source from a feature attribute or using a regular expression. Poznámka: In the Search directories group, you can use the Add and Remove buttons to customize the list of folders to fetch and preview images from. 616 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide With the Resize mode option, you can set how the image is displayed when the frame is resized: • Zoom: enlarges/reduces the image to the frame while maintaining the aspect ratio of picture • Stretch: stretches the image to fit inside the frame • Clip: use this mode for raster images only, it sets the size of the image to the original image size without scaling, and the frame is used to clip the image. So only the part of the image that is inside the frame will be visible. • Zoom and resize frame: enlarges the image to fit the frame, and then resizes frame to fit the resulting image dimensions • Resize frame to image size: sets the size of the frame to match the original size of the image (no scaling) Depending on the selected Resize mode, the Placement and Image rotation options may be disabled. Placement lets you select the position of the image inside its frame. The QGIS provided (default) .SVG files are customizable, meaning that you can easily apply other Fill color, Stroke color (including opacity) and Stroke width than the original, using their corresponding feature in the SVG Parameters group. These properties can also be data-defined. If you add an .SVG file that does not enable these properties, you may need to add the following tags to the file in order to add support e.g. for transparency: • fill-opacity=“param(fill-opacity)“ • stroke-opacity=“param(outline-opacity)“ You can read this blog post to see an example. Images can be rotated with the Image rotation field. Activating the Sync with map checkbox synchronizes the rotation of the image with the rotation applied to a selected map item. This is a convenient feature for north arrows that you can align with either: • Grid north: the direction of a grid line which is parallel to the central meridian of the national/local grid • True north: direction of a meridian of longitude. You can also apply a declination Offset to the picture rotation. The North Arrow Item You can add a north arrow with the Add North Arrow button, following items creation instructions and manipulate it the same way as exposed in Interacting with layout items. Since north arrows are images, the North Arrow item has the same properties as the picture item. The main differences are: • A default north arrow is used when adding the item, instead of a blank frame • The north arrow item is synced with a map item by default: the Sync with map property is the map over which the north arrow item is drawn. If none, it falls back to the reference map. Poznámka: Many of the north arrows do not have an ‚N‘ added in the north arrow. This is done on purpose, since there are languages that do not use an ‚N‘ for North. 18.2. Layout Items 617 QGIS Desktop 3.16 User Guide Obr. 18.50: North arrows available for selection in provided SVG library 18.2.9 The HTML Frame Item It is possible to add a frame that displays the contents of a website or even create and style your own HTML page and display it! You can add a picture with the Add HTML following items creation instructions and manipulate it the same way as exposed in Interacting with layout items. Note that the HTML scale is controlled by the layout export resolution at the time the HTML frame is created. The HTML item can be customized using its Item Properties panel. Other than the items common properties, this feature has the following functionalities (see Obr. 18.51): Obr. 18.51: HTML Frame, the Item Properties Panel 618 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide HTML Source The HTML Source group of the HTML frame Item Properties panel provides the following functionalities (see Obr. 18.52): Obr. 18.52: HTML frame, the HTML Source properties • In URL you can enter the URL of a webpage you copied from your Internet browser or select an HTML file using the … Browse button. There is also the option to use the Data-defined override button, to provide a URL from the contents of an attribute field of a table or using a regular expression. • In Source you can enter text in the textbox with some HTML tags or provide a full HTML page. • The Insert or Edit an Expression… button can be used to add an expression like [%Year($now)%] in the Source textbox to display the current year. This button is only activated when radiobutton Source is selected. After inserting the expression click somewhere in the textbox before refreshing the HTML frame, otherwise you will lose the expression. • Activate Evaluate QGIS expressions in HTML code to see the result of the expression you have included, otherwise you will see the expression instead. • Use the Refresh HTML button to refresh the HTML frame(s) and see the result of changes. Frames The Frames group of the HTML frame Item Properties panel provides the following functionalities (see Obr. 18.53): Obr. 18.53: HTML frame, the Frames properties • With Resize mode you can select how to render the HTML contents: – Use existing frames displays the result in the first frame and added frames only. – Extend to next page will create as many frames (and corresponding pages) as necessary to render the height of the web page. Each frame can be moved around on the layout. If you resize a frame, the webpage will be divided up between the other frames. The last frame will be trimmed to fit the web page. – Repeat on every page will repeat the upper left of the web page on every page in frames of the same size. 18.2. Layout Items 619 QGIS Desktop 3.16 User Guide – Repeat until finished will also create as many frames as the Extend to next page option, except all frames will have the same size. • Use the Add Frame button to add another frame with the same size as selected frame. If the HTML page does not fit in the first frame it will continue in the next frame when you use Resize mode or Use existing frames. • Activate Don’t export page if frame is empty prevents the page from being exported when the frame has no HTML contents. This means all other layout items, maps, scale bars, legends etc. will not be visible in the result. • Activate Don’t draw background if frame is empty prevents the HTML frame being drawn if the frame is empty. Use smart page breaks and User style sheet The Use smart page breaks dialog and User style sheet dialog of the HTML frame Item Properties panel provides the following functionalities (see Obr. 18.54): Obr. 18.54: HTML frame, Use smart page breaks and User style sheet properties • Activate Use smart page breaks to prevent the html frame contents from breaking mid-way a line of text so it continues nice and smooth in the next frame. • Set the Maximum distance allowed when calculating where to place page breaks in the html. This distance is the maximum amount of empty space allowed at the bottom of a frame after calculating the optimum break location. Setting a larger value will result in better choice of page break location, but more wasted space at the bottom of frames. This is only used when Use smart page breaks is activated. • Activate User style sheet to apply HTML styles that often is provided in cascading style sheets. An example of style code is provided below to set the color of

header tag to green and set the font and font size of text included in paragraph tags

. h1 {color: #00ff00; } p {font-family: "Times New Roman", Times, serif; font-size: 20px; } • Use the Update HTML button to see the result of the style sheet settings. 620 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide 18.2.10 The Shape Items QGIS provides a couple of tools to draw regular or more complex shapes over the print layout. Poznámka: Unlike other print layout items, you can not style the frame nor the background color of the shapes bounding frame (set to transparent by default). The Regular Shape Item The Shape item is a tool that helps to decorate your map with regular shapes like triangle, rectangle, ellipse… You can add a regular shape using the Add Shape tool which gives access to particular tools like Add Rectangle , Add Ellipse and Add Triangle . Once you have selected the appropriate tool, you can draw the item following items creation instructions. Like other layout items, a regular shape can be manipulated the same way as exposed in Interacting with layout items. Poznámka: Holding down the Shift key while drawing the basic shape with the click and drag method helps you create a perfect square, circle or triangle. The default shape item can be customized using its Item Properties panel. Other than the items common properties, this feature has the following functionalities (see Obr. 18.55): Obr. 18.55: Shape Item Properties Panel The Main properties group shows and allows you to switch the type of the shape item (Ellipse, Rectangle or Triangle) inside the given frame. You can set the style of the shape using the advanced symbol and color selector widget… For the rectangle shape, you can set in different units the value of the Corner radius to round of the corners. 18.2. Layout Items 621 QGIS Desktop 3.16 User Guide The Node-Based Shape Items While the Add Shape tool provides way to create simple and predefined geometric item, the Add Node Item tool helps you create a custom and more advanced geometric item. For polylines or polygons, you can draw as many lines or sides as you want and vertices of the items can be independently and directly manipulated using the Edit Nodes Item. The item itself can be manipulated as exposed in Interacting with layout items. To add a node-based shape: 1. Click the Add Node Item icon 2. Select either Add Polygon or Add Polyline tool 3. Perform consecutive left clicks to add nodes of your item. If you hold down the Shift key while drawing a segment, it is constrained to follow an orientation multiple of 45°. 4. When you’re done, right-click to terminate the shape. You can customize the appearance of the shape in the Item Properties panel. Obr. 18.56: Polygon Node Shape Item Properties Panel In the Main properties, you can set the style of the shape using the advanced symbol and color selector widget… For polyline node items, you can also parameterize the Line markers i.e. add: • start and/or end markers with options: – None: draws a simple polyline. – Arrow: adds a regular triangular arrow head that you can customize. – SVG marker: uses an SVG file as arrow head of the item. • customize the arrow head: – Arrow stroke color: sets the stroke color of the arrow head. – Arrow fill color: sets the fill color of the arrow head. – Arrow stroke width: sets the stroke width of the arrow head. – Arrow head width: sets the size of the arrow head. SVG images are automatically rotated with the line. Stroke and fill colors of QGIS predefined SVG images can be changed using the corresponding options. Custom SVG may require some tags following this instruction. 622 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.57: Polyline Node Shape Item Properties Panel The Arrow Item The Add Arrow tool is a shortcut to create an arrow-enabled polyline by default and thus has the same properties and behavior as a polyline node item. Actually, the arrow item can be used to add a simple arrow, for example, to show the relation between two different print layout items. However, to create a north arrow, the image item should be considered first as it gives access to a set of north arrows in .SVG format that you can sync with a map item so that it rotates automatically with it. Editing a node item geometry A specific tool is provided to edit node-based shapes through Edit Nodes Item . Within this mode, you can select a node by clicking on it (a marker is displayed on the selected node). A selected node can be moved either by dragging it or by using the arrow keys. Moreover, in this mode, you are able to add nodes to an existing shape: double-click on a segment and a node is added at the place you click. Finally, you can remove the currently selected node by hitting the Del key. 18.2. Layout Items 623 QGIS Desktop 3.16 User Guide 18.3 Creating an Output Obr. 18.58 shows an example print layout including all the types of layout items described in the previous section. Obr. 18.58: Print Layout with map view, legend, image, scale bar, coordinates, text and HTML frame added From the Layout menu or toolbar, you can output the print layout to different file formats, and it is possible to modify the resolution (print quality) and paper size: • The Print icon allows you to print the layout to a connected printer or a PostScript file, depending on the installed printer drivers. • The Export as image icon exports the print layout image formats such as PNG, BMP, TIF, JPG, and many others… • The Export as SVG icon saves the print layout as an SVG (Scalable Vector Graphic). • The Export as PDF icon saves the defined print layout directly as a PDF (Portable Document Format) file. 18.3.1 Export settings Whenever you export a print layout, there are a selection of export settings QGIS needs to check in order to produce the most appropriate output. These configurations are: • The Export settings of the Layout panel, such as Export resolution, Print as raster Always export as vectors or Save world file • Exclude page from exports in the page item properties panel • Exclude item from exports in the item properties panel 624 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide 18.3.2 Export as Image To export a layout as an image: 1. Click the Export as image icon 2. Select the image format, the folder and filename (e.g. myill.png) to use. If the layout contains more than one page, each page will be exported to a file with the given filename with the page number appended (e.g. myill_2.png). 3. In the next (Image Export Options) dialog: • You can override the print layout Export resolution and the exported page dimensions (as set in Layout panel). • Image rendering can also be improved with the Enable antialiasing option. • If you want to export your layout as a georeferenced image (e.g., to share with other projects), check the Generate world file option, and an ESRI World File with the same name as the exported image, but a different extension (.tfw for TIFF, .pnw for PNG, jgw for JPEG, …) will be created when exporting. This option can also be checked by default in the layout panel. Poznámka: For multi-page output, only the page that contains the reference map will get a world file (assuming that the Generate world file option is checked). • By checking Crop to content option, the image output by the layout will include the minimal area enclosing all the items (map, legend, scale bar, shapes, label, image…) of each page of the composition: – If the composition includes a single page, then the output is resized to include EVERYTHING on the composition. The page can then be reduced or extended to all items depending on their position (on, above, below, left or right of the page). – In case of a multi-page layout, each page will be resized to include items in its area (left and right sides for all pages, plus top for the first page and bottom for the last page). Each resized page is exported to a separate file. The Crop to content dialog also lets you add margins around the cropped bounds. Obr. 18.59: Image Export Options, output is resized to items extent 18.3. Creating an Output 625 QGIS Desktop 3.16 User Guide Tip: Use image formats that support transparency when items extend beyond the paper extent Layout items may be placed outside the paper extent. When exporting with the Crop to content option, the resulting image may therefore extend beyond the paper extent. Since the background outside of the paper extent will be transparent, for image formats that do not support transparency (e.g. BMP and JPG) the transparent background will be rendered as full black, „corrupting“ the image. Use transparency-compatible formats (e.g. TIFF and PNG) in such cases. Poznámka: When supported by the format (e.g. PNG) and the underlying Qt library, the exported image may include project metadata (author, title, date, description…) 18.3.3 Export as SVG To export a layout as SVG: 1. Click the Export as SVG icon 2. Fill in the path and filename (used as a base name for all the files in case of multi-page composition, as for image export) 3. In the next SVG Export Options dialog, you can override the layout default export settings or configure new ones: • Export map layers as SVG groups: exported items are grouped within layers whose name matches the layer names from QGIS, making it much easier to understand the contents of the document. • Always export as vectors: some rendering options require items to be rasterized for a better rendering. Check this option to keep the objects as vectors with the risk that the appearance of the output file may not match the print layout preview (for more details, see Export settings). • Export RDF metadata of the document such as the title, author, date, description… • Simplify geometries to reduce output file size: this avoids exporting ALL geometry vertices, which can result in a ridiculously complex and large export file size that could fail to load in other applications. Geometries will be simplified while exporting the layout in order to remove any redundant vertices which are not discernably different at the export resolution (e.g. if the export resolution is 300 dpi, vertices that are less than 1/600 inch apart will be removed). • Set the Text export: controls whether text labels are exported as proper text objects (Always export texts as text objects) or as paths only (Always export texts as paths). If they are exported as text objects, they can be edited in external applications (e.g. Inkscape) as normal text. BUT the side effect is that the rendering quality is reduced, AND there are issues with rendering when certain text settings like buffers are in place. That’s why exporting as paths is recommended. • Apply Crop to content option • Disable tiled raster layer exports: When exporting files, QGIS uses a built-in raster layer tiled rendering that saves memory. Sometimes, this can cause visible „seams“ in the rasters for generated files. Checking this option would fix that, at the cost of a higher memory usage during exports. 626 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.60: SVG Export Options Poznámka: Currently, the SVG output is very basic. This is not a QGIS problem, but a problem with the underlying Qt library. This will hopefully be sorted out in future versions. 18.3.4 Export as PDF To export a layout as PDF: 1. Click the Export as PDF icon 2. Fill in the path and filename: unlike for image and SVG export, all the pages in the layout are exported to a single PDF file. 3. In the next PDF Export Options dialog, you can override the layout default export settings or configure new ones: • Always export as vectors: some rendering options require items to be rasterized for a better rendering. Check this option to keep the objects as vectors with the risk that the appearance of the output file may not match the print layout preview (for more details, see Export settings). • Append georeference information: available only if the reference map, from which the information is taken, is on the first page. • Export RDF metadata of the document such as the title, author, date, description… • Set the Text export: controls whether text labels are exported as proper text objects (Always export texts as text objects) or as paths only (Always export texts as paths). If they are exported as text objects then they can be edited in external applications (e.g. Inkscape) as normal text. BUT the side effect is that the rendering quality is decreased, AND there are issues with rendering when certain text settings like buffers are in place. That’s why exporting as paths is recommended. • Control the PDF Image compression using: – Lossy (JPEG), which is the default compression mode – or Lossless, which creates bigger files in most cases, but is much more suitable for printing outputs or for post-production in external applications (requires Qt 5.13 or later). • Create Geospatial PDF (GeoPDF): Generate a georeferenced PDF file (requires GDAL version 3 or later). 18.3. Creating an Output 627 QGIS Desktop 3.16 User Guide • Disable tiled raster layer exports: When exporting files, QGIS uses tiled based rendering that saves memory. Sometimes, this can cause visible „seams“ in the rasters for generated files. Checking this option would fix that, at the cost of a higher memory usage during exports. • Simplify geometries to reduce output file size: Geometries will be simplified while exporting the layout by removing vertices that are not discernably different at the export resolution (e.g. if the export resolution is 300 dpi, vertices that are less than 1/600 inch apart will be removed). This can reduce the size and complexity of the export file (very large files can fail to load in other applications). Obr. 18.61: PDF Export Options Poznámka: Since QGIS 3.10, with GDAL 3, GeoPDF export is supported, and a number of GeoPDF specific options are available: • Format (GeoPDF format - there are some GeoPDF variations), • Include multiple map themes (specify map themes to include), • Include vector feature information (choose the layers and group them into logical PDF groups). Poznámka: Exporting a print layout to formats that supports georeferencing (e.g. PDF and TIFF) creates a georeferenced output by default. 18.3.5 Generate an Atlas Atlas functions allow you to create map books in an automated way. Atlas uses the features of a table or vector layer (Coverage layer) to create an output for each feature (atlas feature) in the table / layer. The most common usage is to zoom a map item to the current atlas feature. Further use cases include: • a map item showing, for another layer, only features that share the same attribute as the atlas feature or are within its geometry. • a label or HTML item whose text is replaced as features are iterated over • a table item showing attributes of associated parent or children features of the current atlas feature… 628 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide For each feature, the output is processed for all pages and items according to their exports settings. Tip: Use variables for more flexibility QGIS provides a large panel of functions and variables, including atlas related ones, that you can use to manipulate the layout items, but also the symbology of the layers, according to atlas status. Combining these features gives you a lot of flexibility and helps you easily produce advanced maps. To enable the generation of an atlas and access atlas parameters, refer to the Atlas panel. This panel contains the following (see Obr. 18.62): Obr. 18.62: Atlas Panel • Generate an atlas enables or disables atlas generation. • Configuration – A Coverage layer combo box that allows you to choose the table or vector layer containing the features to iterate over. – An optional Hidden coverage layer that, if checked, will hide the coverage layer (but not the other layers) during the generation. – An optional Page name combo box to specify the name for the feature page(s). You can select a field of the coverage layer or set an expression. If this option is empty, QGIS will use an internal ID, according to the filter and/or the sort order applied to the layer. – An optional Filter with text area that allows you to specify an expression for filtering features from the coverage layer. If the expression is not empty, only features that evaluate to True will be processed. – An optional Sort by that allows you to sort features of the coverage layer (and the output), using a field of the coverage layer or an expression. The sort order (either ascending or descending) is set by the two-state Sort direction button that displays an up or a down arrow. • Output - this is where the output of the atlas can be configured: – An Output filename expression textbox that is used to generate a filename for each atlas feature. It is based on expressions. is meaningful only for rendering to multiple files. – A Single file export when possible that allows you to force the generation of a single file if this is possible with the chosen output format (PDF, for instance). If this field is checked, the value of the Output filename expression field is meaningless. 18.3. Creating an Output 629 QGIS Desktop 3.16 User Guide – An Image export format drop-down list to select the output format when using the Export atlas as Images… button. Control map by atlas The most common usage of atlas is with the map item, zooming to the current atlas feature, as iteration goes over the coverage layer. This behavior is set in the Controlled by atlas group properties of the map item. See Controlled by atlas for different settings you can apply on the map item. Customize labels with expression In order to adapt labels to the feature the atlas iterates over, you can include expressions. Make sure that you place the expression part (including functions, fields or variables) between [% and %] (see The Label Item for more details). For example, for a city layer with fields CITY_NAME and ZIPCODE, you could insert this: The area of [% concat( upper(CITY_NAME), ',', ZIPCODE, ' is ', format_number($area/1000000, 2) ) %] km2 or, another combination: The area of [% upper(CITY_NAME)%],[%ZIPCODE%] is [%format_number($area/1000000,2) %] km2 The information [% concat( upper(CITY_NAME), ',', ZIPCODE, ' is ', format_number($area/1000000, 2) ) %] is an expression used inside the label. Both expressions would result in the following type of label in the generated atlas: The area of PARIS,75001 is 1.94 km2 Explore Data-defined override buttons with atlas There are several places where you can use a Data defined override button to override the selected setting. This is particularly useful with atlas generation. See Data defined override setup for more details on this widget. For the following examples the Regions layer of the QGIS sample dataset is used and selected as Coverage layer for the atlas generation. We assume that it is a single page layout containing a map item and a label item. When the height (north-south) of a region extent is greater than its width (east-west), you should use Portrait instead of Landscape orientation to optimize the use of paper. With a Data Defined Override button you can dynamically set the paper orientation. Right-click on the page and select Page Properties to open the panel. We want to set the orientation dynamically, using an expression depending on the region geometry, so press the button of field Orientation, select Edit… to open the Expression string builder dialog and enter the following expression: CASE WHEN bounds_width(@atlas_geometry) > bounds_height(@atlas_geometry) THEN 'Landscape' ELSE 'Portrait' END Now if you preview the atlas, the paper orients itself automatically, but item placements may not be ideal. For each Region you need to reposition the location of the layout items as well. For the map item you can use the button of its Width property to set it dynamic using the following expression: @layout_pagewidth - 20 Likewise, use the button of the Height property to provide the following expression to constrain map item size: 630 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide @layout_pageheight - 20 To ensure the map item is centered in the page, set its Reference point to the upper left radio button and enter 10 for its X and Y positions. Let’s add a title above the map in the center of the page. Select the label item and set the horizontal alignment to Center. Next move the label to the right position, choose the middle button for the Reference point, and provide the following expression for field X: @layout_pagewidth / 2 For all other layout items you can set the position in a similar way so they are correctly positioned both for portrait and landscape. You can also do more tweaks such as customizing the title with feature attributes (see Customize labels with expression example), changing images, resizing the number of legend columns number according to page orientation, … The information provided here is an update of the excellent blog (in English and Portuguese) on the Data Defined Override options Multiple_format_map_series_using_QGIS_2.6 . Another example for using data-defined override buttons is the usage of a dynamic picture. For the following examples we use a geopackage layer containing a BLOB field called logo with the field type binary (see Creating a new GeoPackage layer). For every feature there is defined a different picture so that the atlas can iterate over as described in Preview and generate an atlas. All you need to do is add a picture in the print layout and go to its Item properties in the atlas context. There you can find a data-defined override button in the Image source section of the Main Properties. In the following window choose Edit so that the Expression String Builder opens. From the Fields and values section you can find the BLOB field that was defined in the geopackage layer. Double-click the field name logo and click OK. 18.3. Creating an Output 631 QGIS Desktop 3.16 User Guide The atlas iterates over the entries in the BLOB field provided that you choose the geopackage layer as Coverage layer (further instructions you can find in Preview and generate an atlas). These are just two examples of how you can use some advanced settings with atlas. Preview and generate an atlas Obr. 18.63: Atlas Preview toolbar Once the atlas settings have been configured, and layout items (map, table, image…) linked to it, you can create a preview of all the pages by choosing Atlas ► Preview Atlas or clicking the Preview Atlas icon. You can then use the arrows to navigate through all the features: • First feature • Previous feature • Next feature • Last feature You can also use the combo box to select and preview a specific feature. The combo box shows atlas feature names according to the expression set in the atlas Page name option. As for simple compositions, an atlas can be generated in different ways (see Creating an Output for more information - just use tools from the Atlas menu or toolbar instead of the Layout menu. This means that you can directly print your compositions with Atlas ► Print Atlas. You can also create a PDF using Atlas ► Export Atlas as PDF…: You will be asked for a directory to save all the generated PDF files, except if the 632 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Single file export when possible has been selected. In that case, you’ll be prompted to give a filename. With Atlas ► Export Atlas as Images… or Atlas ► Export Atlas as SVG… tool, you’re also prompted to select a folder. Each page of each atlas feature composition is exported to the image file format set in Atlas panel or to SVG. Poznámka: With multi-page output, an atlas behaves like a layout in that only the page that contains the General settings will get a world file (for each feature output). Tip: Print a specific atlas feature If you want to print or export the composition of only one feature of the atlas, simply start the preview, select the desired feature in the drop-down list and click on Layout ► Print (or Export… to any supported file format). Use project defined relations for atlas creation For users with HTML and Javascript knowledge it is possible to operate on GeoJSON objects and use project defined relations from the QGIS project. The difference between this approach and using expressions directly inserted into the HTML is that it gives you a full, unstructured GeoJSON feature to work with. This means that you can use existing Javascript libraries and functions that operate on GeoJSON feature representations. The following code includes all related child features from the defined relation. Using the JavaScript setFeature function it allows you to make flexible HTML which represents relations in whatever format you like (lists, tables, etc). In the code sample, we create a dynamic bullet list of the related child features. // Declare the two HTML div elements we will use for the parent feature id // and information about the children

During atlas creation there will be an iteration over the coverage layer containing the parent features. On each page, you will see a bullet list of the related child features following the parent’s identifier. 18.3. Creating an Output 633 QGIS Desktop 3.16 User Guide 18.4 Creating a Report This section will help you set up a report in QGIS. 18.4.1 What is it? By definition, a GIS report is a document containing information organized in a narrative way, containing maps, text, graphics, tables, etc. A report can be prepared ad hoc, periodic, recurring, regular, or as required. Reports may refer to specific periods, events, occurrences, subjects or locations. In QGIS, a Report is an extension of a Layouts. Reports allow users to output their GIS projects in a simple, quick and structured way. A report can be created with Project ► New Report or inside the Project ► Layout Manager. Poznámka: The maps in QGIS reports behave in the same way as maps in print layouts and atlases. We will concentrate on the specifics of QGIS reports. For details on map handling, see the sections on print layouts and atlases. 18.4.2 Get started In the Layout Manager dialog a report can be created through New from template by selecting the dropdown option Empty Report and hitting the Create… button. For this example, we use some administrative boundaries, populated places, ports and airports from the Natural Earth dataset (1:10M). 634 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Using the Project ► New Report command, we create a blank report. Initially, there is not much to look at – the dialog which is displayed looks much like the print layout designer, except for the Report Organizer panel to the left: 18.4.3 Layout Report Workspace QGIS reports can consist of multiple, nested sections. In our new blank report we initially only have the main report section. The only options for this report section is Include report header and Include report footer. If we enable these options, a header will be included as the first page(s) (individual parts of reports can be multi-page if desired) in the report, and a footer will constitute the last page(s). Enable the header (Include report header), and hit the Edit button next to it: 18.4. Creating a Report 635 QGIS Desktop 3.16 User Guide A few things happen as a result. Firstly, an edit pencil is shown next to Report in the Report Organizer, indicating that the report section is currently being edited in the designer. We also see a new page with a small Report Header title. The page has landscape orientation by default, but this (and other properties of the page) can be changed by right-clicking on the page and choosing Page properties. This will bring up the Item properties tab for the page, and page Size, Width, Height, and more can be specified. In QGIS reports, every component of the report is made up of individual layouts. They can be created and modified using the same tools as for standard print layouts – so you can use any desired combination of labels, pictures, maps, tables, etc. Let us add some items to our report header to demonstrate: 636 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide We will also create a simple footer for the report by checking the Include report footer option and hitting Edit. Before proceeding further, let us export this report and see what we get. Exporting is done from the Report menu – in this case we select Export Report as PDF… to render the whole report to a PDF file. Here is the not-very-impressive result – a two page PDF consisting of our header and footer: 18.4. Creating a Report 637 QGIS Desktop 3.16 User Guide Let us make things more interesting. By hitting the Add Section button in the Report Organizer, we are given a choice of new sections to add to our report. 638 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide There are two options: Static Layout Section and Field Group Section. The Add Static Layout Section is a single, static body layout. This can be used to embed static layouts mid-way through a report. The Field Group Section repeats its body layout for every feature of a layer. The features are sorted by the selected grouping feature (with an option for ascending/descending sort). If a field group section has child sections (e.g. another field group section with a different field), then only features with unique values for the group feature are iterated over. This allows nested reports. For now we will add a Field Group Section to our report. At its most basic level, you can think of a Field Group Section as the equivalent of a print atlas: you select a layer to iterate over, and the report will insert a section for each feature found. Selecting the new Field Group Section reveals a number of new related settings: 18.4. Creating a Report 639 QGIS Desktop 3.16 User Guide In this case we’ve setup our Field Group so that we iterate over all the states from the Admin Level 1 layer, using 640 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide the values from the adm1name field. The same options to include header and footer are present, together with a new option to include a body for this section. We’ll do that, and edit the body: Our body now consists of a map and a label showing the name of the state. To include the name of the state, we selected Add Item ► Add Label and data defined the text under Main Properties with the help of Insert or Edit an Expression…. The result was the following expression (name is the name of the attribute in the Admin Level 1 layer that contains the name of the state): [% "name" %] The map is set to follow the current report feature (enabled by checking Controlled by Report – just like a map item in an atlas will follow the current atlas feature when Controlled by Atlas is checked): 18.4. Creating a Report 641 QGIS Desktop 3.16 User Guide If we went ahead and exported our report now, we’d get something like this: 642 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide Obr. 18.64: The report header, a page for each state, and the report footer. So more or less an atlas, but with a header and footer page. Let us make things more interesting by adding a subsection to our state group. We do this by first selecting the Admin Level 1 field group in the organizer, then hitting the Add Field button and adding a new Field Group Section: 18.4. Creating a Report 643 QGIS Desktop 3.16 User Guide When iterating over the features of a Field Group Section, the features will be filtered to match the defining field 644 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide of its parent group (adm1name in this case). Here, the subsection we added will iterate over a Populated Places layer, including a body section for each place encountered. The magic here is that the Populated Places layer has an attribute with the same name as the defining field in the parent layer, adm1name, tagging each place with the state it is contained within (if you’re lucky your data will already be structured like this – if not, run the Join Attributes by Location Processing algorithm and create your own field). When we export this report, QGIS will grab the first state from the Admin Level 1 layer, and then iterate over all the Populated Places with a matching adm1name value. Here’s what we get: Here we created a basic body for the Populated Places group, including a map of the place and a table of some place attributes. So our report is now a report header, a page for the first state, followed by a page for every populated place within that state, then the rest of the states with their populated places, and finally the report footer. If we were to add a header for the Populated Places group, it would be included just before listing the populated places for each state, as shown in the illustration below. Similarly, a footer for the Populated Places group would be inserted after the final place for each state is included. In addition to nested subsections, subsections in a report can also be included consecutively. If we add a second subsection to the Admin Level 1 group for Airports, then (if the Airports layer has an attribute adm1name that can link it to the parent group) our report will first list ALL the populated places for each state, followed by all the airports within that state, before proceeding to the next state. 18.4. Creating a Report 645 QGIS Desktop 3.16 User Guide The key point here is that our Airports group is a subsection of the Admin Level 1 group – not the Populated Places group. In this case our report would be structured like this (note that state flags have also been included - the procedure for adding feature specific pictures in this way is described below): 646 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide 18.4. Creating a Report 647 QGIS Desktop 3.16 User Guide Including pictures in a report Pictures can be quite useful in reports, and QGIS allows pictures in both the static and dynamic parts of a report. Pictures are added in the same way as for standard print layouts, and for the static report parts (and static pictures in dynamic parts) there is not more to it. But if you want illustrations that are tailored to the report features, your layer must have an attribute that can be used to define the picture to include. QGIS depends on absolute file names for images in reports. For dynamic pictures, you first add a picture to the body part of the group, as usual. In the Item properties of the picture, you set the Image Source using the Data defined override button, and either select an attribute that contains the absolute path of the images or Edit… (to enter an expression that generates the absolute image path). Below is an example expression that uses string concatenation to specify the absolute path to the pictures, using the directory where the project file is located @project_path) and an attribute (adm1name) from which the file name is generated (in this case by transforming the string in the adm1name attribute to uppercase, and appending ‚_flag.png‘): concat(@project_folder, '/naturalearth/pictures/' , upper("adm1name"), '_flag.png') This means that the pictures are located in the naturalearth/pictures subdirectory of the project file directory. Highlighting the current report feature in a map In the above report, the report features are emphasized in the maps using highlighting (state) and circles (populated places). To emphasize the report features in the maps (apart from placing them at the centre of the maps), you must data define the style using a comparison between its @id and the @atlas_featureid, as for atlases. For instance, if you would like to use a thicker line / border for the report feature than the other features you can data define the line width: if($id=@atlas_featureid, 2.0, 0.1) The report feature will get a 2 units wide polygon outline, while all other features will get a 0.1 units wide line. It is also possible to data define the colour (non-transparent dark magenta for the report feature and semi-transparent light gray for the other features): if($id=@atlas_featureid, '#FF880088', '#88CCCCCC') 648 Kapitola 18. Laying out the maps QGIS Desktop 3.16 User Guide More level 1 groups Combining nested and consecutive sections, together with section headers and footers allows for tons of flexibility. For instance, in the below report we add another field group as a child of the main report for the :guilabel`Ports` layer. Now, after listing the states together with their populated places and airports, we’ll get a summary list of all the ports in the region: This results in the last part of our report exporting as: 18.4. Creating a Report 649 QGIS Desktop 3.16 User Guide 18.4.4 Export settings When you export a report (Report ► Export Report as Images… / SVG… / PDF…), you will be asked for a file name, and then you get the opportunity to tune the export settings to get the most appropriate output. As you see, reports in QGIS are extremely powerful and flexible! Poznámka: The current information was adapted from a North Road blog, Exploring Reports in QGIS 3.0 - the Ultimate Guide! 650 Kapitola 18. Laying out the maps KAPITOLA 19 Working with OGC / ISO protocols The Open Geospatial Consortium (OGC) is an international organization with membership of more than 300 commercial, governmental, nonprofit and research organizations worldwide. Its members develop and implement standards for geospatial content and services, GIS data processing and exchange. Describing a basic data model for geographic features, an increasing number of specifications are developed by OGC to serve specific needs for interoperable location and geospatial technology, including GIS. Further information can be found at https://www.opengeospatial.org/. Important OGC specifications supported by QGIS are: • WMS — Web Map Service (WMS/WMTS Client) • WMTS — Web Map Tile Service (WMS/WMTS Client) • WFS — Web Feature Service (WFS and WFS-T Client) • WFS-T — Web Feature Service - Transactional (WFS and WFS-T Client) • WCS — Web Coverage Service (WCS Client) • WPS — Web Processing Service • CSW — Catalog Service for the Web • SFS — Simple Features for SQL (PostGIS Layers) • GML — Geography Markup Language OGC services are increasingly being used to exchange geospatial data between different GIS implementations and data stores. QGIS can deal with the above specifications as a client, being SFS (through support of the PostgreSQL / PostGIS data provider, see section PostGIS Layers). You can also share your maps and data through the WMS, WMTS, WFS, WFS-T and WCS protocols using a webserver with QGIS Server, UMN MapServer or GeoServer installed. 651 QGIS Desktop 3.16 User Guide 19.1 WMS/WMTS Client 19.1.1 Overview of WMS Support QGIS currently can act as a WMS client that understands WMS 1.1, 1.1.1 and 1.3 servers. In particular, it has been tested against publicly accessible servers such as DEMIS. A WMS server acts upon requests by the client (e.g., QGIS) for a raster map with a given extent, set of layers, symbolization style, and transparency. The WMS server then consults its local data sources, rasterizes the map, and sends it back to the client in a raster format. For QGIS, this format would typically be JPEG or PNG. WMS is generically a REST (Representational State Transfer) service rather than a full-blown Web service. As such, you can actually take the URLs generated by QGIS and use them in a web browser to retrieve the same images that QGIS uses internally. This can be useful for troubleshooting, as there are several brands of WMS server on the market and they all have their own interpretation of the WMS standard. WMS layers can be added quite simply, as long as you know the URL to access the WMS server, you have a serviceable connection to that server, and the server understands HTTP as the data transport mechanism. Additionally, QGIS will cache your WMS responses (i.e. images) for 24h as long as the GetCapabilities request is not triggered. The GetCapabilities request is triggered everytime the Connect button in the Add Layer(s) from WMS(T) Server dialog is used to retrieve the WMS server capabilities. This is an automatic feature meant to optimize project loading time. If a project is saved with a WMS layer, the corresponding WMS tiles will be loaded from the cache the next time the project is opened as long as they are no older than 24H. 19.1.2 Overview of WMTS Support QGIS can also act as a WMTS client. WMTS is an OGC standard for distributing tile sets of geospatial data. This is a faster and more efficient way of distributing data than WMS because with WMTS, the tile sets are pre-generated, and the client only requests the transmission of the tiles, not their production. A WMS request typically involves both the generation and transmission of the data. A well-known example of a non-OGC standard for viewing tiled geospatial data is Google Maps. In order to display the data at a variety of scales close to what the user might want, the WMTS tile sets are produced at several different scale levels and are made available for the GIS client to request them. This diagram illustrates the concept of tile sets: Obr. 19.1: Concept of WMTS tile sets The two types of WMTS interfaces that QGIS supports are via Key-Value-Pairs (KVP) and RESTful. These two interfaces are different, and you need to specify them to QGIS differently. 1. In order to access a WMTS KVP service, a QGIS user must open the WMS/WMTS interface and add the following string to the URL of the WMTS tile service: 652 Kapitola 19. Working with OGC / ISO protocols QGIS Desktop 3.16 User Guide "?SERVICE=WMTS&REQUEST=GetCapabilities" An example of this type of address is https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?\ service=WMTS&request=GetCapabilities For testing the topo2 layer in this WMTS works nicely. Adding this string indicates that a WMTS web service is to be used instead of a WMS service. 2. The RESTful WMTS service takes a different form, a straightforward URL. The format recommended by the OGC is: {WMTSBaseURL}/1.0.0/WMTSCapabilities.xml This format helps you to recognize that it is a RESTful address. A RESTful WMTS is accessed in QGIS by simply adding its address in the WMS setup in the URL field of the form. An example of this type of address for the case of an Austrian basemap is https://maps.wien.gv.at/basemap/1.0.0/WMTSCapabilities.xml. Poznámka: You can still find some old services called WMS-C. These services are quite similar to WMTS (i.e., same purpose but working a little bit differently). You can manage them the same as you do WMTS services. Just add ?tiled=true at the end of the url. See https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification for more information about this specification. When you read WMTS, you can often think WMS-C also. 19.1.3 Selecting WMS/WMTS Servers The first time you use the WMS feature in QGIS, there are no servers defined. You then need to create connections to the server you are targeting: 1. Go to the WMS/WMTS tab of the Data Source Manager dialog, either by: • clicking the Open Data Source Manager button (or pressing Ctrl+L) and enabling the tab • clicking the Add WMS layer button on the Manage Layers toolbar • or selecting Layer ► Add Layer ► Add WMS/WMTS Layer… menu 2. Press New from the Layers tab. The Create a New WMS/WMTS Connection… dialog appears. Tip: Right-click the WMS/WMTS entry from within the Browser panel and select New Connection… also opens the Create a New WMS/WMTS Connection… dialog. 3. Then enter the parameters to connect to your desired WMS server, as listed below: 19.1. WMS/WMTS Client 653 QGIS Desktop 3.16 User Guide Obr. 19.2: Creating a connection to a WMS server • Name: A name for the connection. This name will be used in the Server Connections drop-down box so that you can distinguish it from other WMS servers. • URL: URL of the server providing the data. This must be a resolvable host name – the same format as you would use to open a telnet connection or ping a host, i.e. the base URL only. For example, you shouldn’t have fragments such as request=GetCapabilities or version=1.0.0 in your URL. • Authentication (optional): using a stored configuration or a basic authentication with Username and Password. Varování: Entering username and password in the Authentication tab will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you shared the project file with someone. Therefore, it’s advisable to save your credentials in a Authentication configuration instead (configurations tab). See Ověřovací systém for more details. • HTTP Referer • DPI-Mode: Available options are all, off, QGIS, UMN and GeoServer • Ignore GetMap/GetTile URI reported in capabilities: if checked, use given URI from the URL field above. 654 Kapitola 19. Working with OGC / ISO protocols QGIS Desktop 3.16 User Guide • Ignore GetFeatureInfo URI reported in capabilities: if checked, use given URI from the URL field above. • Ignore axis orientation (WMS 1.3/WMTS) • Ignore reported layer extents: because the extent reported by raster layers may be smaller than the actual area which can be rendered (notably for WMS servers with symbology which takes more space than the data extent), check this option to avoid cropping raster layers to their reported extents, resulting in truncated symbols on the borders of these layers. • Invert axis orientation • Smooth pixmap transformation 4. Press OK Once the new WMS server connection has been created, it will be preserved for future QGIS sessions. If you need to set up a proxy server to be able to receive WMS services from the internet, you can add your proxy server in the options. Choose Settings ► Options and click on the Network tab. There, you can add your proxy settings and enable them by setting Use proxy for web access. Make sure that you select the correct proxy type from the Proxy type drop-down menu. 19.1.4 Loading WMS/WMTS Layers Once you have successfully filled in your parameters, you can use the Connect button to retrieve the capabilities of the selected server. This includes the image encoding, layers, layer styles and projections. Since this is a network operation, the speed of the response depends on the quality of your network connection to the WMS server. While downloading data from the WMS server, the download progress is visualized in the lower left corner of the main QGIS dialog. Your screen should now look a bit like Obr. 19.3, which shows the response provided by a WMS server. Obr. 19.3: Dialog for adding a WMS server, with filter on available layers The upper part of the Layers tab of the dialog shows a tree structure that can include layer groups embedding layers with their associated image style(s) served by the server. Each item can be identified by: 19.1. WMS/WMTS Client 655 QGIS Desktop 3.16 User Guide • an ID • a Name • a Title • and an Abstract. The list can be filtered using the widget in the top right corner. Image Encoding The Image encoding section lists the formats that are supported by both the client and server. Choose one depending on your image accuracy requirements. Tip: Image Encoding You will typically find that a WMS server offers you the choice of JPEG or PNG image encoding. JPEG is a lossy compression format, whereas PNG faithfully reproduces the raw raster data. Use JPEG if you expect the WMS data to be photographic in nature and/or you don’t mind some loss in picture quality. This trade-off typically reduces by five times the data transfer requirement compared with PNG. Use PNG if you want precise representations of the original data and you don’t mind the increased data transfer requirements. Options The Options area of the dialog provides means to configure the WMS requests. You can define: • Tile size if you want to set tile sizes (e.g., 256x256) to split up the WMS request into multiple requests. • The Request step size • The Feature limit for GetFeatureInfo defines the maximum number of GetFeatureInfo results from the server. • If you select a WMS from the list, a field with the default projection provided by the web server appears. Press the Change… button to replace the default projection of the WMS with another CRS supported by the WMS server. • Finally you can activate Use contextual WMS Legend if the WMS Server supports this feature. Then only the relevant legend for your current map view extent will be shown and thus will not include legend items for items you can’t see in the current map. At the bottom of the dialog, a Layer name text field displays the selected item’s Title. You can change the name at your will. This name will appear in the Layers panel after you pressed the Add button and loaded the layer(s) in QGIS. You can select several layers at once, but only one image style per layer. When several layers are selected, they will be combined at the WMS server and transmitted to QGIS in one go, as a single layer. The default name is a slash (/) separated list of their original title. Layer Order The Layer Order tab lists the selected layers available from the current connected WMS server. WMS layers rendered by a server are overlaid in the order listed in the Layers tab, from top to bottom of the list. If you want to change the overlay order, you can use the Up and Down buttons of the Layer Order tab. Transparency The Global transparency setting from the Layer Properties is hard coded to be always on, where available. Tip: WMS Layer Transparency The availability of WMS image transparency depends on the image encoding used: PNG and GIF support transparency, whilst JPEG leaves it unsupported. 656 Kapitola 19. Working with OGC / ISO protocols QGIS Desktop 3.16 User Guide Coordinate Reference System A coordinate reference system (CRS) is the OGC terminology for a QGIS projection. Each WMS layer can be presented in multiple CRSs, depending on the capability of the WMS server. To choose a CRS, select Change… and a dialog similar to the one shown in Obr. 10.3 will appear. The main difference with the WMS version of the dialog is that only those CRSs supported by the WMS server will be shown. 19.1.5 Sady dlaždic When using WMTS (Cached WMS) services like https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?\ service=WMTS&request=GetCapabilities you are able to browse through the Tilesets tab given by the server. Additional information like tile size, formats and supported CRS are listed in this table. In combination with this feature, you can use the tile scale slider by selecting View ► Panels ( or Settings ► Panels), then choosing Tile Scale Panel. This gives you the available scales from the tile server with a nice slider docked in. 19.1.6 Using the Identify Tool Once you have added a WMS server, and if any layer from a WMS server is queryable, you can then use the Identify tool to select a pixel on the map canvas. A query is made to the WMS server for each selection made. The results of the query are returned in plain text. The formatting of this text is dependent on the particular WMS server used. Format selection If multiple output formats are supported by the server, a combo box with supported formats is automatically added to the identify results dialog and the selected format may be stored in the project for the layer. GML format support The Identify tool supports WMS server response (GetFeatureInfo) in GML format (it is called Feature in the QGIS GUI in this context). If „Feature“ format is supported by the server and selected, results of the Identify tool are vector features, as from a regular vector layer. When a single feature is selected in the tree, it is highlighted in the map and it can be copied to the clipboard and pasted to another vector layer. See the example setup of the UMN Mapserver below to support GetFeatureInfo in GML format. # in layer METADATA add which fields should be included and define geometry␣ →(example): "gml_include_items" "all" "ows_geometries" "mygeom" "ows_mygeom_type" "polygon" # Then there are two possibilities/formats available, see a) and b): # a) basic (output is generated by Mapserver and does not contain XSD) # in WEB METADATA define formats (example): "wms_getfeatureinfo_formatlist" "application/vnd.ogc.gml,text/html" # b) using OGR (output is generated by OGR, it is send as multipart and contains␣ →XSD) # in MAP define OUTPUTFORMAT (example): OUTPUTFORMAT NAME "OGRGML" (continues on next page) 19.1. WMS/WMTS Client 657 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) MIMETYPE "ogr/gml" DRIVER "OGR/GML" FORMATOPTION "FORM=multipart" END # in WEB METADATA define formats (example): "wms_getfeatureinfo_formatlist" "OGRGML,text/html" Viewing Properties Once you have added a WMS server, you can view its properties by right-clicking on it in the legend and selecting Properties. Metadata Tab The tab Metadata displays a wealth of information about the WMS server, generally collected from the capabilities statement returned from that server. Many definitions can be gleaned by reading the WMS standards (see OPEN-GEOSPATIAL-CONSORTIUM in Literature and Web References), but here are a few handy definitions: • Server Properties – WMS Version — The WMS version supported by the server. – Image Formats — The list of MIME-types the server can respond with when drawing the map. QGIS supports whatever formats the underlying Qt libraries were built with, which is typically at least image/ png and image/jpeg. – Identity Formats — The list of MIME-types the server can respond with when you use the Identify tool. Currently, QGIS supports the text-plain type. • Layer Properties – Selected — Whether or not this layer was selected when its server was added to this project. – Visible — Whether or not this layer is selected as visible in the legend (not yet used in this version of QGIS). – Can Identify — Whether or not this layer will return any results when the Identify tool is used on it. – Can be Transparent — Whether or not this layer can be rendered with transparency. This version of QGIS will always use transparency if this is Yes and the image encoding supports transparency. – Can Zoom In — Whether or not this layer can be zoomed in by the server. This version of QGIS assumes all WMS layers have this set to Yes. Deficient layers may be rendered strangely. – Cascade Count — WMS servers can act as a proxy to other WMS servers to get the raster data for a layer. This entry shows how many times the request for this layer is forwarded to peer WMS servers for a result. – Fixed Width, Fixed Height — Whether or not this layer has fixed source pixel dimensions. This version of QGIS assumes all WMS layers have this set to nothing. Deficient layers may be rendered strangely. – WGS 84 Bounding Box — The bounding box of the layer, in WGS 84 coordinates. Some WMS servers do not set this correctly (e.g., UTM coordinates are used instead). If this is the case, then the initial view of this layer may be rendered with a very ‚zoomed-out‘ appearance by QGIS. The WMS webmaster should be informed of this error, which they may know as the WMS XML elements LatLonBoundingBox, EX_GeographicBoundingBox or the CRS:84 BoundingBox. – Available in CRS — The projections that this layer can be rendered in by the WMS server. These are listed in the WMS-native format. – Available in style — The image styles that this layer can be rendered in by the WMS server. 658 Kapitola 19. Working with OGC / ISO protocols QGIS Desktop 3.16 User Guide 19.1.7 Show WMS legend graphic in table of contents and layout The QGIS WMS data provider is able to display a legend graphic in the table of contents‘ layer list and in the print layout. The WMS legend will be shown only if the WMS server has GetLegendGraphic capability and the layer has getCapability url specified, so you additionally have to select a styling for the layer. If a legendGraphic is available, it is shown below the layer. It is little and you have to click on it to open it in real dimension (due to QgsLegendInterface architectural limitation). Clicking on the layer’s legend will open a frame with the legend at full resolution. In the print layout, the legend will be integrated at it’s original (downloaded) dimension. Resolution of the legend graphic can be set in the item properties under Legend ► WMS LegendGraphic to match your printing requirements. The legend will display contextual information based on your current scale. The WMS legend will be shown only if the WMS server has GetLegendGraphic capability and the layer has getCapability url specified, so you have to select a styling. 19.1.8 WMS Client Limitations Not all possible WMS client functionality had been included in this version of QGIS. Some of the more noteworthy exceptions follow. Editing WMS Layer Settings Once you’ve completed the Add WMS layer procedure, there is no way to change the settings. A work-around is to delete the layer completely and start again. WMS Servers Requiring Authentication Currently, publicly accessible and secured WMS services are supported. The secured WMS servers can be accessed by public authentication. You can add the (optional) credentials when you add a WMS server. See section Selecting WMS/WMTS Servers for details. Tip: Accessing secured OGC-layers If you need to access secured layers with secured methods other than basic authentication, you can use InteProxy as a transparent proxy, which does support several authentication methods. More information can be found in the InteProxy manual at https://inteproxy.wald.intevation.org. Tip: QGIS WMS Mapserver Since Version 1.7.0, QGIS has its own implementation of a WMS 1.3.0 Mapserver. Read more about this in QGIS- -Server-manual. 19.2 WCS Client A Web Coverage Service (WCS) provides access to raster data in forms that are useful for client-side rendering, as input into scientific models, and for other clients. The WCS may be compared to the WFS and the WMS. As WMS and WFS service instances, a WCS allows clients to choose portions of a server’s information holdings based on spatial constraints and other query criteria. QGIS has a native WCS provider and supports both version 1.0 and 1.1 (which are significantly different), but currently it prefers 1.0, because 1.1 has many issues (i.e., each server implements it in a different way with various particularities). 19.2. WCS Client 659 QGIS Desktop 3.16 User Guide The native WCS provider handles all network requests and uses all standard QGIS network settings (especially proxy). It is also possible to select cache mode (‚always cache‘, ‚prefer cache‘, ‚prefer network‘, ‚always network‘), and the provider also supports selection of time position, if temporal domain is offered by the server. Varování: Entering username and password in the Authentication tab will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you shared the project file with someone. Therefore, it’s advisable to save your credentials in a Authentication configuration instead (configurations tab). See Ověřovací systém for more details. 19.3 WFS and WFS-T Client In QGIS, a WFS layer behaves pretty much like any other vector layer. You can identify and select features, and view the attribute table. QGIS supports WFS 1.0.0, 1.1.0, 2.0 and WFS3 (OGC API - Features), including editing (through WFS-T). In general, adding a WFS layer is very similar to the procedure used with WMS. There are no default servers defined, so you have to add your own. You can find WFS servers by using the MetaSearch plugin or your favourite web search engine. There are a number of lists with public URLs, some of them maintained and some not. Loading a WFS Layer As an example, we use the Gateway Geomatics WFS server and display a layer. https://demo.gatewaygeomatics.com/ cgi-bin/wfs_gateway?REQUEST=GetCapabilities&VERSION=1.0.0&SERVICE=WFS To be able to load a WFS Layer, first create a connection to the WFS server: 1. Open the Data Source Manager dialog by pressing the Open Data Source Manager button 2. Enable the WFS/OGC API-Features tab 3. Click on New… to open the Create a New WFS Connection dialog 4. Enter Gateway Geomatics as name 5. Enter the URL (see above) 660 Kapitola 19. Working with OGC / ISO protocols QGIS Desktop 3.16 User Guide Obr. 19.4: Creating a connection to a WFS server Poznámka: In case of an OGC API - Features (WFS3), the URL to provide should be the landing page, ie the main page from which it is possible to navigate to all the available service endpoints. 6. In the WFS settings dialog, you can: • Indicate the WFS version of the server. If unknown, press the Detect button to automatically retrieve it. • Define the maximum number of features retrieved in a single GetFetFeature request. If empty, no limit is set. • Invert axis orientation. • And depending on the WFS version: – Force to Ignore axis orientation (WFS 1.1/WFS 2.0) – Enable feature paging and specify the maximum number of features to retrieve with Page size. If no limit is defined, then the server default is applied. Varování: Entering username and password in the Authentication tab will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you shared the project file with someone. Therefore, it’s advisable to save your credentials in an Authentication configuration instead (Configurations tab). See Ověřovací systém for more details. 7. Press OK to create the connection. Note that any proxy settings you may have set in your preferences are also recognized. 19.3. WFS and WFS-T Client 661 QGIS Desktop 3.16 User Guide Now we are ready to load WFS layers from the above connection. 1. Choose ‚Gateway Geomatics‘ from the Server Connections drop-down list. 2. Click Connect 3. Select the Parks layer in the list 4. You can also choose whether to: • Use title for layer name, showing the layer’s title as defined on the server in the Layers panel instead of its Name • Only request features overlapping the view extent • Change the layer’s CRS • or Build query to specify particular features to retrieve, by either using the corresponding button or double-clicking the target layer. 5. Click Add to add the layer to the map. Obr. 19.5: Adding a WFS layer You’ll notice the download progress is visualized in the lower left of the QGIS main window. Once the layer is loaded, you can identify and select a couple of features and view the attribute table. Poznámka: QGIS supports different versions of the WFS protocol, with background download and progressive rendering, on-disk caching of downloaded features and version autodetection. 662 Kapitola 19. Working with OGC / ISO protocols KAPITOLA 20 Working with GPS Data 20.1 GPS Plugin 20.1.1 What is GPS? GPS, the Global Positioning System, is a satellite-based system that allows anyone with a GPS receiver to find their exact position anywhere in the world. GPS is used as an aid in navigation, for example in airplanes, in boats and by hikers. The GPS receiver uses the signals from the satellites to calculate its latitude, longitude and (sometimes) elevation. Most receivers also have the capability to store locations (known as waypoints), sequences of locations that make up a planned route and a tracklog or track of the receiver’s movement over time. Waypoints, routes and tracks are the three basic feature types in GPS data. QGIS displays waypoints in point layers, while routes and tracks are displayed in linestring layers. Poznámka: QGIS supports also GNSS receivers. But we keep using the term GPS in this documentation. 20.1.2 Loading GPS data from a file There are dozens of different file formats for storing GPS data. The format that QGIS uses is called GPX (GPS eXchange format), which is a standard interchange format that can contain any number of waypoints, routes and tracks in the same file. To load a GPX file, you first need to load the plugin. Plugins ► Plugin Manager… opens the Plugin Manager Dialog. Activate the GPS Tools checkbox. When this plugin is loaded, a button with a small handheld GPS device will show up in the toolbar and in Layer ► Create Layer ► : • GPS Tools • Create new GPX Layer For working with GPS data, we provide an example GPX file available in the QGIS sample dataset: qgis_sample_data/gps/national_monuments.gpx. See section Downloading sample data for more information about the sample data. 663 QGIS Desktop 3.16 User Guide 1. Select Vector ► GPS Tools or click the GPS Tools icon in the toolbar and open the Load GPX file tab (see Obr. 20.1). 2. Browse to the folder qgis_sample_data/gps/, select the GPX file national_monuments.gpx and click Open. Obr. 20.1: The GPS Tools dialog window Use the Browse… button to select the GPX file, then use the checkboxes to select the feature types you want to load from that GPX file. Each feature type will be loaded in a separate layer when you click OK. The file national_monuments.gpx only includes waypoints. Poznámka: GPS units allow you to store data in different coordinate systems. When downloading a GPX file (from your GPS unit or a web site) and then loading it in QGIS, be sure that the data stored in the GPX file uses WGS 84 (latitude/longitude). QGIS expects this, and it is the official GPX specification. See https://www.topografix.com/ GPX/1/1/. 20.1.3 GPSBabel Since QGIS uses GPX files, you need a way to convert other GPS file formats to GPX. This can be done for many formats using the free program GPSBabel, which is available at https://www.gpsbabel.org. This program can also transfer GPS data between your computer and a GPS device. QGIS uses GPSBabel to do these things, so it is recommended that you install it. However, if you just want to load GPS data from GPX files you will not need it. Version 1.2.3 of GPSBabel is known to work with QGIS, but you should be able to use later versions without any problems. 20.1.4 Importing GPS data To import GPS data from a file that is not a GPX file, you use the tool Import other file in the GPS Tools dialog. Here, you select the file that you want to import (and the file type), which feature type you want to import from it, where you want to store the converted GPX file and what the name of the new layer should be. Note that not all GPS data formats will support all three feature types, so for many formats you will only be able to choose between one or two types. 664 Kapitola 20. Working with GPS Data QGIS Desktop 3.16 User Guide 20.1.5 Downloading GPS data from a device QGIS can use GPSBabel to download data from a GPS device directly as new vector layers. For this we use the Download from GPS tab of the GPS Tools dialog (see Obr. 20.2). Here, we select the type of GPS device, the port that it is connected to (or USB if your GPS supports this), the feature type that you want to download, the GPX file where the data should be stored, and the name of the new layer. Obr. 20.2: The download tool The device type you select in the GPS device menu determines how GPSBabel tries to communicate with your GPS device. If none of the available types work with your GPS device, you can create a new type (see section Defining new device types). The port may be a file name or some other name that your operating system uses as a reference to the physical port in your computer that the GPS device is connected to. It may also be simply USB, for USB-enabled GPS units. • On Linux, this is something like /dev/ttyS0 or /dev/ttyS1. • On Windows, it is COM1 or COM2. When you click OK, the data will be downloaded from the device and appear as a layer in QGIS. 20.1.6 Uploading GPS data to a device You can also upload data directly from a vector layer in QGIS to a GPS device using the Upload to GPS tab of the GPS Tools dialog. To do this, you simply select the layer that you want to upload (which must be a GPX layer), your GPS device type, and the port (or USB) that it is connected to. Just as with the download tool, you can specify new device types if your device isn’t in the list. This tool is very useful in combination with the vector-editing capabilities of QGIS. It allows you to load a map, create waypoints and routes, and then upload them and use them on your GPS device. 20.1.7 Defining new device types There are lots of different types of GPS devices. The QGIS developers can’t test all of them, so if you have one that does not work with any of the device types listed in the Download from GPS and Upload to GPS tools, you can define your own device type for it. You do this by using the GPS device editor, which you start by clicking the Edit Devices button in the download or the upload tab. To define a new device, you simply click the New Device button, enter a name, enter download and upload commands for your device, and click the Update Device button. The name will be listed in the device menus in the upload and download windows – it can be any string. The download command is the command that is used to download data from the device to a GPX file. This will probably be a GPSBabel command, but you can use any other command 20.1. GPS Plugin 665 QGIS Desktop 3.16 User Guide line program that can create a GPX file. QGIS will replace the keywords %type, %in, and %out when it runs the command. %type will be replaced by -w if you are downloading waypoints, -r if you are downloading routes and -t if you are downloading tracks. These are command-line options that tell GPSBabel which feature type to download. %in will be replaced by the port name that you choose in the download window and %out will be replaced by the name you choose for the GPX file that the downloaded data should be stored in. So, if you create a device type with the download command gpsbabel %type -i garmin -o gpx %in %out (this is actually the download command for the predefined device type ‚Garmin serial‘) and then use it to download waypoints from port /dev/ttyS0 to the file output.gpx, QGIS will replace the keywords and run the command gpsbabel -w -i garmin -o gpx /dev/ttyS0 output.gpx. The upload command is the command that is used to upload data to the device. The same keywords are used, but %in is now replaced by the name of the GPX file for the layer that is being uploaded, and %out is replaced by the port name. You can learn more about GPSBabel and its available command line options at https://www.gpsbabel.org. Once you have created a new device type, it will appear in the device lists for the download and upload tools. 20.1.8 Download of points/tracks from GPS units As described in previous sections QGIS uses GPSBabel to download points/tracks directly in the project. QGIS comes out of the box with a pre-defined profile to download from Garmin devices. Unfortunately there is a bug #6318 that does not allow create other profiles, so downloading directly in QGIS using the GPS Tools is at the moment limited to Garmin USB units. Garmin GPSMAP 60cs MS Windows Install the Garmin USB drivers from https://www8.garmin.com/support/download_details.jsp?id=591 Connect the unit. Open GPS Tools and use type=garmin serial and port=usb: Fill the fields Layer name and Output file. Sometimes it seems to have problems saving in a certain folder, using something like c:\temp usually works. Ubuntu/Mint GNU/Linux It is first needed an issue about the permissions of the device, as described at https://wiki.openstreetmap.org/ wiki/USB_Garmin_on_GNU/Linux. You can try to create a file /etc/udev/rules.d/51-garmin.rules containing this rule ATTRS{idVendor}=="091e", ATTRS{idProduct}=="0003", MODE="666" After that is necessary to be sure that the garmin_gps kernel module is not loaded rmmod garmin_gps and then you can use the GPS Tools. Unfortunately there seems to be a bug #7182 and usually QGIS freezes several times before the operation work fine. 666 Kapitola 20. Working with GPS Data QGIS Desktop 3.16 User Guide BTGP-38KM datalogger (only Bluetooth) MS Windows The already referred bug does not allow to download the data from within QGIS, so it is needed to use GPSBabel from the command line or using its interface. The working command is gpsbabel -t -i skytraq,baud=9600,initbaud=9600 -f COM9 -o gpx -F C:/GPX/aaa.gpx Ubuntu/Mint GNU/Linux Use same command (or settings if you use GPSBabel GUI) as in Windows. On Linux it maybe somehow common to get a message like skytraq: Too many read errors on serial port it is just a matter to turn off and on the datalogger and try again. BlueMax GPS-4044 datalogger (both BT and USB) MS Windows Poznámka: It needs to install its drivers before using it on Windows 7. See in the manufacturer site for the proper download. Downloading with GPSBabel, both with USB and BT returns always an error like gpsbabel -t -i mtk -f COM12 -o gpx -F C:/temp/test.gpx mtk_logger: Can't create temporary file data.bin Error running gpsbabel: Process exited unsuccessfully with code 1 Ubuntu/Mint GNU/Linux With USB After having connected the cable use the dmesg command to understand what port is being used, for example /dev/ttyACM3. Then as usual use GPSBabel from the CLI or GUI gpsbabel -t -i mtk -f /dev/ttyACM3 -o gpx -F /home/user/bluemax.gpx With Bluetooth Use Blueman Device Manager to pair the device and make it available through a system port, then run GPSBabel gpsbabel -t -i mtk -f /dev/rfcomm0 -o gpx -F /home/user/bluemax_bt.gpx 20.2 Live GPS tracking To activate live GPS tracking in QGIS, you need to select View ► Panels GPS Information Panel or press Ctrl+0. You will get a new docked window on the left side of the canvas. There are four possible screens in this GPS tracking window: • GPS position coordinates and an interface for manually entering vertices and features • GPS signal strength of satellite connections • GPS options screen (see Obr. 20.5) 20.2. Live GPS tracking 667 QGIS Desktop 3.16 User Guide With a plugged-in GPS receiver (has to be supported by your operating system), a simple click on Connect connects the GPS to QGIS. A second click (now on Disconnect) disconnects the GPS receiver from your computer. For GNU/Linux, gpsd support is integrated to support connection to most GPS receivers. Therefore, you first have to configure gpsd properly to connect QGIS to it. Varování: If you want to record your position to the canvas, you have to create a new vector layer first and switch it to editable status to be able to record your track. 20.2.1 Position and additional attributes If the GPS is receiving signals from satellites, you will see your position in latitude, longitude and altitude together with additional attributes. Obr. 20.3: GPS tracking position and additional attributes 668 Kapitola 20. Working with GPS Data QGIS Desktop 3.16 User Guide 20.2.2 GPS signal strength Here, you can see the signal strength of the satellites you are receiving signals from. Obr. 20.4: GPS tracking signal strength 20.2.3 GPS options In case of connection problems, you can switch between: • Autodetect • Internal • Serial device • gpsd (selecting the Host, Port and Device your GPS is connected to) A click on Connect again initiates the connection to the GPS receiver. 20.2. Live GPS tracking 669 QGIS Desktop 3.16 User Guide Obr. 20.5: GPS tracking options window You can activate Automatically save added features when you are in editing mode. Or you can activate Automatically add points to the map canvas with a certain width and color. Activating Cursor, you can use a slider to shrink and grow the position cursor on the canvas. You can also set an Acquisition interval (seconds) and a Distance threshold (meters) parameters to keep the cursor still active when the receiver is in static conditions. Activating Map centering allows you to decide in which way the canvas will be updated. This includes ‚always‘, ‚when leaving‘, if your recorded coordinates start to move out of the canvas, or ‚never‘, to keep map extent. Finally, you can activate Log file and define a path and a file where log messages about the GPS tracking are logged. If you want to set a feature manually, you have to go back to Position and click on Add Point or Add Track Point. 670 Kapitola 20. Working with GPS Data QGIS Desktop 3.16 User Guide 20.2.4 Connect to a Bluetooth GPS for live tracking With QGIS you can connect a Bluetooth GPS for field data collection. To perform this task you need a GPS Bluetooth device and a Bluetooth receiver on your computer. At first you must let your GPS device be recognized and paired to the computer. Turn on the GPS, go to the Bluetooth icon on your notification area and search for a New Device. On the right side of the Device selection mask make sure that all devices are selected so your GPS unit will probably appear among those available. In the next step a serial connection service should be available, select it and click on Configure button. Remember the number of the COM port assigned to the GPS connection as resulting by the Bluetooth properties. After the GPS has been recognized, make the pairing for the connection. Usually the authorization code is 0000. Now open GPS information panel and switch to GPS options screen. Select the COM port assigned to the GPS connection and click the Connect. After a while a cursor indicating your position should appear. If QGIS can’t receive GPS data, then you should restart your GPS device, wait 5-10 seconds then try to connect again. Usually this solution work. If you receive again a connection error make sure you don’t have another Bluetooth receiver near you, paired with the same GPS unit. 20.2.5 Using GPSMAP 60cs MS Windows Easiest way to make it work is to use a middleware (freeware, not open) called GPSGate. Launch the program, make it scan for GPS devices (works for both USB and BT ones) and then in QGIS just click Connect in the Live tracking panel using the Autodetect mode. Ubuntu/Mint GNU/Linux As for Windows the easiest way is to use a server in the middle, in this case GPSD, so sudo apt install gpsd Then load the garmin_gps kernel module sudo modprobe garmin_gps And then connect the unit. Then check with dmesg the actual device being used bu the unit, for example /dev/ ttyUSB0. Now you can launch gpsd gpsd /dev/ttyUSB0 And finally connect with the QGIS live tracking tool. 20.2. Live GPS tracking 671 QGIS Desktop 3.16 User Guide 20.2.6 Using BTGP-38KM datalogger (only Bluetooth) Using GPSD (under Linux) or GPSGate (under Windows) is effortless. 20.2.7 Using BlueMax GPS-4044 datalogger (both BT and USB) MS Windows The live tracking works for both USB and BT modes, by using GPSGate or even without it, just use the Autodetect mode, or point the tool the right port. Ubuntu/Mint GNU/Linux For USB The live tracking works both with GPSD gpsd /dev/ttyACM3 or without it, by connecting the QGIS live tracking tool directly to the device (for example /dev/ttyACM3). For Bluetooth The live tracking works both with GPSD gpsd /dev/rfcomm0 or without it, by connecting the QGIS live tracking tool directly to the device (for example /dev/rfcomm0). 672 Kapitola 20. Working with GPS Data KAPITOLA 21 Ověřovací systém 21.1 Authentication System Overview Obr. 21.1: Anatomy of authentication system 21.1.1 Authentication database The new authentication system stores authentication configurations in an SQLite database file located, by default, at /qgis-auth.db. This authentication database can be moved between QGIS installations without affecting other current QGIS 673 QGIS Desktop 3.16 User Guide user preferences, as it is completely separate from normal QGIS settings. A configuration ID (a random 7-character alphanumeric string) is generated when initially storing a configuration to the database. This represents the configuration, thereby allowing the ID to be stored in plain text application components, (such as project, plugin, or settings files) without disclosure of its associated credentials. Poznámka: The parent directory of the qgis-auth.db can be set using the following environment variable, QGIS_AUTH_DB_DIR_PATH, or set on the command line during launch with the --authdbdirectory option. 21.1.2 Master password To store or access sensitive information within the database, a user must define a master password. A new master password is requested and verified when initially storing any encrypted data to the database. When sensitive information is accessed, the user is prompted for the master password. The password is then cached for the remainder of the session (until application is quit), unless the user manually chooses an action to clear its cached value. Some instances of using the authentication system do not require input of the master password, such as when selecting an existing authentication configuration, or applying a configuration to a server configuration (such as when adding a WMS layer). You can choose to save the password in the Wallet/Keyring of your computer. Obr. 21.2: Input new master password Poznámka: A path to a file containing the master password can be set using the following environment variable, QGIS_AUTH_PASSWORD_FILE. Managing the master password Once set, the master password can be reset; the current master password will be needed prior to resetting. During this process, there is an option to generate a complete backup of the current database. Obr. 21.3: Resetting master password 674 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide If the user forgets the master password, there is no way to retrieve or override it. There is also no means of retrieving encrypted information without knowing the master password. If a user inputs their existing password incorrectly three times, the dialog will offer to erase the database. Obr. 21.4: Password prompt after three invalid attempts 21.1.3 Authentication Configurations You can manage authentication configurations from Configurations in the Authentication tab of the QGIS Options dialog (Settings ► Options). Obr. 21.5: Configurations editor Use the button to add a new configuration, the button to remove configurations, and the button to modify existing ones. 21.1. Authentication System Overview 675 QGIS Desktop 3.16 User Guide Obr. 21.6: Adding config from within Configuration editor The same type of operations for authentication configuration management (Add, Edit and Remove) can be done when configuring a given service connection, such as configuring an OWS service connection. For that, there are action buttons within the configuration selector for fully managing configurations found within the authentication database. In this case, there is no need to go to the configurations in Authentication tab of QGIS options unless you need to do more comprehensive configuration management. Obr. 21.7: WMS connection dialog showing Add, Edit, and Remove authentication configuration buttons When creating or editing an authentication configuration, the info required is a name, an authentication method 676 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide and any other info that the authentication method requires (see more about the available authentication types in Authentication Methods). 21.1.4 Authentication Methods Available authentications are provided by C++ plugins much in the same way data provider plugins are supported by QGIS. The method of authentication that can be selected is relative to the access needed for the resource/provider, e.g. HTTP(S) or database, and whether there is support in both QGIS code and a plugin. As such, some authentication method plugins may not be applicable everywhere an authentication configuration selector is shown. A list of available authentication method plugins and their compatible resource/providers can be accessed going to Settings ► Options and, in the Authentication tab, click the Installed Plugins button. Obr. 21.8: Available method plugins list Plugins can be created for new authentication methods that do not require QGIS to be recompiled. Since the support for plugins is currently C++-only, QGIS will need to be restarted for the new dropped-in plugin to become available to the user. Ensure your plugin is compiled against the same target version of QGIS if you intend to add it to an existing target install. Obr. 21.9: Basic HTTP authentication configs 21.1. Authentication System Overview 677 QGIS Desktop 3.16 User Guide Obr. 21.10: ESRI Token authentication configs 678 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide Obr. 21.11: OAuth2 authentication configs 21.1. Authentication System Overview 679 QGIS Desktop 3.16 User Guide Obr. 21.12: PKI paths authentication configs Obr. 21.13: PKI PKCS#12 file paths authentication configs Obr. 21.14: Stored Identity authentication configs Poznámka: The Resource URL is currently an unimplemented feature that will eventually allow a particular configuration to be auto-chosen when connecting to resources at a given URL. 680 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide 21.1.5 Master Password and Auth Config Utilities Under the Options menu (Settings ► Options) in the Authentication tab, there are several utility actions to manage the authentication database and configurations: Obr. 21.15: Utilities menu • Input master password: opens the master password input dialog, independent of performing any authentication database command • Clear cached master password: unsets the master password if it has been set • Reset master password: opens a dialog to change the master password (the current password must be known) and optionally back up the current database • Clear network authentication access cache: clears the authentication cache of all connections • Automatically clear network authentication access cache on SSL errors: the connection cache stores all authentication data for connections, also when the connection fails. If you change authentication configurations or certification authorities, you should clear the authentication cache or restart QGIS. When this option is checked, the authentication cache will be automatically cleared every time an SSL error occurs and you choose to abort the connection • Integrate master password with your Wallet/Keyring: adds the master password to your personal Wallet/Keyring • Store/update the master password in your Wallet/Keyring: updates the changed master password in your Wallet/Keyring • Clear the master password from your Wallet/Keyring: deletes the master password from your Wallet/Keyring • Enable password helper debug log: enables a debug tool that will contain all the log information of the authentication methods • Clear cached authentication configurations: clears the internal lookup cache for configurations, used to speed up network connections. This does not clear QGIS’s core network access manager’s cache, which requires a relaunch of QGIS. • Remove all authentication configurations: clears the database of all configuration records, without removing other stored records. 21.1. Authentication System Overview 681 QGIS Desktop 3.16 User Guide • Erase authentication database: schedules a backup of the current database and complete rebuild of the database table structure. The actions are scheduled for a later time, to ensure that other operations, like project loading, do not interrupt the operation or cause errors due to a temporarily missing database. Obr. 21.16: DB erase verification menu 21.1.6 Using authentication configurations Typically, an authentication configuration is selected in a configuration dialog for a network services (such as WMS). However, the selector widget can be embedded anywhere authentication is needed or in non-core functionality, like in third-party PyQGIS or C++ plugins. When using the selector, No authentication is displayed in the pop-up menu control when nothing is selected, when there are no configurations to choose from, or when a previously assigned configuration can no longer be found in the database. The Type and Id fields are read-only and provide a description of the authentication method and the config’s ID respectively. Obr. 21.17: Authentication configuration selector with no authentication Obr. 21.18: Authentication configuration selector with selected config 21.1.7 Python bindings All classes and public functions have sip bindings, except QgsAuthCrypto, since management of the master password hashing and auth database encryption should be handled by the main app, and not via Python. See Security Considerations concerning Python access. 682 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide 21.2 User Authentication Workflows Obr. 21.19: Generic user workflow 21.2.1 HTTP(S) authentication One of the most common resource connections is via HTTP(S), e.g. web mapping servers, and authentication method plugins often work for these types of connections. Method plugins have access to the HTTP request object and can manipulate both the request as well as its headers. This allows for many forms of internet-based authentication. When connecting via HTTP(S) using the standard username/password authentication method will attempt HTTP BASIC authentication upon connection. 21.2. User Authentication Workflows 683 QGIS Desktop 3.16 User Guide Obr. 21.20: Configuring a WMS connection for HTTP BASIC 21.2.2 Database authentication Connections to database resources are generally stored as key=value pairs, which will expose usernames and (optionally) passwords, if not using an authentication configuration. When configuring with the auth system, the key=value will be an abstracted representation of the credentials, e.g. authfg=81t21b9. 684 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide Obr. 21.21: Configuring a Postgres SSL-with-PKI connection 21.2.3 PKI authentication When configuring PKI components within the authentication system, you have the option of importing components into the database or referencing component files stored on your filesystem. The latter may be useful if such components change frequently, or where the components will be replaced by a system administrator. In either instance you will need to store any passphrase needed to access private keys within the database. 21.2. User Authentication Workflows 685 QGIS Desktop 3.16 User Guide Obr. 21.22: PKI configuration workflow All PKI components can be managed in separate editors within the Certificate Manager, which can be accessed in the Authentication tab in QGIS Options dialog (Settings ► Options) by clicking the Manage Certificates button. 686 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide Obr. 21.23: Opening the Certificate Manager In the Certificate Manager, there are editors for Identities, Servers and Authorities. Each of these are contained in their own tabs, and are described below in the order they are encountered in the workflow chart above. The tab order is relative to frequently accessed editors once you are accustomed to the workflow. Poznámka: Because all authentication system edits write immediately to the authentication database, there is no need to click the Options dialog OK button for any changes to be saved. This is unlike other settings in the Options dialog. Authorities You can manage available Certificate Authorities (CAs) from the Authorities tab in the Certificate manager from the Authentication tab of the QGIS Options dialog. As referenced in the workflow chart above, the first step is to import or reference a file of CAs. This step is optional, and may be unnecessary if your PKI trust chain originates from root CAs already installed in your operating system (OS), such as a certificate from a commercial certificate vendor. If your authenticating root CA is not in the OS’s trusted root CAs, it will need to be imported or have its file system path referenced. (Contact your system administrator if unsure.) 21.2. User Authentication Workflows 687 QGIS Desktop 3.16 User Guide Obr. 21.24: Authorities editor By default, the root CAs from your OS are available; however, their trust settings are not inherited. You should review the certificate trust policy settings, especially if your OS root CAs have had their policies adjusted. Any certificate that is expired will be set to untrusted and will not be used in secure server connections, unless you specifically override its trust policy. To see the QGIS-discoverable trust chain for any certificate, select it and click the Show information for certificate . 688 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide Obr. 21.25: Certificate info dialog You can edit the Trust policy for any selected certificate within the chain. Any change in trust policy to a selected certificate will not be saved to the database unless the Save certificate trust policy change to database button is clicked per selected certification. Closing the dialog will not apply the policy changes. Obr. 21.26: Saving the trust policy changes You can review the filtered CAs, both intermediate and root certificates, that will be trusted for secure connections or change the default trust policy by clicking the Options button. Varování: Changing the default trust policy may result in problems with secure connections. 21.2. User Authentication Workflows 689 QGIS Desktop 3.16 User Guide Obr. 21.27: Authorities options menu You can import CAs or save a file system path from a file that contains multiple CAs, or import individual CAs. The standard PEM format for files that contain multiple CA chain certifications has the root cert at the bottom of the file and all subsequently signed child certificates above, towards the beginning of the file. The CA certificate import dialog will find all CA certificates within the file, regardless of order, and also offers the option to import certificates that are considered invalid (in case you want to override their trust policy). You can override the trust policy upon import, or do so later within the Authorities editor. Obr. 21.28: Import certificates dialog Poznámka: If you are pasting certificate information into the PEM text field, note that encrypted certificates are not supported. Identities You can manage available client identity bundles from the Identities tab in the Certificate manager from the Authentication tab of the QGIS Options dialog. An identity is what authenticates you against a PKI-enabled service and usually consists of a client certificate and private key, either as separate files or combined into a single „bundled“ file. The bundle or private key is often passphrase-protected. Once you have any Certificate Authorities (CAs) imported you can optionally import any identity bundles into the authentication database. If you do not wish to store the identities, you can reference their component file system paths within an individual authentication configuration. 690 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide Obr. 21.29: Identities editor When importing an identity bundle, it can be passphrase-protected or unprotected, and can contain CA certificates forming a trust chain. Trust chain certifications will not be imported here; they can be added separately under the Authorities tab. Upon import the bundle’s certificate and private key will be stored in the database, with the key’s storage encrypted using the QGIS master password. Subsequent usage of the stored bundle from the database will only require input of the master password. Personal identity bundles consisting of PEM/DER (.pem/.der) and PKCS#12 (.p12/.pfx) components are supported. If a key or bundle is passphrase-protected, the password will be required to validate the component prior to import. Likewise, if the client certificate in the bundle is invalid (for example, its effective date has not yet started or has elapsed) the bundle can not be imported. Obr. 21.30: PEM/DER identity import 21.2. User Authentication Workflows 691 QGIS Desktop 3.16 User Guide Obr. 21.31: PKCS#12 identity import 21.2.4 Handling bad layers Occasionally, the authentication configuration ID that is saved with a project file is no longer valid, possibly because the current authentication database is different than when the project was last saved, or due to a credentials mismatch. In such cases the Handle bad layers dialog will be presented upon QGIS launch. Obr. 21.32: Handle bad layers with authentication If a data source is found to have an authentication configuration ID associated with it, you will be able to edit it. Doing so will automatically edit the data source string, much in the same way as opening the project file in a text editor and editing the string. 692 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide Obr. 21.33: Edit bad layer’s authentication config ID 21.2.5 Changing authentication config ID Occasionally, you will need to change the authentication configuration ID that is associated with accessing a resource. There are instances where this is useful: • Resource auth config ID is no longer valid: This can occur when you have switched auth databases add need to align a new configuration to the ID already associated with a resource. • Shared project files: If you intended to share projects between users, e.g. via a shared file server, you can predefine a 7-character (containing a-z and/or 0-9) that is associated with the resource. Then, individual users change the ID of an authentication configuration that is specific to their credentials of the resource. When the project is opened, the ID is found in the authentication database, but the credentials are different per user. Obr. 21.34: Changing a layer’s authentication config ID (unlocked yellow text field) Varování: Changing the auth config ID is considered an advanced operation and should only be done with full knowledge as to why it is necessary. This is why there is a lock button that needs clicked, to unlock the ID’s text field prior to editing the ID. 21.2. User Authentication Workflows 693 QGIS Desktop 3.16 User Guide 21.2.6 QGIS Server support When using a project file, with layers that have authentication configurations, as a basis for a map in QGIS Server, there are a couple of additional setup steps necessary for QGIS to load the resources: • Authentication database needs to be available • Authentication database’s master password needs to be available When instantiating the authentication system, Server will create or use qgis-auth.db file in the active user profile, or the directory defined by the QGIS_AUTH_DB_DIR_PATH environment variable. It may be that the Server’s user has no HOME directory, in which case, use the environment variable to define a directory that the Server’s user has read/write permissions and is not located within the web-accessible directories. To pass the master password to Server, write it to the first line of file at a path on the file system readable by the Server processes user and defined using the QGIS_AUTH_PASSWORD_FILE environment variable. Ensure to limit the file as only readable by the Server’s process user and to not store the file within web-accessible directories. Poznámka: QGIS_AUTH_PASSWORD_FILE variable will be removed from the Server environment immediately after accessing. 21.2.7 SSL server exceptions Obr. 21.35: SSL server exception You can manage SSL server configurations and exceptions from the Servers tab in the Authentication section of the QGIS Options dialog. Sometimes, when connecting to an SSL server, there are errors with the SSL „handshake“ or the server’s certificate. You can ignore those errors or create an SSL server configuration as an exception. This is similar to how web browsers allow you to override SSL errors, but with more granular control. Varování: You should not create an SSL server configuration unless you have complete knowledge of the entire SSL setup between the server and client. Instead, report the issue to the server administrator. Poznámka: Some PKI setups use a completely different CA trust chain to validate client identities than the chain used to validate the SSL server certificate. In such circumstances, any configuration created for the connecting server will not necessarily fix an issue with the validation of your client identity, and only your client identity’s issuer or server administrator can fix the issue. You can pre-configure an SSL server configuration by clicking the button. Alternatively, you can add a configuration when an SSL error occurs during a connection and you are presented with an SSL Error dialog (where the error can be ignored temporarily or saved to the database and ignored): 694 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide Obr. 21.36: Manually adding configuration 21.2. User Authentication Workflows 695 QGIS Desktop 3.16 User Guide Obr. 21.37: Adding configuration during SSL error Once an SSL configuration is saved to the database, it can be edited or deleted. Obr. 21.38: Existing SSL configuration 696 Kapitola 21. Ověřovací systém QGIS Desktop 3.16 User Guide Obr. 21.39: Editing an existing SSL configuration If you want to pre-configure an SSL configuration and the import dialog is not working for your server’s connection, you can manually trigger a connection via the Python Console by running the following code (replace https:// bugreports.qt-project.org with the URL of your server): from qgis.PyQt.QtNetwork import QNetworkRequest from qgis.PyQt.QtCore import QUrl from qgis.core import QgsNetworkAccessManager req = QNetworkRequest(QUrl('https://bugreports.qt-project.org')) reply = QgsNetworkAccessManager.instance().get(req) This will open an SSL error dialog if any errors occur, where you can choose to save the configuration to the database. 21.3 Security Considerations Once the master password is entered, the API is open to access authentication configs in the authentication database, similar to how Firefox works. However, in the initial implementation, no wall against PyQGIS access has been defined. This may lead to issues where a user downloads/installs a malicious PyQGIS plugin or standalone app that gains access to authentication credentials. The quick solution for initial release of feature is to just not include most PyQGIS bindings for the authentication system. Another simple, though not robust, fix is to add a combobox in Settings ► Options ► Authentication (defaults to „never“): "Allow Python access to authentication system" Choices: [ confirm once per session | always confirm | always allow | never] Such an option’s setting would need to be saved in a location non-accessible to Python, e.g. the authentication database, and encrypted with the master password. • Another option may be to track which plugins the user has specifically • allowed to access the authentication system, though it may be tricky to deduce which plugin is actually making the call. 21.3. Security Considerations 697 QGIS Desktop 3.16 User Guide • Sandboxing plugins, possibly in their own virtual environments, would reduce ‚cross-plugin‘ hacking of authentication configs from another plugin that is authorized. This might mean limiting cross-plugin communication as well, but maybe only between third-party plugins. • Another good solution is to issue code-signing certificates to vetted plugin authors. Then validate the plugin’s certificate upon loading. If need be the user can also directly set an untrusted policy for the certificate associated with the plugin using existing certificate management dialogs. • Alternatively, access to sensitive authentication system data from Python • could never be allowed, and only the use of QGIS core widgets, or duplicating authentication system integrations, would allow the plugin to work with resources that have an authentication configuration, while keeping master password and authentication config loading in the realm of the main app. The same security concerns apply to C++ plugins, though it will be harder to restrict access, since there is no function binding to simply be removed as with Python. 21.3.1 Restrictions The confusing licensing and exporting issues associated with OpenSSL apply. In order for Qt to work with SSL certificates, it needs access to the OpenSSL libraries. Depending upon how Qt was compiled, the default is to dynamically link to the OpenSSL libs at run-time (to avoid the export limitations). QCA follows a similar tactic, whereby linking to QCA incurs no restrictions, because the qca-ossl (OpenSSL) plugin is loaded at run-time. The qca-ossl plugin is directly linked to the OpenSSL libs. Packagers would be the ones needing to ensure any OpenSSL-linking restrictions are met, if they ship the plugin. Maybe. I don’t really know. I’m not a lawyer. The authentication system safely disables itself when qca-ossl is not found at run-time. 698 Kapitola 21. Ověřovací systém KAPITOLA 22 GRASS GIS Integration GRASS integration provides access to GRASS GIS databases and functionalities (see GRASS-PROJECT in Literature and Web References). The integration consists of two parts: provider and plugin. The provider allows to browse, manage and visualize GRASS raster and vector layers. The plugin can be used to create new GRASS locations and mapsets, change GRASS region, create and edit vector layers and analyze GRASS 2-D and 3-D data with more than 400 GRASS modules. In this section, we’ll introduce the provider and plugin functionalities and give some examples of managing and working with GRASS data. The provider supports GRASS version 6 and 7, the plugin supports GRASS 6 and 7 (starting from QGIS 2.12). QGIS distribution may contain provider/plugin for either GRASS 6 or GRASS 7 or for both versions at the same time (binaries have different file names). Only one version of the provider/plugin may be loaded on runtime however. 22.1 Demo dataset As an example, we will use the QGIS Alaska dataset (see section Downloading sample data). It includes a small sample GRASS LOCATION with three vector layers and one raster elevation map. Create a new folder called grassdata, download the QGIS ‚Alaska‘ dataset qgis_sample_data.zip from https://qgis.org/downloads/data/ and unzip the file into grassdata. More sample GRASS LOCATIONs are available at the GRASS website at https://grass.osgeo.org/download/ sample-data/. 22.2 Loading GRASS raster and vector layers If the provider is loaded in QGIS, the location item with GRASS icon is added in the browser tree under each folder item which contains GRASS location. Go to the folder grassdata and expand location alaska and mapset demo. You can load GRASS raster and vector layers like any other layer from the browser either by double click on layer item or by dragging and dropping to map canvas or legend. Tip: GRASS Data Loading If you don’t see GRASS location item, verify in Help ► About ► Providers if GRASS vector provider is loaded. 699 QGIS Desktop 3.16 User Guide 22.3 Importing data into a GRASS LOCATION via drag and drop This section gives an example of how to import raster and vector data into a GRASS mapset. 1. In QGIS browser navigate to the mapset you want to import data into. 2. In QGIS browser find a layer you want to import to GRASS, note that you can open another instance of the browser (Browser Panel (2)) if source data are too far from the mapset in the tree. 3. Drag a layer and drop it on the target mapset. The import may take some time for larger layers, you will see animated icon in front of new layer item until the import finishes. When raster data are in different CRS, they can be reprojected using an Approximate (fast) or Exact (precise) transformation. If a link to the source raster is created (using r.external), the source data are in the same CRS and the format is known to GDAL, the source data CRS will be used. You can set these options in the Browser tab in GRASS Options. If a source raster has more bands, a new GRASS map is created for each layer with . suffix and group of all maps with icon is created. External rasters have a different icon . 22.4 Managing GRASS data in QGIS Browser • Copying maps: GRASS maps may be copied between mapsets within the same location using drag and drop. • Deleting maps: Right click on a GRASS map and select Delete from context menu. • Renaming maps: Right click on a GRASS map and select Rename from context menu. 22.5 GRASS Options GRASS options may be set in GRASS Options dialog, which can be opened by right clicking on the location or mapset item in the browser and then choosing GRASS Options. 22.6 Starting the GRASS plugin To use GRASS functionalities in QGIS, you must select and load the GRASS plugin using the Plugin Manager. To do this, go to the menu Plugins ► Manage and Install Plugins…, select GRASS and click OK. The following main features are provided with the GRASS menu (Plugins ► GRASS) when you start the GRASS plugin: • Open Mapset • New Mapset • Close Mapset • Open GRASS Tools • Display Current GRASS Region • GRASS Options 700 Kapitola 22. GRASS GIS Integration QGIS Desktop 3.16 User Guide 22.7 Opening GRASS mapset A GRASS mapset must be opened to get access to GRASS Tools in the plugin (the tools are disabled if no mapset is open). You can open a mapset from the browser: right click on mapset item and then choose Open mapset from context menu. 22.8 GRASS LOCATION and MAPSET GRASS data are stored in a directory referred to as GISDBASE. This directory, often called grassdata, must be created before you start working with the GRASS plugin in QGIS. Within this directory, the GRASS GIS data are organized by projects stored in subdirectories called LOCATIONs. Each LOCATION is defined by its coordinate system, map projection and geographical boundaries. Each LOCATION can have several MAPSETs (subdirectories of the LOCATION) that are used to subdivide the project into different topics or subregions, or as workspaces for individual team members (see Neteler & Mitasova 2008 in Literature and Web References). In order to analyse vector and raster layers with GRASS modules, you generally have to import them into a GRASS LOCATION. (This is not strictly true – with the GRASS modules r.external and v.external you can create read-only links to external GDAL/OGR-supported datasets without importing them. This is not the usual way for beginners to work with GRASS, therefore this functionality will not be described here.) Obr. 22.1: GRASS data in the alaska LOCATION 22.9 Importing data into a GRASS LOCATION See section Importing data into a GRASS LOCATION via drag and drop to find how data can be easily imported by dragging and dropping in the browser. This section gives an example of how to import raster and vector data into the ‚alaska‘ GRASS LOCATION provided by the QGIS ‚Alaska‘ dataset in traditional way, using standard GRASS modules. Therefore, we use the landcover raster map landcover.img and the vector GML file lakes.gml from the QGIS ‚Alaska‘ dataset (see Downloading sample data). 1. Start QGIS and make sure the GRASS plugin is loaded. 2. In the GRASS toolbar, click the Open MAPSET icon to bring up the MAPSET wizard. 3. Select as GRASS database the folder grassdata in the QGIS Alaska dataset, as LOCATION ‚alaska‘, as MAPSET ‚demo‘ and click OK. 4. Now click the Open GRASS tools icon. The GRASS Toolbox (see section The GRASS Toolbox) dialog appears. 22.7. Opening GRASS mapset 701 QGIS Desktop 3.16 User Guide 5. To import the raster map landcover.img, click the module r.in.gdal in the Modules Tree tab. This GRASS module allows you to import GDAL-supported raster files into a GRASS LOCATION. The module dialog for r.in.gdal appears. 6. Browse to the folder raster in the QGIS ‚Alaska‘ dataset and select the file landcover.img. 7. As raster output name, define landcover_grass and click Run. In the Output tab, you see the currently running GRASS command r.in.gdal -o input=/path/to/landcover.img output=landcover_grass. 8. When it says Successfully finished, click View Output. The landcover_grass raster layer is now imported into GRASS and will be visualized in the QGIS canvas. 9. To import the vector GML file lakes.gml, click the module v.in.ogr in the Modules Tree tab. This GRASS module allows you to import OGR-supported vector files into a GRASS LOCATION. The module dialog for v.in.ogr appears. 10. Browse to the folder gml in the QGIS ‚Alaska‘ dataset and select the file lakes.gml as OGR file. 11. As vector output name, define lakes_grass and click Run. You don’t have to care about the other options in this example. In the Output tab you see the currently running GRASS command v.in.ogr -o dsn=/ path/to/lakes.gml output=lakes\_grass. 12. When it says Succesfully finished, click View Output. The lakes_grass vector layer is now imported into GRASS and will be visualized in the QGIS canvas. 22.9.1 Creating a new GRASS LOCATION As an example, here is the sample GRASS LOCATION alaska, which is projected in the Albers Equal Area projection using feet as units. This sample GRASS LOCATION alaska will be used for all examples and exercises in the following GRASS-related sections. It is useful to download and install the dataset on your computer (see Downloading sample data). 1. Start QGIS and make sure the GRASS plugin is loaded. 2. Visualize the alaska.shp shapefile (see section Loading a layer from a file) from the QGIS Alaska dataset (see Downloading sample data). 3. In the GRASS toolbar, click on the New mapset icon to bring up the MAPSET wizard. 4. Select an existing GRASS database (GISDBASE) folder grassdata, or create one for the new LOCATION using a file manager on your computer. Then click Next. 5. We can use this wizard to create a new MAPSET within an existing LOCATION (see section Adding a new MAPSET) or to create a new LOCATION altogether. Select Create new location (see Obr. 22.2). 6. Enter a name for the LOCATION – we used ‚alaska‘ – and click Next. 7. Define the projection by clicking on the radio button Projection to enable the projection list. 8. We are using Albers Equal Area Alaska (feet) projection. Since we happen to know that it is represented by the EPSG ID 2964, we enter it in the search box. (Note: If you want to repeat this process for another LOCATION and projection and haven’t memorized the EPSG ID, click on the CRS Status icon in the lower right-hand corner of the status bar (see section Práce s projekcemi)). 9. In Filter, insert 2964 to select the projection. 10. Click Next. 11. To define the default region, we have to enter the LOCATION bounds in the north, south, east, and west directions. Here, we simply click on the button Set Current QGIS Extent, to apply the extent of the loaded layer alaska.shp as the GRASS default region extent. 12. Click Next. 702 Kapitola 22. GRASS GIS Integration QGIS Desktop 3.16 User Guide 13. We also need to define a MAPSET within our new LOCATION (this is necessary when creating a new LOCATION). You can name it whatever you like - we used ‚demo‘. GRASS automatically creates a special MAPSET called PERMANENT, designed to store the core data for the project, its default spatial extent and coordinate system definitions (see Neteler & Mitasova 2008 in Literature and Web References). 14. Check out the summary to make sure it’s correct and click Finish. 15. The new LOCATION, ‚alaska‘, and two MAPSETs, ‚demo‘ and ‚PERMANENT‘, are created. The currently opened working set is ‚demo‘, as you defined. 16. Notice that some of the tools in the GRASS toolbar that were disabled are now enabled. Obr. 22.2: Creating a new GRASS LOCATION or a new MAPSET in QGIS If that seemed like a lot of steps, it’s really not all that bad and a very quick way to create a LOCATION. The LOCATION ‚alaska‘ is now ready for data import (see section Importing data into a GRASS LOCATION). You can also use the already-existing vector and raster data in the sample GRASS LOCATION ‚alaska‘, included in the QGIS ‚Alaska‘ dataset Downloading sample data, and move on to section The GRASS vector data model. 22.9.2 Adding a new MAPSET A user has write access only to a GRASS MAPSET which he or she created. This means that besides access to your own MAPSET, you can read maps in other users‘ MAPSETs (and they can read yours), but you can modify or remove only the maps in your own MAPSET. All MAPSETs include a WIND file that stores the current boundary coordinate values and the currently selected raster resolution (see Neteler & Mitasova 2008 in Literature and Web References, and section The GRASS region tool). 1. Start QGIS and make sure the GRASS plugin is loaded. 2. In the GRASS toolbar, click on the New mapset icon to bring up the MAPSET wizard. 3. Select the GRASS database (GISDBASE) folder grassdata with the LOCATION ‚alaska‘, where we want to add a further MAPSET called ‚test‘. 4. Click Next. 5. We can use this wizard to create a new MAPSET within an existing LOCATION or to create a new LOCATION altogether. Click on the radio button Select location (see Obr. 22.2) and click Next. 6. Enter the name test for the new MAPSET. Below in the wizard, you see a list of existing MAPSETs and corresponding owners. 7. Click Next, check out the summary to make sure it’s all correct and click Finish. 22.9. Importing data into a GRASS LOCATION 703 QGIS Desktop 3.16 User Guide 22.10 The GRASS vector data model It is important to understand the GRASS vector data model prior to digitizing. In general, GRASS uses a topological vector model. This means that areas are not represented as closed polygons, but by one or more boundaries. A boundary between two adjacent areas is digitized only once, and it is shared by both areas. Boundaries must be connected and closed without gaps. An area is identified (and labelled) by the centroid of the area. Besides boundaries and centroids, a vector map can also contain points and lines. All these geometry elements can be mixed in one vector and will be represented in different so-called ‚layers‘ inside one GRASS vector map. So in GRASS, a layer is not a vector or raster map but a level inside a vector layer. This is important to distinguish carefully. (Although it is possible to mix geometry elements, it is unusual and, even in GRASS, only used in special cases such as vector network analysis. Normally, you should prefer to store different geometry elements in different layers.) It is possible to store several ‚layers‘ in one vector dataset. For example, fields, forests and lakes can be stored in one vector. An adjacent forest and lake can share the same boundary, but they have separate attribute tables. It is also possible to attach attributes to boundaries. An example might be the case where the boundary between a lake and a forest is a road, so it can have a different attribute table. The ‚layer‘ of the feature is defined by the ‚layer‘ inside GRASS. ‚Layer‘ is the number which defines if there is more than one layer inside the dataset (e.g., if the geometry is forest or lake). For now, it can be only a number. In the future, GRASS will also support names as fields in the user interface. Attributes can be stored inside the GRASS LOCATION as dBase, SQLite3 or in external database tables, for example, PostgreSQL, MySQL, Oracle, etc. Attributes in database tables are linked to geometry elements using a ‚category‘ value. ‚Category‘ (key, ID) is an integer attached to geometry primitives, and it is used as the link to one key column in the database table. Tip: Learning the GRASS Vector Model The best way to learn the GRASS vector model and its capabilities is to download one of the many GRASS tutorials where the vector model is described more deeply. See https://grass.osgeo.org/documentation/manuals/ for more information, books and tutorials in several languages. 22.11 Creating a new GRASS vector layer To create a new GRASS vector layer, select one of following items from mapset context menu in the browser: • New Point Layer • New Line Layer • New Polygon Layer and enter a name in the dialog. A new vector map will be created and layer will be added to canvas and editing started. Selecting type of the layer does not restrict geometry types which can be digitized in the vector map. In GRASS, it is possible to organize all sorts of geometry types (point, line and polygon) in one vector map. The type is only used to add the layer to the canvas, because QGIS requires a layer to have a specific type. It is also possible to add layers to existing vector maps selecting one of the items described above from context menu of existing vector map. In GRASS, it is possible to organize all sorts of geometry types (point, line and area) in one layer, because GRASS uses a topological vector model, so you don’t need to select the geometry type when creating a new GRASS vector. This is different from shapefile creation with QGIS, because shapefiles use the Simple Feature vector model (see section Creating new vector layers). 704 Kapitola 22. GRASS GIS Integration QGIS Desktop 3.16 User Guide 22.12 Digitizing and editing a GRASS vector layer GRASS vector layers can be digitized using the standard QGIS digitizing tools. There are however some particularities, which you should know about, due to • GRASS topological model versus QGIS simple feature • complexity of GRASS model – multiple layers in single maps – multiple geometry types in single map – geometry sharing by multiple features from multiple layers The particularities are discussed in the following sections. Save, discard changes, undo, redo Varování: All the changes done during editing are immediately written to vector map and related attribute tables. Changes are written after each operation, it is however, possible to do undo/redo or discard all changes when closing editing. If undo or discard changes is used, original state is rewritten in vector map and attribute tables. There are two main reasons for this behaviour: • It is the nature of GRASS vectors coming from conviction that user wants to do what he is doing and it is better to have data saved when the work is suddenly interrupted (for example, blackout) • Necessity for effective editing of topological data is visualized information about topological correctness, such information can only be acquired from GRASS vector map if changes are written to the map. Toolbar The ‚Digitizing Toolbar‘ has some specific tools when a GRASS layer is edited: Ikona Tool Účel New Point Digitize new point New Line Digitize new line New Boundary Digitize new boundary New Centroid Digitize new centroid (label existing area) New Closed Boundary Digitize new closed boundary Table GRASS Digitizing: GRASS Digitizing Tools Tip: Digitizing polygons in GRASS If you want to create a polygon in GRASS, you first digitize the boundary of the polygon. Then you add a centroid (label point) into the closed boundary. The reason for this is that a topological vector model links the attribute information of a polygon always to the centroid and not to the boundary. Category Category, often called cat, is sort of ID. The name comes from times when GRASS vectors had only singly attribute „category“. Category is used as a link between geometry and attributes. A single geometry may have multiple categories and thus represent multiple features in different layers. Currently it is possible to assign only one category per layer using QGIS editing tools. New features have automatically assigned new unique category, except boundaries. Boundaries usually only form areas and do not represent linear features, it is however possible to define attributes for a boundary later, for example in different layer. 22.12. Digitizing and editing a GRASS vector layer 705 QGIS Desktop 3.16 User Guide New categories are always created only in currently being edited layer. It is not possible to assign more categories to geometry using QGIS editing, such data are properly represented as multiple features, and individual features, even from different layers, may be deleted. Attributes Attributes of currently edited layer can only be modified. If the vector map contains more layers, features of other layers will have all attributes set to ‚‘ to warn you that such attribute is not editable. The reason is, that other layers may have and usually have different set of fields while QGIS only supports one fixed set of fields per layer. If a geometry primitive does not have a category assigned, a new unique category is automatically assigned and new record in attribute table is created when an attribute of that geometry is changed. Tip: If you want to do bulk update of attributes in table, for example using ‚Field Calculator‘ (Using the Field Calculator), and there are features without category which you don’t want to update (typically boundaries), you can filter them out by setting ‚Advanced Filter‘ to cat is not null. Editing style The topological symbology is essential for effective editing of topological data. When editing starts, a specialized ‚GRASS Edit‘ renderer is set on the layer automatically and original renderer is restored when editing is closed. The style may be customized in layer properties ‚Style‘ tab. The style can also be stored in project file or in separate file as any other style. If you customize the style, do not change its name, because it is used to reset the style when editing is started again. Tip: Do not save project file when the layer is edited, the layer would be stored with ‚Edit Style‘ which has no meaning if layer is not edited. The style is based on topological information which is temporarily added to attribute table as field ‚topo_symbol‘. The field is automatically removed when editing is closed. Tip: Do not remove ‚topo_symbol‘ field from attribute table, that would make features invisible because the renderer is based on that column. Uchycení To form an area, vertices of connected boundaries must have exactly the same coordinates. This can be achieved using snapping tool only if canvas and vector map have the same CRS. Otherwise, due conversion from map coordinates to canvas and back, the coordinate may become slightly different due to representation error and CRS transformations. Tip: Use layer’s CRS also for canvas when editing. Limitations Simultaneous editing of multiple layers within the same vector at the same time is not supported. This is mainly due to the impossibility of handling multiple undo stacks for a single data source. On Linux and macOS only one GRASS layer can be edited at time. This is due to a bug in GRASS which does not allow to close database drivers in random order. This is being solved with GRASS developers. Tip: GRASS Edit Permissions You must be the owner of the GRASS MAPSET you want to edit. It is impossible to edit data layers in a MAPSET that is not yours, even if you have write permission. 706 Kapitola 22. GRASS GIS Integration QGIS Desktop 3.16 User Guide 22.13 The GRASS region tool The region definition (setting a spatial working window) in GRASS is important for working with raster layers. Vector analysis is by default not limited to any defined region definitions. But all newly created rasters will have the spatial extension and resolution of the currently defined GRASS region, regardless of their original extension and resolution. The current GRASS region is stored in the $LOCATION/$MAPSET/WIND file, and it defines north, south, east and west bounds, number of columns and rows, horizontal and vertical spatial resolution. It is possible to switch on and off the visualization of the GRASS region in the QGIS canvas using the Display current GRASS region button. The region can be modified in ‚Region‘ tab in ‚GRASS Tolls‘ dock widget. Type in the new region bounds and resolution, and click Apply. If you click on Select the extent by dragging on canvas you can select a new region interactively with your mouse on the QGIS canvas dragging a rectangle. The GRASS module g.region provides a lot more parameters to define an appropriate region extent and resolution for your raster analysis. You can use these parameters with the GRASS Toolbox, described in section The GRASS Toolbox. 22.14 The GRASS Toolbox The Open GRASS Tools box provides GRASS module functionalities to work with data inside a selected GRASS LOCATION and MAPSET. To use the GRASS Toolbox you need to open a LOCATION and MAPSET that you have write permission for (usually granted, if you created the MAPSET). This is necessary, because new raster or vector layers created during analysis need to be written to the currently selected LOCATION and MAPSET. Obr. 22.3: GRASS Toolbox and Module Tree 22.13. The GRASS region tool 707 QGIS Desktop 3.16 User Guide 22.14.1 Working with GRASS modules The GRASS shell inside the GRASS Toolbox provides access to almost all (more than 300) GRASS modules in a command line interface. To offer a more user-friendly working environment, about 200 of the available GRASS modules and functionalities are also provided by graphical dialogs within the GRASS plugin Toolbox. A complete list of GRASS modules available in the graphical Toolbox in QGIS version 3.16 is available in the GRASS wiki at https://grasswiki.osgeo.org/wiki/GRASS-QGIS_relevant_module_list. It is also possible to customize the GRASS Toolbox content. This procedure is described in section Customizing the GRASS Toolbox. As shown in Obr. 22.3, you can look for the appropriate GRASS module using the thematically grouped Modules Tree or the searchable Modules List tab. By clicking on a graphical module icon, a new tab will be added to the Toolbox dialog, providing three new sub-tabs: Options, Output and Manual. Options The Options tab provides a simplified module dialog where you can usually select a raster or vector layer visualized in the QGIS canvas and enter further module-specific parameters to run the module. Obr. 22.4: GRASS Toolbox Module Options The provided module parameters are often not complete to keep the dialog simple. If you want to use further module parameters and flags, you need to start the GRASS shell and run the module in the command line. A new feature since QGIS 1.8 is the support for a Show Advanced Options button below the simplified module dialog in the Options tab. At the moment, it is only added to the module v.in.ascii as an example of use, but it will probably be part of more or all modules in the GRASS Toolbox in future versions of QGIS. This allows you to use the complete GRASS module options without the need to switch to the GRASS shell. Output 708 Kapitola 22. GRASS GIS Integration QGIS Desktop 3.16 User Guide Obr. 22.5: GRASS Toolbox Module Output The Output tab provides information about the output status of the module. When you click the Run button, the module switches to the Output tab and you see information about the analysis process. If all works well, you will finally see a Successfully finished message. Manual 22.14. The GRASS Toolbox 709 QGIS Desktop 3.16 User Guide Obr. 22.6: GRASS Toolbox Module Manual The Manual tab shows the HTML help page of the GRASS module. You can use it to check further module parameters and flags or to get a deeper knowledge about the purpose of the module. At the end of each module manual page, you see further links to the Main Help index, the Thematic index and the Full index. These links provide the same information as the module g.manual. Tip: Display results immediately If you want to display your calculation results immediately in your map canvas, you can use the ‚View Output‘ button at the bottom of the module tab. 710 Kapitola 22. GRASS GIS Integration QGIS Desktop 3.16 User Guide 22.14.2 GRASS module examples The following examples will demonstrate the power of some of the GRASS modules. Creating contour lines The first example creates a vector contour map from an elevation raster (DEM). Here, it is assumed that you have the Alaska LOCATION set up as explained in section Importing data into a GRASS LOCATION. • First, open the location by clicking the Open mapset button and choosing the Alaska location. • Now open the Toolbox with the Open GRASS tools button. • In the list of tool categories, double-click Raster ► Surface Management ► Generate vector contour lines. • Now a single click on the tool r.contour will open the tool dialog as explained above (see Working with GRASS modules). • In the Name of input raster map enter gtopo30. • Type into the Increment between Contour levels the value 100. (This will create contour lines at intervals of 100 meters.) • Type into the Name for output vector map the name ctour_100. • Click Run to start the process. Wait for several moments until the message Successfully finished appears in the output window. Then click View Output and Close. Since this is a large region, it will take a while to display. After it finishes rendering, you can open the layer properties window to change the line color so that the contours appear clearly over the elevation raster, as in The Vector Properties Dialog. Next, zoom in to a small, mountainous area in the center of Alaska. Zooming in close, you will notice that the contours have sharp corners. GRASS offers the v.generalize tool to slightly alter vector maps while keeping their overall shape. The tool uses several different algorithms with different purposes. Some of the algorithms (i.e., Douglas Peuker and Vertex Reduction) simplify the line by removing some of the vertices. The resulting vector will load faster. This process is useful when you have a highly detailed vector, but you are creating a very small-scale map, so the detail is unnecessary. Tip: The simplify tool Note that QGIS has a Vector ► Geometry Tools ► Simplify geometries tool that works just like the GRASS v.generalize Douglas-Peuker algorithm. However, the purpose of this example is different. The contour lines created by r.contour have sharp angles that should be smoothed. Among the v.generalize algorithms, there is Chaiken’s, which does just that (also Hermite splines). Be aware that these algorithms can add additional vertices to the vector, causing it to load even more slowly. • Open the GRASS Toolbox and double-click the categories Vector ► Develop map ► Generalization, then click on the v.generalize module to open its options window. • Check that the ‚ctour_100‘ vector appears as the Name of input vector. • From the list of algorithms, choose Chaiken’s. Leave all other options at their default, and scroll down to the last row to enter in the field Name for output vector map ‚ctour_100_smooth‘, and click Run. • The process takes several moments. Once Successfully finished appears in the output windows, click View Output and then Close. • You may change the color of the vector to display it clearly on the raster background and to contrast with the original contour lines. You will notice that the new contour lines have smoother corners than the original while staying faithful to the original overall shape. 22.14. The GRASS Toolbox 711 QGIS Desktop 3.16 User Guide Obr. 22.7: GRASS module v.generalize to smooth a vector map Tip: Other uses for r.contour The procedure described above can be used in other equivalent situations. If you have a raster map of precipitation data, for example, then the same method will be used to create a vector map of isohyetal (constant rainfall) lines. Creating a Hillshade 3-D effect Several methods are used to display elevation layers and give a 3-D effect to maps. The use of contour lines, as shown above, is one popular method often chosen to produce topographic maps. Another way to display a 3-D effect is by hillshading. The hillshade effect is created from a DEM (elevation) raster by first calculating the slope and aspect of each cell, then simulating the sun’s position in the sky and giving a reflectance value to each cell. Thus, you get sun-facing slopes lighted; the slopes facing away from the sun (in shadow) are darkened. • Begin this example by loading the gtopo30 elevation raster. Start the GRASS Toolbox, and under the Raster category, double-click to open Spatial analysis ► Terrain analysis. • Then click r.shaded.relief to open the module. • Change the azimuth angle 270 to 315. • Enter gtopo30_shade for the new hillshade raster, and click Run. • When the process completes, add the hillshade raster to the map. You should see it displayed in grayscale. • To view both the hillshading and the colors of the gtopo30 together, move the hillshade map below the gtopo30 map in the table of contents, then open the Properties window of gtopo30, switch to the Transparency tab and set its transparency level to about 25%. You should now have the gtopo30 elevation with its colormap and transparency setting displayed above the grayscale hillshade map. In order to see the visual effects of the hillshading, turn off the gtopo30_shade map, then turn it back on. Using the GRASS shell The GRASS plugin in QGIS is designed for users who are new to GRASS and not familiar with all the modules and options. As such, some modules in the Toolbox do not show all the options available, and some modules do not appear at all. The GRASS shell (or console) gives the user access to those additional GRASS modules that do not appear in the Toolbox tree, and also to some additional options to the modules that are in the Toolbox with the simplest default parameters. This example demonstrates the use of an additional option in the r.shaded.relief module that was shown above. 712 Kapitola 22. GRASS GIS Integration QGIS Desktop 3.16 User Guide Obr. 22.8: The GRASS shell, r.shaded.relief module The module r.shaded.relief can take a parameter zmult, which multiplies the elevation values relative to the X-Y coordinate units so that the hillshade effect is even more pronounced. • Load the gtopo30 elevation raster as above, then start the GRASS Toolbox and click on the GRASS shell. In the shell window, type the command r.shaded.relief map=gtopo30 shade=gtopo30_shade2 azimuth=315 zmult=3 and press Enter. • After the process finishes, shift to the Browse tab and double-click on the new gtopo30_shade2 raster to display it in QGIS. • As explained above, move the shaded relief raster below the gtopo30 raster in the table of contents, then check the transparency of the colored gtopo30 layer. You should see that the 3-D effect stands out more strongly compared with the first shaded relief map. 22.14. The GRASS Toolbox 713 QGIS Desktop 3.16 User Guide Obr. 22.9: Displaying shaded relief created with the GRASS module r.shaded.relief Raster statistics in a vector map The next example shows how a GRASS module can aggregate raster data and add columns of statistics for each polygon in a vector map. • Again using the Alaska data, refer to Importing data into a GRASS LOCATION to import the shapefiles/ trees.shp file into GRASS. • Now an intermediate step is required: centroids must be added to the imported trees map to make it a complete GRASS area vector (including both boundaries and centroids). • From the Toolbox, choose Vector ► Manage features, and open the module v.centroids. • Enter as the output vector map ‚forest_areas‘ and run the module. • Now load the forest_areas vector and display the types of forests - deciduous, evergreen, mixed - in different colors: In the layer Properties window, Symbology tab, choose from Legend type ‚Unique value‘ and set the Classification field to ‚VEGDESC‘. (Refer to the explanation of the symbology tab in Symbology Properties of the vector section.) • Next, reopen the GRASS Toolbox and open Vector ► Vector update by other maps. • Click on the v.rast.stats module. Enter gtopo30 and forest_areas. • Only one additional parameter is needed: Enter column prefix elev, and click Run. This is a computationally heavy operation, which will run for a long time (probably up to two hours). • Finally, open the forest_areas attribute table, and verify that several new columns have been added, including elev_min, elev_max, elev_mean, etc., for each forest polygon. 22.14.3 Customizing the GRASS Toolbox Nearly all GRASS modules can be added to the GRASS Toolbox. An XML interface is provided to parse the pretty simple XML files that configure the modules‘ appearance and parameters inside the Toolbox. A sample XML file for generating the module v.buffer (v.buffer.qgm) looks like this: The parser reads this definition and creates a new tab inside the Toolbox when you select the module. A more detailed description for adding new modules, changing a module’s group, etc., can be found at https://qgis.org/en/ site/getinvolved/development/addinggrasstools.html. 22.14. The GRASS Toolbox 715 QGIS Desktop 3.16 User Guide 716 Kapitola 22. GRASS GIS Integration KAPITOLA 23 QGIS processing framework 23.1 Úvod This chapter introduces the QGIS processing framework, a geoprocessing environment that can be used to call native and third-party algorithms from QGIS, making your spatial analysis tasks more productive and easy to accomplish. As a Core plugin, Processing is installed by default but you need to activate it: 1. Go to Plugins ► Manage and install plugins… 2. Click on the Installed tab at the left 3. Check the box next to the Processing entry 4. Close the dialog. A Processing menu is now available in the top menu bar. From there you can reach the main components of this framework. In the following sections, we will review how to use the graphical elements of this framework and make the most out of each one of them. There are four basic elements in the framework GUI, which are used to run algorithms for different purposes. Choosing one tool or another will depend on the kind of analysis that is to be performed and the particular characteristics of each user and project. All of them (except for the batch processing interface, which is called from the toolbox or the algorithm execution dialog, as we will see) can be accessed from the Processing menu item (you will see more entries; the remaining ones are not used to execute algorithms and will be explained later in this chapter). • The Toolbox: The main element of the GUI, it is used to execute a single algorithm or run a batch process based on that algorithm. 717 QGIS Desktop 3.16 User Guide Obr. 23.1: Nástroje zpracování • The Graphical Modeler: Several algorithms can be combined graphically using the modeler to define a workflow, creating a single process that involves several subprocesses. Obr. 23.2: Modelář zpracování 718 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide • The History manager: All actions performed using any of the aforementioned elements are stored in a history file and can be later easily reproduced using the history manager. Obr. 23.3: Processing History • The Batch Processing interface: This interface allows you to execute batch processes and automate the execution of a single algorithm on multiple datasets. Obr. 23.4: Batch Processing interface In the following sections, we will review each one of these elements in detail. 23.2 Configuring the Processing Framework The Processing Options menu (Settings► Options ► Processing tab) allows you to configure how algorithms work. Configuration parameters are structured in separate blocks that you can select on the left-hand side of the dialog. The General block contains a number of interesting parameters. • Default output raster layer extension is by default tif • Default output vector layer extension is by default gpkg • Invalid features filtering 23.2. Configuring the Processing Framework 719 QGIS Desktop 3.16 User Guide • Keep dialog open after running algorithm. Once an algorithm has finished execution and its output layers are loaded into the QGIS project, the algorithm dialog is closed. If you want to keep it open (to run the algorithm again with different parameters, or to better check the output that is written to the log tab), check this option. • Max Threads • Output folder • Pre-execution script and Post-execution script. These parameters point to files that contain scripts written using the processing scripting functionality, explained in the section covering scripting and the console. • Prefer output filename for layer names. The name of each resulting layer created by an algorithm is defined by the algorithm itself. In some cases, a fixed name might be used, meaning that the same output name will be used, no matter which input layer is used. In other cases, the name might depend on the name of the input layer or some of the parameters used to run the algorithm. If this checkbox is checked, the name will be taken from the output filename instead. Notice that, if the output is saved to a temporary file, the filename of this temporary file is usually a long and meaningless one intended to avoid collision with other already existing filenames. • Results group name. If you want to obtain all processing result layers in a group in the Layers panel, set a group name for this parameter. The group may exist already or not. QGIS will add all output layers to such a group. By default, this parameter is empty, so all output layers are added to different places in the Layers panel, depending on the item that is active when running an algorithm. Note that output layers will be loaded to the Layers panel only if Open output file after running algorithm is checked in the algorithm dialog. • Show algorithms with known issues • Show layer CRS definition in selection boxes • Show tooltip when there are disabled providers • Style for line layers, Style for point layers, Style for polygons layers and Style for raster layers are used for setting the default rendering style for output layers (that is, layers generated by processing algorithms). Just create the style you want using QGIS, save it to a file, and then enter the path to that file in the settings so the algorithms can use it. Whenever a layer is loaded by Processing and added to the QGIS canvas, it will be rendered with that style. Rendering styles can be configured individually for each algorithm and each one of its outputs. Just right-click on the name of the algorithm in the toolbox and select Edit rendering styles for outputs. You will see a dialog like the one shown next. Obr. 23.5: Rendering Styles Select the style file (.qml) that you want for each output and press OK. • Temporary output folder path • Warn before executing if parameter CRS’s do not match You will also find a block for algorithm Providers. Each entry in this block contains an Activate item that you can use to make algorithms appear or not in the toolbox. Some algorithm providers have their own configuration items, which will be explained when covering particular algorithm providers. 720 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide 23.3 The Toolbox The Processing Toolbox is the main element of the processing GUI, and the one that you are more likely to use in your daily work. It shows the list of all available algorithms grouped in different blocks called Providers, and custom models and scripts you can add to extend the set of tools. Hence the toolbox is the access point to run them, whether as a single process or as a batch process involving several executions of the same algorithm on different sets of inputs. Obr. 23.6: Nástroje zpracování Providers can be (de)activated in the Processing settings dialog. By default, only providers that do not rely on third-party applications (that is, those that only require QGIS elements to be run) are active. Algorithms requiring external applications might need additional configuration. Configuring providers is explained in a later chapter in this manual. In the upper part of the toolbox dialog, you will find a set of tools to: • work with Models : Create New Model…, Open Existing Model… and Add Model to Toolbox…; • work with Scripts : Create New Script…, Create New Script from Template…, Open Existing Script… and Add Script to Toolbox…; • open the History panel; • open the Results Viewer panel; • toggle the toolbox to the in-place modification mode using the Edit Features In-Place button: only the algorithms that are suitable to be executed on the active layer without outputting a new layer are displayed; • open the Options dialog. 23.3. The Toolbox 721 QGIS Desktop 3.16 User Guide Below this toolbar is a Search… box to help you easily find the tools you need. You can enter any word or phrase on the text box. Notice that, as you type, the number of algorithms, models or scripts in the toolbox is reduced to just those that contain the text you have entered in their names or keywords. Poznámka: At the top of the list of algorithms are displayed the most recent used tools; handy if you want to reexecute any. Obr. 23.7: Processing Toolbox showing search results To execute a tool, just double-click on its name in the toolbox. 23.3.1 The algorithm dialog Once you double-click on the name of the algorithm that you want to execute, a dialog similar to that in the Obr. 23.8 below is shown (in this case, the dialog corresponds to the Centroids algorithm). 722 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Obr. 23.8: Algorithm Dialog - Parameters The dialog shows two tabs (Parameters and Log) on the left part, the algorithm description on the right, and a set of buttons at the bottom. The Parameters tab is used to set the input values that the algorithm needs to be executed. It shows a list of input values and configuration parameters to be set. It of course has a different content, depending on the requirements of the algorithm to be executed, and is created automatically based on those requirements. Although the number and type of parameters depend on the characteristics of the algorithm, the structure is similar for all of them. The parameters found in the table can be of one of the following types. • A raster layer, to select from a list of all such layers available (currently opened) in QGIS. The selector contains as well a button on its right-hand side, to let you select filenames that represent layers currently not loaded in QGIS. • A vector layer, to select from a list of all vector layers available in QGIS. Layers not loaded in QGIS can be selected as well, as in the case of raster layers, but only if the algorithm does not require a table field selected from the attributes table of the layer. In that case, only opened layers can be selected, since they need to be open so as to retrieve the list of field names available. You will see an iterator button by each vector layer selector, as shown in the figure below. Obr. 23.9: Vector iterator button 23.3. The Toolbox 723 QGIS Desktop 3.16 User Guide If the algorithm contains several of them, you will be able to toggle just one of them. If the button corresponding to a vector input is toggled, the algorithm will be executed iteratively on each one of its features, instead of just once for the whole layer, producing as many outputs as times the algorithm is executed. This allows for automating the process when all features in a layer have to be processed separately. Poznámka: By default, the parameters dialog will show a description of the CRS of each layer along with its name. If you do not want to see this additional information, you can disable this functionality in the Processing Settings dialog, unchecking the General ► Show layer CRS definition in selection boxes option. • A table, to select from a list of all available in QGIS. Non-spatial tables are loaded into QGIS like vector layers, and in fact they are treated as such by the program. Currently, the list of available tables that you will see when executing an algorithm that needs one of them is restricted to tables coming from files in dBase (.dbf) or Comma-Separated Values (.csv) formats. • An option, to choose from a selection list of possible options. • A numerical value, to be introduced in a spin box. In some contexts (when the parameter applies at the feature level and not at the layer’s), you will find a Data-defined override button by its side, allowing you to open the expression builder and enter a mathematical expression to generate variable values for the parameter. Some useful variables related to data loaded into QGIS can be added to your expression, so you can select a value derived from any of these variables, such as the cell size of a layer or the northernmost coordinate of another one. Obr. 23.10: Vstup založený na výrazu • A range, with min and max values to be introduced in two text boxes. • A text string, to be introduced in a text box. • A field, to choose from the attributes table of a vector layer or a single table selected in another parameter. • A coordinate reference system. You can select it among the recently used ones from the drop-down list or from the CRS selection dialog that appears when you click on the button on the right-hand side. • An extent, a text box defining a rectangle through its corners coordinate in the format xmin, xmax, ymin, ymax. Clicking on the button on the right-hand side of the value selector, a pop-up menu will appear, giving you options to: – Calculate from layer: fills the text box with the coordinates of the bounding box of a layer to select among the loaded ones 724 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide – Use map canvas extent – Draw on canvas: the parameters window will hide itself, so you can click and drag onto the canvas. Once you have defined the extent rectangle, the dialog will reappear, containing the values in the extent text box. Obr. 23.11: Extent selector • A list of elements (whether raster or vector layers, tables, fields) to select from. Click on the … button at the left of the option to see a dialog like the following one. Multiple selection is allowed and when the dialog is closed, number of selected items is displayed in the parameter text box widget. Obr. 23.12: Multiple Selection • A small table to be edited by the user. These are used to define parameters like lookup tables or convolution kernels, among others. Click on the button on the right side to see the table and edit its values. Obr. 23.13: Pevná tabulka Depending on the algorithm, the number of rows can be modified or not by using the buttons on the right side of the window. 23.3. The Toolbox 725 QGIS Desktop 3.16 User Guide Poznámka: Some algorithms require many parameters to run, e.g. in the Raster calculator you have to specify manually the cell size, the extent and the CRS. You can avoid to choose all the parameters manually when the algorithm has the Reference layers parameter. With this parameter you can choose the reference layer and all its properties (cell size, extent, CRS) will be used. Along with the Parameters tab, there is another tab named Log (see Obr. 23.14 below). Information provided by the algorithm during its execution is written in this tab, and allow you to track the execution and be aware and have more details about the algorithm as it runs. Information on algorithm execution is also output in the View ► Panels ► Log Messages Panel. Notice that not all algorithms write information to the Log tab, and many of them might run silently without producing any output other than the final files. Check the Log Messages Panel in that case. Obr. 23.14: Algorithm Dialog - Log At the bottom of the Log tab you will find buttons to Save Log to File, Copy Log to Clipboard and Clear Log. These are particularly handy when you have checked the Keep dialog open after running algorithm in the General part of the Processing options. On the right hand side of the dialog you will find a short description of the algorithm, which will help you understand its purpose and its basic ideas. If such a description is not available, the description panel will not be shown. For a more detailed help file, which might include description of every parameter it uses, or examples, you will find a Help button at the bottom of the dialog bringing you to the Processing algorithms documentation or to the provider documentation (for some third-party providers). 726 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide The Run as batch process button triggers the batch processing mode allowing to configure and run multiple instances of the algorithm with a variety of parameters. A note on projections Processing algorithm execution are always performed in the input layer coordinate reference system (CRS). Due to QGIS’s on-the-fly reprojecting capabilities, although two layers might seem to overlap and match, that might not be true if their original coordinates are used without reprojecting them onto a common coordinate system. Whenever you use more than one layer as input to a QGIS native algorithm, whether vector or raster, the layers will all be reprojected to match the coordinate reference system of the first input layer. This is however less true for most of the external applications whose algorithms are exposed through the processing framework as they assume that all of the layers are already in a common coordinate system and ready to be analyzed. By default, the parameters dialog will show a description of the CRS of each layer along with its name, making it easy to select layers that share the same CRS to be used as input layers. If you do not want to see this additional information, you can disable this functionality in the Processing settings dialog, unchecking the Show layer CRS definition in selection boxes option. If you try to execute an algorithm using as input two or more layers with unmatching CRSs, a warning dialog will be shown. This occurs thanks to the Warn before executing if layer CRS’s do not match option. You still can execute the algorithm, but be aware that in most cases that will produce wrong results, such as empty layers due to input layers not overlapping. Tip: Use Processing algorithms to do intermediate reprojection When an algorithm can not successfully perform on multiple input layers due to unmatching CRSs, use QGIS internal algorithm such as Reproject layer to perform layers‘ reprojection to the same CRS before executing the algorithm using these outputs. 23.3.2 Data objects generated by algorithms Data objects generated by an algorithm can be of any of the following types: • A raster layer • A vector layer • A table • An HTML file (used for text and graphical outputs) These are all saved to disk, and the parameters table will contain a text box corresponding to each one of these outputs, where you can type the output channel to use for saving it. An output channel contains the information needed to save the resulting object somewhere. In the most usual case, you will save it to a file, but in the case of vector layers, and when they are generated by native algorithms (algorithms not using external applications) you can also save to a PostGIS, GeoPackage or SpatiaLite database, or a memory layer. To select an output channel, just click on the button on the right side of the text box, and you will see a small context menu with the available options. In the most usual case, you will select saving to a file. If you select that option, you will be prompted with a save file dialog, where you can select the desired file path. Supported file extensions are shown in the file format selector of the dialog, depending on the kind of output and the algorithm. The format of the output is defined by the filename extension. The supported formats depend on what is supported by the algorithm itself. To select a format, just select the corresponding file extension (or add it, if you are directly typing the file path instead). If the extension of the file path you entered does not match any of the supported formats, a default extension will be appended to the file path, and the file format corresponding to that extension will be used 23.3. The Toolbox 727 QGIS Desktop 3.16 User Guide to save the layer or table. Default extensions are .dbf for tables, .tif for raster layers and .gpkg for vector layers. These can be modified in the setting dialog, selecting any other of the formats supported by QGIS. If you do not enter any filename in the output text box (or select the corresponding option in the context menu), the result will be saved as a temporary file in the corresponding default file format, and it will be deleted once you exit QGIS (take care with that, in case you save your project and it contains temporary layers). You can set a default folder for output data objects. Go to the settings dialog (you can open it from the Settings ► Options ► Processing menu), and in the General group, you will find a parameter named Output folder. This output folder is used as the default path in case you type just a filename with no path (i.e., myfile.shp) when executing an algorithm. When running an algorithm that uses a vector layer in iterative mode, the entered file path is used as the base path for all generated files, which are named using the base name and appending a number representing the index of the iteration. The file extension (and format) is used for all such generated files. Apart from raster layers and tables, algorithms also generate graphics and text as HTML files. These results are shown at the end of the algorithm execution in a new dialog. This dialog will keep the results produced by any algorithm during the current session, and can be shown at any time by selecting Processing ► Results Viewer from the QGIS main menu. Some external applications might have files (with no particular extension restrictions) as output, but they do not belong to any of the categories above. Those output files will not be processed by QGIS (opened or included into the current QGIS project), since most of the time they correspond to file formats or elements not supported by QGIS. This is, for instance, the case with LAS files used for LiDAR data. The files get created, but you won’t see anything new in your QGIS working session. For all the other types of output, you will find a checkbox that you can use to tell the algorithm whether to load the file once it is generated by the algorithm or not. By default, all files are opened. Optional outputs are not supported. That is, all outputs are created. However, you can uncheck the corresponding checkbox if you are not interested in a given output, which essentially makes it behave like an optional output (in other words, the layer is created anyway, but if you leave the text box empty, it will be saved to a temporary file and deleted once you exit QGIS). 23.4 The history manager 23.4.1 The processing history Every time you execute an algorithm, information about the process is stored in the history manager. The date and time of the execution are saved, along with the parameters used, making it is easy to track and control all the work that has been developed using the Processing framework, and to reproduce it. Obr. 23.15: Historie 728 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Process information is kept as a command-line expression, even if the algorithm was launched from the toolbox. This makes it useful for those learning how to use the command-line interface, since they can call an algorithm using the toolbox and then check the history manager to see how it could be called from the command line. Apart from browsing the entries in the registry, you can also re-execute processes by simply double-clicking on the entry. The algorithm dialog then opens with parameters already set, and you can change any of them to fit your needs and re-run the algorithm. The History dialog also provides a convenient way to contribute to the consolidation of the testing infrastructure of QGIS Processing algorithms and scripts. When you right-click on an entry, you can Create Test… using the concerned algorithm and parameters, following instructions at https://github.com/qgis/QGIS/blob/release-3_16/ python/plugins/processing/tests/README.md. 23.4.2 The processing log The history dialog only contains the execution calls, but not the information produced by the algorithm when executed. That information is written to the QGIS log (View ► Panels ► Log Messages Panel). Third-party algorithms are usually executed by using their command-line interfaces, which communicate with the user via the console. Although that console is not shown, usually a full dump of it is written to the log each time you run one of those algorithms. To avoid cluttering the log with that information, you can disable it for each provider in the settings dialog. Some algorithms, even if they can produce a result with the given input data, output comments or additional information to log when they detect potential problems with the data, in order to warn you. Make sure you check those messages in the log if you get unexpected results. 23.5 The graphical modeler The graphical modeler allows you to create complex models using a simple and easy-to-use interface. When working with a GIS, most analysis operations are not isolated, rather part of a chain of operations. Using the graphical modeler, that chain of operations can be wrapped into a single process, making it convenient to execute later with a different set of inputs. No matter how many steps and different algorithms it involves, a model is executed as a single algorithm, saving time and effort. The graphical modeler can be opened from the Processing menu (Processing ► Graphical Modeler). The modeler has a working canvas where the structure of the model and the workflow it represents are shown. The left part of the window is a section with five panels that can be used to add new elements to the model: 1. Model Properties: you can specify the name of the model and the group that will contain it 2. Inputs: all the inputs that will shape your model 3. Algorithms: the Processing algorithms available 4. Variables: you can also define variables that will only be available in the Processing Modeler 5. Undo History: this panel will register everything that happens in the modeler, making it easy to cancel things you did wrong. 23.5. The graphical modeler 729 QGIS Desktop 3.16 User Guide Obr. 23.16: Modelář Creating a model involves two basic steps: 1. Definition of necessary inputs. These inputs will be added to the parameters window, so the user can set their values when executing the model. The model itself is an algorithm, so the parameters window is generated automatically as for all algorithms available in the Processing framework. 2. Definition of the workflow. Using the input data of the model, the workflow is defined by adding algorithms and selecting how they use the defined inputs or the outputs generated by other algorithms in the model. 23.5.1 Definition of inputs The first step is to define the inputs for the model. The following elements are found in the Inputs panel on the left side of the modeler window: • Authentication Configuration • Boolean • Color • Connection Name • Coordinate Operation • SRS • Database Schema • Database Table • Datetime 730 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide • Vzdálenost • Enum • Výraz • Rozsah • Field Aggregates • Mapovač polí • Soubor/Složka • Geometry • Mapová vrstva • Map Theme • Matice • Mesh Layer • Vícenásobný vstup • Číslo • Bod • Print Layout • Print Layout Item • Rozsah • Rastrové pásmo • Rastrová vrstva • Scale • Řetězec • TIN Creation Layers • Vektorové prvky • Vektorové pole • Vektorová vrstva • Vector Tile Writer Layers Poznámka: Hovering with the mouse over the inputs will show a tooltip with additional information. When double-clicking on an element, a dialog is shown that lets you define its characteristics. Depending on the parameter, the dialog will contain at least one element (the description, which is what the user will see when executing the model). For example, when adding a numerical value, as can be seen in the next figure, in addition to the description of the parameter, you have to set a default value and the range of valid values. 23.5. The graphical modeler 731 QGIS Desktop 3.16 User Guide Obr. 23.17: Model Parameters Definition You can define your input as mandatory for your model by checking the Mandatory option and by checking the Advanced checkbox you can set the input to be within the Advanced section. This is particularly useful when the model has many parameters and some of them are not trivial, but you still want to choose them. The Comments tab allows you to tag the input with more information, to better describe the parameter. Comments are visible only in the modeler canvas and not in the final algorithm dialog. For each added input, a new element is added to the modeler canvas. 732 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Obr. 23.18: Model Parameters You can also add inputs by dragging the input type from the list and dropping it at the position where you want it in the modeler canvas. If you want to change a parameter of an existing input, just double click on it, and the same dialog will pop up. 23.5.2 Definition of the workflow In the following example we will add two inputs and two algorithms. The aim of the model is to copy the elevation values from a DEM raster layer to a line layer using the Drape algorithm, and then calculate the total ascent of the line layer using the Climb Along Line algorithm. In the Inputs tab, choose the two inputs as Vector Layer for the line and Raster Layer for the DEM. We are now ready to add the algorithms to the workflow. Algorithms can be found in the Algorithms panel, grouped much in the same way as they are in the Processing toolbox. Obr. 23.19: Model Inputs To add an algorithm to a model, double-click on its name or drag and drop it, just like for inputs. As for the inputs you can change the description of the algorithm and add a comment. When adding an algorithm, an execution dialog will appear, with a content similar to the one found in the execution panel that is shown when executing the algorithm from the toolbox. The following picture shows both the Drape (set Z value from raster) and the Climb along line algorithm dialogs. 23.5. The graphical modeler 733 QGIS Desktop 3.16 User Guide Obr. 23.20: Model Algorithm parameters As you can see there are some differences. You have four choices to define the algorithm inputs: • Value: allows you to set the parameter from a loaded layer in the QGIS project or to browse a layer from a folder • Pre-calculated Value: with this option you can open the Expression Builder and define your own expression to fill the parameter. Model inputs together with some other layer statistics are available as variables and are listed at the top of the Search dialog of the Expression Builder • Model Input: choose this option if the parameter comes from an input of the model you have defined. Once clicked, this option will list all the suitable inputs for the parameter • Algorithm Output: is useful when the input parameter of an algorithm is an output of another algorithm Algorithm outputs have the addditional Model Output option that makes the output of the algorithm available in the model. If a layer generated by the algorithm is only to be used as input to another algorithm, don’t edit that text box. In the following picture you can see the two input parameters defined as Model Input and the temporary output layer: 734 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Obr. 23.21: Algorithm Input and Output parameters In all cases, you will find an additional parameter named Dependencies that is not available when calling the algorithm from the toolbox. This parameter allows you to define the order in which algorithms are executed, by explicitly defining one algorithm as a parent of the current one. This will force the parent algorithm to be executed before the current one. When you use the output of a previous algorithm as the input of your algorithm, that implicitly sets the previous algorithm as parent of the current one (and places the corresponding arrow in the modeler canvas). However, in some cases an algorithm might depend on another one even if it does not use any output object from it (for instance, an algorithm that executes a SQL sentence on a PostGIS database and another one that imports a layer into that same database). In that case, just select the previous algorithm in the Dependencies parameter and they will be executed in the correct order. Once all the parameters have been assigned valid values, click on OK and the algorithm will be added to the canvas. It will be linked to the elements in the canvas (algorithms or inputs) that provide objects that are used as inputs for 23.5. The graphical modeler 735 QGIS Desktop 3.16 User Guide the algorithm. Elements can be dragged to a different position on the canvas. This is useful to make the structure of the model more clear and intuitive. You can also resize elements. This is particularly useful if the description of the input or algorithm is long. Links between elements are updated automatically and you can see a plus button at the top and at the bottom of each algorithm. Clicking the button will list all the inputs and outputs of the algorithm so you can have a quick overview. You can zoom in and out by using the mouse wheel. Obr. 23.22: A complete model You can run your algorithm any time by clicking on the button. In order to use the algorithm from the toolbox, it has to be saved and the modeler dialog closed, to allow the toolbox to refresh its contents. 23.5.3 Interacting with the canvas and elements You can use the , , and buttons to zoom the modeler canvas. The behavior of the buttons is basically the same of the main QGIS toolbar. The Undo History panel together with the and buttons are extremely useful to quickly rollback to a previous situation. The Undo History panel lists everything you have done when creating the workflow. You can move or resize many elements at the same time by first selecting them, dragging the mouse. If you want to snap the elements while moving them in the canvas you can choose View ► Enable Snapping. The Edit menu contains some very useful options to interact with your model elements: 736 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide • Select All : select all elements of the model • Snap Selected Components to Grid: snap and align the elements into a grid • Undo : undo the last action • Redo : redo the last action • Cut : cut the selected elements • Copy : copy the selected elements • Paste : paste the elements • Delete Selected Components : delete all the selected elements from the model • Add Group Box: add a draggable box to the canvas. This feature is very useful in big models to group elements in the modeler canvas and to keep the workflow clean. For example we might group together all the inputs of the example: Obr. 23.23: Model Group Box You can change the name and the color of the boxes. Group boxes are very useful when used together with View ► Zoom To. This allows you to zoom to a specific part of the model. You might want to change the order of the inputs and how they are listed in the main model dialog. At the bottom of the Input panel you will find the Reorder Model Inputs... button and by clicking on it a new dialog pops up allowing you to change the order of the inputs: 23.5. The graphical modeler 737 QGIS Desktop 3.16 User Guide Obr. 23.24: Reorder Model Inputs 23.5.4 Saving and loading models Use the Save model button to save the current model and the Open Model button to open a previously saved model. Models are saved with the .model3 extension. If the model has already been saved from the modeler window, you will not be prompted for a filename. Since there is already a file associated with the model, that file will be used for subsequent saves. Before saving a model, you have to enter a name and a group for it in the text boxes in the upper part of the window. Models saved in the models folder (the default folder when you are prompted for a filename to save the model) will appear in the toolbox in the corresponding branch. When the toolbox is invoked, it searches the models folder for files with the .model3 extension and loads the models they contain. Since a model is itself an algorithm, it can be added to the toolbox just like any other algorithm. Models can also be saved within the project file using the Save model in project button. Models saved using this method won’t be written as .model3 files on the disk but will be embedded in the project file. Project models are available in the Project models menu of the toolbox. The models folder can be set from the Processing configuration dialog, under the Modeler group. Models loaded from the models folder appear not only in the toolbox, but also in the algorithms tree in the Algorithms tab of the modeler window. That means that you can incorporate a model as a part of a bigger model, just like other algorithms. Models will show up in the Browser panel and can be run from there. 738 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Exporting a model as an image, PDF or SVG A model can also be exported as an image, SVG or PDF (for illustration purposes) by clicking Export as image , Export as PDF or Export as SVG . 23.5.5 Editing a model You can edit the model you are currently creating, redefining the workflow and the relationships between the algorithms and inputs that define the model. If you right-click on an algorithm in the canvas, you will see a context menu like the one shown next: Obr. 23.25: Modeler Right Click Selecting the Remove option will cause the selected algorithm to be removed. An algorithm can be removed only if there are no other algorithms depending on it. That is, if no output from the algorithm is used in a different one as input. If you try to remove an algorithm that has others depending on it, a warning message like the one you can see below will be shown: Obr. 23.26: Cannot Delete Algorithm Selecting the Edit… option will show the parameter dialog of the algorithm, so you can change the inputs and parameter values. Not all input elements available in the model will appear as available inputs. Layers or values generated at a more advanced step in the workflow defined by the model will not be available if they cause circular dependencies. Select the new values and click on the OK button as usual. The connections between the model elements will change in the modeler canvas accordingly. The Add comment… allows you to add a comment to the algorithm to better describe the behavior. A model can be run partially by deactivating some of its algorithms. To do it, select the Deactivate option in the context menu that appears when right-clicking on an algorithm element. The selected algorithm, and all the ones in the model that depend on it will be displayed in grey and will not be executed as part of the model. 23.5. The graphical modeler 739 QGIS Desktop 3.16 User Guide Obr. 23.27: Model With Deactivated Algorithms When right-clicking on an algorithm that is not active, you will see a Activate menu option that you can use to reactivate it. 23.5.6 Editing model help files and meta-information You can document your models from the modeler itself. Click on the Edit model help button, and a dialog like the one shown next will appear. 740 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Obr. 23.28: Editing Help On the right-hand side, you will see a simple HTML page, created using the description of the input parameters and outputs of the algorithm, along with some additional items like a general description of the model or its author. The first time you open the help editor, all these descriptions are empty, but you can edit them using the elements on the left-hand side of the dialog. Select an element on the upper part and then write its description in the text box below. Model help is saved as part of the model itself. 23.5. The graphical modeler 741 QGIS Desktop 3.16 User Guide 23.5.7 Exporting a model as a Python script As we will see in a later chapter, Processing algorithms can be called from the QGIS Python console, and new Processing algorithms can be created using Python. A quick way to create such a Python script is to create a model and then export it as a Python file. To do so, click on the Export as Script Algorithm… in the modeler canvas or right click on the name of the model in the Processing Toolbox and choose Export Model as Python Algorithm… . 23.5.8 About available algorithms You might notice that some algorithms that can be executed from the toolbox do not appear in the list of available algorithms when you are designing a model. To be included in a model, an algorithm must have the correct semantic. If an algorithm does not have such a well-defined semantic (for instance, if the number of output layers cannot be known in advance), then it is not possible to use it within a model, and it will not appear in the list of algorithms that you can find in the modeler dialog. 23.6 The batch processing interface 23.6.1 Úvod All algorithms (including models) can be executed as a batch process. That is, they can be executed using not just a single set of inputs, but several of them, executing the algorithm as many times as needed. This is useful when processing large amounts of data, since it is not necessary to launch the algorithm many times from the toolbox. To execute an algorithm as a batch process, right-click on its name in the toolbox and select the Execute as batch process option in the pop-up menu that will appear. Obr. 23.29: Batch Processing from right-click If you have the execution dialog of the algorithm open, you can also start the batch processing interface from there, clicking on the Run as batch process… button. 742 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Obr. 23.30: Batch Processing From Algorithm Dialog 23.6.2 The parameters table Executing a batch process is similar to performing a single execution of an algorithm. Parameter values have to be defined, but in this case we need not just a single value for each parameter, but a set of them instead, one for each time the algorithm has to be executed. Values are introduced using a table like the one shown next. Obr. 23.31: Batch Processing Each line of this table represents a single execution of the algorithm, and each cell contains the value of one of the parameters. It is similar to the parameters dialog that you see when executing an algorithm from the toolbox, but with a different arrangement. By default, the table contains just two rows. You can add or remove rows using the buttons on the lower part of the window. Once the size of the table has been set, it has to be filled with the desired values. 23.6. The batch processing interface 743 QGIS Desktop 3.16 User Guide 23.6.3 Filling the parameters table For most parameters, setting the value is trivial. Just type the value or select it from the list of available options, depending on the parameter type. Filenames for input data objects are introduced directly typing or, more conveniently, clicking on the … button on the right hand of the cell, which will show a context menu with two option: one for selecting from the layers currently opened and another to select from the filesystem. This second option, when selected, shows a typical file chooser dialog. Multiple files can be selected at once. If the input parameter represents a single data object and several files are selected, each one of them will be put in a separate row, adding new ones if needed. If the parameter represents a multiple input, all the selected files will be added to a single cell, separated by semicolons (;). Layer identifiers can be directly typed in the parameter text box. You can enter the full path to a file or the name of a layer that is currently loaded in the current QGIS project. The name of the layer will be automatically resolved to its source path. Notice that, if several layers have the same name, this might cause unexpected results due to ambiguity. Output data objects are always saved to a file and, unlike when executing an algorithm from the toolbox, saving to a temporary file or database is not permitted. You can type the name directly or use the file chooser dialog that appears when clicking on the accompanying button. Once you select the file, a new dialog is shown to allow for autocompletion of other cells in the same column (same parameter). Obr. 23.32: Batch Processing Save If the default value (‚Do not autocomplete‘) is selected, it will just put the selected filename in the selected cell from the parameters table. If any of the other options is selected, all the cells below the selected one will be automatically filled based on a defined criteria. This way, it is much easier to fill the table, and the batch process can be defined with less effort. Automatic filling can be done by simply adding correlative numbers to the selected file path, or by appending the value of another field at the same row. This is particularly useful for naming output data objects according to input ones. Obr. 23.33: Batch Processing File Path 744 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide 23.6.4 Executing the batch process To execute the batch process once you have introduced all the necessary values, just click on OK. Progress of the global batch task will be shown in the progress bar in the lower part of the dialog. 23.7 Using processing algorithms from the console The console allows advanced users to increase their productivity and perform complex operations that cannot be performed using any of the other GUI elements of the processing framework. Models involving several algorithms can be defined using the command-line interface, and additional operations such as loops and conditional sentences can be added to create more flexible and powerful workflows. There is not a processing console in QGIS, but all processing commands are available instead from the QGIS built-in Python console. That means that you can incorporate those commands into your console work and connect processing algorithms to all the other features (including methods from the QGIS API) available from there. The code that you can execute from the Python console, even if it does not call any specific processing method, can be converted into a new algorithm that you can later call from the toolbox, the graphical modeler or any other component, just like you do with any other algorithm. In fact, some algorithms that you can find in the toolbox are simple scripts. In this section, we will see how to use processing algorithms from the QGIS Python console, and also how to write algorithms using Python. 23.7.1 Calling algorithms from the Python console The first thing you have to do is to import the processing functions with the following line: >>> from qgis import processing Now, there is basically just one (interesting) thing you can do with that from the console: execute an algorithm. That is done using the run() method, which takes the name of the algorithm to execute as its first parameter, and then a variable number of additional parameters depending on the requirements of the algorithm. So the first thing you need to know is the name of the algorithm to execute. That is not the name you see in the toolbox, but rather a unique command–line name. To find the right name for your algorithm, you can use the processingRegistry. Type the following line in your console: >>> for alg in QgsApplication.processingRegistry().algorithms(): print(alg.id(), "->", alg.displayName()) You will see something like this (with some extra dashes added to improve readability). 3d:tessellate --------------> Tessellate gdal:aspect ----------------> Aspect gdal:assignprojection ------> Assign projection gdal:buffervectors ---------> Buffer vectors gdal:buildvirtualraster ----> Build Virtual Raster gdal:cliprasterbyextent ----> Clip raster by extent gdal:cliprasterbymasklayer -> Clip raster by mask layer gdal:clipvectorbyextent ----> Clip vector by extent gdal:clipvectorbypolygon ---> Clip vector by mask layer gdal:colorrelief -----------> Color relief gdal:contour ---------------> Contour gdal:convertformat ---------> Convert format gdal:dissolve --------------> Dissolve ... That’s a list of all the available algorithm IDs, sorted by provider name and algorithm name, along with their corresponding names. 23.7. Using processing algorithms from the console 745 QGIS Desktop 3.16 User Guide Once you know the command-line name of the algorithm, the next thing to do is to determine the right syntax to execute it. That means knowing which parameters are needed when calling the run() method. There is a method to describe an algorithm in detail, which can be used to get a list of the parameters that an algorithm requires and the outputs that it will generate. To get this information, you can use the algorithmHelp(id_of_the_algorithm) method. Use the ID of the algorithm, not the full descriptive name. Calling the method with native:buffer as parameter (qgis:buffer is an alias for native:buffer and will also work), you get the following description: >>> processing.algorithmHelp("native:buffer") Buffer (native:buffer) This algorithm computes a buffer area for all the features in an input layer, using a fixed or dynamic distance. The segments parameter controls the number of line segments to use to approximate a quarter circle when creating rounded offsets. The end cap style parameter controls how line endings are handled in the buffer. The join style parameter specifies whether round, miter or beveled joins should be used when offsetting corners in a line. The miter limit parameter is only applicable for miter join styles, and controls the maximum distance from the offset curve to use when creating a mitered join. ---------------- Input parameters ---------------- INPUT: Input layer Parameter type: QgsProcessingParameterFeatureSource Accepted data types: - str: layer ID - str: layer name - str: layer source - QgsProcessingFeatureSourceDefinition - QgsProperty - QgsVectorLayer DISTANCE: Distance Parameter type: QgsProcessingParameterDistance Accepted data types: - int - float - QgsProperty SEGMENTS: Segments Parameter type: QgsProcessingParameterNumber Accepted data types: - int (continues on next page) 746 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) - float - QgsProperty END_CAP_STYLE: End cap style Parameter type: QgsProcessingParameterEnum Available values: - 0: Round - 1: Flat - 2: Square Accepted data types: - int - str: as string representation of int, e.g. '1' - QgsProperty JOIN_STYLE: Join style Parameter type: QgsProcessingParameterEnum Available values: - 0: Round - 1: Miter - 2: Bevel Accepted data types: - int - str: as string representation of int, e.g. '1' - QgsProperty MITER_LIMIT: Miter limit Parameter type: QgsProcessingParameterNumber Accepted data types: - int - float - QgsProperty DISSOLVE: Dissolve result Parameter type: QgsProcessingParameterBoolean Accepted data types: - bool - int - str - QgsProperty OUTPUT: Buffered Parameter type: QgsProcessingParameterFeatureSink Accepted data types: - str: destination vector file, e.g. 'd:/test.shp' - str: 'memory:' to store result in temporary memory layer - str: using vector provider ID prefix and destination URI, e.g. 'postgres:...' to store result in PostGIS table - QgsProcessingOutputLayerDefinition - QgsProperty (continues on next page) 23.7. Using processing algorithms from the console 747 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) ---------------- Outputs ---------------- OUTPUT: Buffered Now you have everything you need to run any algorithm. As we have already mentioned, algorithms can be run using: run(). Its syntax is as follows: >>> processing.run(name_of_the_algorithm, parameters) Where parameters is a dictionary of parameters that depend on the algorithm you want to run, and is exactly the list that the algorithmHelp() method gives you. 1 >>> processing.run("native:buffer", {'INPUT': '/data/lines.shp', 2 'DISTANCE': 100.0, 3 'SEGMENTS': 10, 4 'DISSOLVE': True, 5 'END_CAP_STYLE': 0, 6 'JOIN_STYLE': 0, 7 'MITER_LIMIT': 10, 8 'OUTPUT': '/data/buffers.shp'}) If a parameter is optional and you do not want to use it, then don’t include it in the dictionary. If a parameter is not specified, the default value will be used. Depending on the type of parameter, values are introduced differently. The next list gives a quick review of how to introduce values for each type of input parameter: • Raster Layer, Vector Layer or Table. Simply use a string with the name that identifies the data object to use (the name it has in the QGIS Table of Contents) or a filename (if the corresponding layer is not opened, it will be opened but not added to the map canvas). If you have an instance of a QGIS object representing the layer, you can also pass it as parameter. • Enumeration. If an algorithm has an enumeration parameter, the value of that parameter should be entered using an integer value. To know the available options, you can use the algorithmHelp() command, as above. For instance, the native:buffer algorithm has an enumeration called JOIN_STYLE: JOIN_STYLE: Join style Parameter type: QgsProcessingParameterEnum Available values: - 0: Round - 1: Miter - 2: Bevel Accepted data types: - int - str: as string representation of int, e.g. '1' - QgsProperty In this case, the parameter has three options. Notice that ordering is zero-based. • Boolean. Use True or False. • Multiple input. The value is a string with input descriptors separated by semicolons (;). As in the case of single layers or tables, each input descriptor can be the data object name, or its file path. • Table Field from XXX. Use a string with the name of the field to use. This parameter is case-sensitive. 748 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide • Fixed Table. Type the list of all table values separated by commas (,) and enclosed between quotes ("). Values start on the upper row and go from left to right. You can also use a 2-D array of values representing the table. • CRS. Enter the EPSG code number of the desired CRS. • Extent. You must use a string with xmin, xmax, ymin and ymax values separated by commas (,). Boolean, file, string and numerical parameters do not need any additional explanations. Input parameters such as strings, booleans, or numerical values have default values. The default value is used if the corresponding parameter entry is missing. For output data objects, type the file path to be used to save it, just as it is done from the toolbox. If the output object is not specified, the result is saved to a temporary file (or skipped if it is an optional output). The extension of the file determines the file format. If you enter a file extension not supported by the algorithm, the default file format for that output type will be used, and its corresponding extension appended to the given file path. Unlike when an algorithm is executed from the toolbox, outputs are not added to the map canvas if you execute that same algorithm from the Python console using run(), but runAndLoadResults() will do that. The run() method returns a dictionary with one or more output names (the ones shown in the algorithm description) as keys and the file paths of those outputs as values: 1 >>> myresult = processing.run("native:buffer", {'INPUT': '/data/lines.shp', 2 'DISTANCE': 100.0, 3 'SEGMENTS': 10, 4 'DISSOLVE': True, 5 'END_CAP_STYLE': 0, 6 'JOIN_STYLE': 0, 7 'MITER_LIMIT': 10, 8 'OUTPUT': '/data/buffers.shp'}) 9 >>> myresult['OUTPUT'] 10 /data/buffers.shp You can load feature output by passing the corresponding file paths to the load() method. Or you could use runAndLoadResults() instead of run() to load them immediately. If you want to open an algorithm dialog from the console you can use the createAlgorithmDialog method. The only mandatory parameter is the algorithm name, but you can also define the dictionary of parameters so that the dialog will be filled automatically: 1 >>> my_dialog = processing.createAlgorithmDialog("native:buffer", { 2 'INPUT': '/data/lines.shp', 3 'DISTANCE': 100.0, 4 'SEGMENTS': 10, 5 'DISSOLVE': True, 6 'END_CAP_STYLE': 0, 7 'JOIN_STYLE': 0, 8 'MITER_LIMIT': 10, 9 'OUTPUT': '/data/buffers.shp'}) 10 >>> my_dialog.show() The execAlgorithmDialog method opens the dialog immediately: 1 >>> processing.execAlgorithmDialog("native:buffer", { 2 'INPUT': '/data/lines.shp', 3 'DISTANCE': 100.0, 4 'SEGMENTS': 10, 5 'DISSOLVE': True, 6 'END_CAP_STYLE': 0, 7 'JOIN_STYLE': 0, 8 'MITER_LIMIT': 10, 9 'OUTPUT': '/data/buffers.shp'}) 23.7. Using processing algorithms from the console 749 QGIS Desktop 3.16 User Guide 23.7.2 Creating scripts and running them from the toolbox You can create your own algorithms by writing Python code. Processing scripts extend QgsProcessingAlgorithm, so you need to add some extra lines of code to implement mandatory functions. You can find Create new script (clean sheet) and Create New Script from Template (template that includes code for mandatory functions of QgsProcessingAlgorithm) under the Scripts dropdown menu on the top of the Processing toolbox. The Processing Script Editor will open, and that’s where you should type your code. Saving the script from there in the scripts folder (the default folder when you open the save file dialog) with a .py extension should create the corresponding algorithm. The name of the algorithm (the one you will see in the toolbox) is defined within the code. Let’s have a look at the following code, which defines a Processing algorithm that performs a buffer operation with a user defined buffer distance on a vector layer that is specified by the user, after first smoothing the layer. 1 from qgis.core import (QgsProcessingAlgorithm, 2 QgsProcessingParameterNumber, 3 QgsProcessingParameterFeatureSource, 4 QgsProcessingParameterFeatureSink) 5 6 from qgis import processing 7 8 class algTest(QgsProcessingAlgorithm): 9 INPUT_BUFFERDIST = 'BUFFERDIST' 10 OUTPUT_BUFFER = 'OUTPUT_BUFFER' 11 INPUT_VECTOR = 'INPUT_VECTOR' 12 13 def __init__(self): 14 super().__init__() 15 16 def name(self): 17 return "algTest" 18 19 def displayName(self): 20 return "algTest script" 21 22 def createInstance(self): 23 return type(self)() 24 25 def initAlgorithm(self, config=None): 26 self.addParameter(QgsProcessingParameterFeatureSource( 27 self.INPUT_VECTOR, "Input vector")) 28 self.addParameter(QgsProcessingParameterNumber( 29 self.INPUT_BUFFERDIST, "Buffer distance", 30 QgsProcessingParameterNumber.Double, 31 100.0)) 32 self.addParameter(QgsProcessingParameterFeatureSink( 33 self.OUTPUT_BUFFER, "Output buffer")) 34 35 def processAlgorithm(self, parameters, context, feedback): 36 #DO SOMETHING 37 algresult = processing.run("native:smoothgeometry", 38 {'INPUT': parameters[self.INPUT_VECTOR], 39 'ITERATIONS':2, 40 'OFFSET':0.25, 41 'MAX_ANGLE':180, 42 'OUTPUT': 'memory:'}, 43 context=context, feedback=feedback, is_child_algorithm=True) 44 smoothed = algresult['OUTPUT'] 45 algresult = processing.run('native:buffer', 46 {'INPUT': smoothed, 47 'DISTANCE': parameters[self.INPUT_BUFFERDIST], (continues on next page) 750 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) 48 'SEGMENTS': 5, 49 'END_CAP_STYLE': 0, 50 'JOIN_STYLE': 0, 51 'MITER_LIMIT': 10, 52 'DISSOLVE': True, 53 'OUTPUT': parameters[self.OUTPUT_BUFFER]}, 54 context=context, feedback=feedback, is_child_algorithm=True) 55 buffered = algresult['OUTPUT'] 56 return {self.OUTPUT_BUFFER: buffered} After doing the necessary imports, the following QgsProcessingAlgorithm functions are specified: • name(): The id of the algorithm (lowercase). • displayName(): A human readable name for the algorithm. • createInstance(): Create a new instance of the algorithm class. • initAlgorithm(): Configure the parameterDefinitions and outputDefinitions. Here you describe the parameters and output of the algorithm. In this case, a feature source for the input, a feature sink for the result and a number for the buffer distance. • processAlgorithm(): Do the work. Here we first run the smoothgeometry algorithm to smooth the geometry, and then we run the buffer algorithm on the smoothed output. To be able to run algorithms from within another algorithm we have to set the is_child_algorithm argument to True. You can see how input and output parameters are used as parameters to the smoothgeometry and buffer algorithms. There are a number of different parameter types available for input and output. Below is an alphabetically sorted list: • QgsProcessingParameterAggregate • QgsProcessingParameterAuthConfig • QgsProcessingParameterBand • QgsProcessingParameterBoolean • QgsProcessingParameterColor • QgsProcessingParameterCoordinateOperation • QgsProcessingParameterCrs • QgsProcessingParameterDatabaseSchema • QgsProcessingParameterDatabaseTable • QgsProcessingParameterDateTime • QgsProcessingParameterDistance • QgsProcessingParameterEnum • QgsProcessingParameterExpression • QgsProcessingParameterExtent • QgsProcessingParameterFeatureSink • QgsProcessingParameterFeatureSource • QgsProcessingParameterField • QgsProcessingParameterFieldMapping • QgsProcessingParameterFile • QgsProcessingParameterFileDestination 23.7. Using processing algorithms from the console 751 QGIS Desktop 3.16 User Guide • QgsProcessingParameterFolderDestination • QgsProcessingParameterLayout • QgsProcessingParameterLayoutItem • QgsProcessingParameterMapLayer • QgsProcessingParameterMapTheme • QgsProcessingParameterMatrix • QgsProcessingParameterMeshLayer • QgsProcessingParameterMultipleLayers • QgsProcessingParameterNumber • QgsProcessingParameterPoint • QgsProcessingParameterProviderConnection • QgsProcessingParameterRange • QgsProcessingParameterRasterDestination • QgsProcessingParameterRasterLayer • QgsProcessingParameterScale • QgsProcessingParameterString • QgsProcessingParameterVectorDestination • QgsProcessingParameterVectorLayer • QgsProcessingParameterVectorTileWriterLayers The first parameter to the constructors is the name of the parameter, and the second is the description of the parameter (for the user interface). The rest of the constructor parameters are parameter type specific. The input can be turned into QGIS classes using the parameterAs functions of QgsProcessingAlgorithm. For instance to get the number provided for the buffer distance as a double: self.parameterAsDouble(parameters, self.INPUT_BUFFERDIST, context)). The processAlgorithm function should return a dictionary containing values for every output defined by the algorithm. This allows access to these outputs from other algorithms, including other algorithms contained within the same model. Well behaved algorithms should define and return as many outputs as makes sense. Non-feature outputs, such as numbers and strings, are very useful when running your algorithm as part of a larger model, as these values can be used as input parameters for subsequent algorithms within the model. Consider adding numeric outputs for things like the number of features processed, the number of invalid features encountered, the number of features output, etc. The more outputs you return, the more useful your algorithm becomes! Feedback The feedback object passed to processAlgorithm() should be used for user feedback / interaction. You can use the setProgress() function of the feedback object to update the progress bar (0 to 100) to inform the user about the progress of the algorithm. This is very useful if your algorithm takes a long time to complete. The feedback object provides an isCanceled() method that should be monitored to enable cancelation of the algorithm by the user. The pushInfo() method of feedback can be used to send information to the user, and reportError() is handy for pushing non-fatal errors to users. Algorithms should avoid using other forms of providing feedback to users, such as print statements or logging to QgsMessageLog, and should always use the feedback object instead. This allows verbose logging for the algorithm, and is also thread-safe (which is important, given that algorithms are typically run in a background thread). 752 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Handling errors If your algorithm encounters an error which prevents it from executing, such as invalid input values or some other condition from which it cannot or should not recover, then you should raise a QgsProcessingException. E.g.: if feature['value'] < 20: raise QgsProcessingException('Invalid input value {}, must be >= 20'. →format(feature['value'])) Try to avoid raising QgsProcessingException for non-fatal errors (e.g. when a feature has a null geometry), and instead just report these errors via feedback.reportError() and skip the feature. This helps make your algorithm „model-friendly“, as it avoids halting the execution of an entire algorithm when a non-fatal error is encountered. Documenting your scripts As in the case of models, you can create additional documentation for your scripts, to explain what they do and how to use them. QgsProcessingAlgorithm provides the helpString(), shortHelpString() and helpUrl() functions for that purpose. Specify / override these to provide more help to the user. shortDescription() is used in the tooltip when hovering over the algorithm in the toolbox. 23.7.3 Pre- and post-execution script hooks Scripts can also be used as pre- and post-execution hooks that are run before and after an algorithm is run, respectively. This can be used to automate tasks that should be performed whenever an algorithm is executed. The syntax is identical to the syntax explained above, but an additional global variable named alg is available, representing the algorithm that has just been (or is about to be) executed. In the General group of the processing options dialog, you will find two entries named Pre-execution script and Post-execution script where the filenames of the scripts to be run in each case can be entered. 23.8 Using processing from the command line QGIS comes with a tool called QGIS Processing Executor which allows you to run Processing algorithms and models (built-in or provided by plugins) directly from the command line without starting QGIS Desktop itself. From a command line tool, run qgis_process and you should get: QGIS Processing Executor - 3.16.8-Hannover 'Hannover' (3.16.8-Hannover) Usage: C:\OSGeo4W\apps\qgis-ltr\bin\qgis_process.exe [--json] [command] [algorithm␣ →id or path to model file] [parameters] Options: --json Output results as JSON objects Available commands: plugins list available and active plugins plugins enable enables an installed plugin. The plugin name must be specified,␣ →e.g. "plugins enable cartography_tools" plugins disable disables an installed plugin. The plugin name must be specified, → e.g. "plugins disable cartography_tools" list list all available processing algorithms (continues on next page) 23.8. Using processing from the command line 753 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) help show help for an algorithm. The algorithm id or a path to a␣ →model file must be specified. run runs an algorithm. The algorithm id or a path to a model file␣ →and parameter values must be specified. Parameter values are specified after -- with PARAMETER=VALUE␣ →syntax. Ordered list values for a parameter can be created by␣ →specifying the parameter multiple times, e.g. --LAYERS=layer1.shp --LAYERS=layer2.shp If required, the ellipsoid to use for distance and area␣ →calculations can be specified via the "--ELLIPSOID=name" argument. If required, an existing QGIS project to use during the␣ →algorithm execution can be specified via the "--PROJECT_PATH=path" argument. Poznámka: Only installed plugins that advertize hasProcessingProvider=yes in their metadata.txt file are recognized and can be activated or loaded by qgis_process tool. The command list can be used to get a list of all available providers and algorithms. qgis_process list The command help can be used to get further information about commands or algorithms. qgis_process help qgis:regularpoints The command run can be used to run an algorithm or model. Specify the name of the algorithm or a path to a model as first parameter. qgis_process run qgis:buffer -- INPUT=source.shp DISTANCE=2 OUTPUT=buffered.shp Where a parameter accepts a list of values, set the same variable multiple times. qgis_process run native:mergevectorlayers -- LAYERS=input1.shp LAYERS=input2.shp␣ →OUTPUT=merged.shp While running an algorithm a text-based feedback bar is shown, and the operation can be cancelled via CTRL+C. The run command also supports further parameters. • --json will format stdout output in a JSON structured way. • --ellipsoid will set the ellipsoid to the specified one. • --distance_units will use the specified distance units. • --area_units will use the specified area units. • --project_path will load the specified project for running the algorithm. 23.9 Writing new Processing algorithms as Python scripts There are two options for writing Processing algorithms using Python. • Extending QgsProcessingAlgorithm • Using the @alg decorator Within QGIS, you can use Create new script in the Scripts menu at the top of the Processing Toolbox to open the Processing Script Editor where you can write your code. To simplify the task, you can start with a script template by using Create new script from template from the same menu. This opens a template that extends QgsProcessingAlgorithm. 754 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide If you save the script in the scripts folder (the default location) with a .py extension, the algorithm will become available in the Processing Toolbox. 23.9.1 Extending QgsProcessingAlgorithm The following code 1. takes a vector layer as input 2. counts the number of features 3. does a buffer operation 4. creates a raster layer from the result of the buffer operation 5. returns the buffer layer, raster layer and number of features 1 from qgis.PyQt.QtCore import QCoreApplication 2 from qgis.core import (QgsProcessing, 3 QgsProcessingAlgorithm, 4 QgsProcessingException, 5 QgsProcessingOutputNumber, 6 QgsProcessingParameterDistance, 7 QgsProcessingParameterFeatureSource, 8 QgsProcessingParameterVectorDestination, 9 QgsProcessingParameterRasterDestination) 10 from qgis import processing 11 12 13 class ExampleProcessingAlgorithm(QgsProcessingAlgorithm): 14 """ 15 This is an example algorithm that takes a vector layer, 16 creates some new layers and returns some results. 17 """ 18 19 def tr(self, string): 20 """ 21 Returns a translatable string with the self.tr() function. 22 """ 23 return QCoreApplication.translate('Processing', string) 24 25 def createInstance(self): 26 # Must return a new copy of your algorithm. 27 return ExampleProcessingAlgorithm() 28 29 def name(self): 30 """ 31 Returns the unique algorithm name. 32 """ 33 return 'bufferrasterextend' 34 35 def displayName(self): 36 """ 37 Returns the translated algorithm name. 38 """ 39 return self.tr('Buffer and export to raster (extend)') 40 41 def group(self): 42 """ 43 Returns the name of the group this algorithm belongs to. 44 """ 45 return self.tr('Example scripts') 46 (continues on next page) 23.9. Writing new Processing algorithms as Python scripts 755 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) 47 def groupId(self): 48 """ 49 Returns the unique ID of the group this algorithm belongs 50 to. 51 """ 52 return 'examplescripts' 53 54 def shortHelpString(self): 55 """ 56 Returns a localised short help string for the algorithm. 57 """ 58 return self.tr('Example algorithm short description') 59 60 def initAlgorithm(self, config=None): 61 """ 62 Here we define the inputs and outputs of the algorithm. 63 """ 64 # 'INPUT' is the recommended name for the main input 65 # parameter. 66 self.addParameter( 67 QgsProcessingParameterFeatureSource( 68 'INPUT', 69 self.tr('Input vector layer'), 70 types=[QgsProcessing.TypeVectorAnyGeometry] 71 ) 72 ) 73 self.addParameter( 74 QgsProcessingParameterVectorDestination( 75 'BUFFER_OUTPUT', 76 self.tr('Buffer output'), 77 ) 78 ) 79 # 'OUTPUT' is the recommended name for the main output 80 # parameter. 81 self.addParameter( 82 QgsProcessingParameterRasterDestination( 83 'OUTPUT', 84 self.tr('Raster output') 85 ) 86 ) 87 self.addParameter( 88 QgsProcessingParameterDistance( 89 'BUFFERDIST', 90 self.tr('BUFFERDIST'), 91 defaultValue = 1.0, 92 # Make distance units match the INPUT layer units: 93 parentParameterName='INPUT' 94 ) 95 ) 96 self.addParameter( 97 QgsProcessingParameterDistance( 98 'CELLSIZE', 99 self.tr('CELLSIZE'), 100 defaultValue = 10.0, 101 parentParameterName='INPUT' 102 ) 103 ) 104 self.addOutput( 105 QgsProcessingOutputNumber( 106 'NUMBEROFFEATURES', 107 self.tr('Number of features processed') (continues on next page) 756 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) 108 ) 109 ) 110 111 def processAlgorithm(self, parameters, context, feedback): 112 """ 113 Here is where the processing itself takes place. 114 """ 115 # First, we get the count of features from the INPUT layer. 116 # This layer is defined as a QgsProcessingParameterFeatureSource 117 # parameter, so it is retrieved by calling 118 # self.parameterAsSource. 119 input_featuresource = self.parameterAsSource(parameters, 120 'INPUT', 121 context) 122 numfeatures = input_featuresource.featureCount() 123 124 # Retrieve the buffer distance and raster cell size numeric 125 # values. Since these are numeric values, they are retrieved 126 # using self.parameterAsDouble. 127 bufferdist = self.parameterAsDouble(parameters, 'BUFFERDIST', 128 context) 129 rastercellsize = self.parameterAsDouble(parameters, 'CELLSIZE', 130 context) 131 if feedback.isCanceled(): 132 return {} 133 buffer_result = processing.run( 134 'native:buffer', 135 { 136 # Here we pass on the original parameter values of INPUT 137 # and BUFFER_OUTPUT to the buffer algorithm. 138 'INPUT': parameters['INPUT'], 139 'OUTPUT': parameters['BUFFER_OUTPUT'], 140 'DISTANCE': bufferdist, 141 'SEGMENTS': 10, 142 'DISSOLVE': True, 143 'END_CAP_STYLE': 0, 144 'JOIN_STYLE': 0, 145 'MITER_LIMIT': 10 146 }, 147 # Because the buffer algorithm is being run as a step in 148 # another larger algorithm, the is_child_algorithm option 149 # should be set to True 150 is_child_algorithm=True, 151 # 152 # It's important to pass on the context and feedback objects to 153 # child algorithms, so that they can properly give feedback to 154 # users and handle cancelation requests. 155 context=context, 156 feedback=feedback) 157 158 # Check for cancelation 159 if feedback.isCanceled(): 160 return {} 161 162 # Run the separate rasterization algorithm using the buffer result 163 # as an input. 164 rasterized_result = processing.run( 165 'qgis:rasterize', 166 { 167 # Here we pass the 'OUTPUT' value from the buffer's result 168 # dictionary off to the rasterize child algorithm. (continues on next page) 23.9. Writing new Processing algorithms as Python scripts 757 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) 169 'LAYER': buffer_result['OUTPUT'], 170 'EXTENT': buffer_result['OUTPUT'], 171 'MAP_UNITS_PER_PIXEL': rastercellsize, 172 # Use the original parameter value. 173 'OUTPUT': parameters['OUTPUT'] 174 }, 175 is_child_algorithm=True, 176 context=context, 177 feedback=feedback) 178 179 if feedback.isCanceled(): 180 return {} 181 182 # Return the results 183 return {'OUTPUT': rasterized_result['OUTPUT'], 184 'BUFFER_OUTPUT': buffer_result['OUTPUT'], 185 'NUMBEROFFEATURES': numfeatures} Processing algorithm standard functions: • createInstance (mandatory) Must return a new copy of your algorithm. If you change the name of the class, make sure you also update the value returned here to match! • name (mandatory) Returns the unique algorithm name, used for identifying the algorithm. • displayName (mandatory) Returns the translated algorithm name. • group Returns the name of the group this algorithm belongs to. • groupId Returns the unique ID of the group this algorithm belongs to. • shortHelpString Returns a localised short help string for the algorithm. • initAlgorithm (mandatory) Here we define the inputs and outputs of the algorithm. INPUT and OUTPUT are recommended names for the main input and main output parameters, respectively. If a parameter depends on another parameter, parentParameterName is used to specify this relationship (could be the field / band of a layer or the distance units of a layer). • processAlgorithm (mandatory) This is where the processing takes place. Parameters are retrieved using special purpose functions, for instance parameterAsSource and parameterAsDouble. processing.run can be used to run other processing algorithms from a processing algorithm. The first parameter is the name of the algorithm, the second is a dictionary of the parameters to the algorithm. is_child_algorithm is normally set to True when running an algorithm from within another algorithm. context and feedback inform the algorithm about the environment to run in and the channel for communicating with the user (catching cancel request, reporting progress, providing textual feedback). When using the (parent) algorithm’s parameters as parameters to „child“ algorithms, the original parameter values should be used (e.g. parameters['OUTPUT']). It is good practice to check the feedback object for cancelation as much as is sensibly possible! Doing so allows for responsive cancelation, instead of forcing users to wait for unwanted processing to occur. The algorithm should return values for all the output parameters it has defined as a dictionary. In this case, that’s the buffer and rasterized output layers, and the count of features processed. The dictionary keys must match the original parameter/output names. 758 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide 23.9.2 The @alg decorator Using the @alg decorator, you can create your own algorithms by writing the Python code and adding a few extra lines to supply additional information needed to make it a proper Processing algorithm. This simplifies the creation of algorithms and the specification of inputs and outputs. One important limitation with the decorator approach is that algorithms created in this way will always be added to a user’s Processing Scripts provider – it is not possible to add these algorithms to a custom provider, e.g. for use in plugins. The following code uses the @alg decorator to 1. use a vector layer as input 2. count the number of features 3. do a buffer operation 4. create a raster layer from the result of the buffer operation 5. returns the buffer layer, raster layer and number of features 1 from qgis import processing 2 from qgis.processing import alg 3 from qgis.core import QgsProject 4 5 @alg(name='bufferrasteralg', label='Buffer and export to raster (alg)', 6 group='examplescripts', group_label='Example scripts') 7 # 'INPUT' is the recommended name for the main input parameter 8 @alg.input(type=alg.SOURCE, name='INPUT', label='Input vector layer') 9 # 'OUTPUT' is the recommended name for the main output parameter 10 @alg.input(type=alg.RASTER_LAYER_DEST, name='OUTPUT', 11 label='Raster output') 12 @alg.input(type=alg.VECTOR_LAYER_DEST, name='BUFFER_OUTPUT', 13 label='Buffer output') 14 @alg.input(type=alg.DISTANCE, name='BUFFERDIST', label='BUFFER DISTANCE', 15 default=1.0) 16 @alg.input(type=alg.DISTANCE, name='CELLSIZE', label='RASTER CELL SIZE', 17 default=10.0) 18 @alg.output(type=alg.NUMBER, name='NUMBEROFFEATURES', 19 label='Number of features processed') 20 21 def bufferrasteralg(instance, parameters, context, feedback, inputs): 22 """ 23 Description of the algorithm. 24 (If there is no comment here, you will get an error) 25 """ 26 input_featuresource = instance.parameterAsSource(parameters, 27 'INPUT', context) 28 numfeatures = input_featuresource.featureCount() 29 bufferdist = instance.parameterAsDouble(parameters, 'BUFFERDIST', 30 context) 31 rastercellsize = instance.parameterAsDouble(parameters, 'CELLSIZE', 32 context) 33 if feedback.isCanceled(): 34 return {} 35 buffer_result = processing.run('native:buffer', 36 {'INPUT': parameters['INPUT'], 37 'OUTPUT': parameters['BUFFER_OUTPUT'], 38 'DISTANCE': bufferdist, 39 'SEGMENTS': 10, 40 'DISSOLVE': True, 41 'END_CAP_STYLE': 0, 42 'JOIN_STYLE': 0, (continues on next page) 23.9. Writing new Processing algorithms as Python scripts 759 QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) 43 'MITER_LIMIT': 10 44 }, 45 is_child_algorithm=True, 46 context=context, 47 feedback=feedback) 48 if feedback.isCanceled(): 49 return {} 50 rasterized_result = processing.run('qgis:rasterize', 51 {'LAYER': buffer_result['OUTPUT'], 52 'EXTENT': buffer_result['OUTPUT'], 53 'MAP_UNITS_PER_PIXEL': rastercellsize, 54 'OUTPUT': parameters['OUTPUT'] 55 }, 56 is_child_algorithm=True, context=context, 57 feedback=feedback) 58 if feedback.isCanceled(): 59 return {} 60 return {'OUTPUT': rasterized_result['OUTPUT'], 61 'BUFFER_OUTPUT': buffer_result['OUTPUT'], 62 'NUMBEROFFEATURES': numfeatures} As you can see, it involves two algorithms (‚native:buffer‘ and ‚qgis:rasterize‘). The last one (‚qgis:rasterize‘) creates a raster layer from the buffer layer that was generated by the first one (‚native:buffer‘). The part of the code where this processing takes place is not difficult to understand if you have read the previous chapter. The first lines, however, need some additional explanation. They provide the information that is needed to turn your code into an algorithm that can be run from any of the GUI components, like the toolbox or the graphical modeler. These lines are all calls to the @alg decorator functions that help simplify the coding of the algorithm. • The @alg decorator is used to define the name and location of the algorithm in the Toolbox. • The @alg.input decorator is used to define the inputs of the algorithm. • The @alg.output decorator is used to define the outputs of the algorithm. 23.9.3 Input and output types for Processing Algorithms Here is the list of input and output types that are supported in Processing with their corresponding alg decorator constants (algfactory.py contains the complete list of alg constants). Sorted on class name. Input types Class Alg constant Popis QgsProcessingParameterAuthConfig alg.AUTH_CFG Allows users to select from available authentication configurations or create new authentication configurations QgsProcessingParameterBand alg.BAND A band of a raster layer QgsProcessingParameterBoolean alg.BOOL A boolean value QgsProcessingParameterColor alg.COLOR A color QgsProcessingParameterCoordinateOperationalg. COORDINATE_OPERATION A coordinate operation (for CRS transformations) continues on next page 760 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Tabulka 23.1 – pokračujte na předchozí stránce Class Alg constant Popis QgsProcessingParameterCrs alg.CRS A Coordinate Reference System QgsProcessingParameterDatabaseSchemaalg.DATABASE_SCHEMA A database schema QgsProcessingParameterDatabaseTablealg.DATABASE_TABLE A database table QgsProcessingParameterDateTime alg.DATETIME A datetime (or a pure date or time) QgsProcessingParameterDistance alg.DISTANCE A double numeric parameter for distance values QgsProcessingParameterEnum alg.ENUM An enumeration, allowing for selection from a set of predefined values QgsProcessingParameterExpression alg.EXPRESSION An expression QgsProcessingParameterExtent alg.EXTENT A spatial extent defined by xmin, xmax, ymin, ymax QgsProcessingParameterField alg.FIELD A field in the attribute table of a vector layer QgsProcessingParameterFile alg.FILE A filename of an existing file QgsProcessingParameterFileDestinationalg.FILE_DEST A filename for a newly created output file QgsProcessingParameterFolderDestinationalg.FOLDER_DEST A folder (destination folder) QgsProcessingParameterNumber alg.INT An integer QgsProcessingParameterLayout alg.LAYOUT A layout QgsProcessingParameterLayoutItem alg.LAYOUT_ITEM A layout item QgsProcessingParameterMapLayer alg.MAPLAYER A map layer QgsProcessingParameterMapTheme alg.MAP_THEME A project map theme QgsProcessingParameterMatrix alg.MATRIX A matrix QgsProcessingParameterMeshLayer alg.MESH_LAYER A mesh layer QgsProcessingParameterMultipleLayersalg.MULTILAYER A set of layers QgsProcessingParameterNumber alg.NUMBER A numerical value QgsProcessingParameterPoint alg.POINT A point QgsProcessingParameterProviderConnectionalg. PROVIDER_CONNECTION An available connection for a database provider QgsProcessingParameterRange alg.RANGE A number range QgsProcessingParameterRasterLayer alg.RASTER_LAYER A raster layer QgsProcessingParameterRasterDestinationalg.RASTER_LAYER_DEST A raster layer QgsProcessingParameterScale alg.SCALE A map scale QgsProcessingParameterFeatureSink alg.SINK A feature sink QgsProcessingParameterFeatureSourcealg.SOURCE A feature source QgsProcessingParameterString alg.STRING A text string QgsProcessingParameterVectorLayer alg.VECTOR_LAYER A vector layer QgsProcessingParameterVectorDestinationalg.VECTOR_LAYER_DEST A vector layer 23.9. Writing new Processing algorithms as Python scripts 761 QGIS Desktop 3.16 User Guide Output types Class Alg constant Popis QgsProcessingOutputBoolean alg.BOOL A boolean value QgsProcessingOutputNumber alg.DISTANCE A double numeric parameter for distance values QgsProcessingOutputFile alg.FILE A filename of an existing file QgsProcessingOutputFolder alg.FOLDER A folder QgsProcessingOutputHtml alg.HTML HTML QgsProcessingOutputNumber alg.INT A integer QgsProcessingOutputLayerDefinition alg.LAYERDEF A layer definition QgsProcessingOutputMapLayer alg.MAPLAYER A map layer QgsProcessingOutputMultipleLayers alg.MULTILAYER A set of layers QgsProcessingOutputNumber alg.NUMBER A numerical value QgsProcessingOutputRasterLayer alg.RASTER_LAYER A raster layer QgsProcessingOutputString alg.STRING A text string QgsProcessingOutputVectorLayer alg.VECTOR_LAYER A vector layer 23.9.4 Handing algorithm output When you declare an output representing a layer (raster or vector), the algorithm will try to add it to QGIS once it is finished. • Raster layer output: QgsProcessingParameterRasterDestination / alg.RASTER_LAYER_DEST. • Vector layer output: QgsProcessingParameterVectorDestination / alg.VECTOR_LAYER_DEST. So even if the processing.run() method does not add the layers it creates to the user’s current project, the two output layers (buffer and raster buffer) will be loaded, since they are saved to the destinations entered by the user (or to temporary destinations if the user does not specify destinations). If a layer is created as output of an algorithm, it should be declared as such. Otherwise, you will not be able to properly use the algorithm in the modeler, since what is declared will not match what the algorithm really creates. You can return strings, numbers and more by specifying them in the result dictionary (as demonstrated for „NUMBEROFFEATURES“), but they should always be explicitly defined as outputs from your algorithm. We encourage algorithms to output as many useful values as possible, since these can be valuable for use in later algorithms when your algorithm is used as part of a model. 23.9.5 Communicating with the user If your algorithm takes a long time to process, it is a good idea to inform the user about the progress. You can use feedback (QgsProcessingFeedback) for this. The progress text and progressbar can be updated using two methods: setProgressText(text) and setProgress(percent). You can provide more information by using pushCommandInfo(text), pushDebugInfo(text), pushInfo(text) and reportError(text). If your script has a problem, the correct way of handling it is to raise a QgsProcessingException. You can pass a message as an argument to the constructor of the exception. Processing will take care of handling it and communicating with the user, depending on where the algorithm is being executed from (toolbox, modeler, Python console, …) 762 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide 23.9.6 Documenting your scripts You can document your scripts by overloading the helpString() and helpUrl() methods of QgsProcessingAlgorithm. 23.9.7 Flags You can override the flags() method of QgsProcessingAlgorithm to tell QGIS more about your algorithm. You can for instance tell QGIS that the script shall be hidden from the modeler, that it can be canceled, that it is not thread safe, and more. Tip: By default, Processing runs algorithms in a separate thread in order to keep QGIS responsive while the processing task runs. If your algorithm is regularly crashing, you are probably using API calls which are not safe to do in a background thread. Try returning the QgsProcessingAlgorithm.FlagNoThreading flag from your algorithm’s flags() method to force Processing to run your algorithm in the main thread instead. 23.9.8 Best practices for writing script algorithms Here’s a quick summary of ideas to consider when creating your script algorithms and, especially, if you want to share them with other QGIS users. Following these simple rules will ensure consistency across the different Processing elements such as the toolbox, the modeler or the batch processing interface. • Do not load resulting layers. Let Processing handle your results and load your layers if needed. • Always declare the outputs your algorithm creates. • Do not show message boxes or use any GUI element from the script. If you want to communicate with the user, use the methods of the feedback object (QgsProcessingFeedback) or throw a QgsProcessingException. There are already many processing algorithms available in QGIS. You can find code on https://github.com/qgis/ QGIS/blob/release-3_16/python/plugins/processing/algs/qgis. 23.10 Configuring external applications The processing framework can be extended using additional applications. Algorithms that rely on external applications are managed by their own algorithm providers. Additional providers can be found as separate plugins, and installed using the QGIS Plugin Manager. This section will show you how to configure the Processing framework to include these additional applications, and it will explain some particular features of the algorithms based on them. Once you have correctly configured the system, you will be able to execute external algorithms from any component like the toolbox or the graphical modeler, just like you do with any other algorithm. By default, algorithms that rely on an external application not shipped with QGIS are not enabled. You can enable them in the Processing settings dialog if they are installed on your system. 23.10. Configuring external applications 763 QGIS Desktop 3.16 User Guide 23.10.1 A note for Windows users If you are not an advanced user and you are running QGIS on Windows, you might not be interested in reading the rest of this chapter. Make sure you install QGIS in your system using the standalone installer. That will automatically install SAGA and GRASS in your system and configure them so they can be run from QGIS. All the algorithms from these providers will be ready to be run without needing any further configuration. If installing with the OSGeo4W application, make sure that you also select SAGA and GRASS for installation. 23.10.2 A note on file formats When using external software, opening a file in QGIS does not mean that it can be opened and processed in that other software. In most cases, other software can read what you have opened in QGIS, but in some cases, that might not be true. When using databases or uncommon file formats, whether for raster or vector layers, problems might arise. If that happens, try to use well-known file formats that you are sure are understood by both programs, and check the console output (in the log panel) to find out what is going wrong. You might for instance get trouble and not be able to complete your work if you call an external algorithm with a GRASS raster layers as input. For this reason, such layers will not appear as available to algorithms. You should, however, not have problems with vector layers, since QGIS automatically converts from the original file format to one accepted by the external application before passing the layer to it. This adds extra processing time, which might be significant for large layers, so do not be surprised if it takes more time to process a layer from a DB connection than a layer from a Shapefile format dataset of similar size. Providers not using external applications can process any layer that you can open in QGIS, since they open it for analysis through QGIS. All raster and vector output formats produced by QGIS can be used as input layers. Some providers do not support certain formats, but all can export to common formats that can later be transformed by QGIS automatically. As for input layers, if a conversion is needed, that might increase the processing time. 23.10.3 A note on vector layer selections External applications may also be made aware of the selections that exist in vector layers within QGIS. However, that requires rewriting all input vector layers, just as if they were originally in a format not supported by the external application. Only when no selection exists, or the Use only selected features option is not enabled in the processing general configuration, can a layer be directly passed to an external application. In other cases, exporting only selected features is needed, which causes longer execution times. 23.10.4 SAGA SAGA algorithms can be run from QGIS if SAGA is included with the QGIS installation. If you are running Windows, both the stand-alone installer and the OSGeo4W installer include SAGA. About SAGA grid system limitations Most SAGA algorithms that require several input raster layers require them to have the same grid system. That is, they must cover the same geographic area and have the same cell size, so their corresponding grids match. When calling SAGA algorithms from QGIS, you can use any layer, regardless of its cell size and extent. When multiple raster layers are used as input for a SAGA algorithm, QGIS resamples them to a common grid system and then passes them to SAGA (unless the SAGA algorithm can operate with layers from different grid systems). The definition of that common grid system is controlled by the user, and you will find several parameters in the SAGA group of the settings window to do so. There are two ways of setting the target grid system: • Setting it manually. You define the extent by setting the values of the following parameters: 764 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide – Resampling min X – Resampling max X – Resampling min Y – Resampling max Y – Resampling cellsize Notice that QGIS will resample input layers to that extent, even if they do not overlap with it. • Setting it automatically from input layers. To select this option, just check the Use min covering grid system for resampling option. All the other settings will be ignored and the minimum extent that covers all the input layers will be used. The cell size of the target layer is the maximum of all cell sizes of the input layers. For algorithms that do not use multiple raster layers, or for those that do not need a unique input grid system, no resampling is performed before calling SAGA, and those parameters are not used. Limitations for multi-band layers Unlike QGIS, SAGA has no support for multi-band layers. If you want to use a multiband layer (such as an RGB or multispectral image), you first have to split it into single-banded images. To do so, you can use the ‚SAGA/Grid - Tools/Split RGB image‘ algorithm (which creates three images from an RGB image) or the ‚SAGA/Grid Tools/Extract band‘ algorithm (to extract a single band). Limitations in cell size SAGA assumes that raster layers have the same cell size in the X and Y axis. If you are working with a layer with different values for horizontal and vertical cell size, you might get unexpected results. In this case, a warning will be added to the processing log, indicating that an input layer might not be suitable to be processed by SAGA. Logging When QGIS calls SAGA, it does so using its command-line interface, thus passing a set of commands to perform all the required operations. SAGA shows its progress by writing information to the console, which includes the percentage of processing already done, along with additional content. This output is filtered and used to update the progress bar while the algorithm is running. Both the commands sent by QGIS and the additional information printed by SAGA can be logged along with other processing log messages, and you might find them useful to track what is going on when QGIS runs a SAGA algorithm. You will find two settings, namely Log console output and Log execution commands, to activate that logging mechanism. Most other providers that use external applications and call them through the command-line have similar options, so you will find them as well in other places in the processing settings list. 23.10.5 R scripts To enable R in Processing you need to install the Processing R Provider plugin and configure R for QGIS. Configuration is done in Provider ► R in the Processing tab of Settings ► Options. Depending on your operating system, you may have to use R folder to specify where your R binaries are located. Poznámka: On Windows the R executable file is normally in a folder (R-) under C:\Program Files\R\. Specify the folder and NOT the binary! 23.10. Configuring external applications 765 QGIS Desktop 3.16 User Guide On Linux you just have to make sure that the R folder is in the PATH environment variable. If R in a terminal window starts R, then you are ready to go. After installing the Processing R Provider plugin, you will find some example scripts in the Processing Toolbox: • Scatterplot runs an R function that produces a scatter plot from two numerical fields of the provided vector layer. • test_sf does some operations that depend on the sf package and can be used to check if the R package sf is installed. If the package is not installed, R will try to install it (and all the packages it depends on) for you, using the Package repository specified in Provider ► R in the Processing options. The default is https: //cran.at.r-project.org/. Installing may take some time… • test_sp can be used to check if the R package sp is installed. If the package is not installed, R will try to install it for you. 766 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide If you have R configured correctly for QGIS, you should be able to run these scripts. 23.10. Configuring external applications 767 QGIS Desktop 3.16 User Guide Adding R scripts from the QGIS collection R integration in QGIS is different from that of SAGA in that there is not a predefined set of algorithms you can run (except for some example script that come with the Processing R Provider plugin). A set of example R scripts is available in the QGIS Repository. Perform the following steps to load and enable them using the QGIS Resource Sharing plugin. 1. Add the QGIS Resource Sharing plugin (you may have to enable Show also experimental plugins in the Plugin Manager Settings) 2. Open it (Plugins –> Resource Sharing –> Resource Sharing) 3. Choose the Settings tab 4. Click Reload repositories 5. Choose the All tab 6. Select QGIS R script collection in the list and click on the Install button 7. The collection should now be listed in the Installed tab 8. Close the plugin 9. Open the Processing Toolbox, and if everything is OK, the example scripts will be present under R, in various groups (only some of the groups are expanded in the screenshot below). 768 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Obr. 23.34: The Processing Toolbox with some R scripts shown 23.10. Configuring external applications 769 QGIS Desktop 3.16 User Guide The scripts at the top are the example scripts from the Processing R Provider plugin. 10. If, for some reason, the scripts are not available in the Processing Toolbox, you can try to: 1. Open the Processing settings (Settings ► Options ► Processing tab) 2. Go to Providers ► R ► R scripts folder • On Ubuntu, set the path to (or, better, include in the path): /home//.local/share/QGIS/QGIS3/profiles/default/resource_sharing/repositories/github.com/qgis/QGIS- -Resources/collections/rscripts • On Windows, set the path to (or, better, include in the path): C:\Users\\AppData\Roaming\QGIS\QGIS3\profiles\default\resource_sharing\repositories\github.com\qgis -Resources\collections\rscripts To edit, double-click. You can then choose to just paste / type the path, or you can navigate to the directory by using the … button and press the Add button in the dialog that opens. It is possible to provide several directories here. They will be separated by a semicolon („;“). If you would like to get all the R scrips from the QGIS 2 on-line collection, you can select QGIS R script collection (from QGIS 2) instead of QGIS R script collection. You will probably find that scripts that depend on vector data input or output will not work. Creating R scripts You can write scripts and call R commands, as you would do from R. This section shows you the syntax for using R commands in QGIS, and how to use QGIS objects (layers, tables) in them. To add an algorithm that calls an R function (or a more complex R script that you have developed and you would like to have available from QGIS), you have to create a script file that performs the R commands. R script files have the extension .rsx, and creating them is pretty easy if you just have a basic knowledge of R syntax and R scripting. They should be stored in the R scripts folder. You can specify the folder (R scripts folder) in the R settings group in Processing settings dialog). 770 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide Let’s have a look at a very simple script file, which calls the R method spsample to create a random grid within the boundary of the polygons in a given polygon layer. This method belongs to the maptools package. Since almost all the algorithms that you might like to incorporate into QGIS will use or generate spatial data, knowledge of spatial packages like maptools and sp/sf, is very useful. ##Random points within layer extent=name ##Point pattern analysis=group ##Vector_layer=vector ##Number_of_points=number 10 ##Output=output vector library(sp) spatpoly = as(Vector_layer, "Spatial") pts=spsample(spatpoly,Number_of_points,type="random") spdf=SpatialPointsDataFrame(pts, as.data.frame(pts)) Output=st_as_sf(spdf) The first lines, which start with a double Python comment sign (##), define the display name and group of the script, and tell QGIS about its inputs and outputs. Poznámka: To find out more about how to write your own R scripts, have a look at the R Intro section in the training manual and consult the QGIS R Syntax section. When you declare an input parameter, QGIS uses that information for two things: creating the user interface to ask the user for the value of that parameter, and creating a corresponding R variable that can be used as R function input. In the above example, we have declared an input of type vector, named Vector_layer. When executing the algorithm, QGIS will open the layer selected by the user and store it in a variable named Vector_layer. So, the name of a parameter is the name of the variable that you use in R for accessing the value of that parameter (you should therefore avoid using reserved R words as parameter names). Spatial parameters such as vector and raster layers are read using the st_read() (or readOGR) and brick() (or readGDAL) commands (you do not have to worry about adding those commands to your description file – QGIS will do it), and they are stored as sf (or Spatial*DataFrame) objects. Table fields are stored as strings containing the name of the selected field. Vector files can be read using the readOGR() command instead of st_read() by specifying ##load_vector_using_rgdal. This will produce a Spatial*DataFrame object instead of an sf object. Raster files can be read using the readGDAL() command instead of brick() by specifying ##load_raster_using_rgdal. If you are an advanced user and do not want QGIS to create the object for the layer, you can use ##pass_filenames to indicate that you prefer a string with the filename. In this case, it is up to you to open the file before performing any operation on the data it contains. With the above information, it is possible to understand the first lines of the R script (the first line not starting with a Python comment character). library(sp) spatpoly = as(Vector_layer, "Spatial") pts=spsample(polyg,numpoints,type="random") The spsample function is provided by the sp library, so the first thing we do is to load that library. The variable Vector_layer contains an sf object. Since we are going to use a function (spsample) from the sp library, we must convert the sf object to a SpatialPolygonsDataFrame object using the as function. Then we call the spsample function with this object and the numpoints input parameter (which specifies the number of points to generate). Since we have declared a vector output named Output, we have to create a variable named Output containing an sf object. 23.10. Configuring external applications 771 QGIS Desktop 3.16 User Guide We do this in two steps. First we create a SpatialPolygonsDataFrame object from the result of the function, using the SpatialPointsDataFrame function, and then we convert that object to an sf object using the st_as_sf function (of the sf library). You can use whatever names you like for your intermediate variables. Just make sure that the variable storing your final result has the defined name (in this case Output), and that it contains a suitable value (an sf object for vector layer output). In this case, the result obtained from the spsample method had to be converted explicitly into an sf object via a SpatialPointsDataFrame object, since it is itself an object of class ppp, which can not be returned to QGIS. If your algorithm generates raster layers, the way they are saved will depend on whether or not you have used the ##dontuserasterpackage option. If you have used it, layers are saved using the writeGDAL() method. If not, the writeRaster() method from the raster package will be used. If you have used the ##pass_filenames option, outputs are generated using the raster package (with writeRaster()). If your algorithm does not generate a layer, but a text result in the console instead, you have to indicate that you want the console to be shown once the execution is finished. To do so, just start the command lines that produce the results you want to print with the > (‚greater than‘) sign. Only output from lines prefixed with > are shown. For instance, here is the description file of an algorithm that performs a normality test on a given field (column) of the attributes of a vector layer: ##layer=vector ##field=field layer ##nortest=group library(nortest) >lillie.test(layer[[field]]) The output of the last line is printed, but the output of the first is not (and neither are the outputs from other command lines added automatically by QGIS). If your algorithm creates any kind of graphics (using the plot() method), add the following line (output_plots_to_html used to be showplots): ##output_plots_to_html This will cause QGIS to redirect all R graphical outputs to a temporary file, which will be opened once R execution has finished. Both graphics and console results will be available through the processing results manager. For more information, please check the R scripts in the official QGIS collection (you download and install them using the QGIS Resource Sharing plugin, as explained elsewhere). Most of them are rather simple and will greatly help you understand how to create your own scripts. Poznámka: The sf, rgdal and raster libraries are loaded by default, so you do not have to add the corresponding library() commands. However, other libraries that you might need have to be explicitly loaded by typing: library(ggplot2) (to load the ggplot2 library). If the package is not already installed on your machine, Processing will try to download and install it. In this way the package will also become available in R Standalone. Be aware that if the package has to be downloaded, the script may take a long time to run the first time. 772 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide 23.10.6 R libraries The R script sp_test tries to load the R packages sp and raster. R libraries installed when running sf_test The R script sf_test tries to load sf and raster. If these two packages are not installed, R may try to load and install them (and all the libraries that they depend on). The following R libraries end up in ~/.local/share/QGIS/QGIS3/profiles/default/ processing/rscripts after sf_test has been run from the Processing Toolbox on Ubuntu with version 2.0 of the Processing R Provider plugin and a fresh install of R 3.4.4 (apt package r-base-core only): abind, askpass, assertthat, backports, base64enc, BH, bit, bit64, blob, brew, callr, classInt, cli, colorspace, covr, crayon, crosstalk, curl, DBI, deldir, desc, dichromat, digest, dplyr, e1071, ellipsis, evaluate, fansi, farver, fastmap, gdtools, ggplot2, glue, goftest, gridExtra, gtable, highr, hms, htmltools, htmlwidgets, httpuv, httr, jsonlite, knitr, labeling, later, lazyeval, leafem, leaflet, leaflet.providers, leafpop, leafsync, lifecycle, lwgeom, magrittr, maps, mapview, markdown, memoise, microbenchmark, mime, munsell, odbc, openssl, pillar, pkgbuild, pkgconfig, pkgload, plogr, plyr, png, polyclip, praise, prettyunits, processx, promises, ps, purrr, R6, raster, RColorBrewer, Rcpp, reshape2, rex, rgeos, rlang, rmarkdown, RPostgres, RPostgreSQL, rprojroot, RSQLite, rstudioapi, satellite, scales, sf, shiny, sourcetools, sp, spatstat, spatstat.data, spatstat.utils, stars, stringi, stringr, svglite, sys, systemfonts, tensor, testthat, tibble, tidyselect, tinytex, units, utf8, uuid, vctrs, viridis, viridisLite, webshot, withr, xfun, XML, xtable 23.10.7 GRASS Configuring GRASS is not much different from configuring SAGA. First, the path to the GRASS folder has to be defined, but only if you are running Windows. By default, the Processing framework tries to configure its GRASS connector to use the GRASS distribution that ships along with QGIS. This should work without problems for most systems, but if you experience problems, you might have to configure the GRASS connector manually. Also, if you want to use a different GRASS installation, you can change the setting to point to the folder where the other version is installed. GRASS 7 is needed for algorithms to work correctly. If you are running Linux, you just have to make sure that GRASS is correctly installed, and that it can be run without problem from a terminal window. GRASS algorithms use a region for calculations. This region can be defined manually using values similar to the ones found in the SAGA configuration, or automatically, taking the minimum extent that covers all the input layers used to execute the algorithm each time. If the latter approach is the behavior you prefer, just check the Use min covering region option in the GRASS configuration parameters. 23.10. Configuring external applications 773 QGIS Desktop 3.16 User Guide 23.10.8 LAStools To use LAStools in QGIS, you need to download and install LAStools on your computer and install the LAStools plugin (available from the official repository) in QGIS. On Linux platforms, you will need Wine to be able to run some of the tools. LAStools is activated and configured in the Processing options (Settings ► Options, Processing tab, Providers ► LAStools), where you can specify the location of LAStools (LAStools folder) and Wine (Wine folder). On Ubuntu, the default Wine folder is /usr/bin. 23.10.9 OTB Applications OTB applications are fully supported within the QGIS Processing framework. OTB (Orfeo ToolBox) is an image processing library for remote sensing data. It also provides applications that provide image processing functionalities. The list of applications and their documentation are available in OTB CookBook Poznámka: Note that OTB is not distributed with QGIS and needs to be installed separately. Binary packages for OTB can be found on the download page. To configure QGIS processing to find the OTB library: 1. Open the processing settings: Settings ► Options ► Processing (left panel)* 2. You can see OTB under „Providers“: 1. Expand the OTB tab 2. Tick the Activate option 3. Set the OTB folder. This is the location of your OTB installation. 4. Set the OTB application folder. This is the location of your OTB applications ( /lib/otb/applications) 5. Click „ok“ to save the settings and close the dialog. If settings are correct, OTB algorithms will be available in the Processing Toolbox. Documentation of OTB settings available in QGIS Processing • Activate: This is a checkbox to activate or deactivate the OTB provider. An invalid OTB setting will uncheck this when saved. • OTB folder: This is the directory where OTB is available. • OTB application folder: This is the location(s) of OTB applications. Multiple paths are allowed. • Logger level (optional): Level of logger to use by OTB applications. The level of logging controls the amount of detail printed during algorithm execution. Possible values for logger level are INFO, WARNING, CRITICAL, DEBUG. This value is INFO by default. This is an advanced user configuration. • Maximum RAM to use (optional): by default, OTB applications use all available system RAM. You can, however, instruct OTB to use a specific amount of RAM (in MB) using this option. A value of 256 is ignored by the OTB processing provider. This is an advanced user configuration. 774 Kapitola 23. QGIS processing framework QGIS Desktop 3.16 User Guide • Geoid file (optional): Path to the geoid file. This option sets the value of the elev.dem.geoid and elev.geoid parameters in OTB applications. Setting this value globally enables users to share it across multiple processing algorithms. Empty by default. • SRTM tiles folder (optional): Directory where SRTM tiles are available. SRTM data can be stored locally to avoid downloading of files during processing. This option sets the value of elev.dem.path and elev.dem parameters in OTB applications. Setting this value globally enables users to share it across multiple processing algorithms. Empty by default. Compatibility between QGIS and OTB versions All OTB versions (from OTB 6.6.1) are compatible with the latest QGIS version. Troubleshoot If you have issues with OTB applications in QGIS Processing, please open an issue on the OTB bug tracker, using the qgis label. Additional information about OTB and QGIS can be found here 23.10. Configuring external applications 775 QGIS Desktop 3.16 User Guide 776 Kapitola 23. QGIS processing framework KAPITOLA 24 Processing providers and algorithms Processing algorithms and their parameters (as presented in the user interface) are documented here. 24.1 QGIS algorithm provider QGIS algorithm provider implements various analysis and geoprocessing operations using mostly only QGIS API. So almost all algorithms from this provider will work „out of the box“ without any additional configuration. This provider incorporates some algorithms from plugins and also adds its own algorithms. 24.1.1 Cartography Align points to features Calculates the rotation required to align point features with their nearest feature from another reference layer. A new field is added to the output layer which is filled with the angle (in degrees, clockwise) to the nearest reference feature. Optionally, the output layer’s symbology can be set to automatically use the calculated rotation field to rotate marker symbols. If desired, a maximum distance to use when aligning points can be set, to avoid aligning isolated points to distant features. Rada: This algorithm is designed for use cases like aligning building point symbols to follow the nearest road direction. Allows features in-place modification 777 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: point] Point features to calculate the rotation for Reference layer REFERENCE_LAYER[vector: any] Layer to find the closest feature from for rotation calculation Maximum distance to consider Optional MAX_DISTANCE [number] Default: Not set If no reference feature is found within this distance, no rotation is assigned to the point feature. Angle field name FIELD_NAME [string] Default: ‚rotation‘ Field in which to store the rotation value. Automatically apply symbology APPLY_SYMBOLOGY[boolean] Default: True Rotates the symbol marker of the features using the angle field value Aligned layer OUTPUT [vector: point] Default: [Save to temporary file] Specify the rotated output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to Database Table… The file encoding can also be changed here. Outputs Label Název Type Popis Aligned layer OUTPUT [vector: point] The point layer appended with a rotation field. If loaded to QGIS, it is applied by default the input layer symbology, with a data-defined rotation of its marker symbol. Python code Algorithm ID: native:angletonearest import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 778 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Combine style databases Combines multiple QGIS style databases into a single style database. If items of the same type with the same name exist in different source databases these will be renamed to have unique names in the output combined database. Viz také: Create style database from project Parameters Label Název Type Popis Input databases INPUT [file] [list] Files containing QGIS style items Objects to combine OBJECTS [enumeration] [list] Types of style items in the input databases you would like to put in the new database. These can be: • 0 — Symbols • 1 — Color ramps • 2 — Text formats • 3 — Label settings Output style database OUTPUT [file] Default: [Save to temporary file] Output .XML file combining the selected style items. One of: • Save to a Temporary File • Save to File… Outputs Label Název Type Popis Color ramp count COLORRAMPS [number] Label settings count LABELSETTINGS [number] Output style database OUTPUT [file] Output .XML file combining the selected style items Symbol count SYMBOLS [number] Text format count TEXTFORMATS [number] Python code Algorithm ID: native:combinestyles import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 779 QGIS Desktop 3.16 User Guide Create categorized renderer from styles Sets a vector layer’s renderer to a categorized renderer using matching symbols from a style database. If no style file is specified, symbols from the user’s current symbol library are used instead. A specified expression or field is used to create categories for the renderer. Each category is individually matched to the symbols which exist within the specified QGIS XML style database. Whenever a matching symbol name is found, the category’s symbol will be set to this matched symbol. If desired, outputs can also be tables containing lists of the categories which could not be matched to symbols, and symbols which were not matched to categories. Parameters Label Název Type Popis Input layer INPUT [vector: any] Vector layer to apply a categorized style to Categorize using expression FIELD [expression] Field or expression to categorize the features Style database (leave blank to use saved symbols) STYLE [file] File (.XML) containing the symbols to apply to the input layer categories. The file can be obtained from the Style Manager Share symbols tool. If no file is specified, QGIS local symbols library is used. Use case-sensitive match to symbol names CASE_SENSITIVE [boolean] Default: False If True (checked), applies a case sensitive comparison between the categories and symbols names Ignore non- -alphanumeric characters while matching TOLERANT [boolean] Default: False If True (checked), non-alphanumeric characters in the categories and symbols names will be ignored, allowing greater tolerance during the match. Non-matching categories Optional NON_MATCHING_CATEGORIES[table] Default: [Skip output] Output table for categories which do not match any symbol in the database. One of: • Skip Output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to Database Table… The file encoding can also be changed here. Non-matching symbol names Optional NON_MATCHING_SYMBOLS[table] Default: [Skip output] Output table for symbols from the provided style database which do not match any category. One of: • Skip Output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to Database Table… The file encoding can also be changed here. 780 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Non-matching categories NON_MATCHING_CATEGORIES[table] Lists categories which could not be matched to any symbol in the provided style database Non-matching symbol names NON_MATCHING_SYMBOLS[table] Lists symbols from the provided style database which could not match any category Categorized layer OUTPUT [same as input] The input vector layer with the categorized style applied. No new layer is output. Python code Algorithm ID: native:categorizeusingstyle import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create style database from project Extracts all style objects (symbols, color ramps, text formats and label settings) from a QGIS project. The extracted symbols are saved to a QGIS style database (XML format), which can be managed and imported via the Style Manager dialog. Viz také: Combine style databases Parameters Label Název Type Popis Input project (leave blank to use current) Optional INPUT [file] A QGIS project file to extract the style items from Objects to extract OBJECTS [enumeration] [list] Types of style items in the input project you would like to put in the new database. These can be: • 0 — Symbols • 1 — Color ramps • 2 — Text formats • 3 — Label settings Output style database OUTPUT [file] Default: [Save to temporary file] Specify the output .XML file for the selected style items. One of: • Save to a Temporary File • Save to File… 24.1. QGIS algorithm provider 781 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Color ramp count COLORRAMPS [number] Number of color ramps Label settings count LABELSETTINGS [number] Number of label settings Output style database OUTPUT [file] Output .XML file for the selected style items Symbol count SYMBOLS [number] Number of symbols Text format count TEXTFORMATS [number] Number of text formats Python code Algorithm ID: native:stylefromproject import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Export atlas layout as image Exports the atlas of a print layout as image files (e.g. PNG or JPEG images). If a coverage layer is set, the selected layout’s atlas settings exposed in this algorithm will be overwritten. In this case, an empty filter or sort by expression will turn those settings off. Parameters Basic parameters Label Název Type Popis Atlas layout LAYOUT [layout] Layout to export Coverage layer Optional COVERAGE_LAYER [vector: any] Layer to use to generate the atlas Filter expression FILTER_EXPRESSION[expression] Expression to use to filter out atlas features Sort expression Optional SORTBY_EXPRESSION[expression] Expression to use to sort the atlas features Reverse sort order Optional SORTBY_REVERSE [boolean] Determines if sorting should be inverted. Used when a sort expression is provided. Output filename expression FILENAME_EXPRESSION[expression] Default: ‚output_‘||@atlas_featurenumber Expression for use to generate filenames Output folder FOLDER [folder] Destination folder where the images will be generated 782 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Advanced parameters Label Název Type Popis Map layers to assign to unlocked map item(s) Optional LAYERS [enumeration] [layer] Layers to display in the map item(s) whose contents are not locked Image format EXTENSION [list] Default: png File format of the generated output(s). The list of available formats varies depending on OS and installed drivers. DPI Optional DPI Default: Not set [number] DPI of the output file(s). If not set, the value in the print layout settings will be used. Generate world file GEOREFERENCE [boolean] Default: True Determines if a world file should be generated Export RDF metadata INCLUDE_METADATA[boolean] Default: True Determines if RDF metadata (title, author, …) should be generated Enable antialiasing ANTIALIAS [boolean] Default: True Determines if antialiasing should be enabled Outputs Label Název Type Popis Image file OUTPUT [file] Image files generated by the atlas layout Python code Algorithm ID: native:atlaslayouttoimage import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Export atlas layout as PDF Exports the atlas of a print layout as a PDF file(s). If a coverage layer is set, the selected layout’s atlas settings exposed in this algorithm will be overwritten. In this case, an empty filter or sort by expression will turn those settings off. Parameters 24.1. QGIS algorithm provider 783 QGIS Desktop 3.16 User Guide Basic parameters Label Název Type Popis Atlas layout LAYOUT [layout] Layout to export Coverage layer Optional COVERAGE_LAYER [vector: any] Layer to use to generate the atlas Filter expression FILTER_EXPRESSION[expression] Expression to use to filter out atlas features Sort expression Optional SORTBY_EXPRESSION[expression] Expression to use to sort the atlas features Reverse sort order Optional SORTBY_REVERSE [boolean] Determines if sorting should be inverted. Used when a sort expression is provided. Advanced parameters Label Název Type Popis Map layers to assign to unlocked map item(s) Optional LAYERS [enumeration] [layer] Layers to display in the map item(s) whose contents are not locked DPI Optional DPI Default: Not set [number] DPI of the output file(s). If not set, the value in the print layout settings will be used. Always export as vectors FORCE_VECTOR [boolean] Default: False Determines if vectorial data should be left as vectors Append georeference information GEOREFERENCE [boolean] Default: True Determines if a world file should be generated Export RDF metadata INCLUDE_METADATA[boolean] Default: True Determines if RDF metadata (title, author, …) should be generated Disable tiled raster layer exports DISABLE_TILED [boolean] Default: False Determines if raster should be tiled Simplify geometries to reduce output file size SIMPLIFY [boolean] Default: True Determines if geometries should be simplified to reduce output file size Text export TEXT_FORMAT [list] Default: 0 Determines if text should be exported as path or text objects. Possible options are: • 0 - Always export text as paths (recommended) • 1 - Always export texts as text objects PDF file OUTPUT [file] Default: [Save to temporary file] Name (including path) of the output file. One of: • Save to a Temporary File • Save to File… 784 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis PDF file OUTPUT [file] PDF file corresponding to the exported atlas layout Python code Algorithm ID: native:atlaslayouttopdf import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Export print layout as image Exports a print layout as an image file (e.g. PNG or JPEG images) Parameters Basic parameters Label Název Type Popis Print layout LAYOUT [layout] Layout to export Image file OUTPUT [file] Default: [Save to temporary file] Name (including path) of the output file. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Map layers to assign to unlocked map item(s) Optional LAYERS [enumeration] [layer] Layers to display in the map item(s) whose contents are not locked DPI Optional DPI Default: Not set [number] DPI of the output file(s). If not set, the value in the print layout settings will be used. Generate world file GEOREFERENCE [boolean] Default: True Determines if a world file should be generated Export RDF metadata INCLUDE_METADATA[boolean] Default: True Determines if RDF metadata (title, author, …) should be generated Enable antialiasing ANTIALIAS [boolean] Default: True Determines if antialiasing should be enabled 24.1. QGIS algorithm provider 785 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Image file OUTPUT [file] Image file corresponding to the exported print layout Python code Algorithm ID: native:printlayouttoimage import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Export print layout as pdf Exports a print layout as a PDF file. Parameters Basic parameters Label Název Type Popis Print Layout LAYOUT [layout] Layout to export PDF file OUTPUT [file] Default: [Save to temporary file] Name (including path) of the output file. One of: • Save to a Temporary File • Save to File… 786 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Advanced parameters Label Název Type Popis Map layers to assign to unlocked map item(s) Optional LAYERS [enumeration] [layer] Layers to display in the map item(s) whose contents are not locked DPI Optional DPI Default: Not set [number] DPI of the output file(s). If not set, the value in the print layout settings will be used. Always export as vectors FORCE_VECTOR [boolean] Default: False Determines if vectorial data should be left as vectors Append georeference information GEOREFERENCE [boolean] Default: True Determines if a world file should be generated Export RDF metadata INCLUDE_METADATA[boolean] Default: True Determines if RDF metadata (title, author, …) should be generated Disable tiled raster layer exports DISABLE_TILED [boolean] Default: False Determines if raster should be tiled Simplify geometries to reduce output file size SIMPLIFY [boolean] Default: True Determines if geometries should be simplified to reduce output file size Text export TEXT_FORMAT [list] Default: 0 Determines if text should be exported as path or text objects. Possible options are: • 0 - Always export text as paths (recommended) • 1 - Always export texts as text objects Export layers as separate PDF files SEPARATE_LAYERS[boolean] Default: False If True, then a separate PDF file will be created per layer per map item in the layout. Additionally, separate PDF files may be created for other complex layout items, resulting in a set of PDF files which contain logical atomic components of the layout. Outputs Label Název Type Popis PDF file OUTPUT [file] PDF file(s) corresponding to the exported print layout Python code Algorithm ID: native:printlayouttopdf import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 787 QGIS Desktop 3.16 User Guide Print layout map extent to layer Creates a polygon layer containing the extent of a print layout map item (or items), with attributes specifying the map size (in layout units, i.e. the reference map units), scale and rotation. If the map item parameter is specified, then only the matching map extent will be exported. If it is not specified, all map extents from the layout will be exported. Optionally, a specific output CRS can be specified. If it is not specified, the original map item CRS will be used. Parameters Basic parameters Label Název Type Popis Print layout LAYOUT [enumeration] A print layout in the current project Map item Optional MAP [enumeration] Default: All the map items The map item(s) whose information you want to extract. If none is provided then all the map items are processed. Extent OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer for the extent(s). One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to Database Table… The file encoding can also be changed here. Advanced parameters Label Název Type Popis Overrride CRS Optional CRS [crs] Default: The layout CRS Select the CRS for the layer in which the information will be reported. Outputs Label Název Type Popis Map height HEIGHT [number] Extent OUTPUT [vector: polygon] Output polygon vector layer containing extents of all the input layout map item(s) Map rotation ROTATION [number] Map scale SCALE [number] Map width WIDTH [number] 788 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:printlayoutmapextenttolayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Set layer style Applies a provided style to a layer. The style must be defined in a QML file. No new output are created: the style is immediately assigned to the layer. Parameters Label Název Type Popis Input Layer INPUT [layer] Input layer you want to apply the style to Style file STYLE [file] Path to the .qml file of the style Outputs Label Název Type Popis OUTPUT [same as input] The input layer with the new style assigned. No new layer is created. Python code Algorithm ID: native:setlayerstyle import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Topological coloring Assigns a color index to polygon features in such a way that no adjacent polygons share the same color index, whilst minimizing the number of colors required. The algorithm allows choice of method to use when assigning colors. A minimum number of colors can be specified if desired. The color index is saved to a new attribute named color_id. The following example shows the algorithm with four different colors chosen; as you can see each color class has the same amount of features. 24.1. QGIS algorithm provider 789 QGIS Desktop 3.16 User Guide Obr. 24.1: Topological colors example Parameters Label Název Type Popis Input layer INPUT [vector: polygon] The input polygon layer Minimum number of colors MIN_COLORS [number] Default: 4 The minimum number of colors to assign. Minimum 1, maximum 1000. Minimum distance between features MIN_DISTANCE [number] Default: 0.0 Prevent nearby (but non-touching) features from being assigned equal colors. Minimum 0.0. continues on next page 790 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.2 – pokračujte na předchozí stránce Label Název Type Popis Balance color assignment BALANCE [enumeration] Default: 0 Options are: • 0 — By feature count Attempts to assign colors so that the count of features assigned to each individual color index is balanced. • 1 — By assigned area Assigns colors so that the total area of features assigned to each color is balanced. This mode can be useful to help avoid large features resulting in one of the colors appearing more dominant on a colored map. • 2 — By distance between colors Assigns colors in order to maximize the distance between features of the same color. This mode helps to create a more uniform distribution of colors across a map. Colored OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to Database Table… The file encoding can also be changed here. Outputs Label Název Type Popis Colored OUTPUT [vector: polygon] Polygon vector layer with an added color_id column Python code Algorithm ID: qgis:topologicalcoloring import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 791 QGIS Desktop 3.16 User Guide 24.1.2 Databáze Export to PostgreSQL Exports a vector layer to a PostgreSQL database, creating a new relation. If a relation with the same name exists, it can be removed before the new relation is created. Prior to this a connection between QGIS and the PostgreSQL database has to be created (see eg Creating a stored Connection). Parameters Label Název Type Popis Layer to import INPUT [vector: any] Vector layer to add to the database Database (connection name) DATABASE [string] Name of the database connection (not the database name). Existing connections will be shown in the combobox. Schema (schema name) Optional SCHEMA [string] Default: ‚public‘ Name of the schema to store the data. It can be a new one or already exist. Table to import to (leave blank to use layer name) Optional TABLENAME [string] Default: ‚‘ Defines a table name for the imported vector file. If nothing is added, the layer name will be used. Primary key field Optional PRIMARY_KEY [tablefield: any] Sets the primary key field from an existing field in the vector layer. A column with unique values can be used as Primary key for the database. Geometry column GEOMETRY_COLUMN[string] Default: ‚geom‘ Defines the name of the geometry column in the new PostGIS table. Geometry information for the features is stored in this column. Encoding Optional ENCODING [string] Default: ‚UTF-8‘ Defines the encoding of the output layer Overwrite OVERWRITE [boolean] Default: True If the specified table exists, setting this option to True will make sure that it is deleted and a new table will be created before the features are added. If this option is False and the table exists, the algorithm will throw an exception („relation already exists“). Create spatial index CREATEINDEX [boolean] Default: True Specifies whether to create a spatial index or not Convert field names to lowercase LOWERCASE_NAMES[boolean] Default: True Converts the field names of the input vector layer to lowercase Drop length constraint on character fields DROP_STRING_LENGTH[boolean] Default: False Should length constraints on character fields be dropped or not Create single-part geometries instead of multi-part FORCE_SINGLEPART[boolean] Default: False Should the features of the output layer be single-part instead of multi-part. By default the existing geometries information are preserved. 792 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs The algorithm has no output. Python code Algorithm ID: qgis:importintopostgis import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Export to SpatiaLite Exports a vector layer to a SpatiaLite database. Prior to this a connection between QGIS and the SpatiaLite database has to be created (see eg SpatiaLite Layers). Parameters Label Název Type Popis Layer to import INPUT [vector: any] Vector layer to add to the database File database DATABASE [vector: any] The SQLite/SpatiaLite database file to connect to Table to import to (leave blank to use layer name) Optional TABLENAME [string] Default: ‚‘ Defines the table name for the imported vector file. If nothing is specified, the layer name will be used. Primary key field Optional PRIMARY_KEY [tablefield: any] Use a field in the input vector layer as the primary key Geometry column GEOMETRY_COLUMN[string] Default: ‚geom‘ Defines the name of the geometry column in the new SpatiaLite table. Geometry information for the features is stored in this column. Encoding Optional ENCODING [string] Default: ‚UTF-8‘ Defines the encoding of the output layer Overwrite OVERWRITE [boolean] Default: True If the specified table exists, setting this option to True will make sure that it is deleted and a new table will be created before the features of the layer is added. If this option is False and the table exists, the algorithm will throw an exception („table already exists“). Create spatial index CREATEINDEX [boolean] Default: True Specifies whether to create a spatial index or not Convert field names to lowercase LOWERCASE_NAMES[boolean] Default: True Convert the field names of the input vector layer to lowercase Drop length constraint on character fields DROP_STRING_LENGTH[boolean] Default: False Should length constraints on character fields be dropped or not continues on next page 24.1. QGIS algorithm provider 793 QGIS Desktop 3.16 User Guide Tabulka 24.4 – pokračujte na předchozí stránce Label Název Type Popis Create single-part geometries instead of multi-part FORCE_SINGLEPART[boolean] Default: False Should the features of the output layer be single-part instead of multi-part. By default the existing geometries information are preserved. Outputs The algorithm has no output. Python code Algorithm ID: qgis:importintospatialite import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Package layers Adds layers to a GeoPackage. If the GeoPackage exists and Overwrite existing GeoPackage is checked, it will be overwritten (removed and recreated). If the GeoPackage exists and Overwrite existing GeoPackage is not checked, the layer will be appended. Parameters Label Název Type Popis Input layers LAYERS [vector: any] [list] The (vector) layers to import into the GeoPackage. Raster layers are not supported. If a raster layer is added, a QgsProcessingException will be thrown. Overwrite existing GeoPackage OVERWRITE [boolean] Default: False If the specified GeoPackage exists, setting this option to True will make sure that it is deleted and a new one will be created before the layers are added. If set to False, layers will be appended. Save layer styles into GeoPackage SAVE_STYLES [boolean] Default: True Save the layer styles Destination GeoPackage OUTPUT [file] Default: [Save to temporary file] Specify where to store the GeoPackage file. One of • Save to a Temporary File • Save to File… 794 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Layers within new package OUTPUT_LAYERS [string] [list] The list of layers added to the GeoPackage. Python code Algorithm ID: native:package import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. PostgreSQL execute and load SQL Allows a SQL database query to be performed on a PostgreSQL database connected to QGIS and loads the result. The algorithm won’t create a new layer: it is designed to run queries on the layer itself. Example 1. Set all the values of an existing field to a fixed value. The SQL query string will be: UPDATE your_table SET field_to_update=20; In the example above, the values of the field field_to_update of the table your_table will be all set to 20. 2. Create a new area column and calculate the area of each feature with the ST_AREA PostGIS function. -- Create the new column "area" on the table your_table" ALTER TABLE your_table ADD COLUMN area double precision; -- Update the "area" column and calculate the area of each feature: UPDATE your_table SET area=ST_AREA(geom); Viz také: PostgreSQL execute SQL, Execute SQL, SpatiaLite execute SQL Parameters Label Název Type Popis Database (connection name) DATABASE [string] The database connection (not the database name). Existing connections will be shown in the combobox. SQL query SQL [string] Defines the SQL query, for example 'UPDATE my_table SET field=10'. Unique ID field name ID_FIELD [string] Default: id Sets the primary key field (a column in the result table) Geometry field name Optional GEOMETRY_FIELD [string] Default: ‚geom‘ Name of the geometry column (a column in the result table) 24.1. QGIS algorithm provider 795 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis SQL layer OUTPUT [vector: any] The resulting vector layer to be loaded into QGIS. Python code Algorithm ID: qgis:postgisexecuteandloadsql import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. PostgreSQL execute SQL Allows a SQL database query to be performed on a PostgreSQL database connected to QGIS. The algorithm won’t create a new layer: it is designed to run queries on the layer itself. Example 1. Set all the values of an existing field to a fixed value. The SQL query string will be: UPDATE your_table SET field_to_update=20; In the example above, the values of the field field_to_update of the table your_table will be all set to 20. 2. Create a new area column and calculate the area of each feature with the ST_AREA PostGIS function. -- Create the new column "area" on the table your_table" ALTER TABLE your_table ADD COLUMN area double precision; -- Update the "area" column and calculate the area of each feature: UPDATE your_table SET area=ST_AREA(geom); Viz také: PostgreSQL execute and load SQL, Execute SQL, SpatiaLite execute SQL Parameters Label Název Type Popis Database (connection name) DATABASE [string] The database connection (not the database name). Existing connections will be shown in the combobox. SQL query SQL [string] Defines the SQL query, for example 'UPDATE my_table SET field=10'. 796 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs No output is created. The SQL query is executed in place. Python code Algorithm ID: native:postgisexecutesql import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. SpatiaLite execute SQL Allows a SQL database query to be performed on a SpatiaLite database. The algorithm won’t create a new layer: it is designed to run queries on the layer itself. Viz také: PostgreSQL execute SQL, Execute SQL For some SQL query examples see PostGIS SQL Query Examples. Parameters Label Název Type Popis File Database DATABASE [vector] The SQLite/SpatiaLite database file to connect to SQL query SQL [string] Default: ‚‘ Defines the SQL query, for example 'UPDATE my_table SET field=10'. Outputs No output is created. The SQL query is executed in place. Python code Algorithm ID: native:spatialiteexecutesql import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 797 QGIS Desktop 3.16 User Guide SpatiaLite execute SQL (registered DB) Allows a SQL database query to be performed on a SpatiaLite database connected to QGIS. The algorithm won’t create a new layer: it is designed to run queries on the layer itself. Viz také: PostgreSQL execute SQL, Execute SQL For some SQL query examples see PostGIS SQL Query Examples. Parameters Label Název Type Popis Database DATABASE [enumeration] Default: not set Select a SQLite/SpatiaLite database connected to the current session SQL query SQL [string] Default: ‚‘ Defines the SQL query, for example 'UPDATE my_table SET field=10'. Outputs No output is created. The SQL query is executed in place. Python code Algorithm ID: native:spatialiteexecutesqlregistered import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.3 File tools Download file Downloads a file specified using a URL (using for instance http: or file:). In other words you can copy/paste a URL and download the file. Parameters Label Název Type Popis URL URL [string] The URL of the file to download. File destination OUTPUT [string] Default: [Save to temporary file] Specification of the file destination. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. 798 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis File destination OUTPUT [string] The location of the downloaded file Python code Algorithm ID: qgis:filedownloader import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.4 Interpolation Heatmap (kernel density estimation) Creates a density (heatmap) raster of an input point vector layer using kernel density estimation. The density is calculated based on the number of points in a location, with larger numbers of clustered points resulting in larger values. Heatmaps allow easy identification of hotspots and clustering of points. Parameters Label Název Type Popis Point layer INPUT [vector: point] Point vector layer to use for the heatmap Radius RADIUS [number] Default: 100.0 Heatmap search radius (or kernel bandwidth) in map units. The radius specifies the distance around a point at which the influence of the point will be felt. Larger values result in greater smoothing, but smaller values may show finer details and variation in point density. Output raster size PIXEL_SIZE [number] Default: 0.1 Pixel size of the output raster layer in layer units. In the GUI, the size can be specified by the number of rows (Number of rows) / columns (Number of columns) or the pixel size( Pixel Size X / Pixel Size Y). Increasing the number of rows or columns will decrease the cell size and increase the file size of the output raster. The values in Rows, Columns, Pixel Size X and Pixel Size Y will be updated simultaneously - doubling the number of rows will double the number of columns, and the cell size will be halved. The extent of the output raster will remain the same (approximately). continues on next page 24.1. QGIS algorithm provider 799 QGIS Desktop 3.16 User Guide Tabulka 24.5 – pokračujte na předchozí stránce Label Název Type Popis Radius from field Optional RADIUS_FIELD [tablefield: numeric] Sets the search radius for each feature from an attribute field in the input layer. Weight from field Optional WEIGHT_FIELD [tablefield: numeric] Allows input features to be weighted by an attribute field. This can be used to increase the influence certain features have on the resultant heatmap. Kernel shape KERNEL [enumeration] Default: 0 Controls the rate at which the influence of a point decreases as the distance from the point increases. Different kernels decay at different rates, so a triweight kernel gives features greater weight for distances closer to the point then the Epanechnikov kernel does. Consequently, triweight results in “sharper” hotspots and Epanechnikov results in “smoother” hotspots. There are many shapes available (please see the Wikipedia page for further information): • 0 — Quartic • 1 — Triangular • 2 — Uniform • 3 — Triweight • 4 — Epanechnikov Decay ratio (Triangular kernels only) Optional DECAY [number] Default: 0.0 Can be used with Triangular kernels to further control how heat from a feature decreases with distance from the feature. • A value of 0 (=minimum) indicates that the heat will be concentrated in the center of the given radius and completely extinguished at the edge. • A value of 0.5 indicates that pixels at the edge of the radius will be given half the heat as pixels at the center of the search radius. • A value of 1 means the heat is spread evenly over the whole search radius circle. (This is equivalent to the ‘Uniform’ kernel.) • A value greater than 1 indicates that the heat is higher towards the edge of the search radius than at the center. Output value scaling OUTPUT_VALUE [enumeration] Default: Raw Allow to change the values of the output heatmap raster. One of: • 0 — Raw • 1 — Scaled Heatmap OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer with kernel density values. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 800 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Heatmap OUTPUT [raster] Raster layer with kernel density values Example: Creating a Heatmap For the following example, we will use the airports vector point layer from the QGIS sample dataset (see Downloading sample data). Another excellent QGIS tutorial on making heatmaps can be found at http://qgistutorials.com. In Obr. 24.2, the airports of Alaska are shown. Obr. 24.2: Airports of Alaska 1. Open the Heatmap (Kernel Density Estimation) algorithm from the QGIS Interpolation group 2. In the Point layer field, select airports from the list of point layers loaded in the current project. 3. Change the Radius to 1000000 meters. 4. Change the Pixel size X to 1000. The Pixel size Y, Rows and Columns will be automatically updated. 5. Click on Run to create and load the airports heatmap (see Obr. 24.4). 24.1. QGIS algorithm provider 801 QGIS Desktop 3.16 User Guide Obr. 24.3: The Heatmap Dialog QGIS will generate the heatmap and add it to your map window. By default, the heatmap is shaded in greyscale, with lighter areas showing higher concentrations of airports. The heatmap can now be styled in QGIS to improve its appearance. 802 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.4: The heatmap after loading looks like a grey surface 1. Open the properties dialog of the heatmap_airports layer (select the layer heatmap_airports, open the context menu with the right mouse button and select Properties). 2. Select the Symbology tab. 3. Change the Render type to ‚Singleband pseudocolor‘. 4. Select a suitable Color ramp , for instance YlOrRd. 5. Click the Classify button. 6. Press OK to update the layer. The final result is shown in Obr. 24.5. 24.1. QGIS algorithm provider 803 QGIS Desktop 3.16 User Guide Obr. 24.5: Styled heatmap of airports of Alaska Python code Algorithm ID: qgis:heatmapkerneldensityestimation import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. IDW Interpolation Generates an Inverse Distance Weighted (IDW) interpolation of a point vector layer. Sample points are weighted during interpolation such that the influence of one point relative to another declines with distance from the unknown point you want to create. The IDW interpolation method also has some disadvantages: the quality of the interpolation result can decrease, if the distribution of sample data points is uneven. Furthermore, maximum and minimum values in the interpolated surface can only occur at sample data points. 804 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer(s) INTERPOLATION_DATA[string] Vector layer(s) and field(s) to use for the interpolation, coded in a string (see the ParameterInterpolationData class in InterpolationWidgets for more details). The following GUI elements are provided to compose the interpolation data string: • Vector layer [vector: any] • Interpolation attribute [tablefield: numeric]: Attribute to use in the interpolation • Use Z-coordinate for interpolation [boolean]: Uses the layer’s stored Z values (Default: False) For each of the added layer-field combinations, a type can be chosen: • Points • Structured lines • Break lines In the string, the layer-field elements are separated by '::|::'. The sub-elements of the layer-field elements are separated by '::~::'. Distance coefficient P DISTANCE_COEFFICIENT[number] Default: 2.0 Sets the distance coefficient for the interpolation. Minimum: 0.0, maximum: 100.0. Extent (xmin, xmax, ymin, ymax) EXTENT [extent] Extent of the output raster layer. You have to declare the output extent by either choosing it from the map canvas, selecting it from another layer or type it manually. Output raster size PIXEL_SIZE [number] Default: 0.1 Pixel size of the output raster layer in layer units. In the GUI, the size can be specified by the number of rows (Number of rows) / columns (Number of columns) or the pixel size( Pixel Size X / Pixel Size Y). Increasing the number of rows or columns will decrease the cell size and increase the file size of the output raster. The values in Rows, Columns, Pixel Size X and Pixel Size Y will be updated simultaneously - doubling the number of rows will double the number of columns, and the cell size will be halved. The extent of the output raster will remain the same (approximately). Interpolated OUTPUT [raster] Default: [Save to temporary file] Raster layer of interpolated values. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.1. QGIS algorithm provider 805 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Interpolated OUTPUT [raster] Raster layer of interpolated values Python code Algorithm ID: qgis:idwinterpolation import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Line Density Calculates for each raster cell, the density measure of linear features within a circular neighbourhood. This measure is obtained by summing all the line segments intersecting the circular neighbourhood and dividing this sum by the area of such neighbourhood. A weighting factor can be applied to the line segments. Obr. 24.6: Line density example. Input layer source: Roads Overijssel - The Netherlands (OSM). Parameters Label Název Type Popis Input line layer INPUT [vector: any] Input vector layer containing line features Weight field WEIGHT [number] Field of the layer containing the weight factor to use during the calculation Search Radius RADIUS [number] Default: 10 Radius of the circular neighbourhood. Units can be specified here. Pixel size PIXEL_SIZE [number] Default: 10 Pixel size of the output raster layer in layer units. The raster has square pixels. Line density raster OUTPUT [raster] Default: [Save to temporary file] The output as a raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 806 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Line density raster OUTPUT [raster] The output line density raster layer. Python code Algorithm ID: native:linedensity import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. TIN Interpolation Generates a Triangulated Irregular Network (TIN) interpolation of a point vector layer. With the TIN method you can create a surface formed by triangles of nearest neighbor points. To do this, circumcircles around selected sample points are created and their intersections are connected to a network of non overlapping and as compact as possible triangles. The resulting surfaces are not smooth. The algorithm creates both the raster layer of the interpolated values and the vector line layer with the triangulation boundaries. Parameters Label Název Type Popis Input layer(s) INTERPOLATION_DATA[string] Vector layer(s) and field(s) to use for the interpolation, coded in a string (see the ParameterInterpolationData class in InterpolationWidgets for more details). The following GUI elements are provided to compose the interpolation data string: • Vector layer [vector: any] • Interpolation attribute [tablefield: numeric]: Attribute to use in the interpolation • Use Z-coordinate for interpolation [boolean]: Uses the layer’s stored Z values (Default: False) For each of the added layer-field combinations, a type can be chosen: • Points • Structured lines • Break lines In the string, the layer-field elements are separated by '::|::'. The sub-elements of the layer-field elements are separated by '::~::'. continues on next page 24.1. QGIS algorithm provider 807 QGIS Desktop 3.16 User Guide Tabulka 24.11 – pokračujte na předchozí stránce Label Název Type Popis Interpolation method METHOD [enumeration] Default: 0 Set the interpolation method to be used. One of: • Linear • Clough-Toucher (cubic) Extent (xmin, xmax, ymin, ymax) EXTENT [extent] Extent of the output raster layer. You have to declare the output extent by either choosing it from the map canvas, selecting it from another layer or type it manually. Output raster size PIXEL_SIZE [number] Default: 0.1 Pixel size of the output raster layer in layer units. In the GUI, the size can be specified by the number of rows (Number of rows) / columns (Number of columns) or the pixel size( Pixel Size X / Pixel Size Y). Increasing the number of rows or columns will decrease the cell size and increase the file size of the output raster. The values in Rows, Columns, Pixel Size X and Pixel Size Y will be updated simultaneously - doubling the number of rows will double the number of columns, and the cell size will be halved. The extent of the output raster will remain the same (approximately). Interpolated OUTPUT [raster] Default: [Save to temporary file] The output TIN interpolation as a raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Triangulation TRIANGULATION [vector: line] Default: [Skip output] The output TIN as a vector layer. One of: • Skip Output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… Outputs Label Název Type Popis Interpolated OUTPUT [raster] The output TIN interpolation as a raster layer Triangulation TRIANGULATION [vector: line] The output TIN as a vector layer. 808 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:tininterpolation import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.5 Layer tools Extract layer extent Generates a vector layer with the minimum bounding box (rectangle with N-S orientation) that covers all the input features. The output layer contains a single bounding box for the whole input layer. Obr. 24.7: In red the bounding box of the source layer Default menu: Vector ► Research Tools 24.1. QGIS algorithm provider 809 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Layer INPUT [layer] Input layer Extent OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the polygon vector layer for the output extent. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Extent OUTPUT [vector: polygon] Output (polygon) vector layer with the extent (minimum bounding box) Python code Algorithm ID: qgis:polygonfromlayerextent import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.6 Modeler tools These tools are only available in the Graphical Modeler. They are not available in the Processing Toolbox. Conditional branch Adds a conditional branch into a model, allowing parts of the model to be executed based on the result of an expression evaluation. Mostly by using tool dependencies to control the flow of a model. Parameters Label Název Type Popis Field BRANCH [string] Name of the condition Field CONDITION [expression] Expression to evaluate 810 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs None. Python code Algorithm ID: native:condition import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Load layer into project Loads a layer to the current project. Parameters Label Název Type Popis Layer INPUT [layer] Layer to load in the legend Loaded layer name NAME [string] Name of the loaded layer Outputs Label Název Type Popis Layer OUTPUT [same as input] The (renamed) loaded layer Python code Algorithm ID: qgis:loadlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 811 QGIS Desktop 3.16 User Guide Raise exception Raises an exception and cancels a model’s execution. The exception message can be customized, and optionally an expression based condition can be specified. If an expression condition is used, then the exception will only be raised if the expression result is true. A false result indicates that no exception will be raised, and the model execution can continue uninterrupted. Parameters Label Název Type Popis Message MESSAGE [string] Message to display Condition CONDITION [expression] Expression to evaluate if true Outputs None. Python code Algorithm ID: native:raiseexception import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raise warning Raises a warning message in the log. The warning message can be customized, and optionally an expression based condition can be specified. If an expression condition is used, then the warning will only be logged if the expression result is true. A false result indicates that no warning will be logged. Parameters Label Název Type Popis Message MESSAGE [string] Message to display Condition CONDITION [expression] Expression to evaluate if true Outputs None. 812 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:raisewarning import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Rename layer Renames a layer. Parameters Label Název Type Popis Layer INPUT [layer] Layer to rename New name NAME [string] The new name of the layer Outputs Label Název Type Popis Layer OUTPUT [same as input] The (renamed) output layer Python code Algorithm ID: native:renamelayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Save log to file Saves the model’s execution log to a file. Optionally, the log can be saved in a HTML formatted version. 24.1. QGIS algorithm provider 813 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Use HTML USE_HTML [Boolean] Default: False Use HTML formatting Outputs Label Název Type Popis File OUTPUT [string] Destination of the log Python code Algorithm ID: native:savelog import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Set project variable Sets an expression variable for the current project. Parameters Label Název Type Popis Variable name NAME [string] Name of the variable Variable value VALUE [string] Value to be stored Outputs None. Python code Algorithm ID: native:setprojectvariable import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 814 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide String concatenation Concatenates two strings into a single one in the Processing Modeler. Parameters Label Název Type Popis Input 1 INPUT_1 [string] First string Input 2 INPUT_2 [string] Second string Outputs Label Název Type Popis Concatenation CONCATENATION [string] The concatenated string Python code Algorithm ID: qgis:stringconcatenation import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.7 Network analysis Service area (from layer) Returns all the edges or parts of edges of a network that can be reached within a distance or a time, starting from a point layer. This allows evaluation of accessibility within a network, e.g. what are the places I can navigate to on a road network without spending cost greater than a given value (the cost can be distance or time). Parameters Label Název Type Popis Vector layer representing network INPUT [vector: line] Line vector layer representing the network to be covered Vector layer with start points START_POINTS [vector: point] Point vector layer whose features are used as start points to generate the service areas Path type to calculate STRATEGY [enumeration] Default: 0 The type of path to calculate. One of: • 0 — Shortest • 1 — Fastest continues on next page 24.1. QGIS algorithm provider 815 QGIS Desktop 3.16 User Guide Tabulka 24.13 – pokračujte na předchozí stránce Label Název Type Popis Travel cost (distance for „Shortest“, time for „Fastest“) TRAVEL_COST [number] Default: 0 The value is estimated as a distance (in the network layer units) when looking for the Shortest path and as time (in hours) for the Fastest path. Direction field Optional DIRECTION_FIELD[tablefield: string] Default: 0.0 The field used to specify directions for the network edges. The values used in this field are specified with the three parameters Value for forward direction, Value for backward direction and Value for both directions. Forward and reverse directions correspond to a one-way edge, „both directions“ indicates a two-way edge. If a feature does not have a value in this field, or no field is set then the default direction setting (provided with the Default direction parameter) is used. Value for forward direction Optional VALUE_FORWARD [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a forward direction Value for backward direction Optional VALUE_BACKWARD [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a backward direction Value for both directions Optional VALUE_BOTH [string] Default: ‚‘ (empty string) Value set in the direction field to identify bidirectional edges Default direction Optional DEFAULT_DIRECTION[enumeration] Default: 2 If a feature has no value set in the direction field or if no direction field is set, then this direction value is used. One of: • 0 — Forward direction • 1 — Backward direction • 2 — Both directions Speed field Optional SPEED_FIELD [tablefield: string] Field providing the speed value (in km/h) for the edges of the network when looking for the fastest path. If a feature does not have a value in this field, or no field is set then the default speed value (provided with the Default speed parameter) is used. Default speed (km/h) Optional DEFAULT_SPEED [number] Default: 50.0 Value to use to calculate the travel time if no speed field is provided for an edge Topology tolerance Optional TOLERANCE [number] Default: 0.0 Two lines with nodes closer than the specified tolerance are considered connected 816 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Include upper/lower bound points INCLUDE_BOUNDS [boolean] Default: False Creates a point layer output with two points for each edge at the boundaries of the service area. One point is the start of that edge, the other is the end. Service area (lines) OUTPUT_LINES [vector: line] Default: [Create temporary layer] Specify the output line layer for the service area. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Service area (boundary nodes) OUTPUT [vector: point] Default: [Skip output] Specify the output point layer for the service area boundary nodes. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Service area (boundary nodes) OUTPUT [vector: point] The output point layer with the service area boundary nodes. Service area (lines) OUTPUT_LINES [vector: line] Line layer representing the parts of the network that can be serviced by the start points, for the given cost. Python code Algorithm ID: qgis:serviceareafromlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 817 QGIS Desktop 3.16 User Guide Service area (from point) Returns all the edges or parts of edges of a network that can be reached within a given distance or time, starting from a point feature. This allows the evaluation of accessibility within a network, e.g. what are the places I can navigate to on a road network without spending a cost greater than a given value (the cost can be distance or time). Parameters Label Název Type Popis Vector layer representing the network INPUT [vector: line] Line vector layer representing the network to be covered Start point (x, y) START_POINT [coordinates] Coordinate of the point to calculate the service area around. Path type to calculate STRATEGY [enumeration] Default: 0 The type of path to calculate. One of: • 0 — Shortest • 1 — Fastest Travel cost TRAVEL_COST [number] Default: 0 The value is estimated as a distance (in the network layer units) when looking for the Shortest path and as time (in hours) for the Fastest path. Advanced parameters GUI only Group of advanced network analysis parameters - see below. Service area (lines) OUTPUT_LINES [vector: line] Default: [Create temporary layer] Specify the output line layer for the service area. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Service area (boundary nodes) OUTPUT [vector: point] Default: [Skip output] Specify the output point layer for the service area boundary nodes. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Advanced parameters 818 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Label Název Type Popis Direction field Optional DIRECTION_FIELD[tablefield: string] Default: 0.0 The field used to specify directions for the network edges. The values used in this field are specified with the three parameters Value for forward direction, Value for backward direction and Value for both directions. Forward and reverse directions correspond to a one-way edge, „both directions“ indicates a two-way edge. If a feature does not have a value in this field, or no field is set then the default direction setting (provided with the Default direction parameter) is used. Value for forward direction Optional VALUE_FORWARD [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a forward direction Value for backward direction Optional VALUE_BACKWARD [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a backward direction Value for both directions Optional VALUE_BOTH [string] Default: ‚‘ (empty string) Value set in the direction field to identify bidirectional edges Default direction Optional DEFAULT_DIRECTION[enumeration] Default: 2 If a feature has no value set in the direction field or if no direction field is set, then this direction value is used. One of: • 0 — Forward direction • 1 — Backward direction • 2 — Both directions Speed field Optional SPEED_FIELD [tablefield: string] Field providing the speed value (in km/h) for the edges of the network when looking for the fastest path. If a feature does not have a value in this field, or no field is set then the default speed value (provided with the Default speed parameter) is used. Default speed (km/h) Optional DEFAULT_SPEED [number] Default: 50.0 Value to use to calculate the travel time if no speed field is provided for an edge Topology tolerance Optional TOLERANCE [number] Default: 0.0 Two lines with nodes closer than the specified tolerance are considered connected Include upper/lower bound points INCLUDE_BOUNDS [boolean] Default: False Creates a point layer output with two points for each edge at the boundaries of the service area. One point is the start of that edge, the other is the end. 24.1. QGIS algorithm provider 819 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Service area (boundary nodes) OUTPUT [vector: point] The output point layer with the service area boundary nodes. Service area (lines) OUTPUT_LINES [vector: line] Line layer representing the parts of the network that can be serviced by the start point, for the given cost. Python code Algorithm ID: qgis:serviceareafrompoint import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Shortest path (layer to point) Computes the optimal (shortest or fastest) routes from multiple start points defined by a vector layer and a given end point. Parameters Label Název Type Popis Vector layer representing network INPUT [vector: line] Line vector layer representing the network to be covered Path type to calculate STRATEGY [enumeration] Default: 0 The type of path to calculate. One of: • 0 — Shortest • 1 — Fastest Vector layer with start points START_POINTS [vector: point] Point vector layer whose features are used as start points of the routes End point (x, y) END_POINT [coordinates] Point feature representing the end point of the routes Advanced parameters GUI only The Advanced parameters group: continues on next page 820 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.18 – pokračujte na předchozí stránce Label Název Type Popis Direction field Optional DIRECTION_FIELD[tablefield: string] Default: 0.0 The field used to specify directions for the network edges. The values used in this field are specified with the three parameters Value for forward direction, Value for backward direction and Value for both directions. Forward and reverse directions correspond to a one-way edge, „both directions“ indicates a two-way edge. If a feature does not have a value in this field, or no field is set then the default direction setting (provided with the Default direction parameter) is used. Value for forward direction Optional VALUE_FORWARD [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a forward direction Value for backward direction Optional VALUE_BACKWARD [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a backward direction Value for both directions Optional VALUE_BOTH [string] Default: ‚‘ (empty string) Value set in the direction field to identify bidirectional edges Default direction Optional DEFAULT_DIRECTION[enumeration] Default: 2 If a feature has no value set in the direction field or if no direction field is set, then this direction value is used. One of: • 0 — Forward direction • 1 — Backward direction • 2 — Both directions Speed field Optional SPEED_FIELD [tablefield: string] Field providing the speed value (in km/h) for the edges of the network when looking for the fastest path. If a feature does not have a value in this field, or no field is set then the default speed value (provided with the Default speed parameter) is used. Default speed (km/h) Optional DEFAULT_SPEED [number] Default: 50.0 Value to use to calculate the travel time if no speed field is provided for an edge Topology tolerance Optional TOLERANCE [number] Default: 0.0 Two lines with nodes closer than the specified tolerance are considered connected End of the Advanced parameters group Shortest path OUTPUT [vector: line] Specify the output line layer for the shortest paths. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 821 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Shortest path OUTPUT [vector: line] Line layer of the shortest or fastest path from each of the start points to the end point Python code Algorithm ID: qgis:shortestpathlayertopoint import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Shortest path (point to layer) Computes the optimal (shortest or fastest) routes between a given start point and multiple end points defined by a point vector layer. Parameters Label Název Type Popis Vector layer representing network INPUT [vector: line] Line vector layer representing the network to be covered Path type to calculate STRATEGY [enumeration] Default: 0 The type of path to calculate. One of: • 0 — Shortest • 1 — Fastest Start point (x, y) START_POINT [coordinates] Point feature representing the start point of the routes Vector layer with end points END_POINTS [vector: point] Point vector layer whose features are used as end points of the routes Direction field Optional Advanced DIRECTION_FIELD[tablefield: string] Default: 0.0 The field used to specify directions for the network edges. The values used in this field are specified with the three parameters Value for forward direction, Value for backward direction and Value for both directions. Forward and reverse directions correspond to a one-way edge, „both directions“ indicates a two-way edge. If a feature does not have a value in this field, or no field is set then the default direction setting (provided with the Default direction parameter) is used. continues on next page 822 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.19 – pokračujte na předchozí stránce Label Název Type Popis Value for forward direction Optional Advanced VALUE_FORWARD [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a forward direction Value for backward direction Optional Advanced VALUE_BACKWARD [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a backward direction Value for both directions Optional Advanced VALUE_BOTH [string] Default: ‚‘ (empty string) Value set in the direction field to identify bidirectional edges Default direction Optional Advanced DEFAULT_DIRECTION[enumeration] Default: 2 If a feature has no value set in the direction field or if no direction field is set, then this direction value is used. One of: • 0 — Forward direction • 1 — Backward direction • 2 — Both directions Speed field Optional Advanced SPEED_FIELD [tablefield: string] Field providing the speed value (in km/h) for the edges of the network when looking for the fastest path. If a feature does not have a value in this field, or no field is set then the default speed value (provided with the Default speed parameter) is used. Default speed (km/h) Optional Advanced DEFAULT_SPEED [number] Default: 50.0 Value to use to calculate the travel time if no speed field is provided for an edge Topology tolerance Optional Advanced TOLERANCE [number] Default: 0.0 Two lines with nodes closer than the specified tolerance are considered connected Shortest path OUTPUT [vector: line] Specify the output line layer for the shortest paths. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Shortest path OUTPUT [vector: line] Line layer of the shortest or fastest path from each of the start points to the end point 24.1. QGIS algorithm provider 823 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:shortestpathpointtolayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Shortest path (point to point) Computes the optimal (shortest or fastest) route between a given start point and a given end point. Parameters Label Název Advanced Type Popis Vector layer representing network INPUT [vector: line] Line vector layer representing the network to be covered Path type to calculate STRATEGY [enumeration] Default: 0 The type of path to calculate. One of: • 0 — Shortest • 1 — Fastest Start point (x, y) START_POINT [coordinates] Point feature representing the start point of the routes End point (x, y) END_POINT [coordinates] Point feature representing the end point of the routes Direction field Optional DIRECTION_FIELDX [tablefield: string] Default: 0.0 The field used to specify directions for the network edges. The values used in this field are specified with the three parameters Value for forward direction, Value for backward direction and Value for both directions. Forward and reverse directions correspond to a one-way edge, „both directions“ indicates a two-way edge. If a feature does not have a value in this field, or no field is set then the default direction setting (provided with the Default direction parameter) is used. Value for forward direction Optional VALUE_FORWARDX [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a forward direction continues on next page 824 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.20 – pokračujte na předchozí stránce Label Název Advanced Type Popis Value for backward direction Optional VALUE_BACKWARDX [string] Default: ‚‘ (empty string) Value set in the direction field to identify edges with a backward direction Value for both directions Optional VALUE_BOTH X [string] Default: ‚‘ (empty string) Value set in the direction field to identify bidirectional edges Default direction Optional DEFAULT_DIRECTIONX [enumeration] Default: 2 If a feature has no value set in the direction field or if no direction field is set, then this direction value is used. One of: • 0 — Forward direction • 1 — Backward direction • 2 — Both directions Speed field Optional SPEED_FIELD X [tablefield: string] Field providing the speed value (in km/h) for the edges of the network when looking for the fastest path. If a feature does not have a value in this field, or no field is set then the default speed value (provided with the Default speed parameter) is used. Default speed (km/h) Optional DEFAULT_SPEEDX [number] Default: 50.0 Value to use to calculate the travel time if no speed field is provided for an edge Topology tolerance Optional TOLERANCE X [number] Default: 0.0 Two lines with nodes closer than the specified tolerance are considered connected Shortest path OUTPUT [vector: line] Specify the output line layer for the shortest paths. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Shortest path OUTPUT [vector: line] Line layer of the shortest or fastest path from each of the start point to the end point 24.1. QGIS algorithm provider 825 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:shortestpathpointtopoint import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.8 Plots Bar plot Creates a bar plot from a category and a layer field. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Category field name NAME_FIELD [tablefield: any] Categorical field to use for grouping the bars (X axis) Value field VALUE_FIELD [tablefield: any] Value to use for the plot (Y axis). Bar plot OUTPUT [html] Default: [Save to temporary file] Specify the HTML file for the plot. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Bar plot OUTPUT [html] HTML file with the plot. Available in the Processing ► Result Viewer. Python code Algorithm ID: qgis:barplot import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 826 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Box plot Creates a box plot from a category field and a numerical layer field. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Category name field NAME_FIELD [tablefield: any] Categorical field to use for grouping the boxes (X axis) Value field VALUE_FIELD [tablefield: any] Value to use for the plot (Y axis). Additional statistic lines MSD [enumeration] Default: 0 Additional statistics information to add to the plot. One of: • 0 — Show Mean • 1 — Show Standard Deviation • 2 — Don’t show mean and standard deviation Box plot OUTPUT [html] Default: [Save to temporary file] Specify the HTML file for the plot. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Box plot OUTPUT [html] HTML file with the plot. Available in the Processing ► Result Viewer. Python code Algorithm ID: qgis:boxplot import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Mean and standard deviation plot Creates a box plot with mean and standard deviation values. 24.1. QGIS algorithm provider 827 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input table INPUT [vector: any] Input vector layer Category name field NAME_FIELD [tablefield: any] Categorical field to use for grouping the boxes (X axis) Value field VALUE_FIELD [tablefield: any] Value to use for the plot (Y axis). Plot OUTPUT [html] Default: [Save to temporary file] Specify the HTML file for the plot. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Plot OUTPUT [html] HTML file with the plot. Available in the Processing ► Result Viewer. Python code Algorithm ID: qgis:meanandstandarddeviationplot import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Polar plot Generates a polar plot based on the value of an input vector layer. Two fields must be entered as parameters: one that defines the category each feature (to group features) and another one with the variable to plot (this has to be a numeric one). Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Category name field NAME_FIELD [tablefield: any] Categorical field to use for grouping the features (X axis) Value field VALUE_FIELD [tablefield: any] Value to use for the plot (Y axis). Polar plot OUTPUT [html] Default: [Save to temporary file] Specify the HTML file for the plot. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 828 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Polar plot OUTPUT [html] HTML file with the plot. Available in the Processing ► Result Viewer. Python code Algorithm ID: qgis:polarplot import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster layer histogram Generates a histogram with the values of a raster layer. Parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer Band number BAND [raster band] Raster band to use for the histogram number of bins BINS [number] Default: 10 The number of bins to use in the histogram (X axis). Minimum 2. Histogram OUTPUT [html] Default: [Save to temporary file] Specify the HTML file for the plot. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Histogram OUTPUT [html] HTML file with the plot. Available in the Processing ► Result Viewer. Python code Algorithm ID: qgis:rasterlayerhistogram import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 829 QGIS Desktop 3.16 User Guide Vector layer histogram Generates a histogram with the values of the attribute of a vector layer. The attribute to use for computing the histogram must be numeric. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Attribute FIELD [tablefield: any] Value to use for the plot (Y axis). number of bins BINS [number] Default: 10 The number of bins to use in the histogram (X axis). Minimum 2. Histogram OUTPUT [html] Default: [Save to temporary file] Specify the HTML file for the plot. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Histogram OUTPUT [html] HTML file with the plot. Available in the Processing ► Result Viewer. Python code Algorithm ID: qgis:vectorlayerhistogram import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Vector layer scatterplot Creates a simple X - Y scatter plot for a vector layer. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer X attribute XFIELD [tablefield: any] Field to use for the X axis Y attribute YFIELD [tablefield: any] Field to use for the Y axis Scatterplot OUTPUT [html] Default: [Save to temporary file] Specify the HTML file for the plot. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 830 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Scatterplot OUTPUT [html] HTML file with the plot. Available in the Processing ► Result Viewer. Python code Algorithm ID: qgis:vectorlayerscatterplot import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Vector layer scatterplot 3D Creates a 3D scatter plot for a vector layer. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer X attribute XFIELD [tablefield: any] Field to use for the X axis Y attribute YFIELD [tablefield: any] Field to use for the Y axis Z attribute ZFIELD [tablefield: any] Field to use for the Z axis Histogram OUTPUT [html] Default: [Save to temporary file] Specify the HTML file for the plot. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Histogram OUTPUT [html] HTML file with the plot. Available in the Processing ► Result Viewer. Python code Algorithm ID: qgis:scatter3dplot import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 831 QGIS Desktop 3.16 User Guide 24.1.9 Rastrová analýza Cell statistics Computes per-cell statistics based on input raster layers and for each cell writes the resulting statistics to an output raster. At each cell location, the output value is defined as a function of all overlaid cell values of the input rasters. By default, a NoData cell in ANY of the input layers will result in a NoData cell in the output raster. If the Ignore NoData values option is checked, then NoData inputs will be ignored in the statistic calculation. This may result in NoData output for locations where all cells are NoData. The Reference layer parameter specifies an existing raster layer to use as a reference when creating the output raster. The output raster will have the same extent, CRS, and pixel dimensions as this layer. Calculation details: Input raster layers that do not match the cell size of the reference raster layer will be resampled using nearest neighbor resampling. The output raster data type will be set to the most complex data type present in the input datasets except when using the functions Mean, Standard deviation and Variance (data type is always Float32 or Float64 depending on input float type) or Count and Variety (data type is always Int32). • Count: The count statistic will always result in the number of cells without NoData values at the current cell location. • Median: If the number of input layers is even, the median will be calculated as the arithmetic mean of the two middle values of the ordered cell input values. • Minority/Majority: If no unique minority or majority could be found, the result is NoData, except all input cell values are equal. Obr. 24.8: Example with all the statistic functions. NoData cells (grey) are taken into account. 832 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layers INPUT [raster] [list] Input raster layers Statistic STATISTIC [enumeration] Default: 0 Available statistics. Options: • 0 — Sum • 1 — Count • 2 — Mean • 3 — Median • 4 — Standard deviation • 5 — Variance • 6 — Minimum • 7 — Maximum • 8 — Minority (least common value) • 9 — Majority (most common value) • 10 — Range (max - min) • 11 — Variety (unique value count) Ignore NoData values IGNORE_NODATA [boolean] Default: True Calculate statistics also for all cells stacks, ignoring NoData occurrence. Reference layer REF_LAYER [raster] The reference layer to create the output layer from (extent, CRS, pixel dimensions) Output no data value Optional OUTPUT_NO_DATA_VALUE[number] Default: -9999.0 Value to use for nodata in the output layer Output layer OUTPUT [same as input] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis CRS authority identifier CRS_AUTHID [crs] The coordinate reference system of the output raster layer Extent EXTENT [extent] The spatial extent of the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The height in pixels of the output raster layer Output raster OUTPUT [raster] Output raster layer containing the result Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The width in pixels of the output raster layer Python code Algorithm ID: qgis:cellstatistics import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 833 QGIS Desktop 3.16 User Guide Equal to frequency Evaluates on a cell-by-cell basis the frequency (number of times) the values of an input stack of rasters are equal to the value of a value layer. The output raster extent and resolution are defined by the input raster layer and is always of Int32 type. If multiband rasters are used in the data raster stack, the algorithm will always perform the analysis on the first band of the rasters - use GDAL to use other bands in the analysis. The output NoData value can be set manually. Obr. 24.9: For each cell in the output raster, the value represents the number of times that the corresponding cells in the list of rasters are the same as the value raster. NoData cells (grey) are taken into account. Viz také: Greater than frequency, Less than frequency Parameters Basic parameters Label Název Type Popis Input value raster INPUT_VALUE_RASTER[raster] The input value layer serves as reference layer for the sample layers Value raster band INPUT_VALUE_RASTER_BAND[raster band] Default: The first band of the raster layer Select the band you want to use as sample Input raster layers INPUT_RASTERS [raster] [list] Raster layers to evaluate. If multiband rasters are used in the data raster stack, the algorithm will always perform the analysis on the first band of the rasters continues on next page 834 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.22 – pokračujte na předchozí stránce Label Název Type Popis Ignore NoData values IGNORE_NODATA [boolean] Default: False If unchecked, any NoData cells in the value raster or the data layer stack will result in a NoData cell in the output raster Output layer OUTPUT [same as input] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Output no data value Optional OUTPUT_NO_DATA_VALUE[number] Default: -9999.0 Value to use for nodata in the output layer Outputs Label Název Type Popis Output layer OUTPUT [raster] Output raster layer containing the result CRS authority identifier CRS_AUTHID [string] The coordinate reference system of the output raster layer Extent EXTENT [string] The spatial extent of the output raster layer Count of cells with equal value occurrences FOUND_LOCATIONS_COUNT[number] Height in pixels HEIGHT_IN_PIXELS[number] The number of rows in the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Mean frequency at valid cell locations MEAN_FREQUENCY_PER_LOCATION[number] Count of value occurrences OCCURRENCE_COUNT[number] Width in pixels WIDTH_IN_PIXELS[integer] The number of columns in the output raster layer Python code Algorithm ID: native:equaltofrequency import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 835 QGIS Desktop 3.16 User Guide Fuzzify raster (gaussian membership) Transforms an input raster to a fuzzified raster by assigning a membership value to each pixel, using a Gaussian membership function. Membership values range from 0 to 1. In the fuzzified raster, a value of 0 implies no membership of the defined fuzzy set, whereas a value of 1 means full membership. The gaussian membership function is defined as , where f1 is the spread and f2 the midpoint. Obr. 24.10: Fuzzify raster example. Input raster source: Land Tirol - data.tirol.gv.at. Viz také: Fuzzify raster (large membership) Fuzzify raster (linear membership), Fuzzify raster (near membership), Fuzzify raster (power membership), Fuzzify raster (small membership) Parameters Label Název Type Popis Input Raster INPUT [raster] Input raster layer Band Number BAND [raster band] Default: The first band of the raster layer If the raster is multiband, choose the band that you want to fuzzify. Function midpoint FUZZYMIDPOINT [number] Default: 10 Midpoint of the gaussian function Function spread FUZZYSPREAD [number] Default: 0.01 Spread of the gaussian function Fuzzified raster OUTPUT [same as input] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 836 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Fuzzified raster OUTPUT [same as input] Output raster layer containing the result CRS authority identifier CRS_AUTHID [crs] The coordinate reference system of the output raster layer Extent EXTENT [extent] The spatial extent of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The width in pixels of the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The height in pixels of the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Python code Algorithm ID: qgis:fuzzifyrastergaussianmembership import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Fuzzify raster (large membership) Transforms an input raster to a fuzzified raster by assigning a membership value to each pixel, using a Large membership function. Membership values range from 0 to 1. In the fuzzified raster, a value of 0 implies no membership of the defined fuzzy set, whereas a value of 1 means full membership. The large membership function is defined as , where f1 is the spread and f2 the midpoint. Viz také: Fuzzify raster (gaussian membership), Fuzzify raster (linear membership), Fuzzify raster (near membership), Fuzzify raster (power membership), Fuzzify raster (small membership) Parameters Label Název Type Popis Input Raster INPUT [raster] Input raster layer Band Number BAND [raster band] Default: The first band of the raster layer If the raster is multiband, choose the band that you want to fuzzify. Function midpoint FUZZYMIDPOINT [number] Default: 50 Midpoint of the large function Function spread FUZZYSPREAD [number] Default: 5 Spread of the large function Fuzzified raster OUTPUT [same as input] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.1. QGIS algorithm provider 837 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Fuzzified raster OUTPUT [same as input] Output raster layer containing the result CRS authority identifier CRS_AUTHID [crs] The coordinate reference system of the output raster layer Extent EXTENT [extent] The spatial extent of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The width in pixels of the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The height in pixels of the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Python code Algorithm ID: qgis:fuzzifyrasterlargemembership import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Fuzzify raster (linear membership) Transforms an input raster to a fuzzified raster by assigning a membership value to each pixel, using a Linear membership function. Membership values range from 0 to 1. In the fuzzified raster, a value of 0 implies no membership of the defined fuzzy set, whereas a value of 1 means full membership. The linear function is defined as , where a is the low bound and b the high bound. This equation assigns membership values using a linear transformation for pixel values between the low and high bounds. Pixels values smaller than the low bound are given 0 membership whereas pixel values greater than the high bound are given 1 membership. Viz také: Fuzzify raster (gaussian membership), Fuzzify raster (large membership), Fuzzify raster (near membership), Fuzzify raster (power membership), Fuzzify raster (small membership) 838 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input Raster INPUT [raster] Input raster layer Band Number BAND [raster band] Default: The first band of the raster layer If the raster is multiband, choose the band that you want to fuzzify. Low fuzzy membership bound FUZZYLOWBOUND [number] Default: 0 Low bound of the linear function High fuzzy membership bound FUZZYHIGHBOUND [number] Default: 1 High bound of the linear function Fuzzified raster OUTPUT [same as input] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Fuzzified raster OUTPUT [same as input] Output raster layer containing the result CRS authority identifier CRS_AUTHID [crs] The coordinate reference system of the output raster layer Extent EXTENT [extent] The spatial extent of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The width in pixels of the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The height in pixels of the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Python code Algorithm ID: qgisfuzzifyrasterlinearmembership import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Fuzzify raster (near membership) Transforms an input raster to a fuzzified raster by assigning a membership value to each pixel, using a Near membership function. Membership values range from 0 to 1. In the fuzzified raster, a value of 0 implies no membership of the defined fuzzy set, whereas a value of 1 means full membership. The near membership function is defined as , where f1 is the spread and f2 the midpoint. Viz také: Fuzzify raster (gaussian membership), Fuzzify raster (large membership), Fuzzify raster (linear membership), Fuzzify raster (power membership), Fuzzify raster (small membership) 24.1. QGIS algorithm provider 839 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input Raster INPUT [raster] Input raster layer Band Number BAND [raster band] Default: The first band of the raster layer If the raster is multiband, choose the band that you want to fuzzify. Function midpoint FUZZYMIDPOINT [number] Default: 50 Midpoint of the near function Function spread FUZZYSPREAD [number] Default: 0.01 Spread of the near function Fuzzified raster OUTPUT [same as input] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Fuzzified raster OUTPUT [same as input] Output raster layer containing the result CRS authority identifier CRS_AUTHID [crs] The coordinate reference system of the output raster layer Extent EXTENT [extent] The spatial extent of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The width in pixels of the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The height in pixels of the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Python code Algorithm ID: qgis:fuzzifyrasternearmembership import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Fuzzify raster (power membership) Transforms an input raster to a fuzzified raster by assigning a membership value to each pixel, using a Power membership function. Membership values range from 0 to 1. In the fuzzified raster, a value of 0 implies no membership of the defined fuzzy set, whereas a value of 1 means full membership. The power function is defined as , where a is the low bound, b is the high bound, and f1 the exponent. This equation assigns membership values using the power transformation for pixel values between the low and high bounds. Pixels values smaller than the low bound are given 0 membership whereas pixel values greater than the high bound are given 1 membership. 840 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Viz také: Fuzzify raster (gaussian membership), Fuzzify raster (large membership), Fuzzify raster (linear membership), Fuzzify raster (near membership), Fuzzify raster (small membership) Parameters Label Název Type Popis Input Raster INPUT [raster] Input raster layer Band Number BAND [raster band] Default: The first band of the raster layer If the raster is multiband, choose the band that you want to fuzzify. Low fuzzy membership bound FUZZYLOWBOUND [number] Default: 0 Low bound of the power function High fuzzy membership bound FUZZYHIGHBOUND [number] Default: 1 High bound of the power function High fuzzy membership bound FUZZYEXPONENT [number] Default: 2 Exponent of the power function Fuzzified raster OUTPUT [same as input] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Fuzzified raster OUTPUT [same as input] Output raster layer containing the result CRS authority identifier CRS_AUTHID [crs] The coordinate reference system of the output raster layer Extent EXTENT [extent] The spatial extent of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The width in pixels of the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The height in pixels of the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Python code Algorithm ID: qgisfuzzifyrasterpowermembership import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 841 QGIS Desktop 3.16 User Guide Fuzzify raster (small membership) Transforms an input raster to a fuzzified raster by assigning a membership value to each pixel, using a Small membership function. Membership values range from 0 to 1. In the fuzzified raster, a value of 0 implies no membership of the defined fuzzy set, whereas a value of 1 means full membership. The small membership function is defined as , where f1 is the spread and f2 the midpoint. Viz také: Fuzzify raster (gaussian membership), Fuzzify raster (large membership) Fuzzify raster (linear membership), Fuzzify raster (near membership), Fuzzify raster (power membership) Parameters Label Název Type Popis Input Raster INPUT [raster] Input raster layer Band Number BAND [raster band] Default: The first band of the raster layer If the raster is multiband, choose the band that you want to fuzzify. Function midpoint FUZZYMIDPOINT [number] Default: 50 Midpoint of the small function Function spread FUZZYSPREAD [number] Default: 5 Spread of the small function Fuzzified raster OUTPUT [same as input] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Fuzzified raster OUTPUT [same as input] Output raster layer containing the result CRS authority identifier CRS_AUTHID [crs] The coordinate reference system of the output raster layer Extent EXTENT [extent] The spatial extent of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The width in pixels of the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The height in pixels of the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Python code Algorithm ID: qgisfuzzifyrastersmallmembership import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 842 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Greater than frequency Evaluates on a cell-by-cell basis the frequency (number of times) the values of an input stack of rasters are equal to the value of a value raster. The output raster extent and resolution is defined by the input raster layer and is always of Int32 type. If multiband rasters are used in the data raster stack, the algorithm will always perform the analysis on the first band of the rasters - use GDAL to use other bands in the analysis. The output NoData value can be set manually. Obr. 24.11: For each cell in the output raster, the value represents the number of times that the corresponding cells in the list of rasters are greater than the value raster. NoData cells (grey) are taken into account. Viz také: Equal to frequency, Less than frequency Parameters Basic parameters Label Název Type Popis Input value raster INPUT_VALUE_RASTER[raster] The input value layer serves as reference layer for the sample layers Value raster band INPUT_VALUE_RASTER_BAND[raster band] Default: The first band of the raster layer Select the band you want to use as sample Input raster layers INPUT_RASTERS [raster] [list] Raster layers to evaluate. If multiband rasters are used in the data raster stack, the algorithm will always perform the analysis on the first band of the rasters continues on next page 24.1. QGIS algorithm provider 843 QGIS Desktop 3.16 User Guide Tabulka 24.25 – pokračujte na předchozí stránce Label Název Type Popis Ignore NoData values IGNORE_NODATA [boolean] Default: False If unchecked, any NoData cells in the value raster or the data layer stack will result in a NoData cell in the output raster Output layer OUTPUT [same as input] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Output no data value Optional OUTPUT_NO_DATA_VALUE[number] Default: -9999.0 Value to use for nodata in the output layer Outputs Label Název Type Popis Output layer OUTPUT [raster] Output raster layer containing the result CRS authority identifier CRS_AUTHID [string] The coordinate reference system of the output raster layer Extent EXTENT [string] The spatial extent of the output raster layer Count of cells with equal value occurrences FOUND_LOCATIONS_COUNT[number] Height in pixels HEIGHT_IN_PIXELS[number] The number of rows in the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Mean frequency at valid cell locations MEAN_FREQUENCY_PER_LOCATION[number] Count of value occurrences OCCURRENCE_COUNT[number] Width in pixels WIDTH_IN_PIXELS[integer] The number of columns in the output raster layer Python code Algorithm ID: native:greaterthanfrequency import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 844 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Highest position in raster stack Evaluates on a cell-by-cell basis the position of the raster with the highest value in a stack of rasters. Position counts start with 1 and range to the total number of input rasters. The order of the input rasters is relevant for the algorithm. If multiple rasters feature the highest value, the first raster will be used for the position value. If multiband rasters are used in the data raster stack, the algorithm will always perform the analysis on the first band of the rasters - use GDAL to use other bands in the analysis. Any NoData cells in the raster layer stack will result in a NoData cell in the output raster unless the „ignore NoData“ parameter is checked. The output NoData value can be set manually. The output rasters extent and resolution is defined by a reference raster layer and is always of Int32 type. Viz také: Lowest position in raster stack Parameters Basic parameters Label Název Type Popis Input raster layers INPUT_RASTERS [raster] [list] List of raster layers to compare with Reference layer REFERENCE_LAYER[raster] The reference layer for the output layer creation (extent, CRS, pixel dimensions) Ignore NoData values IGNORE_NODATA [boolean] Default: False If unchecked, any NoData cells in the data layer stack will result in a NoData cell in the output raster Output layer OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster containing the result. One of: • Save to a Temporary File • Save to File… 24.1. QGIS algorithm provider 845 QGIS Desktop 3.16 User Guide Advanced parameters Label Název Type Popis Output no data value OUTPUT_NODATA_VALUE[number] Default: -9999.0 Value to use for nodata in the output layer Outputs Label Název Type Popis Output layer OUTPUT [raster] Output raster layer containing the result CRS authority identifier CRS_AUTHID [string] The coordinate reference system of the output raster layer Extent EXTENT [string] The spatial extent of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The number of columns in the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The number of rows in the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Python code Algorithm ID: native:highestpositioninrasterstack import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Less than frequency Evaluates on a cell-by-cell basis the frequency (number of times) the values of an input stack of rasters are less than the value of a value raster. The output raster extent and resolution is defined by the input raster layer and is always of Int32 type. If multiband rasters are used in the data raster stack, the algorithm will always perform the analysis on the first band of the rasters - use GDAL to use other bands in the analysis. The output NoData value can be set manually. 846 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.12: For each cell in the output raster, the value represents the number of times that the corresponding cells in the list of rasters are less than the value raster. NoData cells (grey) are taken into account. Viz také: Equal to frequency, Greater than frequency Parameters Basic parameters Label Název Type Popis Input value raster INPUT_VALUE_RASTER[raster] The input value layer serves as reference layer for the sample layers Value raster band INPUT_VALUE_RASTER_BAND[raster band] Default: The first band of the raster layer Select the band you want to use as sample Input raster layers INPUT_RASTERS [raster] [list] Raster layers to evaluate. If multiband rasters are used in the data raster stack, the algorithm will always perform the analysis on the first band of the rasters Ignore NoData values IGNORE_NODATA [boolean] Default: False If unchecked, any NoData cells in the value raster or the data layer stack will result in a NoData cell in the output raster Output layer OUTPUT [same as input] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… 24.1. QGIS algorithm provider 847 QGIS Desktop 3.16 User Guide Advanced parameters Label Název Type Popis Output no data value Optional OUTPUT_NO_DATA_VALUE[number] Default: -9999.0 Value to use for nodata in the output layer Outputs Label Název Type Popis Output layer OUTPUT [raster] Output raster layer containing the result CRS authority identifier CRS_AUTHID [string] The coordinate reference system of the output raster layer Extent EXTENT [string] The spatial extent of the output raster layer Count of cells with equal value occurrences FOUND_LOCATIONS_COUNT[number] Height in pixels HEIGHT_IN_PIXELS[number] The number of rows in the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Mean frequency at valid cell locations MEAN_FREQUENCY_PER_LOCATION[number] Count of value occurrences OCCURRENCE_COUNT[number] Width in pixels WIDTH_IN_PIXELS[integer] The number of columns in the output raster layer Python code Algorithm ID: native:lessthanfrequency import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Lowest position in raster stack Evaluates on a cell-by-cell basis the position of the raster with the lowest value in a stack of rasters. Position counts start with 1 and range to the total number of input rasters. The order of the input rasters is relevant for the algorithm. If multiple rasters feature the lowest value, the first raster will be used for the position value. If multiband rasters are used in the data raster stack, the algorithm will always perform the analysis on the first band of the rasters - use GDAL to use other bands in the analysis. Any NoData cells in the raster layer stack will result in a NoData cell in the output raster unless the „ignore NoData“ parameter is checked. The output NoData value can be set manually. The output rasters extent and resolution is defined by a reference raster layer and is always of Int32 type. 848 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Viz také: Highest position in raster stack Parameters Basic parameters Label Název Type Popis Input raster layers INPUT_RASTERS [raster] [list] List of raster layers to compare with Reference layer REFERENCE_LAYER[raster] The reference layer for the output layer creation (extent, CRS, pixel dimensions) Ignore NoData values IGNORE_NODATA [boolean] Default: False If unchecked, any NoData cells in the data layer stack will result in a NoData cell in the output raster Output layer OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster containing the result. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Output no data value OUTPUT_NODATA_VALUE[number] Default: -9999.0 Value to use for nodata in the output layer 24.1. QGIS algorithm provider 849 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Output layer OUTPUT [raster] Output raster layer containing the result CRS authority identifier CRS_AUTHID [string] The coordinate reference system of the output raster layer Extent EXTENT [string] The spatial extent of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The number of columns in the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The number of rows in the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer Python code Algorithm ID: native:lowestpositioninrasterstack import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster boolean AND Calculates the boolean AND for a set of input rasters. If all of the input rasters have a non-zero value for a pixel, that pixel will be set to 1 in the output raster. If any of the input rasters have 0 values for the pixel it will be set to 0 in the output raster. The reference layer parameter specifies an existing raster layer to use as a reference when creating the output raster. The output raster will have the same extent, CRS, and pixel dimensions as this layer. By default, a nodata pixel in ANY of the input layers will result in a nodata pixel in the output raster. If the Treat nodata values as false option is checked, then nodata inputs will be treated the same as a 0 input value. Viz také: Raster boolean OR Parameters Label Název Type Popis Input layers INPUT [raster] [list] List of input raster layers Reference layer REF_LAYER [raster] The reference layer to create the output layer from (extent, CRS, pixel dimensions) Treat nodata values as false NODATA_AS_FALSE[boolean] Default: False Treat nodata values in the input files as 0 when performing the operation Output no data value NO_DATA [number] Default: -9999.0 Value to use for nodata in the output layer continues on next page 850 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.33 – pokračujte na předchozí stránce Label Název Type Popis Output data type DATA_TYPE [enumeration] Default: 5 Output raster data type. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Output layer OUTPUT [raster] Output raster layer Outputs Label Název Type Popis Extent EXTENT [extent] The extent of the output raster layer CRS authority identifier CRS_AUTHID [crs] The coordinate reference system of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The width in pixels of the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The height in pixels of the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer NODATA pixel count NODATA_PIXEL_COUNT[integer] The count of nodata pixels in the output raster layer True pixel count TRUE_PIXEL_COUNT[integer] The count of True pixels (value = 1) in the output raster layer False pixel count FALSE_PIXEL_COUNT[integer] The count of False pixels (value = 0) in the output raster layer Output layer OUTPUT [raster] Output raster layer containing the result Python code Algorithm ID: qgis:rasterbooleanand import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 851 QGIS Desktop 3.16 User Guide Raster boolean OR Calculates the boolean OR for a set of input rasters. If all of the input rasters have a zero value for a pixel, that pixel will be set to 0 in the output raster. If any of the input rasters have 1 values for the pixel it will be set to 1 in the output raster. The reference layer parameter specifies an existing raster layer to use as a reference when creating the output raster. The output raster will have the same extent, CRS, and pixel dimensions as this layer. By default, a nodata pixel in ANY of the input layers will result in a nodata pixel in the output raster. If the Treat nodata values as false option is checked, then nodata inputs will be treated the same as a 0 input value. Viz také: Raster boolean AND Parameters Label Název Type Popis Input layers INPUT [raster] [list] List of input raster layers Reference layer REF_LAYER [raster] The reference layer to create the output layer from (extent, CRS, pixel dimensions) Treat nodata values as false NODATA_AS_FALSE[boolean] Default: False Treat nodata values in the input files as 0 when performing the operation Output no data value NO_DATA [number] Default: -9999.0 Value to use for nodata in the output layer Output data type DATA_TYPE [enumeration] Default: 5 Output raster data type. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Output layer OUTPUT [raster] Output raster layer Outputs Label Název Type Popis Extent EXTENT [extent] The extent of the output raster layer CRS authority identifier CRS_AUTHID [crs] The coordinate reference system of the output raster layer Width in pixels WIDTH_IN_PIXELS[integer] The width in pixels of the output raster layer Height in pixels HEIGHT_IN_PIXELS[integer] The height in pixels of the output raster layer Total pixel count TOTAL_PIXEL_COUNT[integer] The count of pixels in the output raster layer NODATA pixel count NODATA_PIXEL_COUNT[integer] The count of nodata pixels in the output raster layer True pixel count TRUE_PIXEL_COUNT[integer] The count of True pixels (value = 1) in the output raster layer continues on next page 852 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.36 – pokračujte na předchozí stránce Label Název Type Popis False pixel count FALSE_PIXEL_COUNT[integer] The count of False pixels (value = 0) in the output raster layer Output layer OUTPUT [raster] Output raster layer containing the result Python code Algorithm ID: qgis:rasterbooleanor import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster calculator Performs algebraic operations using raster layers. The resulting layer will have its values computed according to an expression. The expression can contain numerical values, operators and references to any of the layers in the current project. Poznámka: When using the calculator in The batch processing interface or from the QGIS Python console the files to use have to be specified. The corresponding layers are referred using the base name of the file (without the full path). For instance, if using a layer at path/to/my/rasterfile.tif, the first band of that layer will be referred as rasterfile.tif@1. Viz také: Raster Calculator Parameters Label Název Type Popis Layers GUI only Shows the list of all raster layers loaded in the legend. These can be used to fill the expression box (double click to add). Raster layers are referred by their name and the number of the band: layer_name@band_number. For instance, the first band from a layer named DEM will be referred as DEM@1. Operators GUI only Contains some calculator like buttons that can be used to fill the expression box. Expression EXPRESSION [string] Expression that will be used to calculate the output raster layer. You can use the operator buttons provided to type directly the expression in this box. continues on next page 24.1. QGIS algorithm provider 853 QGIS Desktop 3.16 User Guide Tabulka 24.37 – pokračujte na předchozí stránce Label Název Type Popis Predefined expressions GUI only You can use the predefined NDVI expression or you can define new expressions for calculations. The Add… button loads a defined expression (and lets you set the parameters). The Save… button lets you define a new expression. Reference layer(s) (used for automated extent, cellsize, and CRS) Optional LAYERS [raster] [list] Layer(s) that will be used to fetch extent, cell size and CRS. By choosing the layer in this box you avoid filling in all the other parameters by hand. Raster layers are referred by their name and the number of the band: layer_name@band_number. For instance, the first band from a layer named DEM will be referred as DEM@1. Cell size (use 0 or empty to set it automatically) Optional CELLSIZE [number] Cell size of the output raster layer. If the cell size is not specified, the minimum cell size of the selected reference layer(s) will be used. The cell size will be the same for the X and Y axes. Output extent (xmin, xmax, ymin, ymax) Optional EXTENT [extent] Extent of the output raster layer. If the extent is not specified, the minimum extent that covers all the selected reference layers will be used. Output CRS Optional CRS [crs] CRS of the output raster layer. If the output CRS is not specified, the CRS of the first reference layer will be used. Output OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output OUTPUT [raster] Output raster file with the calculated values. Python code Algorithm ID: qgis:rastercalculator import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 854 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Raster layer statistics Calculates basic statistics from the values in a given band of the raster layer. The output is loaded in the Processing ► Results viewer menu. Parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer Band number BAND [raster band] Default: The first band of the input layer If the raster is multiband, choose the band you want to get statistics for. Output OUTPUT_HTML_FILE[html] Default: [Save to temporary file] Specification of the output file: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Maximum value MAX [number] Mean value MEAN [number] Minimum value MIN [number] Output OUTPUT_HTML_FILE[html] The output file contains the following information: • Analyzed file: path of the raster layer • Minimum value: minimum value of the raster • Maximum value: maximum value of the raster • Range: difference between the maximum and minimum values • Sum: total sum of the values • Mean value: mean of the values • Standard deviation: standard deviation of the values • Sum of the squares: sum of the squared differences of each observation from the overall mean Range RANGE [number] Standard deviation STD_DEV [number] Sum SUM [number] Sum of the squares SUM_OF_SQUARES [number] 24.1. QGIS algorithm provider 855 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:rasterlayerstatistics import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster layer unique values report Returns the count and area of each unique value in a given raster layer. Parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer Band number BAND [raster band] Default: The first band of the input layer If the raster is multiband, choose the band you want to get statistics for. Unique values report OUTPUT_HTML_FILE[file] Default: [Save to temporary file] Specification of the output file: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Unique values table OUTPUT_TABLE [table] Default: [Skip output] Specification of the table for unique values: • Skip Output • Create Temporary Layer • Save to File… • Save to GeoPackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis CRS authority identifier CRS_AUTHID [crs] Extent EXTENT [extent] Height in pixels HEIGHT_IN_PIXELS[number] NODATA pixel count NODATA_PIXEL_COUNT[number] Total pixel count TOTAL_PIXEL_COUNT[number] continues on next page 856 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.40 – pokračujte na předchozí stránce Label Název Type Popis Unique values report OUTPUT_HTML_FILE[html] The output HTML file contains the following information: • Analyzed file: the path of the raster layer • Extent: xmin, ymin, xmax, ymax coordinates of the extent • Projection: projection of the layer • Width in pixels: number of columns and pixel width size • Height in pixels: number of rows and pixel width size • Total pixel count: count of all the pixels • NODATA pixel count: count of pixels with NODATA value Unique values table OUTPUT_TABLE [table] A table with three columns: • value: pixel value • count: count of pixels with this value • m2 : total area in square meters of pixels with this value. Width in pixels WIDTH_IN_PIXELS[number] Python code Algorithm ID: qgis:rasterlayeruniquevaluesreport import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster layer zonal statistics Calculates statistics for a raster layer’s values, categorized by zones defined in another raster layer. Viz také: Zonal statistics Parameters Label Název Type Popis Input Layer INPUT [raster] Input raster layer Band number BAND [raster band] Default: The first band of the raster layer If the raster is multiband choose the band for which you want to calculate the statistics. continues on next page 24.1. QGIS algorithm provider 857 QGIS Desktop 3.16 User Guide Tabulka 24.41 – pokračujte na předchozí stránce Label Název Type Popis Zones layer ZONES [raster] Raster layer defining zones. Zones are given by contiguous pixels having the same pixel value. Zones band number ZONES_BAND [raster band] Default: The first band of the raster layer If the raster is multiband, choose the band that defines the zones Reference layer Optional REF_LAYER [enumeration] Default: 0 Raster layer used to calculate the centroids that will be used as reference when determining the zones in the output layer. One of: • 0 — Input layer • 1 — Zones layer Statistics OUTPUT_TABLE [table] Table with the calculated statistics Outputs Label Název Type Popis CRS authority identifier CRS_AUTHID [crs] Extent EXTENT [extent] Height in pixels HEIGHT_IN_PIXELS[number] NODATA pixel count NODATA_PIXEL_COUNT[number] Statistics OUTPUT_TABLE [table] The output layer contains the following information for each zone: • Area: the area in square raster units in the zone; • Sum: the total sum of the pixel values in the zone; • Count: the number of pixels in the zone; • Min: the minimum pixel value in the zone; • Max: the maximum pixel value in the zone; • Mean: the mean of the pixel values in the zone; Total pixel count TOTAL_PIXEL_COUNT[number] Width in pixels WIDTH_IN_PIXELS[number] 858 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:rasterlayerzonalstats import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster surface volume Calculates the volume under a raster surface relative to a given base level. This is mainly useful for Digital Elevation Models (DEM). Parameters Label Název Type Popis INPUT layer INPUT [raster] Input raster, representing a surface Band number BAND [raster band] Default: The first band of the raster layer If the raster is multiband, choose the band that shall define the surface. Base level LEVEL [number] Default: 0.0 Define a base or reference value. This base is used in the volume calculation according to the Method parameter (see below). Method METHOD [enumeration] Default: 0 Define the method for the volume calculation given by the difference between the raster pixel value and the Base level. Options: • 0 — Count Only Above Base Level: only pixels above the base level will add to the volume. • 1 — Count Only Below Base Level: only pixels below the base level will add to the volume. • 2 — Subtract Volumes Below Base level: pixels above the base level will add to the volume, pixels below the base level will subtract from the volume. • 3 — Add Volumes Below Base level: Add the volume regardless whether the pixel is above or below the base level. This is equivalent to sum the absolute values of the difference between the pixel value and the base level. continues on next page 24.1. QGIS algorithm provider 859 QGIS Desktop 3.16 User Guide Tabulka 24.43 – pokračujte na předchozí stránce Label Název Type Popis Surface volume report OUTPUT_HTML_FILE[html] Default: [Save to temporary file] Specification of the output HTML report. One of: • Skip output • Save to Temporary File • Save to File… The file encoding can also be changed here. Surface volume table OUTPUT_TABLE [table] Default: [Skip output] Specification of the output table. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Volume VOLUME [number] The calculated volume Area AREA [number] The area in square map units Pixel_count PIXEL_COUNT [number] The total number of pixels that have been analyzed Surface volume report OUTPUT_HTML_FILE[html] The output report (containing volume, area and pixel count) in HTML format Surface volume table OUTPUT_TABLE [table] The output table (containing volume, area and pixel count) Python code Algorithm ID: qgis:rastersurfacevolume import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 860 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Reclassify by layer Reclassifies a raster band by assigning new class values based on the ranges specified in a vector table. Parameters Label Název Type Popis Raster layer INPUT_RASTER [raster] Raster layer to reclassify Band number RASTER_BAND [raster band] Default: The first band of the raster layer If the raster is multiband, choose the band you want to reclassify. Layer containing class breaks INPUT_TABLE [vector: any] Vector layer containing the values to use for classification. Minimum class value field MIN_FIELD [tablefield: numeric] Field with the minimum value of the range for the class. Maximum class value field MAX_FIELD [tablefield: numeric] Field with the maximum value of the range for the class. Output value field VALUE_FIELD [tablefield: numeric] Field with the value that will be assigned to the pixels that fall in the class (between the corresponding min and max values). Output no data value NO_DATA [number] Default: -9999.0 Value to apply to no data values. Range boundaries RANGE_BOUNDARIES[enumeration] Default: 0 Defines comparison rules for the classification. Options: • 0 — min < value <= max • 1 — min <= value < max • 2 — min <= value <= max • 3 — min < value < max Use no data when no range matches value NODATA_FOR_MISSING[boolean] Default: False Values that do not belong to a class will result in the no data value. If False, the original value is kept. Output data type DATA_TYPE [enumeration] Default: 5 Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Reclassified raster OUTPUT [raster] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.1. QGIS algorithm provider 861 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Reclassified raster OUTPUT [raster] Output raster layer with reclassified band values Python code Algorithm ID: qgis:reclassifybylayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Reclassify by table Reclassifies a raster band by assigning new class values based on the ranges specified in a fixed table. Parameters Label Název Type Popis Raster layer INPUT_RASTER [raster] Raster layer to reclassify Band number RASTER_BAND [raster band] Default: 1 Raster band for which you want to recalculate values. Reclassification table TABLE [table] A 3-columns table to fill with the values to set the boundaries of each class (Minimum and Maximum) and the new Value to assign to the band values that fall in the class. Output no data value NO_DATA [number] Default: -9999.0 Value to apply to no data values. Range boundaries RANGE_BOUNDARIES[enumeration] Default: 0 Defines comparison rules for the classification. Options: • 0 — min < value <= max • 1 — min <= value < max • 2 — min <= value <= max • 3 — min < value < max Use no data when no range matches value NODATA_FOR_MISSING[boolean] Default: False Applies the no data value to band values that do not fall in any class. If False, the original value is kept. continues on next page 862 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.45 – pokračujte na předchozí stránce Label Název Type Popis Output data type DATA_TYPE [enumeration] Default: 5 Defines the format of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Reclassified raster OUTPUT [raster] Default: ‚[Save to temporary file]‘ Specification of the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here Outputs Label Název Type Popis Reclassified raster OUTPUT [raster] Default: ‚[Save to temporary file]‘ The output raster layer. Python code Algorithm ID: qgis:reclassifybytable import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Rescale raster Rescales raster layer to a new value range, while preserving the shape (distribution) of the raster’s histogram (pixel values). Input values are mapped using a linear interpolation from the source raster’s minimum and maximum pixel values to the destination minimum and miximum pixel range. By default the algorithm preserves the original NODATA value, but there is an option to override it. 24.1. QGIS algorithm provider 863 QGIS Desktop 3.16 User Guide Obr. 24.13: Rescaling values of a raster layer from [0 - 50] to [100 - 1000] Parameters Label Název Type Popis Input Raster INPUT [raster] Raster layer to use for rescaling Band number Band [raster band] Default: The first band of the input layer If the raster is multiband, choose a band. New minimum value MINIMUM [number] Default value: 0.0 Minimum pixel value to use in the rescaled layer New maximum value MAXIMUM [number] Default value: 255.0 Maximum pixel value to use in the rescaled layer New NODATA value Optional NODATA [number] Default value: Not set Value to assign to the NODATA pixels. If unset, original NODATA values are preserved. Rescaled OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster layer. One of: • Save to a Temporary File • Save to File… Outputs Label Název Type Popis Rescaled OUTPUT [raster] Output raster layer with rescaled band values 864 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:rescaleraster import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Round raster Rounds the cell values of a raster dataset according to the specified number of decimals. Alternatively, a negative number of decimal places may be used to round values to powers of a base n. For example, with a Base value n of 10 and Decimal places of -1, the algorithm rounds cell values to multiples of 10, -2 rounds to multiples of 100, and so on. Arbitrary base values may be chosen, the algorithm applies the same multiplicative principle. Rounding cell values to multiples of a base n may be used to generalize raster layers. The algorithm preserves the data type of the input raster. Therefore byte/integer rasters can only be rounded to multiples of a base n, otherwise a warning is raised and the raster gets copied as byte/integer raster. Obr. 24.14: Rounding values of a raster Parameters Basic parameters Label Název Type Popis Input raster INPUT [raster] The raster to process. Band number BAND [number] Default: 1 The band of the raster Rounding direction ROUNDING_DIRECTION[list] Default: 1 How to choose the target rounded value. Options are: 0 - Round up 1 - Round to nearest 2 - Round down Number of decimals places DECIMAL_PLACES [number] Default: 2 Number of decimals places to round to. Use negative values to round cell values to a multiple of a base n continues on next page 24.1. QGIS algorithm provider 865 QGIS Desktop 3.16 User Guide Tabulka 24.46 – pokračujte na předchozí stránce Label Název Type Popis Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output file. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Base n for rounding to multiples of n BASE_N [number] Default: 10 When the DECIMAL_PLACES parameter is negative, raster values are rounded to multiples of the base n value Outputs Label Název Type Popis Output raster OUTPUT [raster] The output raster layer with values rounded for the selected band. Python code Algorithm ID: native:roundrastervalues import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Sample raster values Extracts raster values at the point locations. If the raster layer is multiband, each band is sampled. The attribute table of the resulting layer will have as many new columns as the raster layer band count. 866 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input Point Layer INPUT [vector: point] Point vector layer to use for sampling Raster Layer to sample RASTERCOPY [raster] Raster layer to sample at the given point locations. Output column prefix COLUMN_PREFIX [string] Default: ‚rvalue‘ Prefix for the names of the added columns. Sampled Points Optional OUTPUT [vector: point] Default: [Create temporary layer] Specify the output layer containing the sampled values. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to Database Table… The file encoding can also be changed here. Outputs Label Název Type Popis Sampled Points Optional OUTPUT [vector: point] The output layer containing the sampled values. Python code Algorithm ID: qgis:rastersampling import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Zonal histogram Appends fields representing counts of each unique value from a raster layer contained within polygon features. The output layer attribute table will have as many fields as the unique values of the raster layer that intersects the polygon(s). 24.1. QGIS algorithm provider 867 QGIS Desktop 3.16 User Guide Obr. 24.15: Raster layer histogram example Parameters Label Název Type Popis Raster layer INPUT_RASTER [raster] Input raster layer. Band number RASTER_BAND [raster band] Default: The first band of the input layer If the raster is multiband, choose a band. Vector layer containing zones INPUT_VECTOR [vector: polygon] Vector polygon layer that defines the zones. Output column prefix COLUMN_PREFIX Optional [string] Default: ‚HISTO_‘ Prefix for the output columns names. Output zones OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector polygon layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to Database Table… The file encoding can also be changed here. 868 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Output zones Optional OUTPUT [vector: polygon] Default: [Create temporary layer] The output vector polygon layer. Python code Algorithm ID: qgis:zonalhistogram import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Zonal statistics Calculates statistics of a raster layer for each feature of an overlapping polygon vector layer. Prior to QGIS 3.16, the algorithm edited the layer in-place, adding the new statistics fields to it. Now, it outputs a new layer with these statistics. Parameters Label Název Type Popis Input layer INPUT [vector: polygon] Vector polygon layer that contains the zones. Raster layer INPUT_RASTER [raster] Input raster layer. Raster band RASTER_BAND [raster band] Default: The first band of the input layer If the raster is multiband, choose a band for the statistics. Output column prefix COLUMN_PREFIX [string] Default: ‚_‘ Prefix for the output columns names. Statistics to calculate STATISTICS [enumeration] [list] Default: [0,1,2] List of statistical operator for the output. Options: • 0 — Count • 1 — Sum • 2 — Mean • 3 — Median • 4 — St. dev. • 5 — Minimum • 6 — Maximum • 7 — Range • 8 — Minority • 9 — Majority • 10 — Variety • 11 — Variance continues on next page 24.1. QGIS algorithm provider 869 QGIS Desktop 3.16 User Guide Tabulka 24.48 – pokračujte na předchozí stránce Label Název Type Popis Zonal Statistics NEW in 3.16 OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector polygon layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to Database Table… • Append to Layer… The file encoding can also be changed here. Outputs Label Název Type Popis Zonal Statistics NEW in 3.16 OUTPUT [vector: polygon] The zone vector layer with added statistics. Python code Algorithm ID: qgis:zonalstatisticsfb import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.10 Raster Creation Create constant raster layer Generates raster layer for given extent and cell size filled with the specified value. Additionally an output data type can be specified. The algorithm will abort if a value has been entered that cannot be represented by the selected output raster data type. Parameters 870 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Basic parameters Label Name Type Description Desired extent EXTENT [extent] Specify the extent (xmin, xmax, ymin, ymax) of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Target CRS TARGET_CRS [crs] Default: Project CRS CRS for the output raster layer Pixel size PIXEL_SIZE [number] Default: 0.1 Pixel size (X=Y) in map units. Minimum value: 0.01 Constant value NUMBER [number] Default: 1 Constant pixel value for the output raster layer. Constant OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Name Type Description Output raster data type OUTPUT_TYPE Default: 5 [enumeration] Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Integer16 • 2 — Unsigned Integer16 • 3 — Integer32 • 4 — Unsigned Integer32 • 5 — Float32 • 6 — Float64 Outputs Label Name Type Description Constant OUTPUT [raster] Raster covering the desired extent with the specified pixel size and value. 24.1. QGIS algorithm provider 871 QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:createconstantrasterlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create random raster layer (binomial distribution) Generates a raster layer for given extent and cell size filled with binomially distributed random values. By default, the values will be chosen given an N of 10 and a probability of 0.5. This can be overridden by using the advanced parameter for N and probability. The raster data type is set to Integer types (Integer16 by default). The binomial distribution random values are defined as positive integer numbers. A floating point raster will represent a cast of integer values to floating point. Parameters Basic parameters Label Name Type Description Desired extent EXTENT [extent] Specify the extent (xmin, xmax, ymin, ymax) of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Target CRS TARGET_CRS [crs] Default: Project CRS CRS for the output raster layer Pixel size PIXEL_SIZE [number] Default: 0.1 Pixel size (X=Y) in map units. Minimum value: 0.01 Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… 872 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Advanced parameters Label Name Type Description Output raster data type OUTPUT_TYPE Default: 0 [enumeration] Defines the data type of the output raster file. Options: • 0 — Integer16 • 1 — Unsigned Integer16 • 2 — Integer32 • 3 — Unsigned Integer32 • 4 — Float32 • 5 — Float64 N N [number] Default: 10 Probability PROBABILITY [number] Default: 0.5 Outputs Label Name Type Description Output raster OUTPUT [raster] Raster covering the desired extent with the cell size filled with random values Python code Algorithm ID: native:createrandombinomialrasterlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create random raster layer (exponential distribution) Generates a raster layer for given extent and cell size filled with exponentially distributed random values. By default, the values will be chosen given a lambda of 1.0. This can be overridden by using the advanced parameter for lambda. The raster data type is set to Float32 by default as the exponential distribution random values are floating point numbers. Parameters 24.1. QGIS algorithm provider 873 QGIS Desktop 3.16 User Guide Basic parameters Label Name Type Description Desired extent EXTENT [extent] Specify the extent (xmin, xmax, ymin, ymax) of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Target CRS TARGET_CRS [crs] Default: Project CRS CRS for the output raster layer Pixel size PIXEL_SIZE [number] Default: 1.0 Pixel size (X=Y) in map units. Minimum value: 0.01 Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Name Type Description Output raster data type OUTPUT_TYPE Default: 0 [enumeration] Defines the data type of the output raster file. Options: • 0 — Float32 • 1 — Float64 Lambda LAMBDA [number] Default: 1.0 Outputs Label Name Type Description Output raster OUTPUT [raster] Raster covering the desired extent with the cell size filled with random values Python code Algorithm ID: native:createrandomexponentialrasterlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 874 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Create random raster layer (gamma distribution) Generates a raster layer for given extent and cell size filled with gamma distributed random values. By default, the values will be chosen given an alpha and beta value of 1.0. This can be overridden by using the advanced parameter for alpha and beta. The raster data type is set to Float32 by default as the gamma distribution random values are floating point numbers. Parameters Basic parameters Label Name Type Description Desired extent EXTENT [extent] Specify the extent (xmin, xmax, ymin, ymax) of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Target CRS TARGET_CRS [crs] Default: Project CRS CRS for the output raster layer Pixel size PIXEL_SIZE [number] Default: 1.0 Pixel size (X=Y) in map units. Minimum value: 0.01 Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Name Type Description Output raster data type OUTPUT_TYPE Default: 0 [enumeration] Defines the data type of the output raster file. Options: • 0 — Float32 • 1 — Float64 Alpha ALPHA [number] Default: 1.0 Beta BETA [number] Default: 1.0 24.1. QGIS algorithm provider 875 QGIS Desktop 3.16 User Guide Outputs Label Name Type Description Output raster OUTPUT [raster] Raster covering the desired extent with the cell size filled with randomly distributed values Python code Algorithm ID: native:createrandomgammarasterlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create random raster layer (geometric distribution) Generates a raster layer for given extent and cell size filled with geometrically distributed random values. By default, the values will be chosen given a probability of 0.5. This can be overridden by using the advanced parameter for mean value. The raster data type is set to Integer types (Integer16 by default). The geometric distribution random values are defined as positive integer numbers. A floating point raster will represent a cast of integer values to floating point. Parameters Basic parameters Label Name Type Description Desired extent EXTENT [extent] Specify the extent (xmin, xmax, ymin, ymax) of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Target CRS TARGET_CRS [crs] Default: Project CRS CRS for the output raster layer Pixel size PIXEL_SIZE [number] Default: 1.0 Pixel size (X=Y) in map units. Minimum value: 0.01 Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… 876 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Advanced parameters Label Name Type Description Output raster data type OUTPUT_TYPE Default: 0 [enumeration] Defines the data type of the output raster file. Options: • 0 — Integer16 • 1 — Unsigned Integer16 • 2 — Integer32 • 3 — Unsigned Integer32 • 4 — Float32 • 5 — Float64 Probability PROBABILITY [number] Default: 0.5 Outputs Label Name Type Description Output raster OUTPUT [raster] Raster covering the desired extent with the cell size filled with randomly distributed values Python code Algorithm ID: native:createrandomgeometricrasterlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create random raster layer (negative binomial distribution) Generates a raster layer for given extent and cell size filled with negative binomially distributed random values. By default, the values will be chosen given a distribution parameter k of 10.0 and a probability of 0.5. This can be overridden by using the advanced parameters for k and probability. The raster data type is set to Integer types (Integer16 by default). The negative binomial distribution random values are defined as positive integer numbers. A floating point raster will represent a cast of integer values to floating point. Parameters 24.1. QGIS algorithm provider 877 QGIS Desktop 3.16 User Guide Basic parameters Label Name Type Description Desired extent EXTENT [extent] Specify the extent (xmin, xmax, ymin, ymax) of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Target CRS TARGET_CRS [crs] Default: Project CRS CRS for the output raster layer Pixel size PIXEL_SIZE [number] Default: 1.0 Pixel size (X=Y) in map units. Minimum value: 0.01 Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Name Type Description Output raster data type OUTPUT_TYPE Default: 0 [enumeration] Defines the data type of the output raster file. Options: • 0 — Integer16 • 1 — Unsigned Integer16 • 2 — Integer32 • 3 — Unsigned Integer32 • 4 — Float32 • 5 — Float64 Distribution parameter k K_PARAMETER [number] Default: 10 Probability PROBABILITY [number] Default: 0.5 Outputs Label Name Type Description Output raster OUTPUT [raster] Raster covering the desired extent with the cell size filled with randomly distributed values 878 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:createrandomnegativebinomialrasterlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create random raster layer (normal distribution) Generates a raster layer for given extent and cell size filled with normally distributed random values. By default, the values will be chosen given a mean of 0.0 and a standard deviation of 1.0. This can be overridden by using the advanced parameters for mean and standard deviation value. The raster data type is set to Float32 by default as the normal distribution random values are floating point numbers. Parameters Basic parameters Label Name Type Description Desired extent EXTENT [extent] Specify the extent (xmin, xmax, ymin, ymax) of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Target CRS TARGET_CRS [crs] Default: Project CRS CRS for the output raster layer Pixel size PIXEL_SIZE [number] Default: 1.0 Pixel size (X=Y) in map units. Minimum value: 0.01 Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… 24.1. QGIS algorithm provider 879 QGIS Desktop 3.16 User Guide Advanced parameters Label Name Type Description Output raster data type OUTPUT_TYPE Default: 0 [enumeration] Defines the data type of the output raster file. Options: • 0 — Float32 • 1 — Float64 Mean of normal distribution MEAN [number] Default: 0.0 Standard deviation of normal distribution STDDEV [number] Default: 1.0 Outputs Label Name Type Description Output raster OUTPUT [raster] Raster covering the desired extent with the cell size filled with randomly distributed values Python code Algorithm ID: native:createrandomnormalrasterlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create random raster layer (poisson distribution) Generates a raster layer for given extent and cell size filled with poisson distributed random values. By default, the values will be chosen given a mean of 1.0. This can be overridden by using the advanced parameter for mean value. The raster data type is set to Integer types (Integer16 by default). The poisson distribution random values are positive integer numbers. A floating point raster will represent a cast of integer values to floating point. Parameters 880 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Basic parameters Label Name Type Description Desired extent EXTENT [extent] Specify the extent (xmin, xmax, ymin, ymax) of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Target CRS TARGET_CRS [crs] Default: Project CRS CRS for the output raster layer Pixel size PIXEL_SIZE [number] Default: 1.0 Pixel size (X=Y) in map units. Minimum value: 0.01 Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Name Type Description Output raster data type OUTPUT_TYPE Default: 0 [enumeration] Defines the data type of the output raster file. Options: • 0 — Integer16 • 1 — Unsigned Integer16 • 2 — Integer32 • 3 — Unsigned Integer32 • 4 — Float32 • 5 — Float64 Mean MEAN [number] Default: 1.0 Outputs Label Name Type Description Output raster OUTPUT [raster] Raster covering the desired extent with the cell size filled with randomly distributed values 24.1. QGIS algorithm provider 881 QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:createrandompoissonrasterlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create random raster layer (uniform distribution) Generates a raster layer for given extent and cell size filled with random values. By default, the values will range between the minimum and maximum value of the specified output raster type. This can be overridden by using the advanced parameters for lower and upper bound value. If the bounds have the same value or both are zero (default) the algorithm will create random values in the full value range of the chosen raster data type. Choosing bounds outside the acceptable range of the output raster type will abort the algorithm. Parameters Basic parameters Label Name Type Description Desired extent EXTENT [extent] Specify the extent (xmin, xmax, ymin, ymax) of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Target CRS TARGET_CRS [crs] Default: Project CRS CRS for the output raster layer Pixel size PIXEL_SIZE [number] Default: 1.0 Pixel size (X=Y) in map units. Minimum value: 0.01 Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… 882 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Advanced parameters Label Name Type Description Output raster data type OUTPUT_TYPE Default: 5 [enumeration] Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Integer16 • 2 — Unsigned Integer16 • 3 — Integer32 • 4 — Unsigned Integer32 • 5 — Float32 • 6 — Float64 Lower bound for random number range LOWER_BOUND [number] Default: 0.0 Upper bound for random number range UPPER_BOUND [number] Default: 0.0 Outputs Label Name Type Description Output raster OUTPUT [raster] Raster covering the desired extent with the cell size filled with randomly distributed values Python code Algorithm ID: native:createrandomuniformrasterlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.11 Raster terrain analysis Aspect Calculates the aspect of the Digital Terrain Model in input. The final aspect raster layer contains values from 0 to 360 that express the slope direction, starting from north (0°) and continuing clockwise. 24.1. QGIS algorithm provider 883 QGIS Desktop 3.16 User Guide Obr. 24.16: Aspect values The following picture shows the aspect layer reclassified with a color ramp: Obr. 24.17: Aspect layer reclassified Parameters Label Název Type Popis Elevation layer INPUT [raster] Digital Terrain Model raster layer Z factor Z_FACTOR [number] Default: 1.0 Vertical exaggeration. This parameter is useful when the Z units differ from the X and Y units, for example feet and meters. You can use this parameter to adjust for this. The default is 1 (no exaggeration). Aspect OUTPUT [raster] Specify the output aspect raster layer. One of: • Save to a Temporary Layer (TEMPORARY_OUTPUT) • Save to File… The file encoding can also be changed here. 884 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Aspect OUTPUT [raster] The output aspect raster layer Python code Algorithm ID: qgis:aspect import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Hillshade Calculates the hillshade raster layer given an input Digital Terrain Model. The shading of the layer is calculated according to the sun position: you have the options to change both the horizontal angle (azimuth) and the vertical angle (sun elevation) of the sun. Obr. 24.18: Azimuth and vertical angle The hillshade layer contains values from 0 (complete shadow) to 255 (complete sun). Hillshade is used usually to better understand the relief of the area. 24.1. QGIS algorithm provider 885 QGIS Desktop 3.16 User Guide Obr. 24.19: Hillshade layer with azimuth 300 and vertical angle 45 Particularly interesting is to give the hillshade layer a transparency value and overlap it with the elevation raster: Obr. 24.20: Overlapping the hillshade with the elevation layer 886 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Elevation layer INPUT [raster] Digital Terrain Model raster layer Z factor Z_FACTOR [number] Default: 1.0 Vertical exaggeration. This parameter is useful when the Z units differ from the X and Y units, for example feet and meters. You can use this parameter to adjust for this. Increasing the value of this parameter will exaggerate the final result (making it look more „hilly“). The default is 1 (no exaggeration). Azimuth (horizontal angle) AZIMUTH [number] Default: 300.0 Set the horizontal angle (in degrees) of the sun (clockwise direction). Range: 0 to 360. 0 is north. Vertical angle V_ANGLE [number] Default: 40.0 Set the vertical angle (in degrees) of the sun, that is the height of the sun. Values can go from 0 (minimum elevation) to 90 (maximum elevation). Hillshade OUTPUT [raster] Specify the output hillshade raster layer. One of: • Save to a Temporary Layer (TEMPORARY_OUTPUT) • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Hillshade OUTPUT [raster] The output hillshade raster layer Python code Algorithm ID: qgis:hillshade import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Hypsometric curves Calculates hypsometric curves for an input Digital Elevation Model. Curves are produced as CSV files in an output folder specified by the user. A hypsometric curve is a cumulative histogram of elevation values in a geographical area. You can use hypsometric curves to detect differences in the landscape due to the geomorphology of the territory. 24.1. QGIS algorithm provider 887 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis DEM to analyze INPUT_DEM [raster] Digital Terrain Model raster layer to use for calculating altitudes Boundary layer BOUNDARY_LAYER [vector: polygon] Polygon vector layer with boundaries of areas used to calculate hypsometric curves Step STEP [number] Default: 100.0 Vertical distance between curves Use % of area instead of absolute value USE_PERCENTAGE [boolean] Default: False Write area percentage to “Area” field of the CSV file instead of the absolute area Hypsometric curves OUTPUT_DIRECTORY[folder] Specify the output folder for the hypsometric curves. One of: • Save to a Temporary Layer (TEMPORARY_OUTPUT) • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Hypsometric curves OUTPUT_DIRECTORY[folder] Directory containing the files with the hypsometric curves. For each feature from the input vector layer, a CSV file with area and altitude values will be created. The file names start with histogram_, followed by layer name and feature ID. 888 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:hypsometriccurves import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Relief Creates a shaded relief layer from digital elevation data. You can specify the relief color manually, or you can let the algorithm choose automatically all the relief classes. Obr. 24.21: Relief layer Parameters Label Název Type Popis Elevation layer INPUT [raster] Digital Terrain Model raster layer Z factor Z_FACTOR [number] Default: 1.0 Vertical exaggeration. This parameter is useful when the Z units differ from the X and Y units, for example feet and meters. You can use this parameter to adjust for this. Increasing the value of this parameter will exaggerate the final result (making it look more „hilly“). The default is 1 (no exaggeration). continues on next page 24.1. QGIS algorithm provider 889 QGIS Desktop 3.16 User Guide Tabulka 24.51 – pokračujte na předchozí stránce Label Název Type Popis Generate relief classes automatically AUTO_COLORS [boolean] Default: False If you check this option the algorithm will create all the relief color classes automatically Relief colors Optional COLORS [table widget] Use the table widget if you want to choose the relief colors manually. You can add as many color classes as you want: for each class you can choose the lower and upper bound and finally by clicking on the color row you can choose the color thanks to the color widget. Obr. 24.22: Manually setting of relief color classes The buttons in the right side panel give you the chance to: add or remove color classes, change the order of the color classes already defined, open an existing file with color classes and save the current classes as file. Relief OUTPUT [raster] Default: [Save to temporary file] Specify the output relief raster layer. One of: • Save to a Temporary Layer (TEMPORARY_OUTPUT) • Save to File… The file encoding can also be changed here. Frequency distribution FREQUENCY_DISTRIBUTION[table] Default: [Skip output] Specify the CSV table for the output frequency distribution. One of: • Skip Output • Save to a Temporary Layer (TEMPORARY_OUTPUT) • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Relief OUTPUT [raster] The output relief raster layer Frequency distribution OUTPUT [table] The output frequency distribution 890 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:relief import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Ruggedness index Calculates the quantitative measurement of terrain heterogeneity described by Riley et al. (1999). It is calculated for every location, by summarizing the change in elevation within the 3x3 pixel grid. Each pixel contains the difference in elevation from a center cell and the 8 cells surrounding it. Obr. 24.23: Ruggedness layer from low (red) to high values (green) 24.1. QGIS algorithm provider 891 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Elevation layer INPUT [raster] Digital Terrain Model raster layer Z factor Z_FACTOR [number] Default: 1.0 Vertical exaggeration. This parameter is useful when the Z units differ from the X and Y units, for example feet and meters. You can use this parameter to adjust for this. Increasing the value of this parameter will exaggerate the final result (making it look more rugged). The default is 1 (no exaggeration). Ruggedness OUTPUT [raster] Default: [Save to temporary file] Specify the output ruggedness raster layer. One of: • Save to a Temporary Layer (TEMPORARY_OUTPUT) • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Ruggedness OUTPUT [raster] The output ruggedness raster layer Python code Algorithm ID: qgis:ruggednessindex import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Slope Calculates the slope from an input raster layer. The slope is the angle of inclination of the terrain and is expressed in degrees. In the following picture you can see to the left the DTM layer with the elevation of the terrain while to the right the calculated slope: 892 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.24: Flat areas in red, steep areas in blue Parameters Label Název Type Popis Elevation layer INPUT [raster] Digital Terrain Model raster layer Z factor Z_FACTOR [number] Default: 1.0 Vertical exaggeration. This parameter is useful when the Z units differ from the X and Y units, for example feet and meters. You can use this parameter to adjust for this. Increasing the value of this parameter will exaggerate the final result (making it steeper). The default is 1 (no exaggeration). Slope OUTPUT [raster] Default: [Save to temporary file] Specify the output slope raster layer. One of: • Save to a Temporary Layer (TEMPORARY_OUTPUT) • Save to File… The file encoding can also be changed here. 24.1. QGIS algorithm provider 893 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Slope OUTPUT [raster] The output slope raster layer Python code Algorithm ID: qgis:slope import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.12 Raster tools Convert map to raster Creates a raster image of map canvas content. A map theme can be selected to render a predetermined set of layers with a defined style for each layer. Alternatively, a single layer can be selected if no map theme is set. If neither map theme nor layer is set, the current map content will be rendered. The minimum extent entered will internally be extended to be a multiple of the tile size. Parameters Label Název Type Popis Minimum extent to render (xmin, xmax, ymin, ymax) EXTENT [extent] Specify the extent of the output raster layer. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Tile size TILE_SIZE [number] Default: 1024 Size of the tile of the output raster layer. Minimum value: 64. Map units per pixel MAP_UNITS_PER_PIXEL[number] Default: 100.0 Pixel size (in map units). Minimum value: 0.0 Make background transparent MAKE_BACKGROUND_TRANSPARENT[boolean] Default: False Allows exporting the map with a transparent background. Outputs an RGBA (instead of RGB) image if set to True. Map theme to render Optional MAP_THEME [enumeration] Use an existing map theme for the rendering. Single layer to render Optional LAYER [enumeration] Choose a single layer for the rendering continues on next page 894 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.52 – pokračujte na předchozí stránce Label Název Type Popis Output layer OUTPUT [raster] Default: Save to temporary file Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output layer OUTPUT [raster] Output raster layer Python code Algorithm ID: qgis:rasterize import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Fill NoData cells Resets the NoData values in the input raster to a chosen value, resulting in raster dataset with no NoData pixels. The algorithm respects the input raster data type, e.g. a floating point fill value will be truncated when applied to an integer raster. Obr. 24.25: Filling NoData values (in grey) of a raster 24.1. QGIS algorithm provider 895 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input raster INPUT [raster] The raster to process. Band number BAND [number] Default: 1 The band of the raster Fill value FILL_VALUE [number] Default: 1.0 Set the value to use for the NoData pixels Output raster OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… Outputs Label Název Type Popis Output raster OUTPUT [raster] The output raster layer with filled data cells. Python code Algorithm ID: native:fillnodata import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Generate XYZ tiles (Directory) Generates raster “XYZ” tiles using the current QGIS project as individual images to a directory structure. Parameters Label Název Type Popis Extent (xmin, xmax, ymin, ymax) EXTENT [extent] Specify the extent of the tiles. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Minimum zoom ZOOM_MIN [number] Default: 12 Minimum 0, maximum 25. Maximum zoom ZOOM_MAX [number] Default: 12 Minimum 0, maximum 25. DPI DPI [number] Default: 96 Minimum 48, maximum 600. continues on next page 896 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.53 – pokračujte na předchozí stránce Label Název Type Popis Background color Optional BACKGROUND_COLOR[color] Default: QColor(0, 0, 0, 0) Choose the background color for the tiles Tile format TILE_FORMAT [enumeration] Default: 0 One of: • 0 — PNG • 1 — JPG Quality (JPG only) Optional QUALITY [number] Default: 75 Minimum 1, maximum 100. Metatile size Optional METATILESIZE [number] Default: 4 Specify a custom metatile size when generating XYZ tiles. Larger values may speed up the rendering of tiles and provide better labelling (fewer gaps without labels) at the expense of using more memory. Minimum 1, maximum 20. Tile width Optional TILE_WIDTH [number] Default: 256 Minimum 1, maximum 4096. Tile height Optional TILE_HEIGHT [number] Default: 256 Minimum 1, maximum 4096. Use inverted tile Y axis (TMS conventions) Optional TMS_CONVENTION [boolean] Default: False Output directory OUTPUT_DIRECTORY[folder] Default: [Save to temporary folder] Specification of the output raster. One of: • Skip Output • Save to a Temporary Directory • Save to Directory… The file encoding can also be changed here. Output html (Leaflet) OUTPUT_HTML [html] Default: [Save to temporary file] Specification of the output HTML file. One of: • Skip Output • Save to a Temporary File • Save to File… Outputs Label Název Type Popis Output directory OUTPUT_DIRECTORY[folder] Output directory (for the tiles) Output html (Leaflet) OUTPUT_HTML [html] The output HTML (Leaflet) file 24.1. QGIS algorithm provider 897 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:tilesxyzdirectory import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Generate XYZ tiles (MBTiles) Generates raster “XYZ” tiles using the current QGIS project as a single file in the “MBTiles” format. Parameters Label Název Type Popis Extent (xmin, xmax, ymin, ymax) EXTENT [extent] Specify the extent of the tiles. One of: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent… It will internally be extended to a multiple of the tile size. Minimum zoom ZOOM_MIN [number] Default: 12 Minimum 0, maximum 25. Maximum zoom ZOOM_MAX [number] Default: 12 Minimum 0, maximum 25. DPI DPI [number] Default: 96 Minimum 48, maximum 600. Background color Optional BACKGROUND_COLOR[color] Default: QColor(0, 0, 0, 0) Choose the background color for the tiles Tile format TILE_FORMAT [enumeration] Default: 0 One of: • 0 — PNG • 1 — JPG Quality (JPG only) Optional QUALITY [number] Default: 75 Minimum 1, maximum 100. Metatile size Optional METATILESIZE [number] Default: 4 Specify a custom metatile size when generating XYZ tiles. Larger values may speed up the rendering of tiles and provide better labelling (fewer gaps without labels) at the expense of using more memory. Minimum 1, maximum 20. Output file (for MBTiles) OUTPUT_FILE [file] Default: [Save to temporary file] Specification of the output file. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. 898 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Output file (for MBTiles) OUTPUT_FILE [file] The output file. Python code Algorithm ID: qgis:tilesxyzmbtiles import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.13 Vector analysis Basic statistics for fields Generates basic statistics for a field of the attribute table of a vector layer. Numeric, date, time and string fields are supported. The statistics returned will depend on the field type. Statistics are generated as an HTML file and are available in the Processing ► Results viewer. Default menu: Vector ► Analysis Tools Parameters Label Název Type Popis Input vector INPUT_LAYER [vector: any] Vector layer to calculate the statistics on Field to calculate statistics on FIELD_NAME [tablefield: any] Any supported table field to calculate the statistics Statistics OUTPUT_HTML_FILE[html] HTML file for the calculated statistics Outputs Label Název Type Popis Statistics OUTPUT_HTML_FILE[html] HTML file with the calculated statistics Count COUNT [number] Number of unique values UNIQUE [number] Number of empty (null) values EMPTY [number] Number of non-empty values FILLED [number] Minimum value MIN [same as input] Maximum value MAX [same as input] Minimum length MIN_LENGTH [number] Maximum length MAX_LENGTH [number] continues on next page 24.1. QGIS algorithm provider 899 QGIS Desktop 3.16 User Guide Tabulka 24.55 – pokračujte na předchozí stránce Label Název Type Popis Mean length MEAN_LENGTH [number] Coefficient of Variation CV [number] Sum SUM [number] Mean value MEAN [number] Standard deviation STD_DEV [number] Range RANGE [number] Median MEDIAN [number] Minority (rarest occurring value) MINORITY [same as input] Majority (most frequently occurring value) MAJORITY [same as input] First quartile FIRSTQUARTILE [number] Third quartile THIRDQUARTILE [number] Interquartile Range (IQR) IQR [number] Python code Algorithm ID: qgis:basicstatisticsforfields import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Climb along line Calculates the total climb and descent along line geometries. The input layer must have Z values present. If Z values are not available, the Drape (set Z value from raster) algorithm may be used to add Z values from a DEM layer. The output layer is a copy of the input layer with additional fields that contain the total climb (climb), total descent (descent), the minimum elevation (minelev) and the maximum elevation (maxelev) for each line geometry. If the input layer contains fields with the same names as these added fields, they will be renamed (field names will be altered to „name_2“, „name_3“, etc, finding the first non-duplicate name). 900 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Line layer INPUT [vector: line] Line layer to calculate the climb for. Must have Z values Climb layer OUTPUT [vector: line] The output (line) layer Outputs Label Název Type Popis Climb layer OUTPUT [vector: line] Line layer containing new attributes with the results from climb calculations. Total climb TOTALCLIMB [number] The sum of the climb for all the line geometries in the input layer Total descent TOTALDESCENT [number] The sum of the descent for all the line geometries in the input layer Minimum elevation MINELEVATION [number] The minimum elevation for the geometries in the layer Maximum elevation MAXELEVATION [number] The maximum elevation for the geometries in the layer Python code Algorithm ID: qgis:climbalongline import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Count points in polygon Takes a point and a polygon layer and counts the number of points from the point layer in each of the polygons of the polygon layer. A new polygon layer is generated, with the exact same content as the input polygon layer, but containing an additional field with the points count corresponding to each polygon. 24.1. QGIS algorithm provider 901 QGIS Desktop 3.16 User Guide Obr. 24.26: The labels in the polygons show the point count An optional weight field can be used to assign weights to each point. Alternatively, a unique class field can be specified. If both options are used, the weight field will take precedence and the unique class field will be ignored. Default menu: Vector ► Analysis Tools Parameters Label Název Type Popis Polygons POLYGONS [vector: polygon] Polygon layer whose features are associated with the count of points they contain Points POINTS [vector: point] Point layer with features to count Weight field Optional WEIGHT [tablefield: any] A field from the point layer. The count generated will be the sum of the weight field of the points contained by the polygon. If the weight field is not numeric, the count will be 0. Class field Optional CLASSFIELD [tablefield: any] Points are classified based on the selected attribute and if several points with the same attribute value are within the polygon, only one of them is counted. The final count of the points in a polygon is, therefore, the count of different classes that are found in it. Count field name FIELD [string] Default: ‚NUMPOINTS‘ The name of the field to store the count of points Count OUTPUT [vector: polygon] Specification of the output layer 902 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Count OUTPUT [vector: polygon] Resulting layer with the attribute table containing the new column with the points count DBSCAN clustering Clusters point features based on a 2D implementation of Density-based spatial clustering of applications with noise (DBSCAN) algorithm. The algorithm requires two parameters, a minimum cluster size, and the maximum distance allowed between clustered points. Viz také: K-means clustering Parameters Label Název Type Popis Input layer INPUT [vector: point] Layer to analyze Minimum cluster size MIN_SIZE [number] Default: 5 Minimum number of features to generate a cluster Maximum distance between clustered points EPS [number] Default: 1.0 Distance beyond which two features can not belong to the same cluster (eps) Cluster field name FIELD_NAME [string] Default: ‚CLUSTER_ID‘ Name of the field where the associated cluster number shall be stored Treat border points as noise (DBSCAN*) Optional DBSCAN* [boolean] Default: False If checked, points on the border of a cluster are themselves treated as unclustered points, and only points in the interior of a cluster are tagged as clustered. Clusters OUTPUT [vector: point] Vector layer for the result of the clustering Outputs Label Název Type Popis Clusters OUTPUT [vector: point] Vector layer containing the original features with a field setting the cluster they belong to Number of clusters NUM_CLUSTERS [number] The number of clusters discovered 24.1. QGIS algorithm provider 903 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:dbscanclustering import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Distance matrix Calculates for point features distances to their nearest features in the same layer or in another layer. Default menu: Vector ► Analysis Tools Viz také: Join attributes by nearest Parameters Label Název Type Popis Input point layer INPUT [vector: point] Point layer for which the distance matrix is calculated (from points) Input unique ID field INPUT_FIELD [tablefield: any] Field to use to uniquely identify features of the input layer. Used in the output attribute table. Target point layer TARGET [vector: point] Point layer containing the nearest point(s) to search (to points) Target unique ID field TARGET_FIELD [tablefield: any] Field to use to uniquely identify features of the target layer. Used in the output attribute table. Output matrix type MATRIX_TYPE [enumeration] Default: 0 Different types of calculation are available: • 0 — Linear (N * k x 3) distance matrix: for each input point, reports the distance to each of the k nearest target points. The output matrix consists of up to k rows per input point, and each row has three columns: InputID, TargetID and Distance. • 1 — Standard (N x T) distance matrix • 2 — Summary distance matrix (mean, std. dev., min, max): for each input point, reports statistics on the distances to its target points. Use only the nearest (k) target points NEAREST_POINTS [number] Default: 0 You can choose to calculate the distance to all the points in the target layer (0) or limit to a number (k) of closest features. Distance matrix OUTPUT [vector: point] 904 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Distance matrix OUTPUT [vector: point] Point (or MultiPoint for the „Linear (N * k x 3)“ case) vector layer containing the distance calculation for each input feature. Its features and attribute table depend on the selected output matrix type. Python code Algorithm ID: qgis:distancematrix import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Distance to nearest hub (line to hub) Creates lines that join each feature of an input vector to the nearest feature in a destination layer. Distances are calculated based on the center of each feature. Obr. 24.27: Display the nearest hub for the red input features Viz také: Distance to nearest hub (points), Join attributes by nearest 24.1. QGIS algorithm provider 905 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Source points layer INPUT [vector: any] Vector layer for which the nearest feature is searched Destination hubs layer HUBS [vector: any] Vector layer containing the features to search for Hub layer name attribute FIELD [tablefield: any] Field to use to uniquely identify features of the destination layer. Used in the output attribute table Measurement unit UNIT [enumeration] Default: 0 Units in which to report the distance to the closest feature: • 0 — Meters • 1 — Feet • 2 — Miles • 3 — Kilometers • 4 — Layer units Hub distance OUTPUT [vector: line] Line vector layer for the distance matrix output Outputs Label Název Type Popis Hub distance OUTPUT [vector: line] Line vector layer with the attributes of the input features, the identifier of their closest feature and the calculated distance. Python code Algorithm ID: qgis:distancetonearesthublinetohub import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Distance to nearest hub (points) Creates a point layer representing the center of the input features with the addition of two fields containing the identifier of the nearest feature (based on its center point) and the distance between the points. Viz také: Distance to nearest hub (line to hub), Join attributes by nearest 906 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Source points layer INPUT [vector: any] Vector layer for which the nearest feature is searched Destination hubs layer HUBS [vector: any] Vector layer containing the features to search for Hub layer name attribute FIELD [tablefield: any] Field to use to uniquely identify features of the destination layer. Used in the output attribute table Measurement unit UNIT [enumeration] Default: 0 Units in which to report the distance to the closest feature: • 0 — Meters • 1 — Feet • 2 — Miles • 3 — Kilometers • 4 — Layer units Hub distance OUTPUT [vector: point] Point vector layer for the distance matrix output. Outputs Label Název Type Popis Hub distance OUTPUT [vector: point] Point vector layer with the attributes of the input features, the identifier of their closest feature and the calculated distance. Python code Algorithm ID: qgis:distancetonearesthubpoints import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Join by lines (hub lines) Creates hub and spoke diagrams by connecting lines from points on the Spoke layer to matching points in the Hub layer. Determination of which hub goes with each point is based on a match between the Hub ID field on the hub points and the Spoke ID field on the spoke points. If input layers are not point layers, a point on the surface of the geometries will be taken as the connecting location. Optionally, geodesic lines can be created, which represent the shortest path on the surface of an ellipsoid. When geodesic mode is used, it is possible to split the created lines at the antimeridian (±180 degrees longitude), which can improve rendering of the lines. Additionally, the distance between vertices can be specified. A smaller distance results in a denser, more accurate line. 24.1. QGIS algorithm provider 907 QGIS Desktop 3.16 User Guide Obr. 24.28: Join points based on a common field / attribute Parameters Label Název Type Popis Hub layer HUBS [vector: any] Input layer Hub ID field HUB_FIELD [tablefield: any] Field of the hub layer with ID to join Hub layer fields to copy (leave empty to copy all fields) Optional HUB_FIELDS [tablefield: any] [list] The field(s) of the hub layer to be copied. If no field(s) are chosen all fields are taken. Spoke layer SPOKES [vector: any] Additional spoke point layer Spoke ID field SPOKE_FIELD [tablefield: any] Field of the spoke layer with ID to join Spoke layer fields to copy (leave empty to copy all fields) Optional SPOKE_FIELDS [tablefield: any] [list] Field(s) of the spoke layer to be copied. If no fields are chosen all fields are taken. Create geodesic lines GEODESIC [boolean] Default: False Create geodesic lines (the shortest path on the surface of an ellipsoid) Distance between vertices (geodesic lines only) GEODESIC_DISTANCE[number] Default: 1000.0 (kilometers) Distance between consecutive vertices (in kilometers). A smaller distance results in a denser, more accurate line Split lines at antimeridian (±180 degrees longitude) ANTIMERIDIAN_SPLIT[boolean] Default: False Split lines at ±180 degrees longitude (to improve rendering of the lines) Hub lines OUTPUT [vector: line] The resulting line layer Outputs Label Název Type Popis Hub lines OUTPUT [vector: line] The resulting line layer 908 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:hublines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. K-means clustering Calculates the 2D distance based k-means cluster number for each input feature. K-means clustering aims to partition the features into k clusters in which each feature belongs to the cluster with the nearest mean. The mean point is represented by the barycenter of the clustered features. If input geometries are lines or polygons, the clustering is based on the centroid of the feature. Obr. 24.29: A five class point clusters 24.1. QGIS algorithm provider 909 QGIS Desktop 3.16 User Guide Viz také: DBSCAN clustering Parameters Label Název Type Popis Input layer INPUT [vector: any] Layer to analyze Number of clusters CLUSTERS [number] Default: 5 Number of clusters to create with the features Cluster field name FIELD_NAME [string] Default: ‚CLUSTER_ID‘ Name of the cluster number field Clusters OUTPUT [vector: any] Vector layer for generated the clusters Outputs Label Název Type Popis Clusters OUTPUT [vector: any] Vector layer containing the original features with a field specifying the cluster they belong to Python code Algorithm ID: qgis:kmeansclustering import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. List unique values Lists unique values of an attribute table field and counts their number. Default menu: Vector ► Analysis Tools Parameters Label Název Type Popis Input layer INPUT [vector: any] Layer to analyze Target field(s) FIELDS [tablefield: any] Field to analyze Unique values OUTPUT [table] Summary table layer with unique values HTML report OUTPUT_HTML_FILE[html] HTML report of unique values in the Processing ► Results viewer 910 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Unique values OUTPUT [table] Summary table layer with unique values HTML report OUTPUT_HTML_FILE[html] HTML report of unique values. Can be opened from the Processing ► Results viewer Total unique values TOTAL_VALUES [number] The number of uniqe values in the input field UNIQUE_VALUES Unique values [string] A string with the comma separated list of unique values found in the input field Python code Algorithm ID: qgis:listuniquevalues import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Mean coordinate(s) Computes a point layer with the center of mass of geometries in an input layer. An attribute can be specified as containing weights to be applied to each feature when computing the center of mass. If an attribute is selected in the parameter, features will be grouped according to values in this field. Instead of a single point with the center of mass of the whole layer, the output layer will contain a center of mass for the features in each category. Default menu: Vector ► Analysis Tools Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Weight field Optional WEIGHT [tablefield: numeric] Field to use if you want to perform a weighted mean Unique ID field UID [tablefield: numeric] Unique field on which the calculation of the mean will be made Mean coordinates OUTPUT [vector: point] The (point vector) layer for the result 24.1. QGIS algorithm provider 911 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Mean coordinates OUTPUT [vector: point] Resulting point(s) layer Python code Algorithm ID: qgis:meancoordinates import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Nearest neighbour analysis Performs nearest neighbor analysis for a point layer. The output tells you how your data are distributed (clustered, randomly or distributed). Output is generated as an HTML file with the computed statistical values: • Observed mean distance • Expected mean distance • Nearest neighbour index • Number of points • Z-Score: Comparing the Z-Score with the normal distribution tells you how your data are distributed. A low Z-Score means that the data are unlikely to be the result of a spatially random process, while a high Z-Score means that your data are likely to be a result of a spatially random process. 912 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Default menu: Vector ► Analysis Tools Viz také: Join attributes by nearest Parameters Label Název Type Popis Input layer INPUT [vector: point] Point vector layer to calculate the statistics on Nearest neighbour OUTPUT_HTML_FILE[html] HTML file for the computed statistics 24.1. QGIS algorithm provider 913 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Nearest neighbour OUTPUT_HTML_FILE[html] HTML file with the computed statistics Observed mean distance OBSERVED_MD [number] Observed mean distance Expected mean distance EXPECTED_MD [number] Expected mean distance Nearest neighbour index NN_INDEX [number] Nearest neighbour index Number of points POINT_COUNT [number] Number of points Z-Score Z_SCORE [number] Z-Score Python code Algorithm ID: qgis:nearestneighbouranalysis import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Overlap analysis Calculates the area and percentage cover by which features from an input layer are overlapped by features from a selection of overlay layers. New attributes are added to the output layer reporting the total area of overlap and percentage of the input feature overlapped by each of the selected overlay layers. Parameters Label Název Type Popis Input layer INPUT [vector: any] The input layer. Overlap layers LAYERS [vector: any] [list] The overlay layers. Output layer OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 914 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Output layer OUTPUT [same as input] The output layer with additional fields reporting the overlap (in map units and percentage) of the input feature overlapped by each of the selected layers. Python code Algorithm ID: qgis:calculatevectoroverlaps import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Statistics by categories Calculates statistics of a field depending on a parent class. The parent class is a combination of values from other fields. Parameters Label Název Type Popis Input vector layer INPUT [vector: any] Input vector layer with unique classes and values Field to calculate statistics on (if empty, only count is calculated) Optional VALUES_FIELD_NAME[tablefield: any] If empty only the count will be calculated Field(s) with categories CATEGORIES_FIELD_NAME[vector: any] [list] The fields that (combined) define the categories Statistics by category OUTPUT [table] Table for the generated statistics Outputs Label Název Type Popis Statistics by category OUTPUT [table] Table containing the statistics Depending on the type of the field being analyzed, the following statistics are returned for each grouped value: Statistics Řetězec Numeric Datum Count (COUNT) continues on next page 24.1. QGIS algorithm provider 915 QGIS Desktop 3.16 User Guide Tabulka 24.61 – pokračujte na předchozí stránce Statistics Řetězec Numeric Datum Unique values (UNIQUE) Empty (null) values (EMPTY) Non-empty values (FILLED) Minimal value (MIN) Maximal value (MAX) Range (RANGE) Sum (SUM) Mean value (MEAN) Median value (MEDIAN) Standard Deviation (STD_DEV) Coefficient of variation (CV) Minority (rarest occurring value - MINORITY) Majority (most frequently occurring value - MAJORITY) First Quartile (FIRSTQUARTILE) Third Quartile (THIRDQUARTILE) Inter Quartile Range (IQR) Minimum Length (MIN_LENGTH) Mean Length (MEAN_LENGTH) Maximum Length (MAX_LENGTH) Python code Algorithm ID: qgis:statisticsbycategories import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Sum line lengths Takes a polygon layer and a line layer and measures the total length of lines and the total number of them that cross each polygon. The resulting layer has the same features as the input polygon layer, but with two additional attributes containing the length and count of the lines across each polygon. Default menu: Vector ► Analysis Tools 916 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Lines LINES [vector: line] Input vector line layer Polygons POLYGONS [vector: polygon] Polygon vector layer Lines length field name LEN_FIELD [string] Default: ‚LENGTH‘ Name of the field for the lines length Lines count field name COUNT_FIELD [string] Default: ‚COUNT‘ Name of the field for the lines count Line length OUTPUT [vector: polygon] The output polygon vector layer Outputs Label Název Type Popis Line length OUTPUT [vector: polygon] Polygon output layer with fields of lines length and line count Python code Algorithm ID: qgis:sumlinelengths import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.14 Vector creation Array of offset (parallel) lines Creates copies of line features in a layer, by creating multiple offset versions of each feature. Each new version is incrementally offset by a specified distance. Positive distance will offset lines to the left, and negative distances will offset them to the right. Obr. 24.30: In blue the source layer, in red the offset one 24.1. QGIS algorithm provider 917 QGIS Desktop 3.16 User Guide Allows features in-place modification Viz také: Offset lines, Array of translated features Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer to use for the offsets. Number of features to create COUNT [number ] Default: 10 Number of offset copies to generate for each feature Offset step distance OFFSET [number ] Default: 1.0 Distance between two consecutive offset copies Segments SEGMENTS [number] Default: 8 Number of line segments to use to approximate a quarter circle when creating rounded offsets Join style JOIN_STYLE [enumeration] Default: 0 Specify whether round, miter or beveled joins should be used when offsetting corners in a line. One of: • 0 — Round • 1 — Miter • 2 — Bevel Miter limit MITER_LIMIT [number] Default: 2.0 Only applicable for mitered join styles, and controls the maximum distance from the offset curve to use when creating a mitered join. Offset lines OUTPUT [vector: line] Default: [Create temporary layer] Specify the output line layer with offset features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Offset lines OUTPUT [vector: line] Output line layer with offset features. The original features are also copied. 918 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:arrayoffsetlines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Array of translated features Creates copies of features in a layer by creating multiple translated versions of each. Each copy is incrementally displaced by a preset amount in the X, Y and/or Z axis. M values present in the geometry can also be translated. Obr. 24.31: Input layers in blue tones, output layers with translated features in red tones Allows features in-place modification Viz také: Translate, Array of offset (parallel) lines Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer to translate Number of features to create COUNT [number ] Default: 10 Number of copies to generate for each feature Step distance (x- -axis) DELTA_X [number ] Default: 0.0 Displacement to apply on the X axis continues on next page 24.1. QGIS algorithm provider 919 QGIS Desktop 3.16 User Guide Tabulka 24.64 – pokračujte na předchozí stránce Label Název Type Popis Step distance (y- -axis) DELTA_Y [number ] Default: 0.0 Displacement to apply on the Y axis Step distance (z- axis) DELTA_Z [number ] Default: 0.0 Displacement to apply on the Z axis Step distance (m values) DELTA_M [number ] Default: 0.0 Displacement to apply on M Translated OUTPUT [same as input] Default: [Create temporary layer] Output vector layer with translated (moved) copies of the features. The original features are also copied. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Translated OUTPUT [same as input] Output vector layer with translated (moved) copies of the features. The original features are also copied. Python code Algorithm ID: qgis:arraytranslatedfeatures import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create grid Creates a vector layer with a grid covering a given extent. Grid cells can have different shapes: Obr. 24.32: Different grid cell shapes 920 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide The size of each element in the grid is defined using a horizontal and vertical spacing. The CRS of the output layer must be defined. The grid extent and the spacing values must be expressed in the coordinates and units of this CRS. Default menu: Vector ► Research Tools Parameters Label Název Type Popis Grid type TYPE [enumeration] Default: 0 Shape of the grid. One of: • 0 — Point • 1 — Line • 2 — Rectangle (polygon) • 3 — Diamond (polygon) • 4 — Hexagon (polygon) Grid extent EXTENT [extent] Extent of the grid Horizontal spacing HSPACING [number] Default: 1.0 Size of a grid cell on the X-axis Vertical spacing VSPACING [number] Default: 1.0 Size of a grid cell on the Y-axis Horizontal overlay HOVERLAY [number] Default: 0.0 Overlay distance between two consecutive grid cells on the X-axis Vertical overlay VOVERLAY [number] Default: 0.0 Overlay distance between two consecutive grid cells on the Y-axis Grid CRS CRS [crs] Default: Project CRS Coordinate reference system to apply to the grid Grid OUTPUT [vector: any] Default: [Create temporary layer] Resulting vector grid layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Grid OUTPUT [vector: any] Resulting vector grid layer. The output geometry type (point, line or polygon) depends on the Grid type. 24.1. QGIS algorithm provider 921 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:creategrid import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create points layer from table Creates points layer from a table with columns that contain coordinates fields. Besides X and Y coordinates you can also specify Z and M fields. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer or a table. X field XFIELD [tablefield: any] Field containing the X coordinate Y field YFIELD [tablefield: any] Field containing the Y coordinate Z field Optional ZFIELD [tablefield: any] Field containing the Z coordinate M field Optional MFIELD [tablefield: any] Field containing the M value Target CRS TARGET_CRS [crs] Default: EPSG:4326 Coordinate reference system to use for layer. The provided coordinates are assumed to be compliant. Points from table OUTPUT [vector: point] Default: [Create temporary layer] Specify the resulting point layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Points from table OUTPUT [vector: point] The resulting point layer 922 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:createpointslayerfromtable import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Generate points (pixel centroids) along line Generates a point vector layer from an input raster and line layer. The points correspond to the pixel centroids that intersect the line layer. Obr. 24.33: Points of the pixel centroids Parameters Label Název Type Popis Raster layer INPUT_RASTER [raster] Input raster layer Vector layer INPUT_VECTOR [vector: line] Input line vector layer Points along line OUTPUT [vector: point] Default: [Create temporary layer] Resulting point layer with pixel centroids. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Points along line OUTPUT [vector: point] Resulting point layer with pixel centroids 24.1. QGIS algorithm provider 923 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:generatepointspixelcentroidsalongline import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Generate points (pixel centroids) inside polygon Generates a point vector layer from an input raster and polygon layer. The points correspond to the pixel centroids that intersect the polygon layer. 924 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.34: Points of the pixel centroids 24.1. QGIS algorithm provider 925 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Raster layer INPUT_RASTER [raster] Input raster layer Vector layer INPUT_VECTOR [vector: polygon] Input polygon vector layer Points inside polygons OUTPUT [vector: point] Default: [Create temporary layer] Resulting point layer of pixel centroids. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Points inside polygons OUTPUT [vector: point] Resulting point layer of pixel centroids Python code Algorithm ID: qgis:generatepointspixelcentroidsinsidepolygons import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Import geotagged photos Creates a point layer corresponding to the geotagged locations from JPEG images from a source folder. The point layer will contain a single PointZ feature per input file from which the geotags could be read. Any altitude information from the geotags will be used to set the point’s Z value. Besides longitude and latitude also altitude, direction and timestamp information, if present in the photo, will be added to the point as attributes. Parameters Label Název Type Popis Input folder FOLDER [folder] Path to the source folder containing the geotagged photos Scan recursively RECURSIVE [boolean] Default: False If checked, the folder and its subfolders will be scanned continues on next page 926 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.67 – pokračujte na předchozí stránce Label Název Type Popis Photos OUTPUT [vector: point] Default: [Create temporary layer] Specify the point vector layer for the geotagged photos. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Invalid photos table Optional INVALID [table] Default: [Skip output] Specify the table of unreadable or non-geotagged photos. One of: • Skip Output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Photos OUTPUT [vector: point] Point vector layer with geotagged photos. The form of the layer is automatically filled with paths and photo previews settings. Invalid photos table Optional INVALID [table] Table of unreadable or non-geotagged photos can also be created. Python code Algorithm ID: qgis:importphotos import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Points to path Converts a point layer to a line layer, by joining points in an order defined by a field in the input point layer (if the order field is a date/time field, the format must be specified). Points can be grouped by a field to distinguish line features. In addition to the line vector layer, a text file is output that describes the resulting line as a start point and a sequence of bearings / directions (relative to azimuth) and distances. 24.1. QGIS algorithm provider 927 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input point layer INPUT [vector: point] Input point vector layer Close path CLOSE_PATH [boolean] Default: False If checked, the first and last points of the line will be connected and close the generated path Order field ORDER_FIELD [tablefield: any] Field containing the order to connect the points in the path Group field Optional GROUP_FIELD [tablefield: any] Point features of the same value in the field will be grouped in the same line. If not set, a single path is drawn with all the input points. Date format (if order field is DateTime) Optional DATE_FORMAT [string] The format to use for the Order field parameter. Specify this only if the Order field is of type Date/Time. Paths OUTPUT [vector: line] Default: [Create temporary layer] Specify the line vector layer of the path. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Directory for text output OUTPUT_TEXT_DIR[folder] Default: [Skip output] Specify the directory that will contain the description files of points and paths. One of: • Skip Output • Save to a Temporary Directory • Save to Directory… The file encoding can also be changed here. Outputs Label Název Type Popis Paths OUTPUT [vector: line] Line vector layer of the path Directory for text output OUTPUT_TEXT_DIR[folder] Directory containing description files of points and paths Python code Algorithm ID: qgis:pointstopath import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 928 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Random points along line Creates a new point layer, with points placed on the lines of another layer. For each line in the input layer, a given number of points is added to the resulting layer. The procedure for adding a point is to: 1. randomly select a line feature from the input layer 2. if the feature is multi-part, randomly select a part of it 3. randomly select a segment of that line 4. randomly select a position on that segment. The procedure means that curved parts of the lines (with relatively short segments) will get more points than straight parts (with relatively long segments), as demonstrated in the illustration below, where the output of the Random points along lines algorithm can be compared with the output of the Random points on lines algorithm (that produces points with an, on average, even distribution along the lines). Obr. 24.35: Example algorithm output. Left: Random points along line, right: Random points on lines A minimum distance can be specified, to avoid points being too close to each other. Viz také: Random points on lines Parameters Label Název Type Popis Input point layer INPUT [vector: line] Input line vector layer Number of points POINTS_NUMBER [number] Default: 1 Number of points to create Minimum distance between points MIN_DISTANCE [number] Default: 0.0 The minimum distance between points Random points OUTPUT [vector: point] Default: [Create temporary layer] The output random points. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 929 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Random points OUTPUT [vector: point] The output random points layer. Python code Algorithm ID: qgis:qgisrandompointsalongline import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Random points in extent Creates a new point layer with a given number of random points, all of them within a given extent. A distance factor can be specified, to avoid points being too close to each other. If the minimum distance between points makes it impossible to create new points, either distance can be decreased or the maximum number of attempts may be increased. Default menu: Vector ► Research Tools Parameters Label Název Type Popis Input extent EXTENT [extent] Map extent for the random points Number of points POINTS_NUMBER [number] Default: 1 Number of point to create Minimum distance between points MIN_DISTANCE [number] Default: 0.0 The minimum distance between points Target CRS TARGET_CRS [crs] Default: Project CRS CRS of the random points layer Maximum number of search attempts given the minimum distance MAX_ATTEMPTS [number] Default: 200 Maximum number of attempts to place the points Random points OUTPUT [vector: point] Default: [Create temporary layer] The output random points. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 930 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Random points OUTPUT [vector: point] The output random points layer. Python code Algorithm ID: native:randompointsinextent import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Random points in layer bounds Creates a new point layer with a given number of random points, all of them within the extent of a given layer. A minimum distance can be specified, to avoid points being too close to each other. Default menu: Vector ► Research Tools Parameters Label Název Type Popis Input layer INPUT [vector: polygon] Input polygon layer defining the area Number of points POINTS_NUMBER [number] Default: 1 Number of points to create Minimum distance between points MIN_DISTANCE [number] Default: 0.0 The minimum distance between points Random points OUTPUT [vector: point] Default: [Create temporary layer] The output random points. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Random points OUTPUT [vector: point] The output random points layer. 24.1. QGIS algorithm provider 931 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:randompointsinlayerbounds import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Random points in polygons Creates a point layer with points placed inside the polygons of another layer. For each feature (polygon / multi-polygon) geometry in the input layer, the given number of points is added to the result layer. Per feature and global minimum distances can be specified in order to avoid points being too close in the output point layer. If a minimum distance is specified, it may not be possible to generate the specified number of points for each feature. The total number of generated points and missed points are available as output from the algorithm. The illustration below shows the effect of per feature and global minimum distances and zero/non-zero minimum distances (generated with the same seed, so at least the first point generated will be the same). Obr. 24.36: Ten points per polygon feature, left: min. distances = 0, middle: min.distances = 1, right: min. distance = 1, global min. distance = 0 The maximum number of tries per point can be specified. This is only relevant for non-zero minimum distance. A seed for the random number generator can be provided, making it possible to get identical random number sequences for different runs of the algorithm. The attributes of the polygon feature on which a point was generated can be included (Include polygon attributes). If you want approximately the same point density for all the features, you can data-define the number of points using the area of the polygon feature geometry. Viz také: Random points inside polygons 932 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input polygon layer INPUT [vector: line] Input polygon vector layer Number of points for each feature POINTS_NUMBER [number ] Default: 1 Number of points to create Minimum distance between points Optional MIN_DISTANCE [number ] Default: 0.0 The minimum distance between points within one polygon feature Global minimum distance between points Optional MIN_DISTANCE_GLOBAL[number ] Default: 0.0 The global minimum distance between points. Should be smaller than the Minimum distance between points (per feature) for that parameter to have an effect. Maximum number of search attempts (for Min. dist. > 0) Optional MAX_TRIES_PER_POINT[number ] Default: 10 The maximum number of tries per point. Only relevant if the minimum distance between points is set (and greater than 0). Random seed Optional SEED [number] Default: Not set The seed to use for the random number generator. Include polygon attributes INCLUDE_POLYGON_ATTRIBUTES[boolean] Default: True If set, a point will get the attributes from the line on which it is placed. Random points in polygons OUTPUT [vector: point] Default: [Create temporary layer] The output random points. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Random points in polygons OUTPUT [vector: point] The output random points layer. Number of features with empty or no geometry FEATURES_WITH_EMPTY_OR_NO_GEOMETRY[number] Total number of points generated OUTPUT_POINTS [number] Number of missed points POINTS_MISSED [number] The number of points that could not be generated due to the minimum distance constraint. Number of features with missed points POLYGONS_WITH_MISSED_POINTS[number] Not including features with empty or no geometry 24.1. QGIS algorithm provider 933 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:randompointsinpolygons import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Random points inside polygons Creates a new point layer with a given number of random points inside each polygon of the input polygon layer. Two sampling strategies are available: • Points count: number of points for each feature • Points density: density of points for each feature A minimum distance can be specified, to avoid points being too close to each other. Default menu: Vector ► Research Tools Viz také: Random points in polygons Parameters Label Název Type Popis Input layer INPUT [vector: polygon] Input polygon vector layer Sampling strategy STRATEGY [enumeration] Default: 0 Sampling strategy to use. One of: • 0 — Points count: number of points for each feature • 1 — Points density: density of points for each feature Point count or density VALUE [number ] Default: 1.0 The number or density of points, depending on the chosen Sampling strategy. Minimum distance between points MIN_DISTANCE [number] Default: 0.0 The minimum distance between points Random points OUTPUT [vector: point] Default: [Create temporary layer] The output random points. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 934 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Random points OUTPUT [vector: point] The output random points layer. Python code Algorithm ID: qgis:randompointsinsidepolygons import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Random points on lines Creates a point layer with points placed on the lines of another layer. For each feature (line / multi-line) geometry in the input layer, the given number of points is added to the result layer. Per feature and global minimum distances can be specified in order to avoid points being too close in the output point layer. If a minimum distance is specified, it may not be possible to generate the specified number of points for each feature. The total number of generated points and missed points are available as output from the algorithm. The illustration below shows the effect of per feature and global minimum distances and zero/non-zero minimum distances (generated with the same seed, so at least the first point generated will be the same). Obr. 24.37: Five points per line feature, left: min. distances = 0, middle: min.distances != 0, right: min. distance != 0, global min. distance = 0 24.1. QGIS algorithm provider 935 QGIS Desktop 3.16 User Guide The maximum number of tries per point can be specified. This is only relevant for non-zero minimum distance. A seed for the random number generator can be provided, making it possible to get identical random number sequences for different runs of the algorithm. The attributes of the line feature on which a point was generated can be included (Include line attributes). If you want approximately the same point density for all the line features, you can data-define the number of points using the length of the line feature geometry. Viz také: Random points along line Parameters Label Název Type Popis Input line layer INPUT [vector: line] Input line vector layer Number of points for each feature POINTS_NUMBER [number ] Default: 1 Number of points to create Minimum distance between points (per feature) Optional MIN_DISTANCE [number ] Default: 0.0 The minimum distance between points within one line feature Global minimum distance between points Optional MIN_DISTANCE_GLOBAL[number ] Default: 0.0 The global minimum distance between points. Should be smaller than the Minimum distance between points (per feature) for that parameter to have an effect. Maximum number of search attempts (for Min. dist. > 0) Optional MAX_TRIES_PER_POINT[number ] Default: 10 The maximum number of tries per point. Only relevant if the minimum distance between points is set (and greater than 0). Random seed Optional SEED [number] Default: Not set The seed to use for the random number generator. Include line attributes INCLUDE_LINE_ATTRIBUTES[boolean] Default: True If set, a point will get the attributes from the line on which it is placed. Random points on lines OUTPUT [vector: point] Default: [Create temporary layer] The output random points. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 936 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Random points on lines OUTPUT [vector: point] The output random points layer. Number of features with empty or no geometry FEATURES_WITH_EMPTY_OR_NO_GEOMETRY[number] Number of features with missed points LINES_WITH_MISSED_POINTS[number] Not including features with empty or no geometry Total number of points generated OUTPUT_POINTS [number] Number of missed points POINTS_MISSED [number] The number of points that could not be generated due to the minimum distance constraint. Python code Algorithm ID: qgis:randompointsonlines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster pixels to points Creates a vector layer of points corresponding to each pixel in a raster layer. Converts a raster layer to a vector layer, by creating point features for each individual pixel’s center in the raster layer. Any nodata pixels are skipped in the output. Parameters Label Název Type Popis Raster layer INPUT_RASTER [raster] Input raster layer Band number RASTER_BAND [raster band] Raster band to extract data from Field name FIELD_NAME [string] Default: ‚VALUE‘ Name of the field to store the raster band value Vector points OUTPUT [vector: point] Default: [Create temporary layer] Specify the resulting point layer of pixels centroids. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 937 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Vector points OUTPUT [vector: point] Resulting point layer with pixels centroids Python code Algorithm ID: qgis:pixelstopoints import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster pixels to polygons Creates a vector layer of polygons corresponding to each pixel in a raster layer. Converts a raster layer to a vector layer, by creating polygon features for each individual pixel’s extent in the raster layer. Any nodata pixels are skipped in the output. Parameters Label Název Type Popis Raster layer INPUT_RASTER [raster] Input raster layer Band number RASTER_BAND [raster band] Raster band to extract data from Field name FIELD_NAME [string] Default: ‚VALUE‘ Name of the field to store the raster band value Vector polygons OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the resulting polygon layer of pixel extents. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Vector polygons OUTPUT [vector: polygon] Resulting polygon layer of pixel extents 938 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:pixelstopolygons import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Regular points Creates a new point layer with its points placed in a regular grid within a given extent. The grid is specified either by the spacing between the points (same spacing for all dimensions) or by the number of points to generate. In the latter case, the spacing will be determined from the extent. In order to generate a full rectangular grid, at least the number of points specified by the user is generated for the latter case. Random offsets to the point spacing can be applied, resulting in a non-regular point pattern. Default menu: Vector ► Research Tools Parameters Label Název Type Popis Input extent (xmin, xmax, ymin, ymax) EXTENT [extent] Map extent for the random points Point spacing/count SPACING [number] Default: 100 Spacing between the points, or the number of points, depending on whether Use point spacing is checked or not. Initial inset from corner (LH side) INSET [number] Default: 0.0 Offsets the points relative to the upper left corner. The value is used for both the X and Y axis. Apply random offset to point spacing RANDOMIZE [boolean] Default: False If checked the points will have a random spacing Use point spacing IS_SPACING [boolean] Default: True If unchecked the point spacing is not taken into account Output layer CRS CRS [crs] Default: Project CRS CRS of the random points layer Regular points OUTPUT [vector: point] Default: [Create temporary layer] Specify the output regular point layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 939 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Regular points OUTPUT [vector: point] The output regular point layer. Python code Algorithm ID: qgis:regularpoints import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.15 Vector general Assign projection Assigns a new projection to a vector layer. It creates a new layer with the exact same features and geometries as the input one, but assigned to a new CRS. The geometries are not reprojected, they are just assigned to a different CRS. This algorithm can be used to repair layers which have been assigned an incorrect projection. Attributes are not modified by this algorithm. Viz také: Define Shapefile projection, Find projection, Reproject layer Parameters Label Název Type Popis Input layer INPUT [vector: any] Vector layer with wrong or missing CRS Assigned CRS CRS [crs] Default: EPSG:4326 - WGS84 Select the new CRS to assign to the vector layer Assigned CRS Optional OUTPUT [same as input] Default: [Create temporary layer] Specify the output layer containing only the duplicates. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 940 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Assigned CRS OUTPUT [same as input] Vector layer with assigned projection Python code Algorithm ID: native:assignprojection import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Convert layer to spatial bookmarks Creates spatial bookmarks corresponding to the extent of features contained in a layer. Parameters Label Název Type Popis Input Layer INPUT [vector: line, polygon] The input vector layer Bookmark destination DESTINATION [enumeration] Default: 0 Select the destination for the bookmarks. One of: • 0 — Project bookmarks • 1 — User bookmarks Name field NAME_EXPRESSION[expression] Field or expression that will give names to the generated bookmarks Group field GROUP_EXPRESSION[expression] Field or expression that will provide groups for the generated bookmarks Outputs Label Název Type Popis Count of bookmarks added COUNT [number] 24.1. QGIS algorithm provider 941 QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:layertobookmarks import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Convert spatial bookmarks to layer Creates a new layer containing polygon features for stored spatial bookmarks. The export can be filtered to only bookmarks belonging to the current project, to all user bookmarks, or a combination of both. Parameters Label Název Type Popis Bookmark source SOURCE [enumeration] [list] Default: [0,1] Select the source(s) of the bookmarks. One or more of: • 0 — Project bookmarks • 1 — User bookmarks Output CRS CRS [crs] Default: EPSG:4326 - WGS 84 The CRS of the output layer Output OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Output OUTPUT [vector: polygon] The output (bookmarks) vector layer Python code Algorithm ID: native:bookmarkstolayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 942 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Create attribute index Creates an index against a field of the attribute table to speed up queries. The support for index creation depends on both the layer’s data provider and the field type. No outputs are created: the index is stored on the layer itself. Parameters Label Název Type Popis Input Layer INPUT [vector: any] Select the vector layer you want to create an attribute index for Attribute to index FIELD [tablefield: any] Field of the vector layer Outputs Label Název Type Popis Indexed layer OUTPUT [same as input] A copy of the input vector layer with an index for the specified field Python code Algorithm ID: native:createattributeindex import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create spatial index Creates an index to speed up access to the features in a layer based on their spatial location. Support for spatial index creation is dependent on the layer’s data provider. No new output layers are created. Default menu: Vector ► Data Management Tools Parameters Label Název Type Popis Input Layer INPUT [vector: any] Input vector layer 24.1. QGIS algorithm provider 943 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Indexed layer OUTPUT [same as input] A copy of the input vector layer with a spatial index Python code Algorithm ID: native:createspatialindex import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Define Shapefile projection Sets the CRS (projection) of an existing Shapefile format dataset to the provided CRS. It is very useful when a Shapefile format dataset is missing the prj file and you know the correct projection. Contrary to the Assign projection algorithm, it modifies the current layer and will not output a new layer. Poznámka: For Shapefile datasets, the .prj and .qpj files will be overwritten - or created if missing - to match the provided CRS. Default menu: Vector ► Data Management Tools Viz také: Assign projection, Find projection, Reproject layer Parameters Label Název Type Popis Input layer INPUT [vector: any] Vector layer with missing projection information CRS CRS [crs] Select the CRS to assign to the vector layer Outputs Label Název Type Popis INPUT [same as input] The input vector layer with the defined projection 944 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:definecurrentprojection import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Delete duplicate geometries Finds and removes duplicated geometries. Attributes are not checked, so in case two features have identical geometries but different attributes, only one of them will be added to the result layer. Viz také: Drop geometries, Remove null geometries, Delete duplicates by attribute Parameters Label Název Type Popis Input layer INPUT [vector: any] The layer with duplicate geometries you want to clean Cleaned OUTPUT [same as input] Default: [Create temporary layer] Specify the output layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Count of discarded duplicate records DUPLICATE_COUNT[number] Count of discarded duplicate records Cleaned OUTPUT [same as input] The output layer without any duplicated geometries Count of retained records RETAINED_COUNT [number] Count of unique records 24.1. QGIS algorithm provider 945 QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:deleteduplicategeometries import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Delete duplicates by attribute Deletes duplicate rows by only considering the specified field / fields. The first matching row will be retained, and duplicates will be discarded. Optionally, these duplicate records can be saved to a separate output for analysis. Viz také: Delete duplicate geometries Parameters Label Název Type Popis Input layer INPUT [vector: any] The input layer Fields to match duplicates by FIELDS [tablefield: any] [list] Fields defining duplicates. Features with identical values for all these fields are considered duplicates. Filtered (no duplicates) OUTPUT [same as input] Default: [Create temporary layer] Specify the output layer containing the unique features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Filtered (duplicates) Optional DUPLICATES [same as input] Default: [Skip output] Specify the output layer containing only the duplicates. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 946 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Filtered (duplicates) Optional DUPLICATES [same as input] Default: [Skip output] Vector layer containing the removed features. Will not be produced if not specified (left as [Skip output]). Count of discarded duplicate records DUPLICATE_COUNT[number] Count of discarded duplicate records Filtered (no duplicates) OUTPUT [same as input] Vector layer containing the unique features. Count of retained records RETAINED_COUNT [number] Count of unique records Python code Algorithm ID: native:removeduplicatesbyattribute import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Detect dataset changes Compares two vector layers, and determines which features are unchanged, added or deleted between the two. It is designed for comparing two different versions of the same dataset. Obr. 24.38: Detect dataset change example 24.1. QGIS algorithm provider 947 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Original layer ORIGINAL [vector: any] The vector layer considered as the original version Revised layer REVISED [vector: any] The revised or modified vector layer Attributes to consider for match Optional COMPARE_ATTRIBUTES[tablefield: any] [list] Attributes to consider for match. By default, all attributes are compared. Geometry comparison behavior Optional MATCH_TYPE [enumeration] Default: 1 Defines the criteria for comparison. Options: • 0 — Exact Match: includes the order and vertices count of geometries • 1 — Tolerant Match (Topological Equality): geometries are considered equal Unchanged features UNCHANGED [vector: same as Original layer] Specify the output vector layer containing the unchanged features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Added features ADDED [vector: same as Original layer] Specify the output vector layer containing the added features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Deleted features DELETED [vector: same as Original layer] Specify the output vector layer containing the deleted features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Unchanged features UNCHANGED [vector: same as Original layer] Vector layer containing the unchanged features. Added features ADDED [vector: same as Original layer] Vector layer containing the added features. Deleted features DELETED [vector: same as Original layer] Vector layer containing the deleted features. continues on next page 948 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.78 – pokračujte na předchozí stránce Label Název Type Popis Count of unchanged features UNCHANGED_COUNT[number] Count of unchanged features. Count of features added in revised layer ADDED_COUNT [number] Count of features added in revised layer. Count of features deleted from original layer DELETED_COUNT [number] Count of features deleted from original layer. Python code Algorithm ID: native:detectvectorchanges import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Drop geometries Creates a simple geometryless copy of the input layer attribute table. It keeps the attribute table of the source layer. If the file is saved in a local folder, you can choose between many file formats. Allows features in-place modification Viz také: Delete duplicate geometries, Remove null geometries Parameters Label Název Type Popis Input layer INPUT [vector: any] The input vector layer Dropped geometries OUTPUT [table] Specify the output geometryless layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 949 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Dropped geometries OUTPUT [table] The output geometryless layer. A copy of the original attribute table. Python code Algorithm ID: native:dropgeometries import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Execute SQL Runs a simple or complex query with SQL syntax on the source layer. Input datasources are identified with input1, input2… inputN and a simple query will look like SELECT * FROM input1. Beside a simple query, you can add expressions or variables within the SQL query parameter itself. This is particulary useful if this algorithm is executed within a Processing model and you want to use a model input as a parameter of the query. An example of a query will then be SELECT * FROM [% @table %] where @table is the variable that identifies the model input. The result of the query will be added as a new layer. Viz také: SpatiaLite execute SQL, PostgreSQL execute SQL Parameters Label Název Type Popis Additional input datasources (called input1, .., inputN in the query) INPUT_DATASOURCES[vector: any] [list] List of layers to query. In the SQL editor you can refer these layers with their real name or also with input1, input2, inputN depending on how many layers have been chosen. SQL query INPUT_QUERY [string] Type the string of your SQL query, e.g. SELECT * FROM input1. Unique identifier field Optional INPUT_UID_FIELD[string] Specify the column with unique ID Geometry field Optional INPUT_GEOMETRY_FIELD[string] Specify the geometry field continues on next page 950 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.79 – pokračujte na předchozí stránce Label Název Type Popis Geometry type Optional INPUT_GEOMETRY_TYPE[enumeration] Default: 0 Choose the geometry of the result. By default the algorithm will autodetect it. One of: • 0 — Autodetect • 1 — No geometry • 2 — Point • 3 — LineString • 4 — Polygon • 5 — MultiPoint • 6 — MultiLineString • 7 — MultiPolygon CRS Optional INPUT_GEOMETRY_CRS[crs] The CRS to assign to the output layer SQL Output OUTPUT [vector: any] Default: [Create temporary layer] Specify the output layer created by the query. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis SQL Output OUTPUT [vector: any] Vector layer created by the query Python code Algorithm ID: qgis:executesql import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract selected features Saves the selected features as a new layer. Poznámka: If the selected layer has no selected features, the newly created layer will be empty. 24.1. QGIS algorithm provider 951 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input Layer INPUT [vector: any] Layer to save the selection from Selected features OUTPUT [same as input] Default: [Create temporary layer] Specify the vector layer for the selected features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Selected features OUTPUT [same as input] Vector layer with only the selected features, or no feature if none was selected. Python code Algorithm ID: native:saveselectedfeatures import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract Shapefile encoding Extracts the attribute encoding information embedded in a Shapefile. Both the encoding specified by an optional .cpg file and any encoding details present in the .dbf LDID header block are considered. Parameters Label Název Type Popis Input Layer INPUT [vector: any] ESRI Shapefile (.SHP) Layer to extract the encoding information. 952 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Shapefile encoding ENCODING [string] Encoding information specified in the input file CPG encoding CPG_ENCODING [string] Encoding information specified in any optional .CPG file LDID encoding LDID_ENCODING [string] Encoding information specified in .dbf LDID header block Python code Algorithm ID: native:shpencodinginfo import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Find projection Creates a shortlist of candidate coordinate reference systems, for instance for a layer with an unknown projection. The area that the layer is expected to cover must be specified via the target area parameter. The coordinate reference system for this target area must be known to QGIS. The algorithm operates by testing the layer’s extent in every known reference system and then listing any for which the bounds would be near the target area if the layer was in this projection. Viz také: Assign projection, Define Shapefile projection, Reproject layer Parameters Label Název Type Popis Input Layer INPUT [vector: any] Layer with unknown projection Target area for layer (xmin, xmax, ymin, ymax) TARGET_AREA [extent] The area that the layer covers. The options for specifying the extent are: • Use Canvas Extent • Select Extent on Canvas • Use Layer Extent It is also possible to provide the extent coordinates directly (xmin, xmax, ymin, ymax). continues on next page 24.1. QGIS algorithm provider 953 QGIS Desktop 3.16 User Guide Tabulka 24.81 – pokračujte na předchozí stránce Label Název Type Popis CRS candidates OUTPUT [table] Default: [Create temporary layer] Specify the table (geometryless layer) for the CRS suggestions (EPSG codes). One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis CRS candidates OUTPUT [table] A table with all the CRS (EPSG codes) of the matching criteria. Python code Algorithm ID: qgis:findprojection import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Flatten relationship Flattens a relationship for a vector layer, exporting a single layer containing one parent feature per related child feature. This master feature contains all the attributes for the related features. This allows to have the relation as a plain table that can be e.g. exported to CSV. Obr. 24.39: Form of a region with related children (left) - A duplicate region feature for each related child, with joined attributes (right) 954 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input Layer INPUT [vector: any] Layer with the relationship that should be de-normalized Flattened Layer Optional OUTPUT [same as input] Default: [Save to temporary file] Specify the output (flattened) layer. One of: • Save to a Temporary File • Save to File… • Save To GeoPackage… • Save to Database Table… The file encoding can also be changed here. Outputs Label Název Type Popis Flattened layer OUTPUT [same as input] A layer containing master features with all the attributes for the related features Python code Algorithm ID: native:flattenrelationships import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Join attributes by field value Takes an input vector layer and creates a new vector layer that is an extended version of the input one, with additional attributes in its attribute table. The additional attributes and their values are taken from a second vector layer. An attribute is selected in each of them to define the join criteria. Viz také: Join attributes by nearest, Join attributes by location Parameters Label Název Type Popis Input Layer INPUT [vector: any] Input vector layer. The output layer will consist of the features of this layer with attributes from matching features in the second layer. Table field FIELD [tablefield: any] Field of the source layer to use for the join Input layer 2 INPUT_2 [vector: any] Layer with the attribute table to join continues on next page 24.1. QGIS algorithm provider 955 QGIS Desktop 3.16 User Guide Tabulka 24.83 – pokračujte na předchozí stránce Label Název Type Popis Table field 2 FIELD_2 [tablefield: any] Field of the second (join) layer to use for the join The type of the field must be equal to (or compatible with) the input table field type. Layer 2 fields to copy Optional FIELDS_TO_COPY [tablefield: any] [list] Select the specific fields you want to add. By default all the fields are added. Join type METHOD [enumeration] Default: 1 The type of the final joined layer. One of: • 0 — Create separate feature for each matching feature (one-to-many) • 1 — Take attributes of the first matching feature only (one-to-one) Discard records which could not be joined DISCARD_NONMATCHING[boolean] Default: True Check if you don’t want to keep the features that could not be joined Joined field prefix Optional PREFIX [string] Add a prefix to joined fields in order to easily identify them and avoid field name collision Joined layer OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer for the join. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Unjoinable features from first layer NON_MATCHING [same as input] Default: [Skip output] Specify the output vector layer for unjoinable features from first layer. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Number of joined features from input table JOINED_COUNT [number] Unjoinable features from first layer Optional NON_MATCHING [same as input] Vector layer with the non-matched features Joined layer OUTPUT [same as input] Output vector layer with added attributes from the join Number of unjoinable features from input table Optional UNJOINABLE_COUNT[number] 956 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:joinattributestable import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Join attributes by location Takes an input vector layer and creates a new vector layer that is an extended version of the input one, with additional attributes in its attribute table. The additional attributes and their values are taken from a second vector layer. A spatial criteria is applied to select the values from the second layer that are added to each feature from the first layer. Default menu: Vector ► Data Management Tools Viz také: Join attributes by nearest, Join attributes by field value, Join attributes by location (summary) Parameters Label Název Type Popis Input Layer INPUT [vector: any] Input vector layer. The output layer will consist of the features of this layer with attributes from matching features in the second layer. Join layer JOIN [vector: any] The attributes of this vector layer will be added to the source layer attribute table. Geometric predicate PREDICATE [enumeration] [list] Default: [0] Select the geometric criteria. One or more of: • 0 — intersects • 1 — contains • 2 — equals • 3 — touches • 4 — overlaps • 5 — within • 6 — crosses Fields to add (leave empty to use all fields) Optional JOIN_FIELDS [tablefield: any] [list] Select the specific fields you want to add. By default all the fields are added. continues on next page 24.1. QGIS algorithm provider 957 QGIS Desktop 3.16 User Guide Tabulka 24.84 – pokračujte na předchozí stránce Label Název Type Popis Join type METHOD [enumeration] The type of the final joined layer. One of: • 0 — Create separate feature for each matching feature (one-to-many) • 1 — Take attributes of the first matching feature only (one-to-one) • 2 — Take attributes of the feature with largest overlap only (one-to- -one) Discard records which could not be joined DISCARD_NONMATCHING[boolean] Default: False Remove from the output the input layer records which could not be joined Joined field prefix Optional PREFIX [string] Add a prefix to joined fields in order to easily identify them and avoid field name collision Joined layer OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer for the join. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Unjoinable features from first layer NON_MATCHING [same as input] Default: [Skip output] Specify the output vector layer for unjoinable features from first layer. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Number of joined features from input table JOINED_COUNT [number] Unjoinable features from first layer Optional NON_MATCHING [same as input] Vector layer of the non-matched features Joined layer OUTPUT [same as input] Output vector layer with added attributes from the join 958 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:joinattributesbylocation import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Join attributes by location (summary) Takes an input vector layer and creates a new vector layer that is an extended version of the input one, with additional attributes in its attribute table. The additional attributes and their values are taken from a second vector layer. A spatial criteria is applied to select the values from the second layer that are added to each feature from the first layer. The algorithm calculates a statistical summary for the values from matching features in the second layer (e.g. maximum value, mean value, etc). Viz také: Join attributes by location Parameters Label Název Type Popis Input Layer INPUT [vector: any] Input vector layer. The output layer will consist of the features of this layer with attributes from matching features in the second layer. Join layer JOIN [vector: any] The attributes of this vector layer will be added to the source layer attribute table. Geometric predicate PREDICATE [enumeration] [list] Default: [0] Select the geometric criteria. One or more of: • 0 — intersects • 1 — contains • 2 — equals • 3 — touches • 4 — overlaps • 5 — within • 6 — crosses Fields to summarize (leave empty to use all fields) Optional JOIN_FIELDS [tablefield: any] [list] Select the specific fields you want to add and summarize. By default all the fields are added. continues on next page 24.1. QGIS algorithm provider 959 QGIS Desktop 3.16 User Guide Tabulka 24.85 – pokračujte na předchozí stránce Label Název Type Popis Summaries to calculate (leave empty to use all fields) Optional SUMMARIES [enumeration] [list] Default: [] Choose which type of summary you want to add to each field and for each feature. One or more of: • 0 — count • 1 — unique • 2 — min • 3 — max • 4 — range • 5 — sum • 6 — mean • 7 — median • 8 — stddev • 9 — minority • 10 — majority • 11 — q1 • 12 — q3 • 13 — iqr • 14 — empty • 15 — filled • 16 — min_length • 17 — max_length • 18 — mean_length Discard records which could not be joined DISCARD_NONMATCHING[boolean] Default: False Remove from the output the input layer records which could not be joined Joined layer OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer for the join. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Joined layer OUTPUT [same as input] Output vector layer with summarized attributes from the join Python code Algorithm ID: qgis:joinbylocationsummary import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 960 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Join attributes by nearest Takes an input vector layer and creates a new vector layer with additional fields in its attribute table. The additional attributes and their values are taken from a second vector layer. Features are joined by finding the closest features from each layer. By default only the nearest feature is joined, but the join can also join to the k-nearest neighboring features. If a maximum distance is specified, only features which are closer than this distance will be matched. Viz také: Nearest neighbour analysis, Join attributes by field value, Join attributes by location, Distance matrix Parameters Label Název Type Popis Input layer INPUT [vector: any] The input layer. Input layer 2 INPUT_2 [vector: any] The join layer. Layer 2 fields to copy (leave empty to copy all fields) FIELDS_TO_COPY [fields] Join layer fields to copy (if empty, all fields will be copied). Discard records which could not be joined DISCARD_NONMATCHING[boolean] Default: False Remove from the output the input layer records which could not be joined Joined field prefix PREFIX [string] Joined field prefix Maximum nearest neighbors NEIGHBORS [number] Default: 1 Maximum number of nearest neighbors Maximum distance MAX_DISTANCE [number] Maximum search distance Joined layer OUTPUT [same as input] Default: [Create temporary layer] Specify the vector layer containing the joined features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Unjoinable features from first layer NON_MATCHING [same as input] Default: [Skip output] Specify the vector layer containing the features that could not be joined. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 961 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Joined layer OUTPUT [same as input] The output joined layer. Unjoinable features from first layer NON_MATCHING [same as input] Layer containing the features from first layer that could not be joined to any features in the join layer. Number of joined features from input table JOINED_COUNT [number] Number of features from the input table that have been joined. Number of unjoinable features from input table UNJOINABLE_COUNT[number] Number of features from the input table that could not be joined. Python code Algorithm ID: native:joinbynearest import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Merge vector layers Combines multiple vector layers of the same geometry type into a single one. The attribute table of the resulting layer will contain the fields from all input layers. If fields with the same name but different types are found then the exported field will be automatically converted into a string type field. New fields storing the original layer name and source are also added. If any input layers contain Z or M values, then the output layer will also contain these values. Similarly, if any of the input layers are multi-part, the output layer will also be a multi-part layer. Optionally, the destination coordinate reference system (CRS) for the merged layer can be set. If it is not set, the CRS will be taken from the first input layer. All layers will be reprojected to match this CRS. Default menu: Vector ► Data Management Tools Viz také: Split vector layer 962 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input Layers LAYERS [vector: any] [list] The layers that are to be merged into a single layer. Layers should be of the same geometry type. Destination CRS Optional CRS [crs] Choose the CRS for the output layer. If not specified, the CRS of the first input layer is used. Merged OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Merged OUTPUT [same as input] Output vector layer containing all the features and attributes from the input layers. Python code Algorithm ID: native:mergevectorlayers import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Order by expression Sorts a vector layer according to an expression: changes the feature index according to an expression. Be careful, it might not work as expected with some providers, the order might not be kept every time. 24.1. QGIS algorithm provider 963 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input Layer INPUT [vector: any] Input vector layer to sort Expression EXPRESSION [expression] Expression to use for the sorting Sort ascending ASCENDING [boolean] Default: True If checked the vector layer will be sorted from small to large values. Sort nulls first NULLS_FIRST [boolean] Default: False If checked, Null values are placed first Ordered OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Ordered OUTPUT [same as input] Output (sorted) vector layer Python code Algorithm ID: native:orderbyexpression import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Repair Shapefile Repairs a broken ESRI Shapefile dataset by (re)creating the SHX file. Parameters Label Název Type Popis Input Shapefile INPUT [file] Full path to the ESRI Shapefile dataset with a missing or broken SHX file 964 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Repaired layer OUTPUT [vector: any] The input vector layer with the SHX file repaired Python code Algorithm ID: native:repairshapefile import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Reproject layer Reprojects a vector layer in a different CRS. The reprojected layer will have the same features and attributes of the input layer. Allows features in-place modification Viz také: Assign projection, Define Shapefile projection, Find projection Parameters Label Název Type Popis Input Layer INPUT [vector: any] Input vector layer to reproject Target CRS TARGET_CRS [crs] Default: EPSG:4326 - WGS 84 Destination coordinate reference system Coordinate Operation Optional OPERATION [string] Specific operation to use for a particular reprojection task, instead of always forcing use of the current project’s transformation settings. Useful when reprojecting a particular layer and control over the exact transformation pipeline is required. Requires proj version >= 6. Read more at Datum Transformations. Reprojected OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 965 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Reprojected OUTPUT [same as input] Output (reprojected) vector layer Python code Algorithm ID: native:reprojectlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Save vector features to file Saves vector features to a specified file dataset. For dataset formats supporting layers, an optional layer name parameter can be used to specify a custom string. Optional GDAL-defined dataset and layer options can be specified. For more information on this, read the online GDAL documentation on the format. Parameters Basic parameters Label Název Type Popis Vector features INPUT [vector: any] Input vector layer. Saved features OUTPUT [same as input] Default: [Save to temporary file] Specify the file to save the features to. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Layer name Optional LAYER_NAME [string] Name to use for the output layer GDAL dataset options Optional DATASOURCE_OPTIONS[string] GDAL dataset creation options of the output format. Separate individual options with semicolons. GDAL layer options Optional LAYER_OPTIONS [string] GDAL layer creation options of the output format. Separate individual options with semicolons. 966 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Saved features OUTPUT [same as input] Vector layer with the saved features. File name and path FILE_PATH [string] Output file name and path. Layer name LAYER_NAME [string] Name of the layer, if any. Python code Algorithm ID: native:savefeatures import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Set layer encoding Sets the encoding used for reading a layer’s attributes. No permanent changes are made to the layer, rather it affects only how the layer is read during the current session. Poznámka: Changing the encoding is only supported for some vector layer data sources. Parameters Label Název Type Popis Saved features INPUT [vector: any] Vector layer to set the encoding. Encoding ENCODING [string] Text encoding to assign to the layer in the current QGIS session. Outputs Label Název Type Popis Output layer OUTPUT [same as input] Input vector layer with the set encoding. Python code Algorithm ID: native:setlayerencoding import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 967 QGIS Desktop 3.16 User Guide Split features by character Features are split into multiple output features by splitting a field’s value at a specified character. For instance, if a layer contains features with multiple comma separated values contained in a single field, this algorithm can be used to split these values up across multiple output features. Geometries and other attributes remain unchanged in the output. Optionally, the separator string can be a regular expression for added flexibility. Parameters Label Název Type Popis Input Layer INPUT [vector: any] Input vector layer Split using values in the field FIELD [tablefield: any] Field to use for splitting Split value using character CHAR [string] Character to use for splitting Use regular expression separator REGEX [boolean] Default: False Split OUTPUT [same as input] Default: Create temporary layer Specify output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Split OUTPUT [same as input] The output vector layer. Python code Algorithm ID: native:splitfeaturesbycharacter import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 968 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Split vector layer Creates a set of vectors in an output folder based on an input layer and an attribute. The output folder will contain as many layers as the unique values found in the desired field. The number of files generated is equal to the number of different values found for the specified attribute. It is the opposite operation of merging. Default menu: Vector ► Data Management Tools Viz také: Merge vector layers Parameters Label Název Type Popis Input Layer INPUT [vector: any] Input vector layer Unique ID field FIELD [tablefield: any] Field to use for splitting Output directory OUTPUT [folder] Default: [Save to temporary folder] Specify the directory for the output layers. One of: • Save to a Temporary Directory • Save to Directory… The file encoding can also be changed here. Outputs Label Název Type Popis Output directory OUTPUT [folder] The directory for the output layers Output layers OUTPUT_LAYERS [same as input] [list] The output vector layers resulting from the split. Python code Algorithm ID: native:splitvectorlayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Truncate table Truncates a layer, by deleting all features from within the layer. Varování: This algorithm modifies the layer in place, and deleted features cannot be restored! 24.1. QGIS algorithm provider 969 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input Layer INPUT [vector: any] Input vector layer Outputs Label Název Type Popis Truncated layer OUTPUT [folder] The truncated (empty) layer Python code Algorithm ID: native:truncatetable import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.16 Vector geometry Add geometry attributes Computes geometric properties of the features in a vector layer and includes them in the output layer. It generates a new vector layer with the same content as the input one, but with additional attributes, containing geometric measurements based on a selected CRS. The attributes added to the table depend on the geometry type and dimension of the input layer: • for point layers: X (xcoord), Y (ycoord), Z (zcoord) coordinates and/or M value (mvalue) • for line layers: length and, for the LineString and CompoundCurve geometry types, the feature sinuosity and straight distance (straightdis) • for polygon layers: perimeter and area Default menu: Vector ► Geometry Tools Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Calculate using CALC_METHOD [enumeration] Default: 0 Calculation parameters to use for the geometric properties. One of: • 0 — Layer CRS • 1 — Project CRS • 2 — Ellipsoidal continues on next page 970 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.89 – pokračujte na předchozí stránce Label Název Type Popis Added geom info OUTPUT [same as input] Default: [Create temporary layer] Specify the output (input copy with geometry) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Added geom info OUTPUT [same as input] Copy of the input vector layer with the addition of the geometry fields Python code Algorithm ID: qgis:exportaddgeometrycolumns import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Affine transform Applies an affine transformation to the layer geometries. Affine transformations can include translation, scaling and rotation. The operations are performed in the following order: scale, rotation, and translation. Z and M values (if present) can be translated and scaled. Obr. 24.40: Vector point layer (green dots) before (left), and after (rigth) an affine transformation (translation). 24.1. QGIS algorithm provider 971 QGIS Desktop 3.16 User Guide Viz také: Translate Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Translation (x- -axis) DELTA_X [number ] Default: 0 Displacement to apply on the X axis. Translation (y- -axis) DELTA_Y [number ] Default: 0 Displacement to apply on the Y axis. Translation (z- axis) DELTA_Z [number ] Default: 0 Displacement to apply on the Z axis. Translation (m- -values) DELTA_M [number ] Default: 0 Offset to apply on m values. Scale factor (x-axis) SCALE_X [number ] Default: 1 Scaling value (expansion or contraction) to apply on the X axis. Scale factor (y-axis) SCALE_Y [number ] Default: 1 Scaling value (expansion or contraction) to apply on the Y axis. Scale factor (z-axis) SCALE_Z [number ] Default: 1 Scaling value (expansion or contraction) to apply on the Z axis. Scale factor (m-values) SCALE_M [number ] Default: 1 Scaling value (expansion or contraction) to apply on m values. Rotation around z-axis (degrees counter- -clockwise) ROTATION_Z [number ] Default: 0 Angle of the rotation in degrees. Transformed OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Transformed OUTPUT [same as input] Output (transformed) vector layer. 972 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:affinetransform import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Aggregate Takes a vector or table layer and creates a new layer by aggregating features based on a group by expression. Features for which group by expression returns the same value are grouped together. It is possible to group all source features together using constant value in group by parameter, example: NULL. It is also possible to group features by multiple fields using Array function, example: Array(„Field1“, „Field2“). Geometries (if present) are combined into one multipart geometry for each group. Output attributes are computed depending on each given aggregate definition. This algorithm allows to use the default aggregates functions of the QGIS Expression engine. Viz také: Collect geometries, Dissolve Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Group by expression GROUP_BY [tablefield: any] Default: ‚NULL‘ Choose the grouping field. If NULL all features will be grouped. continues on next page 24.1. QGIS algorithm provider 973 QGIS Desktop 3.16 User Guide Tabulka 24.93 – pokračujte na předchozí stránce Label Název Type Popis Aggregates AGGREGATES [list] List of output layer field definitions. Example of a field definition: {‚aggregate‘: ‚sum‘, ‚delimiter‘: ‚,‘, ‚input‘: ‚ $area‘, ‚length‘: 10, ‚name‘: ‚totarea‘, ‚precision‘: 0, ‚type‘: 6} By default, the list contains all the fields of the input layer. In the GUI, you can edit these fields and their definitions, and you can also: • Click the button to add a new field. • Click to delete the selected field. • Use and to change order of the fields. • Click to reset to the default (the fields of the input layer). For each of the fields you’d like to retrieve information from, you need to define the following: Input expression [expression] (input) Field or expression from the input layer. Aggregate function [enumeration] (aggregate) Function to use on the input expression to return the aggregated value. Default: concatenate (for string data type), sum (for numeric data type) Delimiter [string] (delimiter) Text string to separate aggregated values, for example in case of concatenation. Default: , Output field name [string] (name) Name of the aggregated field in the output layer. By default input field name is kept. Type [enumeration] (type) Data type of the output field. One of: • 1 — Boolean • 2 — Integer • 4 — Integer64 • 6 — Double • 10 — String • 14 — Date • 16 — DateTime Length [number] (length) Length of the output field. Precision [number] (precision) Precision of the output field. Load fields from layer GUI only [vector: any] You can load fields from another layer and use them for the aggregation continues on next page 974 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.93 – pokračujte na předchozí stránce Label Název Type Popis Aggregated OUTPUT [same as input] Default: [Create temporary layer] Specify the output (aggregate) layer One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Aggregated OUTPUT [same as input] Multigeometry vector layer with the aggregated values Python code Algorithm ID: native:aggregate import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Boundary Returns the closure of the combinatorial boundary of the input geometries (i.e. the topological boundary of the geometry). Only for polygon and line layers. For polygon geometries , the boundary consists of all the lines making up the rings of the polygon. 24.1. QGIS algorithm provider 975 QGIS Desktop 3.16 User Guide Obr. 24.41: Boundaries (black dashed line) of the source polygon layer For lines geometries, the boundaries are their end points. 976 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.42: Boundary layer (red points) for lines. In yellow a selected feature. Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Boundary OUTPUT [vector: point, line] Default: [Create temporary layer] Specify the output (boundary) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Boundary OUTPUT [vector: point, line] Boundaries from the input layer (point for line, and line for polygon) 24.1. QGIS algorithm provider 977 QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:boundary import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Bounding boxes Calculates the bounding box (envelope) of each feature in an input layer. Polygon and line geometries are supported. Obr. 24.43: Black lines represent the bounding boxes of each polygon feature Allows features in-place modification Viz také: Minimum bounding geometry 978 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Bounds OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output (bounding box) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Bounds OUTPUT [vector: polygon] Bounding boxes of input layer Python code Algorithm ID: native:boundingboxes import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Buffer Computes a buffer area for all the features in an input layer, using a fixed distance. It is possible to use a negative distance for polygon input layers. In this case the buffer will result in a smaller polygon (setback). Obr. 24.44: Buffer (in yellow) of points, line and polygon Allows features in-place modification Default menu: Vector ► Geoprocessing Tools Viz také: Variable distance buffer, Multi-ring buffer (constant distance), Variable width buffer (by M value) 24.1. QGIS algorithm provider 979 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Distance DISTANCE [number ] Default: 10.0 Buffer distance (from the boundary of each feature). You can use the Data Defined button on the right to choose a field from which the radius will be calculated. This way you can have different radius for each feature (see Variable distance buffer). Segments SEGMENTS [number] Default: 5 Controls the number of line segments to use to approximate a quarter circle when creating rounded offsets. End cap style END_CAP_STYLE [enumeration] Default: 0 Controls how line endings are handled in the buffer. One of: • 0 — Round • 1 — Flat • 2 — Square Obr. 24.45: Round, flat and square cap styles Join style JOIN_STYLE [enumeration] Default: 0 Specifies whether round, miter or beveled joins should be used when offsetting corners in a line. Options are: • 0 — Round • 1 — Miter • 2 — Bevel Miter limit MITER_LIMIT [number] Default: 2.0 Controls the maximum distance from the offset curve to use when creating a mitered join (only applicable for miter join styles). Minimum: 1. Dissolve result DISSOLVE [boolean] Default: False Dissolve the final buffer. If True (checked), overlapping buffers will be dissolved (combined) into a new feature. Obr. 24.46: Standard and dissolved buffer Buffered OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output (buffer) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 980 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Buffered OUTPUT [vector: polygon] Output (buffer) polygon layer Python code Algorithm ID: native:buffer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Centroids Creates a new point layer, with points representing the centroids of the geometries of the input layer. The centroid is a single point representing the barycenter (of all parts) of the feature, so it can be outside the feature borders. But can also be a point on each part of the feature. The attributes of the points in the output layer are the same as for the original features. Obr. 24.47: The red stars represent the centroids of the features of the input layer. 24.1. QGIS algorithm provider 981 QGIS Desktop 3.16 User Guide Allows features in-place modification Default menu: Vector ► Geometry Tools Viz také: Point on Surface Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Create centroid for each part ALL_PARTS [boolean ] Default: False If True (checked), a centroid will be created for each part of the geometry Centroids OUTPUT [vector: point] Default: [Create temporary layer] Specify the output (centroid) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Centroids OUTPUT [vector: point] Output point vector layer (centroids) Python code Algorithm ID: native:centroids import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Check validity Performs a validity check on the geometries of a vector layer. The geometries are classified in three groups (valid, invalid and error) and for each group, a vector layer with its features is generated: • The Valid output layer contains only the valid features (without topological errors). • The Invalid output layer contains all the invalid features found by the algorithm. • The Error output layer is a point layer that points to where the invalid features were found. The attribute tables of the generated layers will contain some additional information („message“ for the error layer, „FID“ and „_errors“ for the invalid layer and only „FID“ for the valid layer): The attribute table of each generated vector layer will contain some additional information (number of errors found and types of error): 982 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.48: Left: the input layer. Right: the valid layer (green), the invalid layer (orange) Default menu: Vector ► Geometry Tools Viz také: Fix geometries and the core plugin Geometry Checker Plugin Parameters Label Název Type Popis Input layer INPUT_LAYER [vector: any] Input vector layer Method METHOD [enumeration] Default: 2 Method to use to check validity. Options: • 0: The one selected in digitizing settings • 1: QGIS • 2: GEOS Ignore ring self intersection IGNORE_RING_SELF_INTERSECTION[boolean] Default: False Ignore self intersecting rings when checking for validity. Valid output VALID_OUTPUT [same as input] Default: [Create temporary layer] Specify the vector layer to contain a copy of the valid features of the source layer. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Invalid output INVALID_OUTPUT [same as input] Default: [Create temporary layer] Vector layer containing copy of the invalid features of the source layer with the field _errors listing the summary of the error(s) found. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. continues on next page 24.1. QGIS algorithm provider 983 QGIS Desktop 3.16 User Guide Tabulka 24.95 – pokračujte na předchozí stránce Label Název Type Popis Error output ERROR_OUTPUT [vector: point] Default: [Create temporary layer] Point layer of the exact position of the validity problems detected with the message field describing the error(s) found. One of: • Skip output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Count of errors ERROR_COUNT [number] The number of geometries that caused errors. Error output ERROR_OUTPUT [vector: point] Point layer of the exact position of the validity problems detected with the message field describing the error(s) found. Count of invalid features INVALID_COUNT [number] The number of invalid geometries. Invalid output INVALID_OUTPUT [same as input] Vector layer containing copy of the invalid features of the source layer with the field _errors listing the summary of the error(s) found. Count of valid features VALID_COUNT [number] The number of valid geometries. Valid output VALID_OUTPUT [same as input] Vector layer containing a copy of the valid features of the source layer. Python code Algorithm ID: qgis:checkvalidity import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 984 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Types of error messages and their meanings Tabulka 24.97: If the GEOS method is used the following error messages can occur: Error message Explanation Example Repeated point This error happens when a given vertex is repeated. Ring self-intersection This error happens when a geometry touches itself and generates a ring. Self-intersection This error happens when a geometry touches itself. Topology validation error Hole lies outside shell Holes are nested Interior is disconnected Nested shells This error happens when a polygon geometry is on top of another polygon geometry. continues on next page 24.1. QGIS algorithm provider 985 QGIS Desktop 3.16 User Guide Tabulka 24.97 – pokračujte na předchozí stránce Error message Explanation Example Duplicate rings This error happens when two rings (exterior or interior) of a polygon geometry are identical Too few points in geometry component Invalid coordinate For a point geometry, this error happens when the geometry does not have a proper coordinate pair. The coordinate pair does not contain a latitude value and a longitude value in that order. Ring is not closed Tabulka 24.98: If the QGIS method is used the following error messages can occur: Error message Explanation Example Segment %1 of ring %2 of polygon %3 intersects segment %4 of ring %5 of polygon %6 at %7 Ring %1 with less than four points Ring %1 not closed Line %1 with less than two points Line %1 contains %n duplicate node(s) at %2 This error happens when consecutive points on a line have the same coordinates. Segments %1 and %2 of line %3 intersect at %4 This error happens when a line self intersects (two segments of the line intersect each other). continues on next page 986 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.98 – pokračujte na předchozí stránce Error message Explanation Example Ring self-intersection This error happens when an outer or inner (island) ring / boundary of a polygon geometry intersects itself. Ring %1 of polygon %2 not in exterior ring Polygon %1 lies inside polygon %2 This error happens when a part of a MultiPolygon geometry is inside a hole of a MultiPolygon geometry. Collect geometries Takes a vector layer and collects its geometries into new multipart geometries. One or more attributes can be specified to collect only geometries belonging to the same class (having the same value for the specified attributes), alternatively all geometries can be collected. All output geometries will be converted to multi geometries, even those with just a single part. This algorithm does not dissolve overlapping geometries - they will be collected together without modifying the shape of each geometry part. See the ‚Promote to multipart‘ or ‚Aggregate‘ algorithms for alternative options. Default menu: Vector ► Geometry Tools Viz také: Aggregate, Promote to multipart, Dissolve Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Unique ID fields FIELD [tablefield: any] [list] Choose one or more attributes to collect the geometries Collected OUTPUT [same as input] Vector layer with collected geometries 24.1. QGIS algorithm provider 987 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Collected OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer for the collected geometries. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Python code Algorithm ID: native:collect import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Concave hull (alpha shapes) Computes the concave hull of the features in an input point layer. Obr. 24.49: Concave hulls with different thresholds (0.3, 0.6, 0.9) Viz také: Convex hull, Concave hull (k-nearest neighbor) 988 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input point layer INPUT [vector: point] Input point vector layer Threshold ALPHA [number] Default: 0.3 Number from 0 (maximum concave hull) to 1 (convex hull). Allow holes HOLES [boolean] Default: True Choose whether to allow holes in the final concave hull Split multipart geometry into singlepart geometries NO_MULTIGEOMETRY[boolean] Default: True Check if you want to have singlepart geometries instead of multipart ones. Concave hull OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Concave hull OUTPUT [vector: polygon] The output vector layer Python code Algorithm ID: qgis:concavehull import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Concave hull (k-nearest neighbor) Generates a concave hull polygon from a set of points. If the input layer is a line or polygon layer, it will use the vertices. The number of neighbors to consider determines the concaveness of the output polygon. A lower number will result in a concave hull that follows the points very closely, while a higher number will have a smoother shape. The minimum number of neighbor points to consider is 3. A value equal to or greater than the number of points will result in a convex hull. If a field is selected, the algorithm will group the features in the input layer using unique values in that field and generate individual polygons in the output layer for each group. Viz také: Concave hull (alpha shapes) 24.1. QGIS algorithm provider 989 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Number of neighboring points to consider (a lower number is more concave, a higher number is smoother) KNEIGHBORS [number] Default: 3 Determines the concaveness of the output polygon. A small number will result in a concave hull that follows the points very closely, while a high number will make the polygon look more like the convex hull (if the number is equal to or larger than the number of features, the result will be the convex hull). Minimum value: 3. Field Optional FIELD [tablefield: any] Default: None If specified, one concave hull polygon is generated for each unique value of the field (by selecting features using this value). Concave hull OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Concave hull OUTPUT [vector: polygon] The output vector layer Python code Algorithm ID: qgis:knearestconcavehull import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Convert geometry type Generates a new layer based on an existing one, with a different type of geometry. The attribute table of the output layer is the same as the one of the input layer. Not all conversions are possible. For instance, a line layer can be converted to a point layer, but a point layer cannot be converted to a line layer. Viz také: Polygonize, Lines to polygons, Polygons to lines, Points to path 990 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer New geometry type TYPE [enumeration] Default: 0 Geometry type to apply to the output features. One of: • 0 — Centroids • 1 — Nodes • 2 — Linestrings • 3 — Multilinestrings • 4 — Polygons Converted OUTPUT [vector: any] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Converted OUTPUT [vector: any] Output vector layer - the type depends on the parameters Python code Algorithm ID: qgis:convertgeometrytype import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Convert to curved geometries Converts a geometry into its curved geometry equivalent. Already curved geometries will be retained without change. 24.1. QGIS algorithm provider 991 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: line or polygon] Input vector layer Maximum distance tolerance DISTANCE [number] Default: 0.000001 The maximum distance allowed between the original location of vertices and where they would fall on the converted curved geometries Maximum angle tolerance ANGLE [number] Default: 0.000001 Segments are considered as suitable for replacing with an arc if the points are all regularly spaced on the candidate arc. This parameter specifies the maximum angular deviation (in degrees) allowed when testing for regular point spacing. Between 0 and 45°. Curves OUTPUT [vector: compoundcurve or curvepolygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to Database Table… • Append to Layer… The file encoding can also be changed here. Outputs Label Název Type Popis Curves OUTPUT [vector: compoundcurve or curvepolygon] Output vector layer with curved geometries Python code Algorithm ID: native:converttocurves import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 992 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Convex hull Calculates the convex hull for each feature in an input layer. See the ‚Minimum bounding geometry‘ algorithm for a convex hull calculation which covers the whole layer or grouped subsets of features. Obr. 24.50: Black lines identify the convex hull for each layer feature Allows features in-place modification Default menu: Vector ► Geoprocessing Tools Viz také: Minimum bounding geometry, Concave hull (alpha shapes) Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Convex hull OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 993 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Convex hull OUTPUT [vector: polygon] The output (convex hull) vector layer Python code Algorithm ID: native:convexhull import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create layer from extent Creates a new vector layer that contains a single feature with geometry matching the extent of the input layer. It can be used in models to convert a literal extent (xmin, xmax, ymin, ymax format) into a layer which can be used for other algorithms which require a layer based input. Viz také: Create layer from point Parameters Label Název Type Popis Extent (xmin, xmax, ymin, ymax) INPUT [extent] Input extent Extent OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Extent OUTPUT [vector: polygon] The output (extent) vector layer 994 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:extenttolayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create layer from point Creates a new vector layer that contains a single feature with geometry matching a point parameter. It can be used in models to convert a point into a point layer for algorithms which require a layer based input. Viz také: Create layer from extent Parameters Label Název Type Popis Point INPUT [coordinates] Input point, including CRS info (example: 397254,6214446 [EPSG:32632]). If the CRS is not provided, the Project CRS will be used. The point can be specified by clicking on the map canvas. Point OUTPUT [vector: point] Default: [Create temporary layer] Specify the output layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Point OUTPUT [vector: point] The output point vector layer containing the input point. 24.1. QGIS algorithm provider 995 QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:pointtolayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Create wedge buffers Creates wedge shaped buffers from input points. Obr. 24.51: Wedge buffers The native output from this algorithm are CurvePolygon geometries, but these may be automatically segmentized to Polygons depending on the output format. Viz také: Buffer, Variable width buffer (by M value), Tapered buffers Parameters Label Název Type Popis Input layer INPUT [vector: point] Input point vector layer Azimuth (degrees from North) AZIMUTH [number ] Default: 0.0 Angle (in degrees) as the middle value of the wedge continues on next page 996 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.101 – pokračujte na předchozí stránce Label Název Type Popis Wedge width (in degrees) WIDTH [number ] Default: 45.0 Width (in degrees) of the buffer. The wedge will extend to half of the angular width either side of the azimuth direction. Obr. 24.52: Azimuth and width values of the wedge buffer Outer radius OUTER_RADIUS [number ] Default: 1.0 The outer size (length) of the wedge: the size is meant from the source point to the edge of the wedge shape. Inner radius Optional INNER_RADIUS [number ] Default: 0.0 Inner radius value. If 0 the wedge will begin from the source point. Buffers OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Buffers OUTPUT [vector: polygon] The output (wedge buffer) vector layer Python code Algorithm ID: native:wedgebuffers import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 997 QGIS Desktop 3.16 User Guide Delaunay triangulation Creates a polygon layer with the Delaunay triangulation corresponding to the input point layer. Obr. 24.53: Delaunay triangulation on points Default menu: Vector ► Geometry Tools Parameters Label Název Type Popis Input layer INPUT [vector: point] Input point vector layer Delaunay triangulation OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Delaunay triangulation OUTPUT [vector: polygon] The output (Delaunay triangulation) vector layer 998 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:delaunaytriangulation import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Delete holes Takes a polygon layer and removes holes in polygons. It creates a new vector layer in which polygons with holes have been replaced by polygons with only their external ring. Attributes are not modified. An optional minimum area parameter allows removing only holes which are smaller than a specified area threshold. Leaving this parameter at 0.0 results in all holes being removed. Obr. 24.54: Before and after the cleaning Allows features in-place modification 24.1. QGIS algorithm provider 999 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: polygon] Input polygon vector layer Remove holes with area less than Optional MIN_AREA [number ] Default: 0.0 Only holes with an area less than this threshold will be deleted. With a value of 0.0, all the holes will be deleted. Cleaned OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Cleaned OUTPUT [same as input] The output (cleaned) vector layer Python code Algorithm ID: native:deleteholes import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Densify by count Takes a polygon or line layer and generates a new one in which the geometries have a larger number of vertices than the original one. If the geometries have Z or M values present then these will be linearly interpolated at the added vertices. The number of new vertices to add to each segment is specified as an input parameter. 1000 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.55: Red points show the vertices before and after the densify Allows features in-place modification Default menu: Vector ► Geometry Tools Viz také: Densify by interval Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Vertices to add VERTICES [number] Default: 1 Number of vertices to add to each segment Densified OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Densified OUTPUT [same as input] The output (densified) vector layer 24.1. QGIS algorithm provider 1001 QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:densifygeometries import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Densify by interval Takes a polygon or line layer and generates a new one in which the geometries have a larger number of vertices than the original one. The geometries are densified by adding regularly placed extra vertices inside each segment so that the maximum distance between any two vertices does not exceed the specified distance. If the geometries have Z or M values present then these will be linearly interpolated at the added vertices. Example Specifying a distance of 3 would cause the segment [0 0] -> [10 0] to be converted to [0 0] -> [2.5 0] -> [5 0] -> [7.5 0] -> [10 0], since 3 extra vertices are required on the segment and spacing these at 2.5 increments allows them to be evenly spaced over the segment. Obr. 24.56: Densify geometry at a given interval Allows features in-place modification Viz také: Densify by count 1002 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Interval between vertices to add INTERVAL [number ] Default: 1.0 Maximum distance between two consecutive vertices Densified OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Densified OUTPUT [same as input] The output (densified) vector layer Python code Algorithm ID: native:densifygeometriesgivenaninterval import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Dissolve Takes a vector layer and combines its features into new features. One or more attributes can be specified to dissolve features belonging to the same class (having the same value for the specified attributes), alternatively all features can be dissolved to a single feature. All output geometries will be converted to multi geometries. In case the input is a polygon layer, common boundaries of adjacent polygons being dissolved will get erased. The resulting attribute table will have the same fields as the input layer. The values in the output layer’s fields are the ones of the first input feature that happens to be processed. 24.1. QGIS algorithm provider 1003 QGIS Desktop 3.16 User Guide Obr. 24.57: Dissolve the polygon layer on a common attribute Default menu: Vector ► Geoprocessing Tools Viz také: Aggregate, Collect geometries Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Dissolve field(s) Optional FIELD [tablefield: any] [list] Default: [] Features having the same value for the selected field(s) will be replaced with a single one and their geometries are merged. If no field is provided then all the features are dissolved, resulting in a single (multipart) feature. Dissolved OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Dissolved OUTPUT [same as input] The output vector layer with dissolved geometries 1004 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:dissolve import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Drape (set Z value from raster) Uses values sampled from a band within a raster layer to set the Z value for every overlapping vertex in the feature geometry. The raster values can optionally be scaled by a preset amount. If Z values already exist in the layer, they will be overwritten with the new value. If no Z values exist, the geometry will be upgraded to include the Z dimension. Viz také: Set M value from raster, Set Z value Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Raster layer RASTER [raster] Raster layer with Z values Band number BAND [raster band] Default: 1 The raster band to take the Z values from Value for nodata or non- -intersecting vertices NODATA [number ] Default: 0 Value to use in case the vertex does not intersect (a valid pixel of) the raster Scale factor SCALE [number ] Default: 1.0 Scaling value: the band values are multiplied by this value. Updated OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer (with Z values from the raster layer). One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1005 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Updated OUTPUT [same as input] The output vector layer with Z values from the raster layer Python code Algorithm ID: native:setzfromraster import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Drop M/Z values Removes M (measure) or Z (altitude) values from input geometries. Viz také: Set M value, Set Z value Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer with M or Z values Drop M Values DROP_M_VALUES [boolean] Default: False Removes the M values from the geometries Drop Z Values DROP_Z_VALUES [boolean] Default: False Removes the Z values from the geometries Z/M Dropped OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Z/M Dropped OUTPUT [same as input] The output vector layer (identical to the input layer, except that the M and/or Z dimensions have been removed from the geometries). 1006 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:dropmzvalues import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Eliminate selected polygons Combines selected polygons of the input layer with certain adjacent polygons by erasing their common boundary. The adjacent polygon can be either the one with the largest or smallest area or the one sharing the largest common boundary with the polygon to be eliminated. Eliminate is normally used to get rid of sliver polygons, i.e. tiny polygons that are a result of polygon intersection processes where boundaries of the inputs are similar but not identical. Default menu: Vector ► Geoprocessing Tools Viz také: Fix geometries Parameters Label Název Type Popis Input layer INPUT [vector: polygon] Input polygon vector layer Merge selection with the neighboring polygon with the MODE [enumeration] Default: None Choose the parameter to use in order to get rid of the selected polygons: • 0 — Largest Area • 1 — Smallest Area • 2 — Largest Common Boundary Eliminated OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Eliminated OUTPUT [vector: polygon] The output polygon vector layer. 24.1. QGIS algorithm provider 1007 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:eliminateselectedpolygons import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Explode lines Takes a lines layer and creates a new one in which each line layer is replaced by a set of lines representing the segments in the original line. Each line in the resulting layer contains only a start and an end point, with no intermediate vertices between them. Obr. 24.58: The original line layer and the exploded one Allows features in-place modification 1008 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Viz také: Subdivide, Line substring Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Exploded OUTPUT [vector: line] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Exploded OUTPUT [vector: line] The output line vector layer with features representing each segment of the input layer. Python code Algorithm ID: native:explodelines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extend lines Extends line geometry by a specified amount at the start and end of the line. Lines are extended using the bearing of the first and last segment in the line. 24.1. QGIS algorithm provider 1009 QGIS Desktop 3.16 User Guide Obr. 24.59: The red dashes represent the initial and final extension of the original layer Allows features in-place modification Viz také: Line substring Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Start distance START_DISTANCE [number ] Distance by which to extend the first segment of the line (starting point) End distance END_DISTANCE [number ] Distance by which to extend the last segment of the line (ending point) Extended OUTPUT [vector: line] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Extended OUTPUT [vector: line] The output (extended) line vector layer. 1010 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:extendlines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract M values Extracts M values from geometries into feature attributes. By default only the M value from the first vertex of each feature is extracted, however the algorithm can optionally calculate statistics on all of the geometry’s M values, including sum, mean, minimum and maximum. Viz také: Extract Z values, Set M value, Drop M/Z values Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Summaries to calculate SUMMARIES [enumeration] Default: [0] Statistics on the M values of a geometry. One or more of: • 0 — First • 1 — Last • 2 — Count • 3 — Sum • 4 — Mean • 5 — Median • 6 — St.dev (pop) • 7 — Minimum • 8 — Maximum • 9 — Range • 10 — Minority • 11 — Majority • 12 — Variety • 13 — Q1 • 14 — Q3 • 15 — IQR Output column prefix COLUMN_PREFIX [string] Default: ‚m_‘ The prefix for the output (M) column Extracted OUTPUT [same as input] Default: [Create temporary layer] Specify the output layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1011 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Extracted OUTPUT [same as input] The output vector layer (with M values) Python code Algorithm ID: native:extractmvalues import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract specific vertices Takes a vector layer and generates a point layer with points representing specific vertices in the input geometries. For instance, this algorithm can be used to extract the first or last vertices in the geometry. The attributes associated to each point are the same ones associated to the feature that the vertex belongs to. The vertex indices parameter accepts a comma separated string specifying the indices of the vertices to extract. The first vertex corresponds to an index of 0, the second vertex has an index of 1, etc. Negative indices can be used to find vertices at the end of the geometry, e.g., an index of -1 corresponds to the last vertex, -2 corresponds to the second last vertex, etc. Additional fields are added to the vertices indicating the specific vertex position (e.g., 0, -1, etc), the original vertex index, the vertex’s part and its index within the part (as well as its ring for polygons), distance along the original geometry and bisector angle of vertex for the original geometry. Viz také: Extract vertices, Filter vertices by M value, Filter vertices by Z value Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Vertex indices VERTICES [string] Default: ‚0‘ Comma-separated string of the indices of the vertices to extract. Vertices OUTPUT [vector: point] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 1012 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Vertices OUTPUT [vector: point] The output (point) vector layer containing the specified vertices from the input layer geometries. Python code Algorithm ID: native:extractspecificvertices import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract vertices Takes a vector layer and generates a point layer with points representing the vertices in the input geometries. The attributes associated to each point are the same ones associated to the feature that the vertex belongs to. Additional fields are added to the vertices indicating the vertex index (beginning at 0), the feature’s part and its index within the part (as well as its ring for polygons), distance along original geometry and bisector angle of vertex for original geometry. Obr. 24.60: Vertices extracted for line and polygon layer Default menu: Vector ► Geometry Tools Viz také: Extract specific vertices, Filter vertices by M value, Filter vertices by Z value 24.1. QGIS algorithm provider 1013 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Vertices OUTPUT [vector: point] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Vertices OUTPUT [vector: point] The output (point) vector layer containing the vertices from the input layer geometries. Python code Algorithm ID: native:extractvertices import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract Z values Extracts Z values from geometries into feature attributes. By default only the Z value from the first vertex of each feature is extracted, however the algorithm can optionally calculate statistics on all of the geometry’s Z values, including sum, mean, minimum and maximum. Viz také: Extract M values, Set Z value, Drop M/Z values Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer continues on next page 1014 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.104 – pokračujte na předchozí stránce Label Název Type Popis Summaries to calculate SUMMARIES [enumeration] Default: [0] Statistics on the Z values of a geometry. One or more of: • 0 — First • 1 — Last • 2 — Count • 3 — Sum • 4 — Mean • 5 — Median • 6 — St.dev (pop) • 7 — Minimum • 8 — Maximum • 9 — Range • 10 — Minority • 11 — Majority • 12 — Variety • 13 — Q1 • 14 — Q3 • 15 — IQR Output column prefix COLUMN_PREFIX [string] Default: ‚z_‘ The prefix for the output (Z) column Extracted OUTPUT [same as input] Default: [Create temporary layer] Specify the output layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Extracted OUTPUT [same as input] The output vector layer (with Z values) Python code Algorithm ID: native:extractzvalues import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1015 QGIS Desktop 3.16 User Guide Filter vertices by M value Filters away vertices based on their M value, returning geometries with only vertex points that have a M value greater than or equal to the specified minimum value and/or less than or equal to the maximum value. If the minimum value is not specified then only the maximum value is tested, and similarly if the maximum value is not specified then only the minimum value is tested. Obr. 24.61: The red line represents the black line with only vertices whose M value is <=10. Poznámka: Depending on the input geometry attributes and the filters used, the resultant geometries created by this algorithm may no longer be valid. Viz také: Filter vertices by Z value, Extract vertices, Extract specific vertices Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer to remove vertices from Minimum Optional MIN [number ] Default: Not set Minimum of M values allowed Maximum Optional MAX [number ] Default: Not set Maximum of M values allowed Filtered OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 1016 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Filtered OUTPUT [same as input] The output vector layer of features with only the filtered vertices. Python code Algorithm ID: native:filterverticesbym import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Filter vertices by Z value Filters away vertices based on their Z value, returning geometries with only vertex points that have a Z value greater than or equal to the specified minimum value and/or less than or equal to the maximum value. If the minimum value is not specified then only the maximum value is tested, and similarly if the maximum value is not specified then only the minimum value is tested. Obr. 24.62: The red line represents the black line with only vertices whose Z value is <=10. Poznámka: Depending on the input geometry attributes and the filters used, the resultant geometries created by this algorithm may no longer be valid. You may need to run the Fix geometries algorithm to ensure their validity. Viz také: Filter vertices by M value, Extract vertices, Extract specific vertices 24.1. QGIS algorithm provider 1017 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer to remove vertices from Minimum Optional MIN [number ] Default: Not set Minimum of Z values allowed Maximum Optional MAX [number ] Default: Not set Maximum of Z values allowed Filtered OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Filtered OUTPUT [same as input] The output vector layer of features with only the filtered vertices. Python code Algorithm ID: native:filterverticesbyz import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Fix geometries Attempts to create a valid representation of a given invalid geometry without losing any of the input vertices. Already valid geometries are returned without further intervention. Always outputs multi-geometry layer. Poznámka: M values will be dropped from the output. Allows features in-place modification Viz také: Check validity 1018 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Fixed geometries OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Fixed geometries OUTPUT [same as input] The output vector layer with fixed geometries. Python code Algorithm ID: native:fixgeometries import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Force right-hand-rule Forces polygon geometries to respect the Right-Hand-Rule, in which the area that is bounded by a polygon is to the right of the boundary. In particular, the exterior ring is oriented in a clockwise direction and any interior rings in a counter-clockwise direction. Parameters Label Název Type Popis Input layer INPUT [vector: polygon] Input vector layer Reoriented OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1019 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Reoriented OUTPUT [vector: polygon] The output vector layer with reoriented geometries. Python code Algorithm ID: native:forcerhr import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Geodesic line split at antimeridian Splits a line into multiple geodesic segments, whenever the line crosses the antimeridian (±180 degrees longitude). Splitting at the antimeridian helps the visual display of the lines in some projections. The returned geometry will always be a multi-part geometry. Whenever line segments in the input geometry cross the antimeridian, they will be split into two segments, with the latitude of the breakpoint being determined using a geodesic line connecting the points either side of this segment. The current project ellipsoid setting will be used when calculating this breakpoint. If the input geometry contains M or Z values, these will be linearly interpolated for the new vertices created at the antimeridian. Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Split OUTPUT [vector: line] Default: [Create temporary layer] Specify the output line vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Split OUTPUT [vector: line] The output line vector layer split at the antimeridian. 1020 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:antimeridiansplit import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Geometry by expression Updates existing geometries (or creates new geometries) for input features by use of a QGIS expression. This allows complex geometry modifications which can utilize all the flexibility of the QGIS expression engine to manipulate and create geometries for output features. For help with QGIS expression functions, see the inbuilt help available in the expression builder. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Output geometry type OUTPUT_GEOMETRY[enumeration] Default: 0 The output geometry strongly depends on the expression: for instance, if you create a buffer the geometry type has to be polygon. One of: • 0 — Polygon • 1 — Line • 2 — Point Output geometry has z values WITH_Z [boolean] Default: False Choose if the output geometry should include the Z dimension Output geometry has m values WITH_M [boolean] Default: False Choose if the output geometry should include the M dimension Geometry expression EXPRESSION [expression] Default: ‚$geometry‘ Add the geometry expression you want to use. You can use the button to open the Expression Dialog. The dialog lists all the relevant expressions, together with their help and guide. Modified geometry OUTPUT [vector: any] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1021 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Modified geometry OUTPUT [vector: any] The output vector layer Python code Algorithm ID: native:geometrybyexpression import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Interpolate point on line Creates a point geometry interpolated at a set distance along line or curve geometries. Z and M values are linearly interpolated from existing values. If a multipart geometry is encountered, only the first part is considered when calculating the substring. If the specified distance is greater than the input feature’s length, the resultant feature will have a null geometry. Obr. 24.63: Interpolated point at 500m of the beginning of the line Viz také: Points along geometry Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Distance DISTANCE [number ] Default: 0.0 Distance from the beginning of the line Interpolated points OUTPUT [vector: point] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 1022 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Interpolated points OUTPUT [vector: point] The output point vector layer with features at a set distance along the line or polygon boundary Python code Algorithm ID: native:interpolatepoint import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Keep N biggest parts Takes a layer with polygons or multipolygons and returns a new layer in which only the n largest polygons of each multipolygon feature are kept. If a feature has n or fewer parts, the feature will just be copied. Obr. 24.64: Clockwise from top left: original multipart feature, one, two and three biggest parts kept 24.1. QGIS algorithm provider 1023 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Polygons INPUT [vector: polygon] Input polygon vector layer Parts to keep PARTS [number] Default: 1 Number of parts to keep. If 1, only the biggest part of the feature will be kept. Parts OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Parts OUTPUT [vector: polygon] The output polygon vector layer with the N biggest parts of each feature Python code Algorithm ID: qgis:keepnbiggestparts import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Line substring Returns the portion of a line (or curve) which falls between the specified start and end distances (measured from the beginning of the line). Z and M values are linearly interpolated from existing values. If a multipart geometry is encountered, only the first part is considered when calculating the substring. 1024 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.65: Substring line with starting distance set at 0 meters and the ending distance at 250 meters. Allows features in-place modification Viz také: Extend lines Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Start distance START_DISTANCE [number ] Distance along the input line to the start point of the output feature End distance END_DISTANCE [number ] Distance along the input line to the end point of the output feature Substring OUTPUT [vector: line] Default: [Create temporary layer] Specify the output line vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Substring OUTPUT [vector: line] The output line vector layer. 24.1. QGIS algorithm provider 1025 QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:linesubstring import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Lines to polygons Generates a polygon layer using as polygon rings the lines from an input line layer. The attribute table of the output layer is the same as the one of the input layer. Default menu: Vector ► Geometry Tools Viz také: Polygons to lines, Polygonize, Convert geometry type Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Polygons OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Polygons OUTPUT [vector: polygon] The output polygon vector layer. Python code Algorithm ID: qgis:linestopolygons import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1026 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Merge lines Joins all connected parts of MultiLineString geometries into single LineString geometries. If any parts of the input MultiLineString geometries are not connected, the resultant geometry will be a MultiLineString containing any lines which could be merged and any non-connected line parts. Allows features in-place modification Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Merged OUTPUT [vector: line] Default: [Create temporary layer] Specify the output line vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Merged OUTPUT [vector: line] The output (merged) line vector layer. Python code Algorithm ID: native:mergelines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Minimum bounding geometry Creates geometries which enclose the features from an input layer. The features can be grouped by a field. The output layer will then contain one feature per group value with a geometry (MBB) that covers the geometries of the features with matching value. The following enclosing geometry types are supported: • bounding box (envelope) • oriented rectangle • circle • convex hull 24.1. QGIS algorithm provider 1027 QGIS Desktop 3.16 User Guide Obr. 24.66: Clockwise from top left: envelope, oriented rectangle, circle, convex hull Viz také: Minimum enclosing circles Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Field Optional FIELD [tablefield: any] Features can be grouped by a field. If set, this causes the output layer to contain one feature per grouped value with a minimal geometry covering only the features with matching values. Geometry type TYPE [enumeration] Default: 0 Enclosing geometry types. One of: • 0 — Envelope (Bounding Box) • 1 — Minimum Oriented Rectangle • 2 — Minimum Enclosing Circle • 3 — Convex Hull continues on next page 1028 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.107 – pokračujte na předchozí stránce Label Název Type Popis Bounding geometry OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Bounding geometry OUTPUT [vector: polygon] The output (bounding) polygon vector layer. Python code Algorithm ID: qgis:minimumboundinggeometry import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Minimum enclosing circles Calculates the minimum enclosing circles of the features in the input layer. 24.1. QGIS algorithm provider 1029 QGIS Desktop 3.16 User Guide Obr. 24.67: Enclosing circles for each feature Allows features in-place modification Viz také: Minimum bounding geometry 1030 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Number of segment in circles SEGMENTS [number] Default: 72 The number of segment used to approximate a circle. Minimum 8, maximum 100000. Minimum enclosing circles OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Minimum enclosing circles OUTPUT [vector: polygon] The output polygon vector layer. Python code Algorithm ID: native:minimumenclosingcircle import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Multi-ring buffer (constant distance) Computes multi-ring (donut) buffer for the features of the input layer, using a fixed or dynamic distance and number of rings. Obr. 24.68: Multi-ring buffer for a line, point and polygon layer Allows features in-place modification 24.1. QGIS algorithm provider 1031 QGIS Desktop 3.16 User Guide Viz také: Buffer, Variable distance buffer, Rectangles, ovals, diamonds, Single sided buffer Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Number of rings RINGS [number ] Default: 1 The number of rings. It can be a unique value (same number of rings for all the features) or it can be taken from features data (the number of rings depends on feature values). Distance between rings DISTANCE [number ] Default: 1.0 Distance between the rings. It can be a unique value (same distance for all the features) or it can be taken from features data (the distance depends on feature values). Multi-ring buffer (constant distance) OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Multi-ring buffer (constant distance) OUTPUT [vector: polygon] The output polygon vector layer. Python code Algorithm ID: native:multiringconstantbuffer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1032 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Multipart to singleparts Splits multipart features in the input layer into singlepart features. The attributes of the output layer are the same as the original ones but divided into single features. Obr. 24.69: Left the multipart source layer and right the single part output result Allows features in-place modification Default menu: Vector ► Geometry Tools Viz také: Collect geometries, Promote to multipart Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Single parts OUTPUT [same as input] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Single parts OUTPUT [same as input] The output vector layer. Python code Algorithm ID: native:multiparttosingleparts import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1033 QGIS Desktop 3.16 User Guide Offset lines Offsets lines by a specified distance. Positive distances will offset lines to the left, and negative distances will offset them to the right. Obr. 24.70: In blue the source layer, in red the offset one Allows features in-place modification Viz také: Array of offset (parallel) lines, Translate Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Distance DISTANCE [number ] Default: 10.0 Offset distance. You can use the Data Defined button on the right to choose a field from which the radius will be calculated. This way you can have different radius for each feature (see Variable distance buffer). Segments SEGMENTS [number] Default: 8 Controls the number of line segments to use to approximate a quarter circle when creating rounded offsets. Join style JOIN_STYLE [enumeration] Default: 0 Specifies whether round, miter or beveled joins should be used when offsetting corners in a line. Options are: • 0 — Round • 1 — Miter • 2 — Bevel Miter limit MITER_LIMIT [number] Default: 2.0 Controls the maximum distance from the offset curve to use when creating a mitered join (only applicable for miter join styles). Minimum: 1. continues on next page 1034 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.109 – pokračujte na předchozí stránce Label Název Type Popis Offset OUTPUT [vector: line] Default: [Create temporary layer] Specify the output (offset) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Offset OUTPUT [vector: line] Output (offset) line layer Python code Algorithm ID: native:offsetline import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Oriented minimum bounding box Calculates the minimum area rotated rectangle for each feature in the input layer. 24.1. QGIS algorithm provider 1035 QGIS Desktop 3.16 User Guide Obr. 24.71: Oriented minimum bounding box Allows features in-place modification Viz také: Minimum bounding geometry Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Bounding boxes OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 1036 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Bounding boxes OUTPUT [vector: polygon] The output polygon vector layer. Python code Algorithm ID: native:orientedminimumboundingbox import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Orthogonalize Attempts to orthogonalize the geometries of the input line or polygon layer. This process shifts the vertices in the geometries to try to make every angle in the geometry either a right angle or a straight line. Obr. 24.72: In blue the source layer and in the red orthogonalized result Allows features in-place modification 24.1. QGIS algorithm provider 1037 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Maximum angle tolerance (degrees) ANGLE_TOLERANCE[number] Default: 15 Specify the maximum deviation from a right angle or straight line a vertex can have for it to be adjusted. Smaller tolerances mean that only vertices which are already closer to right angles will be adjusted, and larger tolerances mean that vertices which deviate further from right angles will also be adjusted. Maximum algorithm iterations MAX_ITERATIONS [number] Default: 1000 Setting a larger number for the maximum number of iterations will result in a more orthogonal geometry at the cost of extra processing time. Orthogonalized OUTPUT [same as input] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Orthogonalized OUTPUT [same as input] The output polygon vector layer with adjusted angles. Python code Algorithm ID: native:orthogonalize import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1038 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Point on Surface For each feature of the input layer, returns a point that is guaranteed to lie on the surface of the feature geometry. Allows features in-place modification Viz také: Centroids Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Create point on surface for each part ANGLE_TOLERANCE[boolean ] If checked, a point will be created for each part of the geometry. Point OUTPUT [vector: point] Default: [Create temporary layer] Specify the output point vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Point OUTPUT [vector: point] The output point vector layer. Python code Algorithm ID: native:pointonsurface import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Points along geometry Creates points at regular intervals along line or polygon geometries. Created points will have new attributes added for the distance along the geometry and the angle of the line at the point. An optional start and end offset can be specified, which controls how far from the start and end of the geometry the points should be created. 24.1. QGIS algorithm provider 1039 QGIS Desktop 3.16 User Guide Obr. 24.73: Points created along the source line layer Viz také: Interpolate point on line 1040 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Distance DISTANCE [number ] Default: 1.0 Distance between two consecutive points along the line Start offset START_OFFSET [number ] Default: 0.0 Distance from the beginning of the input line, representing the position of the first point. End offset END_OFFSET [number ] Default: 0.0 Distance from the end of the input line, representing the position beyond which no point feature shoud be created. Interpolated points OUTPUT [vector: point] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Interpolated points OUTPUT [vector: point] Point vector layer with features placed along lines or polygon boundaries of the input layer. Python code Algorithm ID: native:pointsalonglines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Points displacement Given a distance of proximity, identifies nearby point features and radially distributes them over a circle whose center represents their barycenter. A convenient tool to scatter overlaid features. 24.1. QGIS algorithm provider 1041 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: point] Input point vector layer Minimum distance to other points PROXIMITY [number] Default: 1.0 Distance below which point features are considered close. Close features are distributed altogether. Displacement distance DISTANCE [number] Default: 1.0 Radius of the circle on which close features are placed Horizontal distribution for two point case HORIZONTAL [boolean] Default: False When only two points are identified as close, aligns them horizontally on the circle instead of vertically. Displaced OUTPUT [vector: point] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Displaced OUTPUT [vector: point] Output point vector layer Python code Algorithm ID: qgis:pointsdisplacement import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Pole of inaccessibility Calculates the pole of inaccessibility for a polygon layer, which is the most distant internal point from the boundary of the surface. This algorithm uses the ‚polylabel‘ algorithm (Vladimir Agafonkin, 2016), which is an iterative approach guaranteed to find the true pole of inaccessibility within a specified tolerance. A more precise tolerance (lower value) requires more iterations and will take longer to calculate. The distance from the calculated pole to the polygon boundary will be stored as a new attribute in the output layer. 1042 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.74: Pole of inaccessibility Parameters Label Název Type Popis Input layer INPUT [vector: polygon] Input vector layer Tolerance TOLERANCE [number] Default: 1.0 Set the tolerance for the calculation Point OUTPUT [vector: point] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Point OUTPUT [vector: point] The output point vector layer Python code Algorithm ID: native:poleofinaccessibility import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1043 QGIS Desktop 3.16 User Guide Polygonize Creates a polygon layer whose features boundaries are generated from a line layer of closed features. Obr. 24.75: The yellow polygons generated from the closed lines Poznámka: The line layer must have closed shapes in order to be transformed into a polygon. Viz také: Polygons to lines, Lines to polygons, Convert geometry type Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Keep table structure of line layer Optional KEEP_FIELDS [boolean] Default: False Check to keep the fields (only the table structure, not the values) of the input layer Polygons from lines OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output polygon vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 1044 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Polygons from lines OUTPUT [vector: polygon] The output polygon vector layer from lines Python code Algorithm ID: native:polygonize import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Polygons to lines Takes a polygon layer and creates a line layer, with lines representing the boundaries of the polygons in the input layer. The attribute table of the output layer is the same as the one of the input layer. Obr. 24.76: Black lines as the result of the algorithm Default menu: Vector ► Geometry Tools Viz také: Lines to polygons, Polygonize, Convert geometry type Parameters Label Název Type Popis Input layer INPUT [vector: polygon] Input polygon vector layer Lines OUTPUT [vector: line] Default: [Create temporary layer] Specify the output line vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1045 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Lines OUTPUT [vector: line] The output line vector layer from polygons Python code Algorithm ID: native:polygonstolines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Project points (Cartesian) Projects point geometries by a specified distance and bearing (azimuth). Allows features in-place modification Parameters Label Název Type Popis Input layer INPUT [vector: point] Input point vector layer Bearing (degrees from North) BEARING [number ] Default: 0.0 Clockwise angle starting from North, in degree (°) unit Distance DISTANCE [number ] Default: 1.0 Distance to offset geometries, in layer units Projected OUTPUT [vector: point] Default: [Create temporary layer] Specify the output point vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 1046 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Projected OUTPUT [vector: point] The output (projected) point vector layer Python code Algorithm ID: native:projectpointcartesian import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Promote to multipart Takes a vector layer with singlepart geometries and generates a new one in which all geometries are multipart. Input features which are already multipart features will remain unchanged. This algorithm can be used to force geometries to multipart types in order to be compatible with data providers that require multipart features. Allows features in-place modification Viz také: Aggregate, Collect geometries Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Multiparts OUTPUT [same as input] Default: [Create temporary layer] Specify the output multipart vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Multiparts OUTPUT [same as input] The output multipart vector layer 24.1. QGIS algorithm provider 1047 QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:promotetomulti import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Rectangles, ovals, diamonds Creates a buffer area with a rectangle, oval or diamond shape for each feature of the input point layer. The shape parameters can be fixed for all features or dynamic using a field or an expression. Obr. 24.77: Different buffer shapes with dynamic parameters Parameters Label Název Type Popis Input layer INPUT [vector: point] Input point vector layer Buffer shape SHAPE [enumeration] The shape to use. One of: • 0 — Rectangles • 1 — Ovals • 2 — Diamonds Width WIDTH [number ] Default: 1.0 Width of the buffer shape Height HEIGHT [number ] Default: 1.0 Height of the buffer shape Rotation Optional ROTATION [number ] Default: None Rotation of the buffer shape Number of segment SEGMENTS [number] Default: 36 Number of segments for a full circle (Ovals shape) continues on next page 1048 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.114 – pokračujte na předchozí stránce Label Název Type Popis Output OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Output OUTPUT [vector: polygon] The output vector layer (with the buffer shapes) Python code Algorithm ID: native:rectanglesovalsdiamonds import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Remove duplicate vertices Removes duplicate vertices from features, wherever removing the vertices does not result in a degenerate geometry. The tolerance parameter specifies the tolerance for coordinates when determining whether vertices are identical. By default, Z values are not considered when detecting duplicate vertices. E.g. two vertices with the same X and Y coordinate but different Z values will still be considered duplicate and one will be removed. If the Use Z Value parameter is true, then the Z values are also tested and vertices with the same X and Y but different Z will be maintained. Poznámka: Duplicate vertices are not tested between different parts of a multipart geometry, e.g. a multipoint geometry with overlapping points will not be changed by this method. Allows features in-place modification Viz také: Extract vertices, Extract specific vertices, Delete duplicate geometries 24.1. QGIS algorithm provider 1049 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Tolerance TOLERANCE [number ] Default: 0.000001 Vertices closer than the specified distance are considered duplicates Use Z value USE_Z_VALUE [boolean ] Default: False If the Use Z Value parameter is true, then the Z values are also tested and vertices with the same X and Y but different Z will be maintained. Cleaned OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Cleaned OUTPUT [same as input] The output vector layer (without duplicate vertices) Python code Algorithm ID: native:removeduplicatevertices import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Remove null geometries Removes any features which do not have a geometry from a vector layer. All other features will be copied unchanged. The features with null geometries can be saved to a separate layer. If Also remove empty geometries is checked, the algorithm removes features whose geometries have no coordinates, i.e., geometries that are empty. In that case, also the null output will reflect this option, containing both null and empty geometries. Viz také: Delete duplicate geometries 1050 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer (with non-NULL geometries) Also remove empty geometries REMOVE_EMPTY [boolean] Non null geometries OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer for the non-NULL (and non-empty) geometries. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Null geometries NULL_OUTPUT [same as input] Default: [Skip output] Specify the output vector layer for the NULL (and empty) geometries. One of: • Skip Output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Null geometries NULL_OUTPUT [same as input] Output vector layer (for NULL and, if chosen, empty geometries) Non null geometries OUTPUT [same as input] The output vector layer (without NULL and, if chosen, empty geometries) Python code Algorithm ID: native:removenullgeometries import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1051 QGIS Desktop 3.16 User Guide Reverse line direction Inverts the direction of a line layer. Obr. 24.78: Before and after the direction inversion Allows features in-place modification Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Reversed OUTPUT [vector: line] Default: [Create temporary layer] Specify the output line vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Reversed OUTPUT [vector: line] The output line vector layer (with reversed lines) Python code Algorithm ID: native:reverselinedirection import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1052 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Rotate Rotates feature geometries by the specified angle clockwise. The rotation occurs around each feature’s centroid, or optionally around a unique preset point. Allows features in-place modification Viz také: Translate, Swap X and Y coordinates Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Rotation (degrees clockwise) ANGLE [number ] Default: 0.0 Angle of the rotation in degrees Rotation anchor point (x, y) Optional ANCHOR [point] Default: None X,Y coordinates of the point to rotate the features around. If not set the rotation occurs around each feature’s centroid. Rotated OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer (with rotated geometries). One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Rotated OUTPUT [same as input] The output vector layer with rotated geometries Python code Algorithm ID: native:rotatefeatures import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1053 QGIS Desktop 3.16 User Guide Segmentize by maximum angle Segmentizes a geometry by converting curved sections to linear sections. The segmentization is performed by specifying the maximum allowed radius angle between vertices on the straightened geometry (e.g the angle of the arc created from the original arc center to consecutive output vertices on the linearized geometry). Non-curved geometries will be retained without change. Viz také: Segmentize by maximum distance, Simplify, Smooth Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Maximum angle between vertices (degrees) ANGLE [number ] Default: 5.0 Maximum allowed radius angle between vertices on the straightened geometry Segmentized OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer (with segmentized geometries). One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Segmentized OUTPUT [same as input] The output vector layer with segmentized geometries Python code Algorithm ID: native:segmentizebymaxangle import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1054 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Segmentize by maximum distance Segmentizes a geometry by converting curved sections to linear sections. The segmentization is performed by specifying the maximum allowed offset distance between the original curve and the segmentized representation. Non-curved geometries will be retained without change. Viz také: Segmentize by maximum angle, Simplify, Smooth Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Maximum offset distance DISTANCE [number ] Default: 1.0 Maximum allowed offset distance between the original curve and the segmentized representation, in the layer units. Segmentized OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer (with segmentized geometries). One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Segmentized OUTPUT [same as input] The output vector layer with segmentized geometries Python code Algorithm ID: native:segmentizebymaxdistance import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1055 QGIS Desktop 3.16 User Guide Set M value Sets the M value for geometries in a layer. If M values already exist in the layer, they will be overwritten with the new value. If no M values exist, the geometry will be upgraded to include M values and the specified value used as the initial M value for all geometries. Tip: Use the Identify Features button to check the added M value: the results are available in the Identify Results dialog. Viz také: Set M value from raster, Set Z value, Drop M/Z values Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer M Value M_VALUE [number ] Default: 0.0 M value to assign to the feature geometries M Added OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis M Added OUTPUT [same as input] The output vector layer (with M values assigned to the geometries) Python code Algorithm ID: native:setmvalue import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1056 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Set M value from raster Uses values sampled from a band within a raster layer to set the M value for every overlapping vertex in the feature geometry. The raster values can optionally be scaled by a preset amount. If M values already exist in the layer, they will be overwritten with the new value. If no M values exist, the geometry will be upgraded to include M values. Viz také: Drape (set Z value from raster), Set M value Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Raster layer RASTER [raster] Raster layer with M values Band number BAND [raster band] Default: 1 The raster band from which the M values are taken Value for nodata or non- -intersecting vertices NODATA [number ] Default: 0.0 Value to use in case the vertex does not intersect (a valid pixel of) the raster Scale factor SCALE [number ] Default: 1.0 Scaling value: the band values are multiplied by this value. Updated OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer (with updated M values). One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Updated OUTPUT [same as input] The output vector layer (with updated M values) Python code Algorithm ID: native:setmfromraster import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1057 QGIS Desktop 3.16 User Guide Set Z value Sets the Z value for geometries in a layer. If Z values already exist in the layer, they will be overwritten with the new value. If no Z values exist, the geometry will be upgraded to include Z values and the specified value used as the initial Z value for all geometries. Tip: Use the Identify Features button to check the added Z value: the results are available in the Identify Results dialog. Viz také: Drape (set Z value from raster), Set M value, Drop M/Z values Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Z Value Z_VALUE [number ] Default: 0.0 Z value to assign to the feature geometries Z Added OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Z Added OUTPUT [same as input] The output vector layer (with Z values assigned) Python code Algorithm ID: native:setzvalue import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1058 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Simplify Simplifies the geometries in a line or polygon layer. It creates a new layer with the same features as the ones in the input layer, but with geometries containing a lower number of vertices. The algorithm gives a choice of simplification methods, including distance based (the „Douglas-Peucker“ algorithm), area based („Visvalingam“ algorithm) and snapping geometries to grid. 24.1. QGIS algorithm provider 1059 QGIS Desktop 3.16 User Guide Obr. 24.79: Clockwise from top left: source layer and increasing simplification tolerances Allows features in-place modification Default menu: Vector ► Geometry Tools 1060 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Viz také: Smooth, Densify by count, Densify by interval Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Simplification method METHOD [enumeration] Default: 0 Simplification method. One of: • 0 — Distance (Douglas-Peucker) • 1 — Snap to grid • 2 — Area (Visvalingam) Tolerance TOLERANCE [number ] Default: 1.0 Threshold tolerance (in units of the layer): if the distance between two nodes is smaller than the tolerance value, the segment will be simplified and vertices will be removed. Simplified OUTPUT [same as input] Default: [Create temporary layer] Specify the output (simplified) vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Simplified OUTPUT [same as input] The output (simplified) vector layer Python code Algorithm ID: native:simplifygeometries import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1061 QGIS Desktop 3.16 User Guide Single sided buffer Computes a buffer on lines by a specified distance on one side of the line only. Buffer always results in a polygon layer. Obr. 24.80: Left versus right side buffer on the same vector line layer Viz také: Buffer Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Distance DISTANCE [number] Default: 10.0 Buffer distance. Side SIDE [enumeration] Which side to create the buffer on. One of: • 0 – Left • 1 – Right Segments SEGMENTS [number] Default: 8 Controls the number of line segments to use to approximate a quarter circle when creating rounded offsets. Join style JOIN_STYLE [enumeration] Specifies whether round, miter or beveled joins should be used when offsetting corners in a line. Options are: • 0 — Round • 1 — Miter • 2 — Bevel Miter limit MITER_LIMIT [number] Default: 2.0 Controls the maximum distance from the offset curve to use when creating a mitered join (only applicable for miter join styles). Minimum: 1.0 continues on next page 1062 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.119 – pokračujte na předchozí stránce Label Název Type Popis Buffer OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output (buffer) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Buffer OUTPUT [vector: polygon] Output (buffer) polygon layer Python code Algorithm ID: native:singlesidedbuffer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Smooth Smooths the geometries in a line or polygon layer by adding more vertices and corners to the feature geometries. The iterations parameter dictates how many smoothing iterations will be applied to each geometry. A higher number of iterations results in smoother geometries with the cost of greater number of nodes in the geometries. Obr. 24.81: Increasing number of iterations causes smoother geometries The offset parameter controls how „tightly“ the smoothed geometries follow the original geometries. Smaller values results in a tighter fit, and larger values will create a looser fit. 24.1. QGIS algorithm provider 1063 QGIS Desktop 3.16 User Guide Obr. 24.82: Blue: the input layer. Offset 0.25 gives the red line, while offset 0.50 gives the green line. The maximum angle parameter can be used to prevent smoothing of nodes with large angles. Any node where the angle of the segments to either side is larger than this will not be smoothed. For example, setting the maximum angle to 90 degrees or lower would preserve right angles in the geometry. Allows features in-place modification Viz také: Simplify, Densify by count, Densify by interval 1064 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Input line or polygon vector layer Iterations ITERATIONS [number ] Default: 1 Increasing the number of iterations will give smoother geometries (and more vertices). Offset OFFSET [number ] Default: 0.25 Increasing values will move the smoothed lines / boundaries further away from the input lines / boundaries. Maximum node angle to smooth MAX_ANGLE [number ] Default: 180.0 Every node below this value will be smoothed Smoothed OUTPUT [same as input] Default: [Create temporary layer] Specify the output (smoothed) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Smoothed OUTPUT [same as input] Output (smoothed) vector layer Python code Algorithm ID: native:smoothgeometry import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Snap geometries to layer Snaps the geometries in a layer either to the geometries from another layer, or to geometries within the same layer. Matching is done based on a tolerance distance, and vertices will be inserted or removed as required to make the geometries match the reference geometries. Viz také: Snap points to grid 24.1. QGIS algorithm provider 1065 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Reference layer REFERENCE_LAYER[vector: any] Vector layer to snap to Tolerance TOLERANCE [number] Default: 10.0 Control how close input vertices need to be to the reference layer geometries before they are snapped. Behavior BEHAVIOR [enumeration] Default: 0 Snapping can be done to an existing node or a segment (its closest point to the vertex to move). Available snapping options: • 0 — Prefer aligning nodes, insert extra vertices where required Prefer to snap to nodes, even when a segment may be closer than a node. New nodes will be inserted to make geometries follow each other exactly when inside allowable tolerance. • 1 — Prefer closest point, insert extra vertices where required Snap to closest point, regardless of it is a node or a segment. New nodes will be inserted to make geometries follow each other exactly when inside allowable tolerance. • 2 — Prefer aligning nodes, don’t insert new vertices Prefer to snap to nodes, even when a segment may be closer than a node. No new nodes will be inserted. • 3 — Prefer closest point, don’t insert new vertices Snap to closest point, regardless of it is a node or a segment. No new nodes will be inserted. • 4 — Move end points only, prefer aligning nodes Only snap start/end points of lines (point features will also be snapped, polygon features will not be modified), prefer to snap to nodes. • 5 — Move end points only, prefer closest point Only snap start/end points of lines (point features will also be snapped, polygon features will not be modified), snap to closest point • 6 — Snap end points to end points only Only snap the start/end points of lines to other start/end points of lines • 7 — Snap to anchor nodes (single layer only) continues on next page 1066 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.121 – pokračujte na předchozí stránce Label Název Type Popis Snapped geometry OUTPUT [same as input] Default: [Create temporary layer] Specify the output (snapped) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Snapped geometry OUTPUT [same as input] Output (snapped) vector layer Python code Algorithm ID: native:snapgeometries import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Snap points to grid Modifies the coordinates of geometries in a vector layer, so that all points or vertices are snapped to the closest point of a grid. If the snapped geometry cannot be calculated (or is totally collapsed) the feature’s geometry will be cleared. Snapping can be performed on the X, Y, Z or M axis. A grid spacing of 0 for any axis will disable snapping for that axis. Poznámka: Snapping to grid may generate an invalid geometry in some corner cases. Allows features in-place modification Viz také: Snap geometries to layer 24.1. QGIS algorithm provider 1067 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer X Grid Spacing HSPACING [number ] Default: 1.0 Grid spacing on the X axis Y Grid Spacing VSPACING [number ] Default: 1.0 Grid spacing on the Y axis Z Grid Spacing ZSPACING [number ] Default: 0.0 Grid spacing on the Z axis M Grid Spacing MSPACING [number ] Default: 0.0 Grid spacing on the M axis Snapped OUTPUT [same as input] Default: [Create temporary layer] Specify the output (snapped) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Snapped OUTPUT [same as input] Output (snapped) vector layer Python code Algorithm ID: native:snappointstogrid import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1068 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Split lines by maximum length Takes a line (or curve) layer and splits each feature into multiple parts, where each part is of a specified maximum length. Z and M values at the start and end of the new line substrings are linearly interpolated from existing values. Parameters Label Název Type Popis Input layer INPUT [vector: line] The input line vector layer Maximum line length LENGTH [number ] Default: 10.0 The maximum length of a line in the output. Split OUTPUT [vector: line] Default: [Create temporary layer] Specify the output line vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Split OUTPUT [vector: line] The new line vector layer - the length of the feature geometries is less than or equal to the length specified in the LENGTH parameter. Python code Algorithm ID: native:splitlinesbylength import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Subdivide Subdivides the geometry. The returned geometry will be a collection containing subdivided parts from the original geometry, where no part has more than the specified maximum number of nodes. This is useful for dividing a complex geometry into less complex parts, easier to spatially index and faster to perform spatial operations. Curved geometries will be segmentized before subdivision. 24.1. QGIS algorithm provider 1069 QGIS Desktop 3.16 User Guide Obr. 24.83: Left the input layer, middle maximum nodes value is 100 and right maximum value is 200 Poznámka: Subdividing a geometry can generate geometry parts that may not be valid and may contain self- -intersections. Allows features in-place modification Viz také: Explode lines, Line substring Parameters Label Název Type Popis Input layer INPUT [vector: any] The input vector layer Maximum nodes in parts MAX_NODES [number ] Default: 256 Maximum number of vertices each new geometry part is allowed to have. Fewer sub-parts for higher values. Subdivided OUTPUT [same as input] Default: [Create temporary layer] Specify the output (subdivided) vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Subdivided OUTPUT [same as input] Output vector layer 1070 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: native:subdivide import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Swap X and Y coordinates Switches the X and Y coordinate values in input geometries. It can be used to repair geometries which have accidentally had their latitude and longitude values reversed. Allows features in-place modification Viz také: Translate, Rotate Parameters Label Název Type Popis Input layer INPUT [vector: any] The input vector layer Swapped OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Swapped OUTPUT [same as input] Output (swapped) vector layer Python code Algorithm ID: native:swapxy import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1071 QGIS Desktop 3.16 User Guide Tapered buffers Creates tapered buffer along line geometries, using a specified start and end buffer diameter. Obr. 24.84: Tapered buffer example Viz také: Variable width buffer (by M value), Buffer, Create wedge buffers Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Start width START_WIDTH [number ] Default: 0.0 Represents the radius of the buffer applied at the start point of the line feature End width END_WIDTH [number ] Default: 0.0 Represents the radius of the buffer applied at the end point of the line feature. Segments SEGMENTS [number ] Default: 16 Controls the number of line segments to use to approximate a quarter circle when creating rounded offsets. continues on next page 1072 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.123 – pokračujte na předchozí stránce Label Název Type Popis Buffered OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output (buffer) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Buffered OUTPUT [vector: polygon] Output (buffer) polygon layer Python code Algorithm ID: native:taperedbuffer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Tessellate Tessellates a polygon geometry layer, dividing the geometries into triangular components. The output layer consists of multipolygon geometries for each input feature, with each multipolygon consisting of multiple triangle component polygons. Obr. 24.85: Tessellated polygon (right) Allows features in-place modification 24.1. QGIS algorithm provider 1073 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: polygon] Input polygon vector layer Tesselated OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Tesselated OUTPUT [vector: polygon] Output multipolygonZ layer Python code Algorithm ID: 3d:tessellate import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Transect Creates transects on vertices for (multi)linestring. A transect is a line oriented from an angle (by default perpendicular) to the input polylines (at vertices). Field(s) from feature(s) are returned in the transect with these new fields: • TR_FID: ID of the original feature • TR_ID: ID of the transect. Each transect have an unique ID • TR_SEGMENT: ID of the segment of the linestring • TR_ANGLE: Angle in degrees from the original line at the vertex • TR_LENGTH: Total length of the transect returned • TR_ORIENT: Side of the transect (only on the left or right of the line, or both side) 1074 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.86: Dashed red lines represent the transect of the input line layer Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Length of the transect LENGTH [number ] Default: 5.0 Length in map unit of the transect Angle in degrees from the original line at the vertices ANGLE [number ] Default: 90.0 Change the angle of the transect Side to create the transect SIDE [enumeration] Choose the side of the transect. Available options are: • 0 — Left • 1 — Right • 2 — Both Transect OUTPUT [vector: line] Default: [Create temporary layer] Specify the output line layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1075 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Transect OUTPUT [vector: line] Output line layer Python code Algorithm ID: native:transect import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Translate Moves the geometries within a layer, by offsetting with a predefined X and Y displacement. Z and M values present in the geometry can also be translated. Obr. 24.87: Dashed lines represent the translated geometry of the input layer Allows features in-place modification Viz také: Array of translated features, Offset lines, Rotate, Swap X and Y coordinates Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Offset distance (x- -axis) DELTA_X [number ] Default: 0.0 Displacement to apply on the X axis Offset distance (y- -axis) DELTA_Y [number ] Default: 0.0 Displacement to apply on the Y axis continues on next page 1076 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.125 – pokračujte na předchozí stránce Label Název Type Popis Offset distance (z- axis) DELTA_Z [number ] Default: 0.0 Displacement to apply on the Z axis Offset distance (m values) DELTA_M [number ] Default: 0.0 Displacement to apply on the M axis Translated OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Translated OUTPUT [same as input] Output vector layer Python code Algorithm ID: native:translategeometry import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Variable distance buffer Computes a buffer area for all the features in an input layer. The size of the buffer for a given feature is defined by an attribute, so it allows different features to have different buffer sizes. Poznámka: This algorithm is only available from the Graphical modeler. Viz také: Buffer 24.1. QGIS algorithm provider 1077 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Distance field DISTANCE [tablefield: numeric] Attribute for the distance radius of the buffer Segments SEGMENTS [number] Default: 5 Controls the number of line segments to use to approximate a quarter circle when creating rounded offsets. Dissolve result DISSOLVE [boolean] Default: False Choose to dissolve the final buffer, resulting in a single feature covering all input features. Obr. 24.88: Normal and dissolved buffer End cap style END_CAP_STYLE [enumeration] Controls how line endings are handled in the buffer. Obr. 24.89: Round, flat and square cap styles Join style JOIN_STYLE [enumeration] Specifies whether round, miter or beveled joins should be used when offsetting corners in a line. Miter limit MITER_LIMIT [number] Default: 2.0 Only applicable for mitered join styles, and controls the maximum distance from the offset curve to use when creating a mitered join. Outputs Label Název Type Popis Buffer OUTPUT [vector: polygon] Buffer polygon vector layer. Python code Algorithm ID: qgis:variabledistancebuffer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1078 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Variable width buffer (by M value) Creates variable width buffers along lines, using the M value of the line geometries as the diameter of the buffer at each vertex. Obr. 24.90: Variable buffer example Viz také: Tapered buffers, Buffer, Set M value Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line vector layer Segments SEGMENTS [number ] Default: 16 Number of the buffer segments per quarter circle. It can be a unique value (same value for all the features), or it can be taken from features data (the value can depend on feature attributes). Buffered OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output (buffer) layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1079 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Buffered OUTPUT [vector: polygon] Variable buffer polygon layer Python code Algorithm ID: native:bufferbym import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Voronoi polygons Takes a point layer and generates a polygon layer containing the Voronoi polygons (known also as Thiessen polygons) corresponding to those input points. Any location within a Voronoi polygon is closer to the associated point than to any other point. 1080 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.91: Voronoi polygons Default menu: Vector ► Geometry Tools Parameters Label Název Type Popis Input layer INPUT [vector: point] Input point vector layer Buffer region (% of extent) BUFFER [number] Default: 0.0 The extent of the output layer will be this much bigger than the extent of the input layer Voronoi polygons OUTPUT [vector: polygon] Default: [Create temporary layer] Specify the output layer (with the Voronoi polygons). One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1081 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Voronoi polygons OUTPUT [vector: polygon] Voronoi polygons of the input point vector layer Python code Algorithm ID: qgis:voronoipolygons import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.17 Vector overlay Clip Clips a vector layer using the features of an additional polygon layer. Only the parts of the features in the input layer that fall within the polygons of the overlay layer will be added to the resulting layer. Varování: Feature modification The attributes of the features are not modified, although properties such as area or length of the features will be modified by the clipping operation. If such properties are stored as attributes, those attributes will have to be manually updated. This algorithm uses spatial indexes on the providers, prepared geometries and apply a clipping operation if the geometry isn’t wholly contained by the mask geometry. 1082 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.92: Clipping operation between a two-features input layer and a single feature overlay layer (left) - resulting features are moved for clarity (right) Allows features in-place modification Default menu: Vector ► Geoprocessing Tools Viz také: Intersection, Difference Parameters Label Název Type Popis Input layer INPUT [vector: any] Layer containing the features to be clipped Overlay layer OVERLAY [vector: polygon] Layer containing the clipping features Clipped OUTPUT [same as input] Default: [Create temporary layer] Specify the layer to contain the features from the input layer that are inside the overlay (clipping) layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Clipped OUTPUT [same as input] Layer containing features from the input layer split by the overlay layer. 24.1. QGIS algorithm provider 1083 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:clip import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Difference Extracts features from the input layer that don’t fall within the boundaries of the overlay layer. Input layer features that partially overlap the overlay layer feature(s) are split along the boundary of those feature(s) and only the portions outside the overlay layer features are retained. Attributes are not modified (see warning). Obr. 24.93: Difference operation between a two-features input layer and a single feature overlay layer (left) - resulting features are moved for clarity (right) Allows features in-place modification Default menu: Vector ► Geoprocessing Tools Viz také: Symmetrical difference, Clip 1084 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Layer to extract (parts of) features from. Overlay layer OVERLAY [vector: any] Layer containing the geometries that will be subtracted from the input layer geometries. It is expected to have at least as many dimensions (point: 0D, line: 1D, polygon: 2D, volume: 3D) as the input layer geometries. Difference OUTPUT [same as input] Default: [Create temporary layer] Specify the layer to contain the (parts of) features from the input layer that are not inside the overlay layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Difference OUTPUT [same as input] Layer containing (parts of) features from the input layer not overlapping the overlay layer. Python code Algorithm ID: qgis:difference import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract/clip by extent Creates a new vector layer that only contains features which fall within a specified extent. Any features which intersect the extent will be included. Viz také: Clip 24.1. QGIS algorithm provider 1085 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Layer to extract (parts of) features from. Extent (xmin, xmax, ymin, ymax) EXTENT [extent] Extent for clipping. Clip features to extent CLIP [boolean] Default: False If checked, output geometries will be automatically converted to multi geometries to ensure uniform output types. Moreover the geometries will be clipped to the extent chosen instead of taking the whole geometry as output. Extracted OUTPUT [same as input] Default: [Create temporary layer] Specify the layer to contain the features from the input layer that are inside the clip extent. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Extracted OUTPUT [same as input] Layer containing the clipped features. Python code Algorithm ID: qgis:extractbyextent import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Intersection Extracts the portions of features from the input layer that overlap features in the overlay layer. Features in the intersection layer are assigned the attributes of the overlapping features from both the input and overlay layers. Attributes are not modified (see warning). 1086 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.94: The intersection operation: A two-features input layer and a single feature overlay layer (left) - resulting features are moved for clarity (right) Default menu: Vector ► Geoprocessing Tools Viz také: Clip, Difference Parameters Label Název Type Popis Input layer INPUT [vector: any] Layer to extract (parts of) features from. Overlay layer OVERLAY [vector: any] Layer containing the features to check for overlap. Its features‘ geometry is expected to have at least as many dimensions (point: 0D, line: 1D, polygon: 2D, volume: 3D) as the input layer’s. Input fields to keep (leave empty to keep all fields) Optional INPUT_FIELDS [tablefield: any] [list] Default: None Field(s) of the input layer to keep in the output. If no fields are chosen all fields are taken. Overlay fields to keep (leave empty to keep all fields) Optional OVERLAY_FIELDS [tablefield: any] [list] Default: None Field(s) of the overlay layer to keep in the output. If no fields are chosen all fields are taken. Overlay fields prefix Optional OVERLAY_FIELDS_PREFIX[string] Prefix to add to the field names of the intersect layer’s fields to avoid name collisions with fields in the input layer. continues on next page 24.1. QGIS algorithm provider 1087 QGIS Desktop 3.16 User Guide Tabulka 24.127 – pokračujte na předchozí stránce Label Název Type Popis Intersection OUTPUT [same as input] Default: [Create temporary layer] Specify the layer to contain (the parts of) the features from the input layer that overlap one or more features from the overlay layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Intersection OUTPUT [same as input] Layer containing (parts of) features from the input layer that overlap the overlay layer. Python code Algorithm ID: qgis:intersection import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Line intersections Creates point features where the lines from the two layers intersect. 1088 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Obr. 24.95: Points of intersection Default menu: Vector ► Analysis Tools Parameters Label Název Type Popis Input layer INPUT [vector: line] Input line layer. Intersect layer INTERSECT [vector: line] Layer to use to find line intersections. Input fields to keep (leave empty to keep all fields) Optional INPUT_FIELDS [tablefield: any] [list] Default: None Field(s) of the input layer to keep in the output. If no fields are chosen all fields are taken. Intersect fields to keep (leave empty to keep all fields) Optional INTERSECT_FIELDS[tablefield: any] [list] Default: None Field(s) of the intersect layer to keep in the output. If no fields are chosen all fields are taken. Intersect fields prefix Optional OVERLAY_FIELDS_PREFIX[string] Prefix to add to the field names of the intersect layer’s fields to avoid name collisions with fields in the input layer. continues on next page 24.1. QGIS algorithm provider 1089 QGIS Desktop 3.16 User Guide Tabulka 24.129 – pokračujte na předchozí stránce Label Název Type Popis Intersection OUTPUT [vector: point] Default: [Create temporary layer] Specify the layer to contain the intersection points of the lines from the input and overlay layers. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Intersections OUTPUT [vector: point] Point vector layer with the intersections. Python code Algorithm ID: qgis:lineintersections import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Split with lines Splits the lines or polygons in one layer using the lines in another layer to define the breaking points. Intersection between geometries in both layers are considered as split points. Output will contain multi geometries for split features. Obr. 24.96: Split lines Allows features in-place modification 1090 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: line, polygon] Layer containing the lines or polygons to split. Split layer LINES [vector: line] Line layer whose lines are used to define the breaking points. Split OUTPUT [same as input] Default: [Create temporary layer] Specify the layer to contain the splitted (in case they are intersected by a line in the split layer) line/polygon features from the input layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Split OUTPUT [same as input] Output vector layer with split lines or polygons from input layer. Python code Algorithm ID: qgis:splitwithlines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Symmetrical difference Creates a layer containing features from both the input and overlay layers but with the overlapping areas between the two layers removed. The attribute table of the symmetrical difference layer contains attributes and fields from both the input and overlay layers. Attributes are not modified (see warning). 24.1. QGIS algorithm provider 1091 QGIS Desktop 3.16 User Guide Obr. 24.97: Symmetrical difference operation between a two-features input layer and a single feature overlay layer (left) - resulting features are moved for clarity (right) Default menu: Vector ► Geoprocessing Tools Viz také: Difference, Clip, Intersection Parameters Label Název Type Popis Input layer INPUT [vector: any] First layer to extract (parts of) features from. Overlay layer OVERLAY [vector: any] Second layer to extract (parts of) features from. Ideally the geometry type should be the same as input layer. Overlay fields prefix Optional OVERLAY_FIELDS_PREFIX[string] Prefix to add to the field names of the overlay layer’s fields to avoid name collisions with fields in the input layer. Symmetrical difference OUTPUT [same as input] Default: [Create temporary layer] Specify the layer to contain (the parts of) the features from the input and overlay layers that do not overlap features from the other layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. 1092 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Symmetrical difference OUTPUT [same as input] Layer containing (parts of) features from each layer not overlapping the other layer. Python code Algorithm ID: qgis:symmetricaldifference import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Union Checks overlaps between features within the input layer and creates separate features for overlapping and non-overlapping parts. The area of overlap will create as many identical overlapping features as there are features that participate in that overlap. Obr. 24.98: Union operation with a single input layer of three overlapping features (left) - resulting features are moved for clarity (right) An overlay layer can also be used, in which case features from each layer are split at their overlap with features from the other one, creating a layer containing all the portions from both input and overlay layers. The attribute table of the union layer is filled with attribute values from the respective original layer for non-overlapping features, and attribute values from both layers for overlapping features. 24.1. QGIS algorithm provider 1093 QGIS Desktop 3.16 User Guide Obr. 24.99: Union operation between a two-features input layer and a single feature overlay layer (left) - resulting features are moved for clarity (right) Poznámka: For union(A,B) algorithm, if there are overlaps among geometries of layer A or among geometries of layer B, these are not resolved: you need to do union(union(A,B)) to resolve all overlaps, i.e. run single layer union(X) on the produced result X=union(A,B). Default menu: Vector ► Geoprocessing Tools Viz také: Clip, Difference, Intersection Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer to split at any intersections. Overlay layer Optional OVERLAY [vector: any] Layer that will be combined to the first one. Ideally the geometry type should be the same as input layer. Overlay fields prefix Optional OVERLAY_FIELDS_PREFIX[string] Prefix to add to the field names of the overlay layer’s fields to avoid name collisions with fields in the input layer. Union OUTPUT [same as input] Default: [Create temporary layer] Specify the layer to contain the (split and duplicated) features from the input layer and the overlay layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. 1094 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Union OUTPUT [same as input] Layer containing all the overlapping and non-overlapping parts from the processed layer(s). Python code Algorithm ID: qgis:union import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.18 Vector selection Extract by attribute Creates two vector layers from an input layer: one will contain only matching features while the second will contain all the non-matching features. The criteria for adding features to the resulting layer is based on the values of an attribute from the input layer. Viz také: Select by attribute Parameters Label Název Type Popis Input layer INPUT [vector: any] Layer to extract features from. Selection attribute FIELD [tablefield: any] Filtering field of the layer Operator OPERATOR [enumeration] Default: 0 Many different operators are available: • 0 — = • 1 — ̸= • 2 — > • 3 — >= • 4 — < • 5 — <= • 6 — begins with • 7 — contains • 8 — is null • 9 — is not null • 10 — does not contain Value Optional VALUE [string] Value to be evaluated continues on next page 24.1. QGIS algorithm provider 1095 QGIS Desktop 3.16 User Guide Tabulka 24.130 – pokračujte na předchozí stránce Label Název Type Popis Extracted (attribute) OUTPUT [same as input] Default: [Create Temporary Layer] Specify the output vector layer for matching features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Extracted (non- -matching) FAIL_OUTPUT [same as input] Default: [Skip output] Specify the output vector layer for non-matching features. One of: • Skip Output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… Outputs Label Název Type Popis Extracted (attribute) OUTPUT [same as input] Vector layer with matching features from the input layer Extracted (non- -matching) FAIL_OUTPUT [same as input] Vector layer with non-matching features from the input layer Python code Algorithm ID: qgis:extractbyattribute import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract by expression Creates two vector layers from an input layer: one will contain only matching features while the second will contain all the non-matching features. The criteria for adding features to the resulting layer is based on a QGIS expression. For more information about expressions see the Výrazy. Viz také: Select by expression 1096 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Expression EXPRESSION [expression] Expression to filter the vector layer Matching features OUTPUT [same as input] Default: [Create Temporary Layer] Specify the output vector layer for matching features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Non-matching FAIL_OUTPUT [same as input] Default: [Skip output] Specify the output vector layer for non-matching features. One of: • Skip Output • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… Outputs Label Název Type Popis Matching features OUTPUT [same as input] Vector layer with matching features from the input layer Non-matching FAIL_OUTPUT [same as input] Vector layer with non-matching features from the input layer Python code Algorithm ID: qgis:extractbyexpression import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract by location Creates a new vector layer that only contains matching features from an input layer. The criteria for adding features to the resulting layer is based on the spatial relationship between each feature and the features in an additional layer. 24.1. QGIS algorithm provider 1097 QGIS Desktop 3.16 User Guide Obr. 24.100: In this example, the dataset from which we want to select (the source vector layer) consists of the green circles, the orange rectangle is the dataset that it is being compared to (the intersection vector layer). Available geometric predicates are: Intersect Tests whether a geometry intersects another. Returns 1 (true) if the geometries spatially intersect (share any portion of space - overlap or touch) and 0 if they don’t. In the picture above, this will select circles 1, 2 and 3. Contain Returns 1 (true) if and only if no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a. In the picture, no circle is selected, but the rectangle would be if you would select it the other way around, as it contains a circle completely. This is the opposite of are within. Disjoint Returns 1 (true) if the geometries do not share any portion of space (no overlap, not touching). Only circle 4 is selected. Equal Returns 1 (true) if and only if geometries are exactly the same. No circles will be selected. Touch Tests whether a geometry touches another. Returns 1 (true) if the geometries have at least one point in common, but their interiors do not intersect. Only circle 3 is selected. Overlap Tests whether a geometry overlaps another. Returns 1 (true) if the geometries share space, are of the same dimension, but are not completely contained by each other. Only circle 2 is selected. Are within Tests whether a geometry is within another. Returns 1 (true) if geometry a is completely inside geometry b. Only circle 1 is selected. Cross Returns 1 (true) if the supplied geometries have some, but not all, interior points in common and the actual crossing is of a lower dimension than the highest supplied geometry. For example, a line crossing a polygon will cross as a line (selected). Two lines crossing will cross as a point (selected). Two polygons cross as a polygon (not selected). Viz také: Select by location 1098 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Extract features from INPUT [vector: any] Input vector layer Where the features (geometric predicate) PREDICATE [enumeration] [list] Default: [0] Spatial condition for the selection. One or more of: • 0 — intersect • 1 — contain • 2 — disjoint • 3 — equal • 4 — touch • 5 — overlap • 6 — are within • 7 — cross If more than one condition is chosen, at least one of them (OR operation) has to be met for a feature to be extracted. By comparing to the features from INTERSECT [vector: any] Intersection vector layer Extracted (location) OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer for the features that have the chosen spatial relationship(s) with one or more features in the comparison layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… Outputs Label Název Type Popis Extracted (location) OUTPUT [same as input] Vector layer with features from the input layer that have the chosen spatial relationship(s) with one or more features in the comparison layer. Python code Algorithm ID: qgis:extractbylocation import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1099 QGIS Desktop 3.16 User Guide Random extract Takes a vector layer and generates a new one that contains only a subset of the features in the input layer. The subset is defined randomly, based on feature IDs, using a percentage or count value to define the total number of features in the subset. Viz také: Random selection Parameters Label Název Type Popis Input layer INPUT [vector: any] Source vector layer to select the features from Method METHOD [enumeration] Default: 0 Random selection methods. One of: • 0 — Number of selected features • 1 — Percentage of selected features Number/percentage of selected features NUMBER [number] Default: 10 Number or percentage of features to select Extracted (random) OUTPUT [vector: any] Default: [Create temporary layer] Specify the output vector layer for the randomly selected features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… Vector layer containing randomly selected features Outputs Label Název Type Popis Extracted (random) OUTPUT [same as input] Vector layer containing randomly selected features from the input layer Python code Algorithm ID: qgis:randomextract import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1100 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Random extract within subsets Takes a vector layer and generates a new one that contains only a subset of the features in the input layer. The subset is defined randomly, based on feature IDs, using a percentage or count value to define the total number of features in the subset. The percentage/count value is not applied to the whole layer, but instead to each category. Categories are defined according to a given attribute. Viz také: Random selection within subsets Parameters Label Název Type Popis Input layer INPUT [vector: any] Vector layer to select the features from ID field FIELD [tablefield: any] Category of the source vector layer to select the features from Method METHOD [enumeration] Default: 0 Random selection method. One of: • 0 — Number of selected features • 1 — Percentage of selected features Number/percentage of selected features NUMBER [number] Default: 10 Number or percentage of features to select Extracted (random stratified) OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer for the randomly selected features. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Extracted (random stratified) OUTPUT [same as input] Vector layer containing randomly selected features from the input layer Python code Algorithm ID: qgis:randomextractwithinsubsets import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1101 QGIS Desktop 3.16 User Guide Random selection Takes a vector layer and selects a subset of its features. No new layer is generated by this algorithm. The subset is defined randomly, based on feature IDs, using a percentage or count value to define the total number of features in the subset. Default menu: Vector ► Research Tools Viz také: Random extract Parameters Label Název Type Popis Input layer INPUT [vector: any] Vector layer for the selection Method METHOD [enumeration] Default: 0 Random selection method. One of: • 0 — Number of selected features • 1 — Percentage of selected features Number/percentage of selected features NUMBER [number] Default: 10 Number or percentage of features to select Outputs Label Název Type Popis Input layer INPUT [same as input] The input layer with features selected Python code Algorithm ID: qgis:randomselection import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Random selection within subsets Takes a vector layer and selects a subset of its features. No new layer is generated by this algorithm. The subset is defined randomly, based on feature IDs, using a percentage or count value to define the total number of features in the subset. The percentage/count value is not applied to the whole layer, but instead to each category. Categories are defined according to a given attribute, which is also specified as an input parameter for the algorithm. No new outputs are created. Default menu: Vector ► Research Tools 1102 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Viz také: Random extract within subsets Parameters Label Název Type Popis Input layer INPUT [vector: any] Vector layer to select features in ID field FIELD [tablefield: any] Category of the input layer to select the features from Method METHOD [enumeration] Default: 0 Random selection method. One of: • 0 — Number of selected features • 1 — Percentage of selected features Number/percentage of selected features NUMBER [number] Default: 10 Number or percentage of features to select Outputs Label Název Type Popis Input layer INPUT [same as input] The input layer with features selected Python code Algorithm ID: qgis:randomselectionwithinsubsets import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Select by attribute Creates a selection in a vector layer. The criteria for selecting features is based on the values of an attribute from the input layer. Viz také: Extract by attribute 24.1. QGIS algorithm provider 1103 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] Vector layer to select features in Selection attribute FIELD [tablefield: any] Filtering field of the layer Operator OPERATOR [enumeration] Default: 0 Many different operators are available: • 0 — = • 1 — ̸= • 2 — > • 3 — >= • 4 — < • 5 — <= • 6 — begins with • 7 — contains • 8 — is null • 9 — is not null • 10 — does not contain Value Optional VALUE [string] Value to be evaluated Modify current selection by METHOD [enumeration] Default: 0 How the selection of the algorithm should be managed. One of: • 0 — creating new selection • 1 — adding to current selection • 2 — removing from current selection • 3 — selecting within current selection Outputs Label Název Type Popis Input layer INPUT [same as input] The input layer with features selected Python code Algorithm ID: qgis:selectbyattribute import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1104 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Select by expression Creates a selection in a vector layer. The criteria for selecting features is based on a QGIS expression. For more information about expressions see the Výrazy. Viz také: Extract by expression Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Expression EXPRESSION [expression] Expression to filter the input layer Modify current selection by METHOD [enumeration] Default: 0 How the selection of the algorithm should be managed. One of: • 0 — creating new selection • 1 — adding to current selection • 2 — removing from current selection • 3 — selecting within current selection Outputs Label Název Type Popis Input layer INPUT [same as input] The input layer with features selected Python code Algorithm ID: qgis:selectbyexpression import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Select by location Creates a selection in a vector layer. The criteria for selecting features is based on the spatial relationship between each feature and the features in an additional layer. 24.1. QGIS algorithm provider 1105 QGIS Desktop 3.16 User Guide Obr. 24.101: In this example, the dataset from which we want to select (the source vector layer) consists of the green circles, the orange rectangle is the dataset that it is being compared to (the intersection vector layer). Available geometric predicates are: Intersect Tests whether a geometry intersects another. Returns 1 (true) if the geometries spatially intersect (share any portion of space - overlap or touch) and 0 if they don’t. In the picture above, this will select circles 1, 2 and 3. Contain Returns 1 (true) if and only if no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a. In the picture, no circle is selected, but the rectangle would be if you would select it the other way around, as it contains a circle completely. This is the opposite of are within. Disjoint Returns 1 (true) if the geometries do not share any portion of space (no overlap, not touching). Only circle 4 is selected. Equal Returns 1 (true) if and only if geometries are exactly the same. No circles will be selected. Touch Tests whether a geometry touches another. Returns 1 (true) if the geometries have at least one point in common, but their interiors do not intersect. Only circle 3 is selected. Overlap Tests whether a geometry overlaps another. Returns 1 (true) if the geometries share space, are of the same dimension, but are not completely contained by each other. Only circle 2 is selected. Are within Tests whether a geometry is within another. Returns 1 (true) if geometry a is completely inside geometry b. Only circle 1 is selected. Cross Returns 1 (true) if the supplied geometries have some, but not all, interior points in common and the actual crossing is of a lower dimension than the highest supplied geometry. For example, a line crossing a polygon will cross as a line (selected). Two lines crossing will cross as a point (selected). Two polygons cross as a polygon (not selected). Default menu: Vector ► Research Tools Viz také: Extract by location 1106 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Select features from INPUT [vector: any] Input vector layer Where the features (geometric predicate) PREDICATE [enumeration] [list] Default: [0] Spatial condition for the selection. One or more of: • 0 — intersect • 1 — contain • 2 — disjoint • 3 — equal • 4 — touch • 5 — overlap • 6 — are within • 7 — cross If more than one condition is chosen, at least one of them (OR operation) has to be met for a feature to be extracted. By comparing to the features from INTERSECT [vector: any] Intersection vector layer Modify current selection by METHOD [enumeration] Default: 0 How the selection of the algorithm should be managed. One of: • 0 — creating new selection • 1 — adding to current selection • 2 — selecting within current selection • 3 — removing from current selection Outputs Label Název Type Popis Input layer INPUT [same as input] The input layer with features selected Python code Algorithm ID: qgis:selectbylocation import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1107 QGIS Desktop 3.16 User Guide 24.1.19 Vector table Add autoincremental field Adds a new integer field to a vector layer, with a sequential value for each feature. This field can be used as a unique ID for features in the layer. The new attribute is not added to the input layer but a new layer is generated instead. The initial starting value for the incremental series can be specified. Optionally, the incremental series can be based on grouping fields and a sort order for features can also be specified. Parameters Label Název Type Popis Input layer INPUT [vector: any] The input vector layer. Field name FIELD_NAME [string] Default: ‚AUTO‘ Name of the field with autoincremental values Start values at Optional START [number] Default: 0 Choose the initial number of the incremental count Group values by Optional GROUP_FIELDS [tablefield: any] [list] Select grouping field(s): instead of a single count run for the whole layer, a separate count is processed for each value returned by the combination of these fields. Sort expression Optional SORT_EXPRESSION[expression] Use an expression to sort the features in the layer either globally or if set, based on group fields. Sort ascending SORT_ASCENDING [boolean] Default: True When a sort expression is set, use this option to control the order in which features are assigned values. Sort nulls first SORT_NULLS_FIRST[boolean] Default: False When a sort expression is set, use this option to set whether Null values are counted first or last. Incremented OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer with the auto increment field. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. Outputs Label Název Type Popis Incremented OUTPUT [same as input] Vector layer with auto incremental field 1108 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:addautoincrementalfield import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Add field to attributes table Adds a new field to a vector layer. The name and characteristics of the attribute are defined as parameters. The new attribute is not added to the input layer but a new layer is generated instead. Parameters Label Název Type Popis Input layer INPUT [vector: any] The input layer Field name FIELD_NAME [string] Name of the new field Field type FIELD_TYPE [enumeration] Default: 0 Type of the new field. You can choose between: • 0 — Integer • 1 — Float • 2 — String Field length FIELD_LENGTH [number] Default: 10 Length of the field Field precision FIELD_PRECISION[number] Default: 0 Precision of the field. Useful with Float field type. Added OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Added OUTPUT [same as input] Vector layer with new field added 24.1. QGIS algorithm provider 1109 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:addfieldtoattributestable import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Add unique value index field Takes a vector layer and an attribute and adds a new numeric field. Values in this field correspond to values in the specified attribute, so features with the same value for the attribute will have the same value in the new numeric field. This creates a numeric equivalent of the specified attribute, which defines the same classes. The new attribute is not added to the input layer but a new layer is generated instead. Parameters Label Název Type Popis Input layer INPUT [vector: any] The input layer. Class field FIELD [tablefield: any] Features that have the same value for this field will get the same index. Output field name FIELD_NAME [string] Default: ‚NUM_FIELD‘ Name of the new field containing the indexes. Layer with index field OUTPUT [vector: any] Default: [Create temporary layer] Vector layer with the numeric field containing indexes. One of: • Skip Output • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Class summary SUMMARY_OUTPUT [table] Default: [Skip output] Specify the table to contain the summary of the class field mapped to the corresponding unique value. One of: • Skip Output • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. 1110 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Layer with index field OUTPUT [same as input] Vector layer with the numeric field containing indexes. Class summary SUMMARY_OUTPUT [table] Default: [Skip Output] Table with summary of the class field mapped to the corresponding unique value. Python code Algorithm ID: qgis:adduniquevalueindexfield import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Add X/Y fields to layer Adds X and Y (or latitude/longitude) fields to a point layer. The X/Y fields can be calculated in a different CRS to the layer (e.g. creating latitude/longitude fields for a layer in a projected CRS). Parameters Label Název Type Popis Input layer INPUT [vector: point] The input layer. Coordinate system CRS [crs] Default: „EPSG:4326“ Coordinate reference system to use for the generated x and y fields. Field prefix Optional PREFIX [string] Prefix to add to the new field names to avoid name collisions with fields in the input layer. Added fields OUTPUT [vector: point] Default: [Create temporary layer] Specify the output layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1111 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Added fields OUTPUT [vector: point] The output layer - identical to the input layer but with two new double fields, x and y. Python code Algorithm ID: qgis:addxyfieldstolayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Advanced Python field calculator Adds a new attribute to a vector layer, with values resulting from applying an expression to each feature. The expression is defined as a Python function. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Result field name FIELD_NAME [string] Default: ‚NewField‘ Name of the new field Field type FIELD_TYPE [enumeration] Default: 0 Type of the new field. One of: • 0 — Integer • 1 — Float • 2 — String Field length FIELD_LENGTH [number] Default: 10 Length of the field Field precision FIELD_PRECISION[number] Default: 3 Precision of the field. Useful with Float field type. Global expression Optional GLOBAL [string] The code in the global expression section will be executed only once before the calculator starts iterating through all the features of the input layer. Therefore, this is the correct place to import necessary modules or to calculate variables that will be used in subsequent calculations. Formula FORMULA [string] The Python formula to evaluate. Example: To calculate the area of an input polygon layer you can add: value = $geom.area() continues on next page 1112 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.140 – pokračujte na předchozí stránce Label Název Type Popis Calculated OUTPUT [same as input] Default: [Create temporary layer] Specify the vector layer with the new calculated field. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Calculated OUTPUT [same as input] Vector layer with the new calculated field Python code Algorithm ID: qgis:advancedpythonfieldcalculator import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Drop field(s) Takes a vector layer and generates a new one that has the same features but without the selected columns. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer to drop field(s) from Fields to drop COLUMN [tablefield: any] [list] The field(s) to drop Remaining fields OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer with the remaining fields. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. 24.1. QGIS algorithm provider 1113 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Remaining fields OUTPUT [same as input] Vector layer with the remaining fields Python code Algorithm ID: qgis:deletecolumn import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Explode HStore Field Creates a copy of the input layer and adds a new field for every unique key in the HStore field. The expected field list is an optional comma separated list. If this list is specified, only these fields are added and the HStore field is updated. By default, all unique keys are added. The PostgreSQL HStore is a simple key-value store used in PostgreSQL and OGR (when reading an OSM file with the other_tags field. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer HStore field FIELD [tablefield: any] The field(s) to drop Expected list of fields separated by a comma Optional EXPECTED_FIELDS[string] Default: ‚‘ Comma-separated list of fields to extract. The HStore field will be updated by removing these keys. Exploded OUTPUT [same as input] Default: [Create temporary layer] Specify the output vector layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. 1114 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Exploded OUTPUT [same as input] Output vector layer Python code Algorithm ID: qgis:explodehstorefield import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract binary field Extracts contents from a binary field, saving them to individual files. Filenames can be generated using values taken from an attribute in the source table or based on a more complex expression. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer containing the binary data Binary field FIELD [tablefield: any] Field containing the binary data File name FILENAME [expression] Field or expression-based text to name each output file Destination folder FOLDER [folder] Default: [Save to a temporary folder] Folder in which to store the output files. One of: • Save to a Temporary Directory • Save to Directory… The file encoding can also be changed here. Outputs Label Název Type Popis Folder FOLDER [folder] The folder that contains the output files. Python code Algorithm ID: qgis:extractbinary import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1115 QGIS Desktop 3.16 User Guide Feature filter Filters features from the input layer and redirects them to one or several outputs. If you do not know about any attribute names that are common to all possible input layers, filtering is only possible on the feature geometry and general record mechanisms, such as $id and uuid. Poznámka: This algorithm is only available from the Graphical modeler. Parameters Label Název Type Popis Input layer INPUT [vector: any] The input layer. Outputs and filters (one or more) OUTPUT_ [same as input] The output layers with filters (as many as there are filters). Outputs Label Název Type Popis Output (one or more) native:filter_1:OUTPUT_ [same as input] The output layers with filtered features (as many as there are filters). Python code Algorithm ID: qgis:featurefilter import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Field calculator Opens the field calculator (see Výrazy). You can use all the supported expressions and functions. A new layer is created with the result of the expression. The field calculator is very useful when used in The graphical modeler. 1116 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] The layer to calculate on Output field name FIELD_NAME [string] The name of the field for the results Output field type FIELD_TYPE [enumeration] Default: 0 The type of the field. One of: • 0 — Float • 1 — Integer • 2 — String • 3 — Date Output field width FIELD_LENGTH [number] Default: 10 The length of the result field (minimum 0) Field precision FIELD_PRECISION[number] Default: 3 The precision of the result field (minimum 0, maximum 15) Create new field NEW_FIELD [boolean] Default: True Should the result field be a new field Formula FORMULA [expression] The formula to use to calculate the result Output file OUTPUT [vector: any] Default: [Save to temporary file] Specification of the output layer. Outputs Label Název Type Popis Calculated OUTPUT [vector: any] Output layer with the calculated field values Python code Algorithm ID: qgis:fieldcalculator import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Refactor fields Allows editing the structure of the attribute table of a vector layer. Fields can be modified in their type and name, using a fields mapping. The original layer is not modified. A new layer is generated, which contains a modified attribute table, according to the provided fields mapping. Refactor layer fields allows to: • Change field names and types • Add and remove fields • Reorder fields 24.1. QGIS algorithm provider 1117 QGIS Desktop 3.16 User Guide • Calculate new fields based on expressions • Load field list from another layer Obr. 24.102: Refactor fields dialog Parameters Label Název Type Popis Input layer INPUT [vector: any] The layer to modify continues on next page 1118 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.143 – pokračujte na předchozí stránce Label Název Type Popis Fields mapping FIELDS_MAPPING [list] List of output fields with their definitions. The embedded table lists all the fields of the source layer and allows you to edit them: • Click to create a new field. • Click to remove a field. • Use and to change the selected field order. • Click to reset to the default view. For each of the fields you’d like to reuse, you need to fill the following options: Source expression (expression) [expression] Field or expression from the input layer. Field name (name) [string] Name of the field in the output layer. By default input field name is kept. Type (type) [enumeration] Data type of the output field. One of: • Date (14) • DateTime (16) • Double (6) • Integer (2) • Integer64 (4) • String (10) • Boolean (1) Length (length) [number] Length of the output field. Precision (precision) [number] Precision of the output field. Fields from another layer can be loaded into the field list in Load fields from layer. Refactored OUTPUT [vector: any] Default: [Create temporary layer] Specification of the output layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Refactored OUTPUT [vector: any] Output layer with refactored fields 24.1. QGIS algorithm provider 1119 QGIS Desktop 3.16 User Guide Python code Algorithm ID: qgis:refactorfields import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Rename vector field Renames an existing field from a vector layer. The original layer is not modified. A new layer is generated where the attribute table contains the renamed field. Viz také: Refactor fields Parameters Label Název Type Popis Input layer INPUT [vector: any] The input vector layer Field to rename FIELD [string] The field to be altered New field name NEW_NAME [string] The new field name Renamed OUTPUT [vector: same as input] Default: [Create temporary layer] Specification of the output layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Renamed OUTPUT [vector: same as input] Output layer with the renamed field Python code Algorithm ID: qgis:renametablefield import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1120 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Text to float Modifies the type of a given attribute in a vector layer, converting a text attribute containing numeric strings into a numeric attribute (e.g. ‚1‘ to 1.0). The algorithm creates a new vector layer so the source one is not modified. If the conversion is not possible the selected column will have NULL values. Parameters Label Název Type Popis Input layer INPUT [vector: any] The input vector layer. Text attribute to convert to float FIELD [tablefield: string] The string field for the input layer that is to be converted to a float field. Float from text OUTPUT [same as input] Default: [Create Temporary Layer] Specify the output layer. One of: • Create Temporary Layer • Save to File… • Save to Geopackage… • Save to PostGIS Table…… The file encoding can also be changed here. Outputs Label Název Type Popis Float from text OUTPUT [same as input] Output vector layer with the string field converted into a float field Python code Algorithm ID: qgis:texttofloat import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1.20 Vector Tiles Write vector tiles (MBTiles) Exports one or more vector layers to vector tiles, a data format optimized for fast map rendering and small data size. MBTiles is a specification for storing tiled map data in SQLite databases for immediate usage and for transfer. MBTiles files are known as tilesets. 24.1. QGIS algorithm provider 1121 QGIS Desktop 3.16 User Guide Parameters Label Name Type Description Input layers INPUT [vector: any][list] A list of layers to combine to generate the vector tiles Minimum zoom level MIN_ZOOM [number] Default: 0 The lowest zoom level for which the tileset provides data. Set between 0 and 24. Maximum zoom level MAX_ZOOM [number] Default: 3 The highest zoom level for which the tileset provides data. Set between 0 and 24. Extent Optional EXTENT [extent] Default: Not set The maximum extent of the rendered map area. Bounds must define an area covered by all zoom levels. Metadata: Name Optional META_NAME [string] Name of the tileset Metadata: Description Optional META_DESCRIPTION[string] A description of the tileset’s contents Metadata: Attribution Optional META_ATTRIBUTION[string] An attribution string, which explains the sources of data and/or style for the map. Metadata: Version Optional META_VERSION [string] The version of the tileset. This refers to a revision of the tileset itself, not of the MBTiles specification. Metadata: Type Optional META_TYPE [string] Type of tileset. Possible values are overlay or baselayer. Metadata: Center Optional META_CENTER [string] The center (string of comma-separated numbers: the longitude, latitude, and zoom level) of the default view of the map. Example: -122.1906,37.7599,11 Destination MBTiles OUTPUT [vector tiles] Default: [Save to temporary file] Specification of the output MBTiles file. One of: • Save to a Temporary File • Save to File… Outputs Label Name Type Description Destination MBTiles OUTPUT [file] Output vector tiles .mbtiles file. Python code Algorithm ID: native:writevectortiles_mbtiles import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1122 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Write vector tiles (XYZ) Exports one or more vector layers to vector tiles, a data format optimized for fast map rendering and small data size. Parameters Label Name Type Description File template XYZ_TEMPLATE [string] Default: ‚{z}/{x}/{y}.pbf‘ Template to generate the vector tiles url Input layers INPUT [vector: any][list] A list of layers to combine to generate the vector tiles Minimum zoom level MIN_ZOOM [number] Default: 0 The lowest zoom level for which the tileset provides data. Set between 0 and 24. Maximum zoom level MAX_ZOOM [number] Default: 3 The highest zoom level for which the tileset provides data. Set between 0 and 24. Extent Optional EXTENT [extent] Default: Not set The maximum extent of the rendered map area. Bounds must define an area covered by all zoom levels. Output directory OUTPUT_DIRECTORY[folder] Default: [Save to temporary folder] Specification of the output vector tiles folder. One of: • Save to a Temporary Directory • Save to Directory Outputs Label Name Type Description Output directory OUTPUT_DIRECTORY[folder] A folder containing different subsets of the vector tiles files (.pbf) stored in subfolders corresponding to the zoom levels. Python code Algorithm ID: native:writevectortiles_xyz import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.1. QGIS algorithm provider 1123 QGIS Desktop 3.16 User Guide 24.2 GDAL algorithm provider GDAL (Geospatial Data Abstraction Library) is a translator library for raster and vector geospatial data formats. Algorithms in the Processing Framework are derived from the GDAL raster programs and GDAL vector programs. 24.2.1 Rastrová analýza Aspect Generates an aspect map from any GDAL-supported elevation raster. Aspect is the compass direction that a slope faces. The pixels will have a value from 0-360° measured in degrees from north indicating the azimuth. On the northern hemisphere, the north side of slopes is often shaded (small azimuth from 0°-90°), while the southern side receives more solar radiation (higher azimuth from 180°-270°). This algorithm is derived from the GDAL DEM utility. Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input elevation raster layer Band number BAND [raster band] Default: 1 The number of the band to use as elevation Return trigonometric angle instead of azimuth TRIG_ANGLE [boolean] Default: False Activating the trigonometric angle results in different categories: 0° (East), 90° (North), 180° (West), 270° (South). Return 0 for flat instead of -9999 ZERO_FLAT [boolean] Default: False Activating this option will insert a 0-value for the value -9999 on flat areas. Compute edges COMPUTE_EDGES [boolean] Default: False Generates edges from the elevation raster Use Zevenbergen&Thorne formula instead of the Horn’s one ZEVENBERGEN [boolean] Default: False Activates Zevenbergen&Thorne formula for smooth landscapes Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Aspect OUTPUT [raster] Default: [Save to temporary file] Output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 1124 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Aspect OUTPUT [raster] Output raster with angle values in degrees Python code Algorithm ID: gdal:aspect import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Color relief Generates a color relief map from any GDAL-supported elevation raster. Color reliefs can particularly be used to depict elevations. The Algorithm outputs a 4-band raster with values computed from the elevation and a text-based color configuration file. By default, the colors between the given elevation values are blended smoothly and the result is a nice colorized elevation raster. This algorithm is derived from the GDAL DEM utility. Parameters Label Název Type Popis Input layer INPUT [raster] Input elevation raster layer Band number BAND [raster band] Default: 1 The number of the band to use as elevation Compute edges COMPUTE_EDGES [boolean] Default: False Generates edges from the elevation raster Color configuration file COLOR_TABLE [file] A text-based color configuration file Matching mode MATCH_MODE [enumeration] Default: 2 One of: • 0 — Use strict color matching • 1 — Use closest RGBA quadruples • 2 — Use smoothly blended colours Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options continues on next page 24.2. GDAL algorithm provider 1125 QGIS Desktop 3.16 User Guide Tabulka 24.146 – pokračujte na předchozí stránce Label Název Type Popis Color relief OUTPUT [raster] Default: [Save to temporary file] Output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Color relief OUTPUT [raster] A 4-band output raster Python code Algorithm ID: gdal:colorrelief import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Fill nodata Fill raster regions with no data values by interpolation from edges. The values for the no-data regions are calculated by the sourrounding pixel values using inverse distance weighting. After the interpolation a smoothing of the results takes placce. Input can be any GDAL-supported raster layer. This algorithm is generally suitable for interpolating missing regions of fairly continuously varying rasters (such as elevation models for instance). It is also suitable for filling small holes and cracks in more irregularly varying images (like airphotos). It is generally not so great for interpolating a raster from sparse point data. This algorithm is derived from the GDAL fillnodata utility. Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer Band number BAND [raster band] Default: 1 The band to operate on. Nodata values must be represented by the value 0. Maximum distance (in pixels) to search out for values to interpolate DISTANCE [number] Default: 10 The number of pixels to search in all directions to find values to interpolate from Number of smoothing iterations to run after the interpolation ITERATIONS [number] Default: 0 The number of 3x3 filter passes to run (0 or more) to smoothen the results of the interpolation. continues on next page 1126 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.147 – pokračujte na předchozí stránce Label Název Type Popis Do not use default validity mask for the input band NO_MASK [boolean] Default: False Activates the user-defined validity mask Validity mask MASK_LAYER [raster] A raster layer that defines the areas to fill. Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Filled OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Filled OUTPUT [raster] Output raster Python code Algorithm ID: gdal:fillnodata import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Grid (Data metrics) Computes some data metrics using the specified window and output grid geometry. This algorithm is derived from the GDAL grid utility. Default menu: Raster ► Analysis Viz také: GDAL grid tutorial 24.2. GDAL algorithm provider 1127 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Point layer INPUT [vector: point] Input point vector layer Data metric to use METRIC [enumeration] Default: 0 One of: • 0 — Minimum, minimum value found in grid node search ellipse • 1 — Maximum, maximum value found in grid node search ellipse • 2 — Range, a difference between the minimum and maximum values found in grid node search ellipse • 3 — Count, a number of data points found in grid node search ellipse • 4 — Average distance, an average distance between the grid node (center of the search ellipse) and all of the data points found in grid node search ellipse • 5 — Average distance between points, an average distance between the data points found in grid node search ellipse. The distance between each pair of points within ellipse is calculated and average of all distances is set as a grid node value The first radius of search ellipse RADIUS_1 [number] Default: 0.0 The first radius (X axis if rotation angle is 0) of the search ellipse The second radius of search ellipse RADIUS_2 [number] Default: 0.0 The second radius (Y axis if rotation angle is 0) of the search ellipse Angle of search ellipse rotation in degrees (counter clockwise) ANGLE [number] Default: 0.0 Angle of ellipse rotation in degrees. Ellipse rotated counter clockwise. Minimum number of data points to use MIN_POINTS [number] Default: 0.0 Minimum number of data points to average. If less amount of points found the grid node considered empty and will be filled with NODATA marker. Nodata NODATA [number] Default: 0.0 No data marker to fill empty points Z value from field Optional Z_FIELD [tablefield: numeric] Field for the interpolation Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options continues on next page 1128 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.148 – pokračujte na předchozí stránce Label Název Type Popis Output data type DATA_TYPE [enumeration] Default: 5 Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Interpolated (data metrics) OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer with interpolated values. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Interpolated (data metrics) OUTPUT [raster] Output raster with interpolated values Python code Algorithm ID: gdal:griddatametrics import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Grid (IDW with nearest neighbor searching) Computes the Inverse Distance to a Power gridding combined to the nearest neighbor method. Ideal when a maximum number of data points to use is required. This algorithm is derived from the GDAL grid utility. Viz také: GDAL grid tutorial 24.2. GDAL algorithm provider 1129 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Point layer INPUT [vector: point] Input point vector layer Weighting power POWER [number] Default: 2.0 Weighting power Smoothing SMOOTHING [number] Default: 0.0 Smoothing parameter The radius of the search circle RADIUS [number] Default: 1.0 The radius of the search circle Maximum number of data points to use MAX_POINTS [number] Default: 12 Do not search for more points than this number. Minimum number of data points to use MIN_POINTS [number] Default: 0 Minimum number of data points to average. If less amount of points found the grid node considered empty and will be filled with NODATA marker. Nodata NODATA [number] Default: 0.0 No data marker to fill empty points Z value from field Optional Z_FIELD [tablefield: numeric] Field for the interpolation Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Output data type DATA_TYPE [enumeration] Default: 5 Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Interpolated (IDW with NN search) OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer with interpolated values. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 1130 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Interpolated (IDW with NN search) OUTPUT [raster] Output raster with interpolated values Python code Algorithm ID: gdal:gridinversedistancenearestneighbor import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Grid (Inverse distance to a power) The Inverse Distance to a Power gridding method is a weighted average interpolator. You should supply the input arrays with the scattered data values including coordinates of every data point and output grid geometry. The function will compute interpolated value for the given position in output grid. This algorithm is derived from the GDAL grid utility. Default menu: Raster ► Analysis Viz také: GDAL grid tutorial Parameters Label Název Type Popis Point layer INPUT [vector: point] Input point vector layer Weighting power POWER [number] Default: 2.0 Weighting power Smothing SMOOTHING [number] Default: 0.0 Smoothing parameter The first radius of search ellipse RADIUS_1 [number] Default: 0.0 The first radius (X axis if rotation angle is 0) of the search ellipse The second radius of search ellipse RADIUS_2 [number] Default: 0.0 The second radius (Y axis if rotation angle is 0) of the search ellipse Angle of search ellipse rotation in degrees (counter clockwise) ANGLE [number] Default: 0.0 Angle of ellipse rotation in degrees. Ellipse rotated counter clockwise. Maximum number of data points to use MAX_POINTS [number] Default: 0 Do not search for more points than this number. continues on next page 24.2. GDAL algorithm provider 1131 QGIS Desktop 3.16 User Guide Tabulka 24.150 – pokračujte na předchozí stránce Label Název Type Popis Minimum number of data points to use MIN_POINTS [number] Default: 0 Minimum number of data points to average. If less amount of points found the grid node considered empty and will be filled with NODATA marker. Nodata NODATA [number] Default: 0.0 No data marker to fill empty points Z value from field Optional Z_FIELD [tablefield: numeric] Field for the interpolation Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Output data type DATA_TYPE [enumeration] Default: 5 Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Interpolated (IDW) OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer with interpolated values. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Interpolated (IDW) OUTPUT [raster] Output raster with interpolated values 1132 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: gdal:gridinversedistance import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Grid (Linear) The Linear method perform linear interpolation by computing a Delaunay triangulation of the point cloud, finding in which triangle of the triangulation the point is, and by doing linear interpolation from its barycentric coordinates within the triangle. If the point is not in any triangle, depending on the radius, the algorithm will use the value of the nearest point or the NODATA value. This algorithm is derived from the GDAL grid utility. Parameters Label Název Type Popis Point layer INPUT [vector: point] Input point vector layer Search distance RADIUS [number] Default: -1.0 In case the point to be interpolated does not fit into a triangle of the Delaunay triangulation, use that maximum distance to search a nearest neighbour, or use nodata otherwise. If set to -1, the search distance is infinite. If set to 0, no data value will be used. Nodata NODATA [number] Default: 0.0 No data marker to fill empty points Z value from field Optional Z_FIELD [tablefield: numeric] Field for the interpolation Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options continues on next page 24.2. GDAL algorithm provider 1133 QGIS Desktop 3.16 User Guide Tabulka 24.151 – pokračujte na předchozí stránce Label Název Type Popis Output data type DATA_TYPE [enumeration] Default: 5 Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Interpolated (Linear) OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer with interpolated values. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Interpolated (Linear) OUTPUT [raster] Output raster with interpolated values Python code Algorithm ID: gdal:gridlinear import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Grid (Moving average) The Moving Average is a simple data averaging algorithm. It uses a moving window of elliptic form to search values and averages all data points within the window. Search ellipse can be rotated by specified angle, the center of ellipse located at the grid node. Also the minimum number of data points to average can be set, if there are not enough points in window, the grid node considered empty and will be filled with specified NODATA value. This algorithm is derived from the GDAL grid utility. Default menu: Raster ► Analysis Viz také: GDAL grid tutorial 1134 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Point layer INPUT [vector: point] Input point vector layer The first radius of search ellipse RADIUS_1 [number] Default: 0.0 The first radius (X axis if rotation angle is 0) of the search ellipse The second radius of search ellipse RADIUS_2 [number] Default: 0.0 The second radius (Y axis if rotation angle is 0) of the search ellipse Angle of search ellipse rotation in degrees (counter clockwise) ANGLE [number] Default: 0.0 Angle of ellipse rotation in degrees. Ellipse rotated counter clockwise. Minimum number of data points to use MIN_POINTS [number] Default: 0.0 Minimum number of data points to average. If less amount of points found the grid node considered empty and will be filled with NODATA marker. Nodata NODATA [number] Default: 0.0 No data marker to fill empty points Z value from field Optional Z_FIELD [tablefield: numeric] Field for the interpolation Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Output data type DATA_TYPE [enumeration] Default: 5 Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Interpolated (moving average) OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.2. GDAL algorithm provider 1135 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Interpolated (moving average) OUTPUT [raster] Output raster with interpolated values Python code Algorithm ID: gdal:gridaverage import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Grid (Nearest neighbor) The Nearest Neighbor method doesn’t perform any interpolation or smoothing, it just takes the value of nearest point found in grid node search ellipse and returns it as a result. If there are no points found, the specified NODATA value will be returned. This algorithm is derived from the GDAL grid utility. Default menu: Raster ► Analysis Viz také: GDAL grid tutorial Parameters Label Název Type Popis Point layer INPUT [vector: point] Input point vector layer The first radius of search ellipse RADIUS_1 [number] Default: 0.0 The first radius (X axis if rotation angle is 0) of the search ellipse The second radius of search ellipse RADIUS_2 [number] Default: 0.0 The second radius (Y axis if rotation angle is 0) of the search ellipse Angle of search ellipse rotation in degrees (counter clockwise) ANGLE [number] Default: 0.0 Angle of ellipse rotation in degrees. Ellipse rotated counter clockwise. Nodata NODATA [number] Default: 0.0 No data marker to fill empty points Z value from field Optional Z_FIELD [tablefield: numeric] Field for the interpolation Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). continues on next page 1136 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.153 – pokračujte na předchozí stránce Label Název Type Popis Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Output data type DATA_TYPE [enumeration] Default: 5 Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Interpolated (Nearest neighbour) OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer with interpolated values. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Interpolated (Nearest neighbour) OUTPUT [raster] Output raster with interpolated values Python code Algorithm ID: gdal:gridnearestneighbor import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2. GDAL algorithm provider 1137 QGIS Desktop 3.16 User Guide Hillshade Outputs a raster with a nice shaded relief effect. It’s very useful for visualizing the terrain. You can optionally specify the azimuth and altitude of the light source, a vertical exaggeration factor and a scaling factor to account for differences between vertical and horizontal units. This algorithm is derived from the GDAL DEM utility . Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input Elevation raster layer Band number BAND [raster band] Default: 1 Band containing the elevation information Z factor (vertical exaggeration) Z_FACTOR [number] Default: 1.0 The factor exaggerates the height of the output elevation raster Scale (ratio of vert. units to horiz.) SCALE [number] Default: 1.0 The ratio of vertical units to horizontal units Azimuth of the light AZIMUTH [number] Default: 315.0 Defines the azimuth of the light shining on the elevation raster in degrees. If it comes from the top of the raster the value is 0, if it comes from the east it is 90 a.s.o. Altitude of the light ALTITUDE [number] Default: 45.0 Defines the altitude of the light, in degrees. 90 if the light comes from above the elevation raster, 0 if it is raking light. Compute edges COMPUTE_EDGES [boolean] Default: False Generates edges from the elevation raster Use Zevenbergen&Thorne formula (instead of the Horn’s one) ZEVENBERGEN [boolean] Default: False Activates Zevenbergen&Thorne formula for smooth landscapes Combined shading COMBINED [boolean] Default: False Multidirectional shading MULTIDIRECTIONAL[boolean] Default: False Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Hillshade OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer with interpolated values. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 1138 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Hillshade OUTPUT [raster] Output raster with interpolated values Python code Algorithm ID: gdal:hillshade import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Near black Converts nearly black/white borders to black. This algorithm will scan an image and try to set all pixels that are nearly or exactly black, white or one or more custom colors around the collar to black or white. This is often used to „fix up“ lossy compressed airphotos so that color pixels can be treated as transparent when mosaicking. This algorithm is derived from the GDAL nearblack utility. Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input Elevation raster layer How far from black (white) NEAR [number] Default: 15 Select how far from black, white or custom colors the pixel values can be and still considered near black, white or custom color. Search for nearly white pixels instead of nearly black WHITE [boolean] Default: False Search for nearly white (255) pixels instead of nearly black pixels Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options continues on next page 24.2. GDAL algorithm provider 1139 QGIS Desktop 3.16 User Guide Tabulka 24.155 – pokračujte na předchozí stránce Label Název Type Popis Nearblack OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Nearblack OUTPUT [raster] Output raster Python code Algorithm ID: gdal:nearblack import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Proximity (raster distance) Generates a raster proximity map indicating the distance from the center of each pixel to the center of the nearest pixel identified as a target pixel. Target pixels are those in the source raster for which the raster pixel value is in the set of target pixel values. This algorithm is derived from the GDAL proximity utility. Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input Elevation raster layer Band number BAND [raster band] Default: 1 Band containing the elevation information A list of pixel values in the source image to be considered target pixels Optional VALUES [string] Default: ‚‘ A list of target pixel values in the source image to be considered target pixels. If not specified, all non-zero pixels will be considered target pixels. Distance units UNITS [enumeration] Default: 1 Indicate whether distances generated should be in pixel or georeferenced coordinates. One of: • 0 — Georeferenced coordinates • 1 — Pixel coordinates continues on next page 1140 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.156 – pokračujte na předchozí stránce Label Název Type Popis The maximum distance to be generated Optional MAX_DISTANCE [number] Default: 0.0 The maximum distance to be generated. The nodata value will be used for pixels beyond this distance. If a nodata value is not provided, the output band will be queried for its nodata value. If the output band does not have a nodata value, then the value 65535 will be used. Distance is interpreted according to the value of Distance units. Value to be applied to all pixels that are within the maxdist of target pixels Optional REPLACE [number] Default: 0.0 Specify a value to be applied to all pixels that are closer than the maximum distance from target pixels (including the target pixels) instead of a distance value. Nodata value to use for the destination proximity raster Optional NODATA [number] Default: 0.0 Specify the nodata value to use for the output raster Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Output data type DATA_TYPE [enumeration] Default: 5 Defines the data type of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Proximity map OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.2. GDAL algorithm provider 1141 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Proximity map OUTPUT [raster] Output raster Python code Algorithm ID: gdal:proximity import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Roughness Outputs a single-band raster with values computed from the elevation. Roughness is the degree of irregularity of the surface. It’s calculated by the largest inter-cell difference of a central pixel and its surrounding cell. The determination of the roughness plays a role in the analysis of terrain elevation data, it’s useful for calculations of the river morphology, in climatology and physical geography in general. This algorithm is derived from the GDAL DEM utility. Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input elevation raster layer Band number BAND [raster band] Default: 1 The number of the band to use as elevation Compute edges COMPUTE_EDGES [boolean] Default: False Generates edges from the elevation raster Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Roughness OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 1142 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Roughness OUTPUT [raster] Single-band output roughness raster. The value -9999 is used as nodata value. Python code Algorithm ID: gdal:roughness import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Sieve Removes raster polygons smaller than a provided threshold size (in pixels) and replaces them with the pixel value of the largest neighbour polygon. It is useful if you have a large amount of small areas on your raster map. This algorithm is derived from the GDAL sieve utility. Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input elevation raster layer Threshold THRESHOLD [number] Default: 10 Only raster polygons smaller than this size will be removed Use 8- -connectedness EIGHT_CONNECTEDNESS[boolean] Default: False Use eight connectedness instead of four connectedness Do not use the default validity mask for the input band NO_MASK [boolean] Default: False Validity mask Optional MASK_LAYER [raster] Validity mask to use instead of the default Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Sieved OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.2. GDAL algorithm provider 1143 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Sieved OUTPUT [raster] Output raster layer. Python code Algorithm ID: gdal:sieve import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Slope Generates a slope map from any GDAL-supported elevation raster. Slope is the angle of inclination to the horizontal. You have the option of specifying the type of slope value you want: degrees or percent slope. This algorithm is derived from the GDAL DEM utility. Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input Elevation raster layer Band number BAND [raster band] Default: 1 Band containing the elevation information Ratio of vertical units to horizontal SCALE [number] Default: 1.0 The ratio of vertical units to horizontal units Slope expressed as percent (instead of degrees) AS_PERCENT [boolean] Default: False Express slope as percent instead of degrees Compute edges COMPUTE_EDGES [boolean] Default: False Generates edges from the elevation raster Use Zevenbergen&Thorne formula (instead of the Horn’s one) ZEVENBERGEN [boolean] Default: False Activates Zevenbergen&Thorne formula for smooth landscapes Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options continues on next page 1144 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.159 – pokračujte na předchozí stránce Label Název Type Popis Slope OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Slope OUTPUT [raster] Output raster Python code Algorithm ID: gdal:slope import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Terrain Ruggedness Index (TRI) Outputs a single-band raster with values computed from the elevation. TRI stands for Terrain Ruggedness Index, which is defined as the mean difference between a central pixel and its surrounding cells. This algorithm is derived from the GDAL DEM utility. Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input elevation raster layer Band number BAND [raster band] Default: 1 The number of the band to use as elevation Compute edges COMPUTE_EDGES [boolean] Default: False Generates edges from the elevation raster Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Terrain Ruggedness Index OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.2. GDAL algorithm provider 1145 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Terrain Ruggedness Index OUTPUT [raster] Output ruggedness raster. The value -9999 is used as nodata value. Python code Algorithm ID: gdal:triterrainruggednessindex import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Topographic Position Index (TPI) Outputs a single-band raster with values computed from the elevation. TPI stands for Topographic Position Index, which is defined as the difference between a central pixel and the mean of its surrounding cells. This algorithm is derived from the GDAL DEM utility. Default menu: Raster ► Analysis Parameters Label Název Type Popis Input layer INPUT [raster] Input elevation raster layer Band number BAND [raster band] Default: 1 The number of the band to use for elevation values Compute edges COMPUTE_EDGES [boolean] Default: False Generates edges from the elevation raster Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Terrain Ruggedness Index OUTPUT [raster] Default: [Save to temporary file] Specify the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 1146 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Terrain Ruggedness Index OUTPUT [raster] Output raster. Python code Algorithm ID: gdal:tpitopographicpositionindex import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2.2 Raster conversion gdal2xyz Converts raster data to XYZ ASCII file format. Parameters Label Název Type Popis Input layer INPUT [raster] Raster layer to convert Band number BAND [raster band] Default: The first band of the input layer If the raster is multiband, choose the band you want to convert Output comma-separated values CSV [boolean] Default: False Sets whether the output file should be of type comma-separated values (csv). XYZ ASCII file OUTPUT [file] Default: [Save to temporary file] Specification of the output file. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis XYZ ASCII file INPUT [table] Table file containing the values exported from the raster band. 24.2. GDAL algorithm provider 1147 QGIS Desktop 3.16 User Guide Python code Algorithm ID: gdal:gdal2xyz import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. PCT to RGB Converts an 8 bit paletted image to a 24 bit RGB. It will convert a pseudocolor band from the input file to an RGB file of the desired format. This algorithm is derived from the GDAL pct2rgb utility. Default menu: Raster ► Conversion Parameters Label Název Type Popis Input layer INPUT [raster] Input 8 bit raster image Band number BAND [raster band] Default: The first band of the input layer If the raster is multiband, choose the band you want to convert Generate a RGBA file RGBA [boolean] Default: False Sets whether the output file should be of type RGBA. PCT to RGB OUTPUT [file] Default: [Save to temporary file] Specification of the output file. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis PCT to RGB OUTPUT [raster] 24 bit RGB raster image Python code Algorithm ID: gdal:pcttorgb import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1148 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Polygonize (raster to vector) Creates vector polygons for all connected regions of pixels in the raster sharing a common pixel value. Each polygon is created with an attribute indicating the pixel value of that polygon. This algorithm is derived from the GDAL polygonize utility. Default menu: Raster ► Conversion Parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer Band number BAND [raster band] Default: The first band of the input layer If the raster is multiband, choose the band you want to use Name of the field to create FIELD [string] Default: ‚DN‘ Specify the field name for the attributes of the connected regions. Use 8- -connectedness EIGHT_CONNECTEDNESS[boolean] Default: False If not set, raster cells must have a common border to be considered connected (4-connected). If set, touching raster cells are also considered connected (8-connected). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Vectorized OUTPUT [vector: polygon] Default: [Save to temporary file] Specification of the output (polygon) vector layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Vectorized OUTPUT [vector: polygon] Output vector layer Python code Algorithm ID: gdal:polygonize import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2. GDAL algorithm provider 1149 QGIS Desktop 3.16 User Guide Rearrange bands Creates a new raster using selected band(s) from a given raster layer. The algorithm also makes it possible to reorder the bands for the newly-created raster. This algorithm is derived from the GDAL translate utility. Parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer Selected band(s) BANDS [raster band] [list] Default: None Ordered list of the bands to use to create the new raster Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Output data type DATA_TYPE [enumeration] Default: 0 Defines the data type of the output raster file. Options: • 0 — Use Input Layer Data Type • 1 — Byte • 2 — Int16 • 3 — UInt16 • 4 — UInt32 • 5 — Int32 • 6 — Float32 • 7 — Float64 • 8 — CInt16 • 9 — CInt32 • 10 — CFloat32 • 11 — CFloat64 Converted OUTPUT [raster] Default: Save to temporary file Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Converted OUTPUT [raster] Output raster layer with rearranged bands. 1150 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: gdal:rearrange_bands import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. RGB to PCT Converts a 24 bit RGB image into a 8 bit paletted. Computes an optimal pseudo-color table for the given RGB-image using a median cut algorithm on a downsampled RGB histogram. Then it converts the image into a pseudo-colored image using the color table. This conversion utilizes Floyd-Steinberg dithering (error diffusion) to maximize output image visual quality. If you want to classify a raster map and want to reduce the number of classes it can be helpful to downsample your image with this algorithm before. This algorithm is derived from the GDAL rgb2pct utility. Default menu: Raster ► Conversion Parameters Label Název Type Popis Input layer INPUT [raster] Input (RGB) raster layer Number of colors NCOLORS [number] Default: 2 The number of colors the resulting image will contain. A value from 2-256 is possible. RGB to PCT OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis RGB to PCT OUTPUT [raster] Output raster layer. Python code Algorithm ID: gdal:rgbtopct import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2. GDAL algorithm provider 1151 QGIS Desktop 3.16 User Guide Translate (convert format) Converts raster data between different formats. This algorithm is derived from the GDAL translate utility. Default menu: Raster ► Conversion Parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer Override the projection of the output file Optional TARGET_CRS [crs] Specify a projection for the output file Assign a specified nodata value to output bands Optional NODATA [number] Default: Not set Defines the value to use for nodata in the output raster Copy all subdatasets of this file to individual output files COPY_SUBDATASETS[boolean] Default: False Create individual files for subdatasets Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Output data type DATA_TYPE [enumeration] Default: 0 Defines the data type of the output raster file. Options: • 0 — Use Input Layer Data Type • 1 — Byte • 2 — Int16 • 3 — UInt16 • 4 — UInt32 • 5 — Int32 • 6 — Float32 • 7 — Float64 • 8 — CInt16 • 9 — CInt32 • 10 — CFloat32 • 11 — CFloat64 Converted OUTPUT [raster] Default: [Save to temporary file] Specification of the output (translated) raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 1152 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Converted OUTPUT [raster] Output (translated) raster layer. Python code Algorithm ID: gdal:translate import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2.3 Raster extraction Clip raster by extent Clips any GDAL-supported raster file to a given extent. This algorithm is derived from the GDAL warp utility. Default menu: Raster ► Extraction Parameters Label Název Type Popis Input layer INPUT [raster] The input raster Clipping extent EXTENT [extent] Extent that should be used for the output raster. Only pixels within the specified bounding box will be included in the output. Assign a specified nodata value to output bands Optional NODATA [number] Default: None Defines a value that should be inserted for the nodata values in the output raster Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). continues on next page 24.2. GDAL algorithm provider 1153 QGIS Desktop 3.16 User Guide Tabulka 24.168 – pokračujte na předchozí stránce Label Název Type Popis Output data type DATA_TYPE [enumeration] Default: 0 Defines the format of the output raster file. Options: • 0 — Use Input Layer Data Type • 1 — Byte • 2 — Int16 • 3 — UInt16 • 4 — UInt32 • 5 — Int32 • 6 — Float32 • 7 — Float64 • 8 — CInt16 • 9 — CInt32 • 10 — CFloat32 • 11 — CFloat64 Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Clipped (extent) OUTPUT [raster] Default: ‚[Save to temporary file]‘ Specification of the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here Outputs Label Název Type Popis Clipped (extent) OUTPUT [raster] Output raster layer clipped by the given extent Python code Algorithm ID: gdal:cliprasterbyextent import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1154 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Clip raster by mask layer Clips any GDAL-supported raster by a vector mask layer. This algorithm is derived from the GDAL warp utility. Default menu: Raster ► Extraction Parameters Label Název Type Popis Input layer INPUT [raster] The input raster Mask layer MASK [vector: polygon] Vector mask for clipping the raster Source CRS SOURCE_CRS [crs] Set the coordinate reference to use for the input raster Target CRS TARGET_CRS [crs] Set the coordinate reference to use for the mask layer Assign a specified nodata value to output bands Optional NODATA [number] Default: None Defines a value that should be inserted for the nodata values in the output raster Create an output alpha band ALPHA_BAND [boolean] Default: False Creates an alpha band for the result. The alpha band then includes the transparency values of the pixels. Match the extent of the clipped raster to the extent of the mask layer CROP_TO_CUTLINE[boolean] Default: True Applies the vector layer extent to the output raster if checked. Keep resolution of input raster KEEP_RESOLUTION[boolean] Default: False The resolution of the output raster will not be changed Set output file resolution SET_RESOLUTION [boolean] Default: False Shall the output resolution (cell size) be specified X Resolution to output bands Optional X_RESOLUTION [number] Default: None The width of the cells in the output raster Y Resolution to output band Optional Y_RESOLUTION [number] Default: None The height of the cells in the output raster Use multithreaded warping implementation MULTITHREADING [boolean] Default: False Two threads will be used to process chunks of image and perform input/output operation simultaneously. Note that computation is not multithreaded itself. Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). continues on next page 24.2. GDAL algorithm provider 1155 QGIS Desktop 3.16 User Guide Tabulka 24.169 – pokračujte na předchozí stránce Label Název Type Popis Output data type DATA_TYPE [enumeration] Default: 0 Defines the format of the output raster file. Options: • 0 — Use Input Layer Data Type • 1 — Byte • 2 — Int16 • 3 — UInt16 • 4 — UInt32 • 5 — Int32 • 6 — Float32 • 7 — Float64 • 8 — CInt16 • 9 — CInt32 • 10 — CFloat32 • 11 — CFloat64 Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Clipped (mask) OUTPUT [raster] Default: ‚[Save to temporary file]‘ Specification of the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here Outputs Label Název Type Popis Clipped (mask) OUTPUT [raster] Output raster layer clipped by the vector layer Python code Algorithm ID: gdal:cliprasterbymasklayer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1156 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Contour Extracts contour lines from any GDAL-supported elevation raster. This algorithm is derived from the GDAL contour utility. Default menu: Raster ► Extraction Parameters Label Název Type Popis Input layer INPUT [raster] Input raster Band number BAND [raster band] Default: 1 Raster band to create the contours from Interval between contour lines INTERVAL [number] Default: 10.0 Defines the interval between the contour lines in the given units of the elevation raster (minimum value 0) Attribute name (if not set, no elevation attribute is attached) Optional FIELD_NAME [string] Default: ‚ELEV‘ Provides a name for the attribute in which to put the elevation. Offset from zero relative to which to interpret intervals Optional OFFSET [number] Default: 0.0 Produce 3D vector CREATE_3D [boolean] Default: False Forces production of 3D vectors instead of 2D. Includes elevation at every vertex. Treat all raster values as valid IGNORE_NODATA [boolean] Default: False Ignores any nodata values in the dataset. Input pixel value to treat as „nodata“ Optional NODATA [number] Default: None Defines a value that should be inserted for the nodata values in the output raster Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options. Refer to the corresponding GDAL utility documentation. Contours OUTPUT [vector: line] Default: ‚[Save to temporary file]‘ Specification of the output vector layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.2. GDAL algorithm provider 1157 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Contours OUTPUT [vector: line] Output vector layer with contour lines Python code Algorithm ID: gdal:contour import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Contour Polygons Extracts contour polygons from any GDAL-supported elevation raster. This algorithm is derived from the GDAL contour utility. Parameters Label Název Type Popis Input layer INPUT [raster] Input raster Band number BAND [raster band] Default: 1 Raster band to create the contours from Interval between contour lines INTERVAL [number] Default: 10.0 Defines the interval between the contour lines in the given units of the elevation raster (minimum value 0) Offset from zero relative to which to interpret intervals Optional OFFSET [number] Default: 0.0 Attribute name for minimum elevation of contour polygon Optional FIELD_NAME_MIN [string] Default: ‚ELEV_MIN‘ Provides a name for the attribute in which to put the minimum elevation of contour polygon. If not provided no minimum elevation attribute is attached. Attribute name for maximum elevation of contour polygon Optional FIELD_NAME_MAX [string] Default: ‚ELEV_MAX‘ Provides a name for the attribute in which to put the maximum elevation of contour polygon. If not provided no maximum elevation attribute is attached. Produce 3D vector CREATE_3D [boolean] Default: False Forces production of 3D vectors instead of 2D. Includes elevation at every vertex. Treat all raster values as valid IGNORE_NODATA [boolean] Default: False Ignores any nodata values in the dataset. Input pixel value to treat as „nodata“ Optional NODATA [number] Default: None Defines a value that should be inserted for the nodata values in the output raster continues on next page 1158 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.171 – pokračujte na předchozí stránce Label Název Type Popis Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options. Refer to the corresponding GDAL utility documentation. Contours OUTPUT [vector: polygon] Default: ‚[Save to temporary file]‘ Specification of the output vector layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Contours OUTPUT [vector: polygon] Output vector layer with contour polygons Python code Algorithm ID: gdal:contour_polygon import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2.4 Raster miscellaneous Build overviews (pyramids) To speed up rendering time of raster layers overviews (pyramids) can be created. Overviews are lower resolution copies of the data which QGIS uses depending of the level of zoom. This algorithm is derived from the GDAL addo utility. Default menu: Raster ► Miscellaneous Parameters Basic parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer Remove all existing overviews CLEAN [boolean] Default: False Removes existing overviews from the raster. By default these are not removed. 24.2. GDAL algorithm provider 1159 QGIS Desktop 3.16 User Guide Advanced parameters Label Název Type Popis Overview levels LEVELS [string] Default: ‚2 4 8 16‘ Defines the number of overview levels calculated by the original resolution of the input raster layer. By default 4 levels will be taken into consideration. Resampling method Optional RESAMPLING [enumeration] Default: 0 Calculates the overviews with a defined resampling method. Possible resampling methods are: • 0 – Nearest Neighbour (nearest) • 1 – Average (average) • 2 – Gaussian (gauss) • 3 – Cubic Convolution (cubic) • 4 – B-Spline Convolution (cubicspline) • 5 – Lanczos Windowed Sinc (lanczos) • 6 – Average MP (average_mp) • 7 – Average in Mag/Phase Space (average_magphase) • 8 – Mode (mode) Overviews format Optional FORMAT [enumeration] Default: 0 The overviews can be stored internally, or externally as GTiff or ERDAS Imagine file. By default the overviews are stored in the output raster. Possible formats methods are: • 0 – Internal (if possible) • 1 – External (GTiff .ovr) • 2 – External (ERDAS Imagine .aux) Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Outputs Label Název Type Popis Pyramidized OUTPUT [raster] Output raster layer with overviews Python code Algorithm ID: gdal:overviews import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1160 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Build virtual raster Builds a VRT (Virtual Dataset) that is a mosaic of the list of input GDAL-supported rasters. With a mosaic you can merge several raster files. This algorithm is derived from the GDAL buildvrt utility. Default menu: Raster ► Miscellaneous Parameters Basic parameters Label Název Type Popis Input layers INPUT [raster] [list] GDAL-supported raster layers. Resolution RESOLUTION [enumeration] Default: 0 The output resolution of the mosaic. By default the average resolution of the raster files will be chosen. Options: • 0 — Average (average) • 1 — Highest (highest) • 2 — Lowest (lowest) Place each input file into a separate band SEPARATE [boolean] Default: False With ‚True‘ you can define that each raster file goes into a separated stacked band in the VRT band. Allow projection difference PROJ_DIFFERENCE[boolean] Default: False Allows that the output bands have different projections derived from the projection of the input raster layers. Virtual OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster layer. One of: • Save to a Temporary File • Save to File… 24.2. GDAL algorithm provider 1161 QGIS Desktop 3.16 User Guide Advanced parameters Label Název Type Popis Add alpha mask band to VRT when source raster has none ADD_ALPHA [boolean] Default: False Adds an alpha mask band to the VRT when the source raster has none. Override projection for the output file Optional ASSIGN_CRS [crs] Default: None Overrides the projection for the output file. No reprojection is done. Resampling algorithm RESAMPLING [enumeration] Default: 0 The resampling algorithm to be used Options: • 0 — Nearest Neighbour (nearest) • 1 — Bilinear (bilinear) • 2 — Cubic Convolution (cubic) • 3 — B-Spline Convolution (cubicspline) • 4 — Lanczos Windowed Sinc (lanczos) • 5 — Average (average) • 6 — Mode (mode) Nodata value(s) for input bands (space separated) Optional SRC_NODATA [string] Default: None Space separated Nodata value(s) for input band(s) Additional command-line parameters EXTRA [string] Default: None Add extra GDAL command line options Outputs Label Název Type Popis Virtual OUTPUT [raster] Output raster layer Python code Algorithm ID: gdal:buildvirtualraster import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1162 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide gdal2tiles Generates a directory with small tiles and metadata, following the OSGeo Tile Map Service Specification. See also the OpenGIS Web Map Tile Service Implementation Standard. Simple web pages with viewers based on Google Maps, OpenLayers and Leaflet are generated as well. To explore your maps on-line in the web browser, you only need to upload the generated directory onto a web server. This algorithm also creates the necessary metadata for Google Earth (KML SuperOverlay), in case the supplied map uses EPSG:4326 projection. ESRI world files and embedded georeferencing is used during tile generation, but you can publish a picture without proper georeferencing too. This algorithm is derived from the GDAL gdal2tiles utility. Parameters Basic parameters Label Název Type Popis Input layer INPUT [raster] GDAL-supported raster layer. Tile cutting profile PROFILE [enumeration] Default: 0 One of: • 0 — Mercator (mercator) • 1 — Geodetic (geodetic) • 2 — Raster (raster) Zoom levels to render Optional ZOOM [string] Default: ‚‘ Web viewer to generate VIEWER [enumerate] Default: 0 One of: • 0 — All (all) • 1 — GoogleMaps (google) • 2 — OpenLayers (openlayers) • 3 — Leaflet (leaflet) • 4 — None (none) Title of the map Optional TITLE [string] Default: ‚‘ Copyright of the map COPYRIGHT [string] Default: ‚‘ Output directory OUTPUT [folder] Default: [Save to temporary folder] Specify the output folder for the tiles. One of: • Save to a Temporary Directory • Save to Directory 24.2. GDAL algorithm provider 1163 QGIS Desktop 3.16 User Guide Advanced parameters Label Název Type Popis Resampling method RESAMPLING [enumeration] Default: 0 The resampling algorithm to be used Options: • 0 — Average (average) • 1 — Nearest neighbour (near) • 2 — Bilinear (bilinear) • 3 — Cubic (cubic) • 4 — Cubic spline (cubicspline) • 5 — Lanczos Windowed sinc (lanczos) • 6 — Antialias (antialias) The spatial reference system used for the source input data Optional SOURCE_CRS [crs] Default: None Transparency value to assign to the input data Optional NODATA [number] Default: 0.0 URL address where the generated tiles are going to be published Optional URL [string] Default: ‚‘ Google Maps API key (http://code.google.com/apis/maps/signup.html) Optional GOOGLE_KEY [string] Default: ‚‘ Your Google maps API key. Bing Maps API key (https://www.bingmapsportal.com/) Optional BING_KEY [string] Default: ‚‘ Your Bing maps API key. Generate only missing files RESUME [boolean] Default: False Generate KML for Google Earth KML [boolean] Default: False Avoid automatic generation of KML files for EPSG:4326 NO_KML [boolean] Default: False 1164 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Output directory OUTPUT [folder] The output folder (for the tiles) Python code Algorithm ID: gdal:gdal2tiles import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Merge Merges raster files in a simple way. Here you can use a pseudocolor table from an input raster and define the output raster type. All the images must be in the same coordinate system. This algorithm is derived from the GDAL merge utility. Default menu: Raster ► Miscellaneous Parameters Basic parameters Label Název Type Popis Input layers INPUT [raster] [list] Input raster layers Grab pseudocolor table from first layer PCT [boolean] Default: False The pseudocolor table from the first layer will be used for the coloring Place each input file into a separate band SEPARATE [boolean] Default: False Place each input file into a separate band Output data type DATA_TYPE [enumeration] Default: 5 Defines the format of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 continues on next page 24.2. GDAL algorithm provider 1165 QGIS Desktop 3.16 User Guide Tabulka 24.175 – pokračujte na předchozí stránce Label Název Type Popis Merged OUTPUT [raster] Default: [Save to temporary file] Specification of the output raster layer. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Input pixel value to treat as „nodata“ Optional NODATA_INPUT [number] Default: None Ignores pixels from files being merged in with this pixel value Assign specified „nodata“ value to output Optional NODATA_OUTPUT [number] Default: None Assigns the specified nodata value to output bands. Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters EXTRA [string] Default: None Add extra GDAL command line options Outputs Label Název Type Popis Merged OUTPUT [raster] Output raster layer Python code Algorithm ID: gdal:merge import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1166 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Pansharpening Performs a pan-sharpening operation. It can create a „classic“ output dataset (such as GeoTIFF), or a VRT dataset describing the pan-sharpening operation. See GDAL Pansharpen. Parameters Basic parameters Label Název Type Popis Spectral dataset SPECTRAL [raster] Input (spectral) raster layer Panchromatic dataset PANCHROMATIC [raster] Input (panchromatic) raster layer Output OUTPUT [raster] Default: [Save to temporary file] Specify the output (sharpened) raster layer. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Resampling algorithm RESAMPLING [enumeration] Default: 2 The resampling algorithm to be used Options: • 0 — Nearest Neighbour (nearest) • 1 — Bilinear (bilinear) • 2 — Cubic (cubic) • 3 — Cubic Spline (cubicspline) • 4 — Lanczos Windowed Sinc (lanczos) • 5 — Average (average) Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options 24.2. GDAL algorithm provider 1167 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Output OUTPUT [raster] Output (sharpened) raster layer Python code Algorithm ID: gdal:pansharp import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster calculator Command line raster calculator with numpy syntax. Use any basic arithmetic supported by numpy arrays, such as +, -, *, and / along with logical operators, such as >. Note that all input rasters must have the same dimensions, but no projection checking is performed. See the GDAL Raster Calculator utility docs. Viz také: Raster calculator Parameters Basic parameters Label Název Type Popis Input layer A INPUT_A [raster] First input raster layer (mandatory) Number of raster band for A BAND_A [raster band] Band for input layer A (mandatory) Input layer B Optional INPUT_B [raster] Default: None Second input raster layer Number of raster band for B Optional BAND_B [raster band] Band for input layer B Input layer C Optional INPUT_C [raster] Default: None Third input raster layer Number of raster band for C Optional BAND_C [raster band] Band for input layer C Input layer D Optional INPUT_D [raster] Default: None Fourth input raster layer Number of raster band for D Optional BAND_D [raster band] Band for input layer D Input layer E Optional INPUT_E [raster] Default: None Fifth input raster layer continues on next page 1168 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.177 – pokračujte na předchozí stránce Label Název Type Popis Number of raster band for E Optional BAND_E [raster band] Band for input layer E Input layer F Optional INPUT_F [raster] Sixth input raster layer Number of raster band for F Optional BAND_F [raster band] Default: None Band for input layer F Calculation in gdalnumeric syntax using +-/* or any numpy array functions (i.e. logical_and()) FORMULA [string] Default: ‚‘ The calculation formula. Examples: • A*(A>0) — outputs the value of the raster A if the value of A is greater than 0. If not, outputs 0. • A*(A>0 and A>B)— outputs the value of A if that value is bigger than 0 and bigger than the value of B. If not, outputs 0. • A*logical_or(A<=177, A>=185) — outputs the value of A if A <= 177 or A >= 185. If not, outputs 0. • sqrt(A*A+B*B) — Outputs the square root of the sum of the value of A squared and the value of B squared. Set output nodata value Optional NO_DATA [number] Default: None Value to use for nodata Output raster type RTYPE [enumeration] Default: 5 Defines the format of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 Calculated OUTPUT [raster] Default: [Save to temporary file] Specify the output (calculated) raster layer. One of: • Save to a Temporary File • Save to File… Advanced parameters 24.2. GDAL algorithm provider 1169 QGIS Desktop 3.16 User Guide Label Název Type Popis Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: ‚‘ Add extra GDAL command line options Outputs Label Název Type Popis Calculated OUTPUT [raster] Output (calculated) raster layer Python code Algorithm ID: gdal:rastercalculator import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Raster information The gdalinfo program lists various information about a GDAL supported raster dataset. This algorithm is derived from the GDAL info utility. Default menu: Raster ► Miscellaneous Parameters Basic parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer Force computation of the actual min/max values for each band MIN_MAX [boolean] Default: False Forces computation of the actual min/max values for each band in the dataset continues on next page 1170 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.179 – pokračujte na předchozí stránce Label Název Type Popis Read and display image statistics (force computation if necessary) STATS [boolean] Default: False Reads and displays image statistics. Forces computation if no statistics are stored in an image. Suppress GCP info NO_GCP [boolean] Default: False Suppresses ground control points list printing. It may be useful for datasets with huge amount of GCPs, such as L1B AVHRR or HDF4 MODIS which contain thousands of them. Suppress metadata info NO_METADATA [boolean] Default: False Suppresses metadata printing. Some datasets may contain a lot of metadata strings. Layer information OUTPUT [html] Default: [Save to temporary file] Specify the HTML file for output. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options Outputs Label Název Type Popis Layer information OUTPUT [html] The HTML file containing information about the input raster layer Python code Algorithm ID: gdal:gdalinfo import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2. GDAL algorithm provider 1171 QGIS Desktop 3.16 User Guide Retile Retiles a set of input tiles. All the input tiles must be georeferenced in the same coordinate system and have a matching number of bands. Optionally pyramid levels are generated. This algorithm is derived from the GDAL Retile utility. Parameters Basic parameters Label Název Type Popis Input files INPUT [raster] [list] The input raster files Tile width TILE_SIZE_X [number] Default: 256 Width of the tiles in pixels (minimum 0) Tile height TILE_SIZE_Y [number] Default: 256 Height of the tiles in pixels (minimum 0) Overlap in pixels between consecutive tiles OVERLAP [number] Default: 0 Number of pyramid levels to build LEVELS [number] Default: 1 Minimum: 0 Output directory OUTPUT [folder] Default: [Save to temporary folder] Specify the output folder for the tiles. One of: • Save to a Temporary Directory • Save to Directory CSV file containing the tile(s) georeferencing information OUTPUT_CSV [file] Default: [Skip output] Specify the output file for the tiles. One of: • Skip Output • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Source coordinate reference system Optional SOURCE_CRS [crs] Default: None Resampling method RESAMPLING [enumeration] Default: 0 The resampling algorithm to be used Options: • 0 — Nearest Neighbour (nearest) • 1 — Bilinear (bilinear) • 2 — Cubic (cubic) • 3 — Cubic Spline (cubicspline) • 4 — Lanczos Windowed Sinc (lanczos) Column delimiter used in the CSV file Optional DELIMITER [string] Default: ‚;‘ Delimiter to use in the CSV file containing the tile(s) georeferencing information continues on next page 1172 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.182 – pokračujte na předchozí stránce Label Název Type Popis Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters Optional EXTRA [string] Default: ‚‘ Add extra GDAL command line options Output data type DATA_TYPE [enumeration] Default: 5 Defines the format of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Build only the pyramids ONLY_PYRAMIDS [boolean] Default: False Use separate directory for each tile row DIR_FOR_ROW [boolean] Default: False Outputs Label Název Type Popis Output directory OUTPUT [folder] The output folder for the tiles. CSV file containing the tile(s) georeferencing information OUTPUT_CSV [file] The CSV file with georeferencing information for the tiles. Python code Algorithm ID: gdal:retile import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2. GDAL algorithm provider 1173 QGIS Desktop 3.16 User Guide Tile index Builds a vector layer with a record for each input raster file, an attribute containing the filename, and a polygon geometry outlining the raster. This output is suitable for use with MapServer as a raster tileindex. This algorithm is derived from the GDAL Tile Index utility. Default menu: Raster ► Miscellaneous Parameters Basic parameters Label Název Type Popis Input files LAYERS [raster] [list] The input raster files. Can be multiple files. Field name to hold the file path to the indexed rasters PATH_FIELD_NAME Optional [string] Default: ‚location‘ The output field name to hold the file path/location to the indexed rasters. Store absolute path to the indexed rasters ABSOLUTE_PATH [boolean] Default: False Set whether the absolute path to the raster files is stored in the tile index file. By default the raster filenames will be put in the file exactly as they are specified in the command. Skip files with different projection reference PROJ_DIFFERENCE[boolean] Default: False Only files with same projection as files already inserted in the tile index will be inserted. Default does not check projection and accepts all inputs. Tile index OUTPUT [vector: polygon] Default: [Save to temporary file] Specify the polygon vector layer to write the index to. One of: • Save to a Temporary File • Save to File… Advanced parameters Label Název Type Popis Transform geometries to the given CRS Optional TARGET_CRS [crs] Geometries of input files will be transformed to the specified target coordinate reference system. Default creates simple rectangular polygons in the same coordinate reference system as the input rasters. The name of the field to store the SRS of each tile Optional CRS_FIELD_NAME [string] The name of the field to store the SRS of each tile The format in which the CRS of each tile must be written CRS_FORMAT [enumeration] Default: 0 Format for the CRS. One of: • 0 – Auto (AUTO) • 1 – Well-known text (WKT) • 2 – EPSG (EPSG) • 3 – Proj.4 (PROJ) 1174 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Tile index OUTPUT [vector: polygon] The polygon vector layer with the tile index. Python code Algorithm ID: gdal:tileindex import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Viewshed Calculates a viewshed raster from an input raster DEM using method defined in Wang2000 for a user defined point. Parameters Basic parameters Label Název Type Popis Input layer INPUT [raster] Input elevation raster layer Band number BAND [raster band] Default: 1 The number of the band to use as elevation Observer location OBSERVER [point] The location of the observer Observer height OBSERVER_HEIGHT[number] Default: 1.0 The altitude of the observer, in the DEM units Target height TARGET_HEIGHT [number] Default: 1.0 The altitude of the target element, in the DEM units Maximum distance from observer to compute visibility MAX_DISTANCE [number] Default: 100.0 Maximum distance from observer to compute visibility, in the DEM units Output OUTPUT [raster] Default: [Save to temporary file] Output raster layer. One of: • Save to a Temporary File • Save to File… 24.2. GDAL algorithm provider 1175 QGIS Desktop 3.16 User Guide Advanced parameters Label Název Type Popis Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Additional command-line parameters EXTRA [string] Default: None Add extra GDAL command line options Outputs Label Název Type Popis Output OUTPUT [raster] The raster layer displaying the viewshed. Python code Algorithm ID: gdal:viewshed import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2.5 Raster projections Assign projection Applies a coordinate system to a raster dataset. This algorithm is derived from the GDAL edit utility. Default menu: Raster ► Projections Parameters Label Název Type Popis Input layer INPUT_LAYER [raster] Input raster layer Desired CRS CRS [crs] The projection (CRS) of the output layer 1176 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Layer with projection OUTPUT [raster] The output raster layer (with the new projection information) Python code Algorithm ID: gdal:assignprojection import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Extract projection Extracts the projection of a raster file and writes it into a world file with extension .wld. This algorithm is derived from the GDAL srsinfo utility. Default menu: Raster ► Projections Parameters Label Název Type Popis Input file INPUT_LAYER [raster] Input raster The raster layer has to be file based, as the algorithm uses the path to the raster file as the location of the generated . wld file. Using a non-file raster layer will lead to an error. Create also .prj file PRJ_FILE_CREATE[boolean] Default: False If this is activated a .prj file containing the projection information is also created. Outputs Label Název Type Popis World file WORLD_FILE [file] Text file with extension .wld containing transformation parameters for the raster file. ESRI Shapefile prj file PRJ_FILE [file] Text file with .prj extension that describes the CRS. Will be None if Create also .prj file is False. 24.2. GDAL algorithm provider 1177 QGIS Desktop 3.16 User Guide Python code Algorithm ID: gdal:extractprojection import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Warp (reproject) Reprojects a raster layer into another Coordinate Reference System (CRS). The output file resolution and the resampling method can be chosen. This algorithm is derived from the GDAL warp utility. Default menu: Raster ► Projections Parameters Label Název Type Popis Input layer INPUT [raster] Input raster layer to reproject Source CRS Optional SOURCE_CRS [crs] Defines the CRS of the input raster layer Target CRS Optional TARGET_CRS [crs] Default: EPSG:4326 The CRS of the output layer Resampling method to use RESAMPLING [enumeration] Default: 0 Pixel value resampling method to use. Options: • 0 — Nearest neighbour • 1 — Bilinear • 2 — Cubic • 3 — Cubic spline • 4 — Lanczos windowed sinc • 5 — Average • 6 — Mode • 7 — Maximum • 8 — Minimum • 9 — Median • 10 — First quartile • 11 — Third quartile Nodata value for output bands Optional NODATA [number] Default: None Sets nodata value for output bands. If not provided, then nodata values will be copied from the source dataset. Output file resolution in target georeferenced units Optional TARGET_RESOLUTION[number] Default: None Defines the output file resolution of reprojection result continues on next page 1178 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.187 – pokračujte na předchozí stránce Label Název Type Popis Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). Output data type DATA_TYPE [enumeration] Default: 0 Defines the format of the output raster file. Options: • 0 — Use input layer data type • 1 — Byte • 2 — Int16 • 3 — UInt16 • 4 — UInt32 • 5 — Int32 • 6 — Float32 • 7 — Float64 • 8 — CInt16 • 9 — CInt32 • 10 — CFloat32 • 11 — CFloat64 Georeferenced extents of output file to be created Optional TARGET_EXTENT [extent] Sets the georeferenced extent of the output file to be created (in the Target CRS by default. In the CRS of the target raster extent, if specified). CRS of the target raster extent Optional TARGET_EXTENT_CRS[crs] Specifies the CRS in which to interpret the coordinates given for the extent of the output file. This must not be confused with the target CRS of the output dataset. It is instead a convenience e.g. when knowing the output coordinates in a geodetic long/lat CRS, but wanting a result in a projected coordinate system. Use multithreaded warping implementation MULTITHREADING [boolean] Default: False Two threads will be used to process chunks of the image and perform input/output operations simultaneously. Note that the computation itself is not multithreaded. Additional command-line parameters Optional EXTRA [string] Default: None Add extra GDAL command line options. Reprojected OUTPUT [raster] Default: ‚[Save to temporary file]‘ Specification of the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.2. GDAL algorithm provider 1179 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Reprojected OUTPUT [raster] Default: [Save to temporary file] Reprojected output raster layer Python code Algorithm ID: gdal:warpreproject import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2.6 Vector conversion Convert format Converts any OGR-supported vector layer into another OGR-supported format. This algorithm is derived from the ogr2ogr utility. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. Converted OUTPUT [same as input] Specification of the output vector layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. For Save to File, the output format has to be specified. All GDAL vector formats are supported. For Save to a Temporary File the QGIS default vector format will be used. 1180 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Converted OUTPUT [same as input] The output vector layer Python code Algorithm ID: gdal:convertformat import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Rasterize (overwrite with attribute) Overwrites a raster layer with values from a vector layer. New values are assigned based on the attribute value of the overlapping vector feature. This algorithm is derived from the GDAL rasterize utility. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Input raster layer INPUT_RASTER [raster] Input raster layer Field to use for a burn-in value Optional FIELD [tablefield: numeric] Defines the attribute field to use to set the pixels values Add burn in values to existing raster values ADD [boolean] Default: False If False, pixels are assigned the selected field’s value. If True, the selected field’s value is added to the value of the input raster layer. Additional command-line parameters Optional EXTRA [string] Default: ‚‘ Add extra GDAL command line options Outputs Label Název Type Popis Rasterized OUTPUT [raster] The overwritten input raster layer 24.2. GDAL algorithm provider 1181 QGIS Desktop 3.16 User Guide Python code Algorithm ID: gdal:rasterize_over import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Rasterize (overwrite with fixed value) Overwrites parts of a raster layer with a fixed value. The pixels to overwrite are chosen based on the supplied (overlapping) vector layer. This algorithm is derived from the GDAL rasterize utility. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Input raster layer INPUT_RASTER [raster] Input raster layer A fixed value to burn BURN [number] Default: 0.0 The value to burn Add burn in values to existing raster values ADD [boolean] Default: False If False, pixels are assigned the fixed value. If True, the fixed value is added to the value of the input raster layer. Additional command-line parameters Optional EXTRA [string] Default: ‚‘ Add extra GDAL command line options Outputs Label Název Type Popis Rasterized OUTPUT [raster] The overwritten input raster layer Python code Algorithm ID: gdal:rasterize_over_fixed_value import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1182 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Rasterize (vector to raster) Converts vector geometries (points, lines and polygons) into a raster image. This algorithm is derived from the GDAL rasterize utility. Default menu: Raster ► Conversion Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Field to use for a burn-in value Optional FIELD [tablefield: numeric] Defines the attribute field from which the attributes for the pixels should be chosen A fixed value to burn Optional BURN [number] Default: 0.0 A fixed value to burn into a band for all features. Output raster size units UNITS [enumeration] Default: 0 Units to use when defining the output raster size/resolution. One of: • 0 — Pixels • 1 — Georeferenced units Width/Horizontal resolution WIDTH [number] Default: 0.0 Sets the width (if size units is „Pixels“) or horizontal resolution (if size units is „Georeferenced units“) of the output raster. Minimum value: 0.0. Height/Vertical resolution HEIGHT [number] Default: 0.0 Sets the height (if size units is „Pixels“) or vertical resolution (if size units is „Georeferenced units“) of the output raster. Output extent EXTENT [extent] Extent of the output raster layer. If the extent is not specified, the minimum extent that covers the selected reference layer(s) will be used. Assign a specified nodata value to output bands Optional NODATA [number] Default: 0.0 Assigns a specified nodata value to output bands Additional creation options Optional OPTIONS [string] Default: ‚‘ For adding one or more creation options that control the raster to be created (colors, block size, file compression…). For convenience, you can rely on predefined profiles (see GDAL driver options section). For Batch Process: separate multiple options with a pipe character (|). continues on next page 24.2. GDAL algorithm provider 1183 QGIS Desktop 3.16 User Guide Tabulka 24.190 – pokračujte na předchozí stránce Label Název Type Popis Output data type DATA_TYPE [enumeration] Default: 5 Defines the format of the output raster file. Options: • 0 — Byte • 1 — Int16 • 2 — UInt16 • 3 — UInt32 • 4 — Int32 • 5 — Float32 • 6 — Float64 • 7 — CInt16 • 8 — CInt32 • 9 — CFloat32 • 10 — CFloat64 Pre-initialize the output image with value Optional INIT [number] Pre-initializes the output image bands with this value. Not marked as the nodata value in the output file. The same value is used in all the bands. Invert rasterization INVERT [boolean] Default: False Burns the fixed burn value, or the burn value associated with the first feature into all parts of the image not inside the provided polygon. Rasterized OUTPUT [raster] Default: ‚[Save to temporary file]‘ Specification of the output raster layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here For Save to File, the output format has to be specified. All GDAL raster formats are supported. For Save to a Temporary File the QGIS default raster format will be used. Outputs Label Název Type Popis Rasterized OUTPUT [raster] Output raster layer Python code Algorithm ID: gdal:rasterize import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1184 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide 24.2.7 Vector geoprocessing Buffer vectors Create buffers around the features of a vector layer. Parameters Label Název Type Popis Input layer INPUT [vector: any] The input vector layer Geometry column name GEOMETRY [string] Default: ‚geometry‘ The name of the input layer geometry column to use Buffer distance DISTANCE [number] Default: 10.0 Minimum: 0.0 Dissolve by attribute Optional FIELD [tablefield: any] Default: None Field to use for dissolving Dissolve results DISSOLVE [boolean] Default: False If set, the result is dissolved. If no field is set for dissolving, all the buffers are dissolved into one feature. Produce one feature for each geometry in any kind of geometry collection in the source file EXPLODE_COLLECTIONS[boolean] Default: False Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. Buffer OUTPUT [vector: polygon] Default: [Save to temporary file] Specify the output buffer layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Buffer OUTPUT [vector: polygon] The output buffer layer Python code Algorithm ID: gdal:buffervectors import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2. GDAL algorithm provider 1185 QGIS Desktop 3.16 User Guide Clip vector by extent Clips any OGR-supported vector file to a given extent. This algorithm is derived from the GDAL ogr2ogr utility. Parameters Label Název Type Popis Input layer INPUT [vector: any] The input vector layer Clip extent EXTENT [extent] Defines the bounding box that should be used for the output vector file. It has to be defined in target CRS coordinates. Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. Clipped (extent) OUTPUT [same as input] Default: [Save to temporary file] Specify the output (clipped) layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Clipped (extent) OUTPUT [same as input] The output (clipped) layer. The default format is „ESRI Shapefile“. Python code Algorithm ID: gdal:clipvectorbyextent import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Clip vector by mask layer Clips any OGR-supported vector layer by a mask polygon layer. This algorithm is derived from the GDAL ogr2ogr utility. 1186 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: any] The input vector layer Mask layer MASK [vector: polygon] Layer to be used as clipping extent for the input vector layer. Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. Clipped (mask) OUTPUT [same as input] Default: [Save to temporary file] The output (masked) layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Clipped (mask) OUTPUT [same as input] The output (masked) layer. The default format is „ESRI Shapefile“. Python code Algorithm ID: gdal:clipvectorbypolygon import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Dissolve Dissolve (combine) geometries that have the same value for a given attribute / field. The output geometries are multipart. Parameters Label Název Type Popis Input layer INPUT [vector: any] The input layer to dissolve Dissolve field Optional FIELD [tablefield: any] The field of the input layer to use for dissolving Geometry column name GEOMETRY [string] Default: ‚geometry‘ The name of the input layer geometry column to use for dissolving. Produce one feature for each geometry in any kind of geometry collection in the source file EXPLODE_COLLECTIONS[boolean] Default: False Produce one feature for each geometry in any kind of geometry collection in the source file continues on next page 24.2. GDAL algorithm provider 1187 QGIS Desktop 3.16 User Guide Tabulka 24.192 – pokračujte na předchozí stránce Label Název Type Popis Keep input attributes KEEP_ATTRIBUTES[boolean] Default: False Keep all attributes from the input layer Count dissolved features COUNT_FEATURES [boolean] Default: False Count the dissolved features and include it in the output layer. Compute area and perimeter of dissolved features COMPUTE_AREA [boolean] Default: False Compute the area and perimeter of dissolved features and include them in the output layer Compute min/max/sum/mean for attribute COMPUTE_STATISTICS[boolean] Default: False Calculate statistics (min, max, sum and mean) for the numeric attribute specified and include them in the output layer Numeric attribute to calculate statistics on Optional STATISTICS_ATTRIBUTE[tablefield: numeric] The numeric attribute to calculate statistics on Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. Dissolved OUTPUT [same as input] Default: [Save to temporary file] Specify the output layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Dissolved OUTPUT [same as input] The output multipart geometry layer (with dissolved geometries) Python code Algorithm ID: gdal:dissolve import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Offset curve Offsets lines by a specified distance. Positive distances will offset lines to the left, and negative distances will offset them to the right. 1188 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input layer INPUT [vector: line] The input line layer Geometry column name GEOMETRY [string] Default: ‚geometry‘ The name of the input layer geometry column to use Offset distance (left-sided: positive, right-sided: negative) DISTANCE [number] Default: 10.0 Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. Offset curve OUTPUT [vector: line] Default: [Save to temporary file] Specify the output line layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Offset curve OUTPUT [vector: line] The output offset curve layer Python code Algorithm ID: gdal:offsetcurve import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. One side buffer Creates a buffer on one side (right or left) of the lines in a line vector layer. Parameters Label Název Type Popis Input layer INPUT [vector: line] The input line layer Geometry column name GEOMETRY [string] Default: ‚geometry‘ The name of the input layer geometry column to use Buffer distance DISTANCE [number] Default: 10.0 Buffer side BUFFER_SIDE [enumeration] Default: 0 One of: • 0 — Right • 1 — Left continues on next page 24.2. GDAL algorithm provider 1189 QGIS Desktop 3.16 User Guide Tabulka 24.194 – pokračujte na předchozí stránce Label Název Type Popis Dissolve by attribute Optional FIELD [tablefield: any] Default: None Field to use for dissolving Dissolve all results DISSOLVE [boolean] Default: False If set, the result is dissolved. If no field is set for dissolving, all the buffers are dissolved into one feature. Produce one feature for each geometry in any kind of geometry collection in the source file EXPLODE_COLLECTIONS[boolean] Default: False Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. One-sided buffer OUTPUT [vector: polygon] Default: [Save to temporary file] Specify the output buffer layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis One-sided buffer OUTPUT [vector: polygon] The output buffer layer Python code Algorithm ID: gdal:onesidebuffer import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1190 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Points along lines Generates a point on each line of a line vector layer at a distance from start. The distance is provided as a fraction of the line length. Parameters Label Název Type Popis Input layer INPUT [vector: line] The input line layer Geometry column name GEOMETRY [string] Default: ‚geometry‘ The name of the input layer geometry column to use Distance from line start represented as a fraction of line length DISTANCE [number] Default: 0.5 (middle of the line) Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. Points along line OUTPUT [vector: point] Default: [Save to temporary file] Specify the output point layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Points along line OUTPUT [vector: point] The output point layer Python code Algorithm ID: gdal:pointsalonglines import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.2.8 Vector miscellaneous Build virtual vector Creates a virtual vector layer that contains a set of vector layers. The output virtual vector layer will not be opened in the current project. This algorithm is especially useful in case another algorithm needs multiple layers but accept only one vrt in which the layers are specified. 24.2. GDAL algorithm provider 1191 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Input datasources INPUT [vector: any] [list] Select the vector layers you want to use to build the virtual vector Create „unioned“ VRT UNIONED [boolean] Default: False Check if you want to unite all the vectors in a single vrt file Virtual vector OUTPUT [same as input] Default: [Save to temporary file] Specify the output layer containing only the duplicates. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Virtual vector OUTPUT [vector: any] The output virtual vector made from the chosen sources Python code Algorithm ID: gdal:buildvirtualvector import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Execute SQL Runs a simple or complex query with SQL syntax on the source layer. The result of the query will be added as a new layer. This algorithm is derived from the GDAL ogr2ogr utility. Parameters Label Název Type Popis Input layer INPUT [vector: any] OGR-supported input vector layer SQL expression SQL [string] Defines the SQL query, for example SELECT * FROM my_table WHERE name is not null. SQL dialect DIALECT [enumeration] Default: 0 SQL dialect to use. One of: • 0 — None • 1 — OGR SQL • 2 — SQLite continues on next page 1192 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.196 – pokračujte na předchozí stránce Label Název Type Popis Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. SQL result OUTPUT [vector: any] Specification of the output layer. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. For Save to File, the output format has to be specified. All GDAL vector formats are supported. For Save to a Temporary File the default output vector layer format will be used. Outputs Label Název Type Popis SQL result OUTPUT [vector: any] Vector layer created by the query Python code Algorithm ID: gdal:executesql import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Export to PostgreSQL (available connections) Imports vector layers inside a PostgreSqL database on the basis of an available connection. The connection has to be defined properly beforehand. Be aware that the checkboxes ‚Save Username‘ and ‚Save Password‘ are activated. Then you can use the algorithm. This algorithm is derived from the GDAL ogr2ogr utility. Parameters Label Název Type Popis Database (connection name) DATABASE [string] The PostgreSQL database to connect to Input layer INPUT [vector: any] OGR-supported vector layer to export to the database Shape encoding Optional SHAPE_ENCODING [string] Default: ‚‘ Sets the encoding to apply to the data continues on next page 24.2. GDAL algorithm provider 1193 QGIS Desktop 3.16 User Guide Tabulka 24.197 – pokračujte na předchozí stránce Label Název Type Popis Output geometry type GTYPE [enumeration] Default: 0 Defines the output geometry type. One of: • 0 — • 1 — NONE • 2 — GEOMETRY • 3 — POINT • 4 — LINESTRING • 5 — POLYGON • 6 — GEOMETRYCOLLECTION • 7 — MULTIPOINT • 8 — MULTIPOLYGON • 9 — MULTILINESTRING Assign an output CRS Optional A_SRS [crs] Default: None Defines the output CRS of the database table Reproject to this CRS on output Optional T_SRS [crs] Default: None Reprojects/transforms to this CRS on output Override source CRS Optional S_SRS [crs] Default: None Overrides the input layer CRS Schema (schema name) Optional SCHEMA [string] Default: ‚public‘ Defines the schema for the database table Table to export to (leave blank to use layer name) Optional TABLE [string] Default: ‚‘ Defines a name for the table that will be imported into the database. By default the table name is the name of the input vector file. Primary Key (new field) Optional PK [string] Default: ‚id‘ Defines which attribute field will be the primary key of the database table Primary Key (existing field, used if the above option is left empty) Optional PRIMARY_KEY [tablefield: any] Default: None Defines which attribute field in the exported layer will be the primary key of the database table Geometry column name Optional GEOCOLUMN [string] Default: ‚geom‘ Defines in which attribute field of the database there will be the geometry information Vector dimensions Optional DIM [enumeration] Default: 0 (2D) Defines if the vector file to be imported has 2D or 3D data. One of: • 0 — 2 • 1 — 3 Distance tolerance for simplification Optional SIMPLIFY [string] Default: ‚‘ Defines a distance tolerance for the simplification of the vector geometries to be imported. By default there is no simplification. Maximum distance between 2 nodes (densification) Optional SEGMENTIZE [string] Default: ‚‘ The maximum distance between two nodes. Used to create intermediate points. By default there is no densification. continues on next page 1194 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.197 – pokračujte na předchozí stránce Label Název Type Popis Select features by extent (defined in input layer CRS) Optional SPAT [extent] Default: None You can select features from a given extent that will be in the output table. Clip the input layer using the above (rectangle) extent Optional CLIP [boolean] Default: False The input layer will be clipped by the extent you defined before Select features using a SQL „WHERE“ statement (Ex: column=“value“) Optional WHERE [string] Default: ‚‘ Defines with a SQL „WHERE“ statement which features should be selected from the input layer Group N features per transaction (Default: 2000) Optional GT [string] Default: ‚‘ You can group the input features in transactions where N defines the size. By default N limits the transaction size to 20000 features. Overwrite existing table Optional OVERWRITE [boolean] Default: True If there is a table with the same name in the database, and if this option is set to True, the table will be overwritten. Append to existing table Optional APPEND [boolean] Default: False If checked / True the vector data will be appended to an existing table. New fields found in the input layer are ignored. By default a new table will be created. Append and add new fields to existing table Optional ADDFIELDS [boolean] Default: False If activated the vector data will be appended to an existing table, there won’t be a new table created. New fields found in input layer are added to the table. By default a new table will be created. Do not launder columns/table names Optional LAUNDER [boolean] Default: False With this option checked you can prevent the default behaviour (converting column names to lowercase, removing spaces and other invalid characters). Do not create Spatial Index Optional INDEX [boolean] Default: False Prevents a spatial index for the output table from being created. By default, a spatial index is added. Continue after a failure, skipping the failed feature Optional SKIPFAILURES [boolean] Default: False Promote to Multipart Optional PROMOTETOMULTI [boolean] Default: True Casts features geometry type to multipart in the output table Keep width and precision of input attributes Optional PRECISION [boolean] Default: True Avoids modifying column attributes to comply with input data Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. 24.2. GDAL algorithm provider 1195 QGIS Desktop 3.16 User Guide Outputs This algorithm has no output. Python code Algorithm ID: gdal:importvectorintopostgisdatabaseavailableconnections import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Export to PostgreSQL (new connection) Imports vector layers inside a PostGreSQL database. A new connection to the PostGIS database must be created. This algorithm is derived from the GDAL ogr2ogr utility. Parameters Label Název Type Popis Input layer INPUT [vector: any] OGR-supported vector layer to export to the database Shape encoding Optional SHAPE_ENCODING [string] Default: ‚‘ Sets the encoding to apply to the data Output geometry type GTYPE [enumeration] Default: 0 Defines the output geometry type. One of: • 0 — • 1 — NONE • 2 — GEOMETRY • 3 — POINT • 4 — LINESTRING • 5 — POLYGON • 6 — GEOMETRYCOLLECTION • 7 — MULTIPOINT • 8 — MULTIPOLYGON • 9 — MULTILINESTRING Assign an output CRS Optional A_SRS [crs] Default: None Defines the output CRS of the database table Reproject to this CRS on output Optional T_SRS [crs] Default: None Reprojects/transforms to this CRS on output Override source CRS Optional S_SRS [crs] Default: None Overrides the input layer CRS Host Optional HOST [string] Default: ‚localhost‘ Name of the database host Port Optional PORT [string] Default: ‚5432‘ Port number the PostgreSQL database server listens on continues on next page 1196 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.198 – pokračujte na předchozí stránce Label Název Type Popis Username Optional USER [string] Default: ‚‘ User name used to log in to the database Database name Optional DBNAME [string] Default: ‚‘ Name of the database Password Optional PASSWORD [string] Default: ‚‘ Password used with Username to connect to the database Schema (schema name) Optional SCHEMA [string] Default: ‚public‘ Defines the schema for the database table Table name, leave blank to use input name Optional TABLE [string] Default: ‚‘ Defines a name for the table that will be imported into the database. By default the table name is the name of the input vector file. Primary Key (new field) Optional PK [string] Default: ‚id‘ Defines which attribute field will be the primary key of the database table Primary Key (existing field, used if the above option is left empty) Optional PRIMARY_KEY [tablefield: any] Default: None Defines which attribute field in the exported layer will be the primary key of the database table Geometry column name Optional GEOCOLUMN [string] Default: ‚geom‘ Defines in which attribute field to store the geometry information Vector dimensions Optional DIM [enumeration] Default: 0 (2D) Defines if the vector file to be imported has 2D or 3D data. One of: • 0 — 2D • 1 — 3D Distance tolerance for simplification Optional SIMPLIFY [string] Default: ‚‘ Defines a distance tolerance for the simplification of the vector geometries to be imported. By default no simplification there is no simplification. Maximum distance between 2 nodes (densification) Optional SEGMENTIZE [string] Default: ‚‘ The maximum distance between two nodes. Used to create intermediate points. By default there is no densification. Select features by extent (defined in input layer CRS) Optional SPAT [extent] Default: None You can select features from a given extent that will be in the output table. Clip the input layer using the above (rectangle) extent Optional CLIP [boolean] Default: False The input layer will be clipped by the extent you defined before Fields to include (leave empty to use all fields) Optional FIELDS [string] [list] Default: [] Defines fields to keep from the imported vector file. If none is selected, all the fields are imported. continues on next page 24.2. GDAL algorithm provider 1197 QGIS Desktop 3.16 User Guide Tabulka 24.198 – pokračujte na předchozí stránce Label Název Type Popis Select features using a SQL „WHERE“ statement (Ex: column=“value“) Optional WHERE [string] Default: ‚‘ Defines with a SQL „WHERE“ statement which features should be selected for the output table Group N features per transaction (Default: 2000) Optional GT [string] Default: ‚‘ You can group the input features in transactions where N defines the size. By default N limits the transaction size to 20000 features. Overwrite existing table Optional OVERWRITE [boolean] Default: True If there is a table with the same name in the database, and if this option is set to True, the table will be overwritten. Append to existing table Optional APPEND [boolean] Default: False If checked / True the vector data will be appended to an existing table. New fields found in the input layer are ignored. By default a new table will be created. Append and add new fields to existing table Optional ADDFIELDS [boolean] Default: False If activated the vector data will be appended to an existing table, there won’t be created a new table. New fields found in input layer are added to the table. By default a new table will be created. Do not launder columns/table names Optional LAUNDER [boolean] Default: False With this option checked you can prevent the default behaviour (converting column names to lowercase, removing spaces and other invalid characters). Do not create Spatial Index Optional INDEX [boolean] Default: False Prevents a spatial index for the output table from being created. By default, a spatial index is added. Continue after a failure, skipping the failed feature Optional SKIPFAILURES [boolean] Default: False Promote to Multipart Optional PROMOTETOMULTI [boolean] Default: True Casts features geometry type to multipart in the output table Keep width and precision of input attributes Optional PRECISION [boolean] Default: True Avoids modifying column attributes to comply with input data Additional creation options Optional OPTIONS [string] Default: ‚‘ (no additional options) Additional GDAL creation options. 1198 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs This algorithm has no output. Python code Algorithm ID: gdal:importvectorintopostgisdatabasenewconnection import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Vector Information Creates an information file that lists information about an OGR-supported data source. The output will be shown in a ‚Result‘ window and can be written into a HTML-file. The information includes the geometry type, feature count, the spatial extent, the projection information and many more. This algorithm is derived from the GDAL ogrinfo utility. Parameters Label Název Type Popis Input layer INPUT [vector: any] Input vector layer Summary output only Optional SUMMARY_ONLY [boolean] Default: True Suppress metadata info Optional NO_METADATA [boolean] Default: False Layer information OUTPUT [html] Default: [Save to temporary file] Specify the output HTML file that includes the file information. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. If no HTML-file is defined the output will be written to a temporary file Outputs Label Název Type Popis Layer information OUTPUT [html] The output HTML-file that includes the file information. 24.2. GDAL algorithm provider 1199 QGIS Desktop 3.16 User Guide Python code Algorithm ID: gdal:ogrinfo import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3 LAStools algorithm provider LAStools is a collection of highly efficient, multicore command line tools for LiDAR data processing. 24.3.1 blast2dem Popis Turns points (up to billions) via seamless Delaunay triangulation implemented using streaming into large elevation, intensity, or RGB rasters. For more info see the blast2dem page and its online README file. Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file containing the points to be rastered in LAS/LAZ format. continues on next page 1200 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.200 – pokračujte na předchozí stránce Label Název Type Popis filter (by return, classification, flag) FILTER_RETURN_CLASS_FLAGS1[enumeration] Default: 0 Specifies which points to use to construct the temporary TIN that is then rasterized. One of: • 0 — — • 1 — keep_last • 2 — keep_first • 3 — keep_middle • 4 — keep_single • 5 — drop_single • 6 — keep_double • 7 — keep_class 2 • 8 — keep_class 2 8 • 9 — keep_class 8 • 10 — keep_class 6 • 11 — keep_class 9 • 12 — keep_class 3 4 5 • 13 — keep_class 2 6 • 14 — drop_class 7 • 15 — drop_withheld • 16 — drop_synthetic • 17 — drop_overlap • 18 — keep_withheld • 19 — keep_synthetic • 20 — keep_keypoint • 21 — keep_overlap step size / pixel size STEP [number] Default: 1.0 Specifies the size of the cells of the grid the TIN is rasterized onto Attribute ATTRIBUTE [enumeration] Default: 0 Specifies the attribute that is to be rastered. One of: • 0 — elevation • 1 — slope • 2 — intensity • 3 — rgb Product PRODUCT [enumeration] Default: 0 Specifies how the attribute is to be turned into raster values. One of: • 0 — actual values • 1 — hillshade • 2 — gray • 3 — false Use tile bounding box (after tiling with buffer) USE_TILE_BB [boolean] Default: False Specifies to limit the rastered area to the tile bounding box (only meaningful for input LAS/LAZ tiles that were created with lastile). additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. continues on next page 24.3. LAStools algorithm provider 1201 QGIS Desktop 3.16 User Guide Tabulka 24.200 – pokračujte na předchozí stránce Label Název Type Popis Output raster file OUTPUT_RASTER [raster] Default: [Skip output] Specifies where the output raster is stored. Use image rasters like TIF, PNG, and JPG for false color, gray ramps, and hillshades. Use value rasters like TIF, BIL, IMG, ASC, DTM, FLT, XYZ, and CSV for actual values. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output raster file OUTPUT_RASTER [raster] The output raster Python code Algorithm ID: lastools:blast2dem import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.2 blast2iso Popis Turns points (up to billions) via seamless Delaunay triangulation implemented using streaming into iso-contour lines. For more info see the blast2iso page and its online README file. Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file containing the points to be used for creating iso-contour lines. smooth underlying TIN SMOOTH [number] Default: 0 Specifies if and with how many passes the temporary TIN should be smoothed extract isoline with a spacing of ISO_EVERY [number] Default: 10.0 Specifies spacing at which iso-contour lines are getting extracted (contour interval) continues on next page 1202 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.201 – pokračujte na předchozí stránce Label Název Type Popis clean isolines shorter than (0 = do not clean) CLEAN [number] Default: 0.0 Omits iso-contour lines that are shorter than the specified length simplify segments shorter than (0 = do not simplify) SIMPLIFY_LENGTH[number] Default: 0.0 Rudimentary simplification of iso-contour line segments that are shorter than the specified length. simplify segment pairs with area less than (0 = do not simplify) SIMPLIFY_AREA [number] Default: 0.0 Rudimentary simplification of bumps formed by consecutive line segments whose area is smaller than the specified size. additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output vector file OUTPUT_VECTOR [vector: line] Default: [Skip output] Specifies where the output vector is stored. Use SHP or WKT output files. If your input LiDAR file is in geographic coordinates (long/lat) or has geo-referencing information (but only then) you can also create a KML output file. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output vector file OUTPUT_VECTOR [vector: line] The output line vector layer with contours Python code Algorithm ID: lastools:blast2iso import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.3 las2dem Popis Turns points (up to 20 million) via a temporary Delaunay triangulation that is rasterized with a user-defined step size into an elevation, intensity, or RGB raster. For more info see the las2dem page and its online README file. 24.3. LAStools algorithm provider 1203 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file containing the points to be rastered in LAS/LAZ format. filter (by return, classification, flags) FILTER_RETURN_CLASS_FLAGS1[enumeration] Default: 0 Specifies which points to use to construct the temporary TIN that is then rasterized. One of: • 0 — — • 1 — keep_last • 2 — keep_first • 3 — keep_middle • 4 — keep_single • 5 — drop_single • 6 — keep_double • 7 — keep_class 2 • 8 — keep_class 2 8 • 9 — keep_class 8 • 10 — keep_class 6 • 11 — keep_class 9 • 12 — keep_class 3 4 5 • 13 — keep_class 3 • 14 — keep_class 4 • 15 — keep_class 5 • 16 — keep_class 2 6 • 17 — drop_class 7 • 18 — drop_withheld • 19 — drop_synthetic • 20 — drop_overlap • 21 — keep_withheld • 22 — keep_synthetic • 23 — keep_keypoint • 24 — keep_overlap step size / pixel size STEP [number] Default: 1.0 Specifies the size of the cells of the grid the TIN is rasterized onto Attribute ATTRIBUTE [enumeration] Default: 0 Specifies the attribute to rasterise. One of: • 0 — elevation • 1 — slope • 2 — intensity • 3 — rgb • 4 — edge_longest • 5 — edge_shortest continues on next page 1204 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.202 – pokračujte na předchozí stránce Label Název Type Popis Product PRODUCT [enumeration] Default: 0 Specifies how the attribute is to be turned into raster values. One of: • 0 — actual values • 1 — hillshade • 2 — gray • 3 — false Use tile bounding box (after tiling with buffer) USE_TILE_BB [boolean] Default: False Specifies to limit the rastered area to the tile bounding box (only meaningful for input LAS/LAZ tiles that were created with lastile). additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output raster file OUTPUT_RASTER [raster] Default: [Skip output] Specifies where the output raster is stored. Use image rasters like TIF, PNG, and JPG for false color, gray ramps, and hillshades. Use value rasters like TIF, BIL, IMG, ASC, DTM, FLT, XYZ, and CSV for actual values. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output raster file OUTPUT_RASTER [raster] The output raster Python code Algorithm ID: lastools:las2dem import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.4 las2iso Popis Turns point clouds (up to 20 million per file) into iso-contour lines by creating a temporary Delaunay triangulation on which the contours are then traced. For more info see the las2iso page and its online README file. 24.3. LAStools algorithm provider 1205 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file containing the points to be used for creating iso-contour lines. smooth underlying TIN SMOOTH [number] Default: 0 Specifies if and with how many passes the temporary TIN should be smoothed extract isoline with a spacing of ISO_EVERY [number] Default: 10.0 Specifies spacing at which iso-contour lines are getting extracted (contour interval) clean isolines shorter than (0 = do not clean) CLEAN [number] Default: 0.0 Omits iso-contour lines that are shorter than the specified length simplify segments shorter than (0 = do not simplify) SIMPLIFY_LENGTH[number] Default: 0.0 Rudimentary simplification of iso-contour line segments that are shorter than the specified length. simplify segment pairs with area less than (0 = do not simplify) SIMPLIFY_AREA [number] Default: 0.0 Rudimentary simplification of bumps formed by consecutive line segments whose area is smaller than the specified size. additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output vector file OUTPUT_VECTOR [vector: line] Default: [Skip output] Specifies where the output vector is stored. Use SHP or WKT output files. If your input LiDAR file is in geographic coordinates (long/lat) or has geo-referencing information (but only then) you can also create a KML output file. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output vector file OUTPUT_VECTOR [vector: line] The output line vector layer with contours 1206 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: lastools:las2iso import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.5 las2las_filter Popis Uses las2las to filter LiDAR points based on different attributes and to write the surviving subset of points to a new LAZ or LAS file. For more info see the las2las page and its online README file. Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file containing the points to be used for creating iso-contour lines. continues on next page 24.3. LAStools algorithm provider 1207 QGIS Desktop 3.16 User Guide Tabulka 24.204 – pokračujte na předchozí stránce Label Název Type Popis filter (by return, classification, flags) FILTER_RETURN_CLASS_FLAGS1[enumeration] Default: 0 Filters points based on various options such as return, classification, or flags. One of: • 0 — — • 1 — keep_last • 2 — keep_first • 3 — keep_middle • 4 — keep_single • 5 — drop_single • 6 — keep_double • 7 — keep_class 2 • 8 — keep_class 2 8 • 9 — keep_class 8 • 10 — keep_class 6 • 11 — keep_class 9 • 12 — keep_class 3 4 5 • 13 — keep_class 3 • 14 — keep_class 4 • 15 — keep_class 5 • 16 — keep_class 2 6 • 17 — drop_class 7 • 18 — drop_withheld • 19 — drop_synthetic • 20 — drop_overlap • 21 — keep_withheld • 22 — keep_synthetic • 23 — keep_keypoint • 24 — keep_overlap continues on next page 1208 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.204 – pokračujte na předchozí stránce Label Název Type Popis second filter (by return, classification, flags) FILTER_RETURN_CLASS_FLAGS2[enumeration] Default: 0 Filters points based on various options such as return, classification, or flags. One of: • 0 — — • 1 — keep_last • 2 — keep_first • 3 — keep_middle • 4 — keep_single • 5 — drop_single • 6 — keep_double • 7 — keep_class 2 • 8 — keep_class 2 8 • 9 — keep_class 8 • 10 — keep_class 6 • 11 — keep_class 9 • 12 — keep_class 3 4 5 • 13 — keep_class 3 • 14 — keep_class 4 • 15 — keep_class 5 • 16 — keep_class 2 6 • 17 — drop_class 7 • 18 — drop_withheld • 19 — drop_synthetic • 20 — drop_overlap • 21 — keep_withheld • 22 — keep_synthetic • 23 — keep_keypoint • 24 — keep_overlap filter (by coordinate, intensity, GPS time, …) FILTER_COORDS_INTENSITY1[enumeration] Default: 0 Filters points based on various other options (that require a value as argument). One of: • 0 — — • 1 — drop_x_above • 2 — drop_x_below • 3 — drop_y_above • 4 — drop_y_below • 5 — drop_z_above • 6 — drop_z_below • 7 — drop_intensity_above • 8 — drop_intensity_below • 9 — drop_gps_time_above • 10 — drop_gps_time_below • 11 — drop_scan_angle_above • 12 — drop_scan_angle_below • 13 — keep_point_source • 14 — drop_point_source • 15 — drop_point_source_above • 16 — drop_point_source_below • 17 — keep_user_data • 18 — drop_user_data • 19 — drop_user_data_above • 20 — drop_user_data_below • 21 — keep_every_nth • 22 — keep_random_fraction • 23 — thin_with_grid continues on next page 24.3. LAStools algorithm provider 1209 QGIS Desktop 3.16 User Guide Tabulka 24.204 – pokračujte na předchozí stránce Label Název Type Popis value for filter (by coordinate, intensity, GPS time, …) FILTER_COORDS_INTENSITY1_ARG[number] Default: None The value to use as the argument for the filter selected above second filter (by coordinate, intensity, GPS time, …) FILTER_COORDS_INTENSITY2[enumeration] Default: 0 Filters points based on various other options (that require a value as argument). One of: • 0 — — • 1 — drop_x_above • 2 — drop_x_below • 3 — drop_y_above • 4 — drop_y_below • 5 — drop_z_above • 6 — drop_z_below • 7 — drop_intensity_above • 8 — drop_intensity_below • 9 — drop_gps_time_above • 10 — drop_gps_time_below • 11 — drop_scan_angle_above • 12 — drop_scan_angle_below • 13 — keep_point_source • 14 — drop_point_source • 15 — drop_point_source_above • 16 — drop_point_source_below • 17 — keep_user_data • 18 — drop_user_data • 19 — drop_user_data_above • 20 — drop_user_data_below • 21 — keep_every_nth • 22 — keep_random_fraction • 23 — thin_with_grid value for second filter (by coordinate, intensity, GPS time, …) FILTER_COORDS_INTENSITY2_ARG[number] Default: None The value to use as the argument for the filter selected above additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output LAS/LAZ file OUTPUT_LASLAZ [file] Default: [Skip output] Specifies where the output point cloud is stored. Use LAZ for compressed output, LAS for uncompressed output, and TXT for ASCII. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. 1210 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Output LAS/LAZ file OUTPUT_LASLAZ [file] The output LAS/LAZ format file Python code Algorithm ID: lastools:las2las_filter import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.6 las2las_project Transform LAS/LAZ files in a folder to another CRS. Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] Input LAS/LAZ file source projection SOURCE_PROJECTION[enumeration] Default: 0 One of: • 0 — — • 1 — epsg • 2 — utm • 3 — sp83 • 4 — sp27 • 5 — longlat • 6 — latlong • 7 — ecef continues on next page 24.3. LAStools algorithm provider 1211 QGIS Desktop 3.16 User Guide Tabulka 24.205 – pokračujte na předchozí stránce Label Název Type Popis source utm zone SOURCE_UTM [enumeration] Default: 0 One of: • 0 — — • 1 — 1 (north) • 2 — 2 (north) • 3 — 3 (north) • 4 — 4 (north) • 5 — 5 (north) • 6 — 6 (north) • 7 — 7 (north) • 8 — 8 (north) • 9 — 9 (north) • 10 — 10 (north) • 11 — 11 (north) • 12 — 12 (north) • 13 — 13 (north) • 14 — 14 (north) • 15 — 15 (north) • 16 — 16 (north) • 17 — 17 (north) • 18 — 18 (north) • 19 — 19 (north) • 20 — 20 (north) • 21 — 21 (north) • 22 — 22 (north) • 23 — 23 (north) • 24 — 24 (north) • 25 — 25 (north) • 26 — 26 (north) • 27 — 27 (north) • 28 — 28 (north) • 29 — 29 (north) • 30 — 30 (north) • 31 — 31 (north) • 32 — 32 (north) • 33 — 33 (north) • 34 — 34 (north) • 35 — 35 (north) • 36 — 36 (north) • 37 — 37 (north) • 38 — 38 (north) • 39 — 39 (north) • 40 — 40 (north) • 41 — 41 (north) • 42 — 42 (north) • 43 — 43 (north) • 44 — 44 (north) • 45 — 45 (north) • 46 — 46 (north) • 47 — 47 (north) • 48 — 48 (north) • 49 — 49 (north) • 50 — 50 (north) • 51 — 51 (north) • 52 — 52 (north) • 53 — 53 (north) • 54 — 54 (north) • 55 — 55 (north) • 56 — 56 (north) • 57 — 57 (north) • 58 — 58 (north) • 59 — 59 (north) • 60 — 60 (north) 1212 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.205 – pokračujte na předchozí stránce Label Název Type Popis source state plane code SOURCE_SP [enumeration] Default: 0 One of: • 0 — — • 1 — AK_10 • 2 — AK_2 • 3 — AK_3 • 4 — AK_4 • 5 — AK_5 • 6 — AK_6 • 7 — AK_7 • 8 — AK_8 • 9 — AK_9 • 10 — AL_E • 11 — AL_W • 12 — AR_N • 13 — AR_S • 14 — AZ_C • 15 — AZ_E • 16 — AZ_W • 17 — CA_I • 18 — CA_II • 19 — CA_III • 20 — CA_IV • 21 — CA_V • 22 — CA_VI • 23 — CA_VII • 24 — CO_C • 25 — CO_N • 26 — CO_S • 27 — CT • 28 — DE • 29 — FL_E • 30 — FL_N • 31 — FL_W • 32 — GA_E • 33 — GA_W • 34 — HI_1 • 35 — HI_2 • 36 — HI_3 • 37 — HI_4 • 38 — HI_5 • 39 — IA_N • 40 — IA_S • 41 — ID_C • 42 — ID_E • 43 — ID_W • 44 — IL_E • 45 — IL_W • 46 — IN_E • 47 — IN_W • 48 — KS_N • 49 — KS_S • 50 — KY_N • 51 — KY_S • 52 — LA_N • 53 — LA_S • 54 — MA_I • 55 — MA_M • 56 — MD • 57 — ME_E • 58 — ME_W • 59 — MI_C • 60 — MI_N 24.3. LAStools algorithm provider 1213 QGIS Desktop 3.16 User Guide Tabulka 24.205 – pokračujte na předchozí stránce Label Název Type Popis target projection TARGET_PROJECTION[enumeration] Default: 0 One of: • 0 — — • 1 — epsg • 2 — utm • 3 — sp83 • 4 — sp27 • 5 — longlat • 6 — latlong • 7 — ecef continues on next page 1214 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.205 – pokračujte na předchozí stránce Label Název Type Popis target utm zone TARGET_UTM [enumeration] Default: 0 One of: • 0 — — • 1 — 1 (north) • 2 — 2 (north) • 3 — 3 (north) • 4 — 4 (north) • 5 — 5 (north) • 6 — 6 (north) • 7 — 7 (north) • 8 — 8 (north) • 9 — 9 (north) • 10 — 10 (north) • 11 — 11 (north) • 12 — 12 (north) • 13 — 13 (north) • 14 — 14 (north) • 15 — 15 (north) • 16 — 16 (north) • 17 — 17 (north) • 18 — 18 (north) • 19 — 19 (north) • 20 — 20 (north) • 21 — 21 (north) • 22 — 22 (north) • 23 — 23 (north) • 24 — 24 (north) • 25 — 25 (north) • 26 — 26 (north) • 27 — 27 (north) • 28 — 28 (north) • 29 — 29 (north) • 30 — 30 (north) • 31 — 31 (north) • 32 — 32 (north) • 33 — 33 (north) • 34 — 34 (north) • 35 — 35 (north) • 36 — 36 (north) • 37 — 37 (north) • 38 — 38 (north) • 39 — 39 (north) • 40 — 40 (north) • 41 — 41 (north) • 42 — 42 (north) • 43 — 43 (north) • 44 — 44 (north) • 45 — 45 (north) • 46 — 46 (north) • 47 — 47 (north) • 48 — 48 (north) • 49 — 49 (north) • 50 — 50 (north) • 51 — 51 (north) • 52 — 52 (north) • 53 — 53 (north) • 54 — 54 (north) • 55 — 55 (north) • 56 — 56 (north) • 57 — 57 (north) • 58 — 58 (north) • 59 — 59 (north) • 60 — 60 (north) 24.3. LAStools algorithm provider 1215 QGIS Desktop 3.16 User Guide Tabulka 24.205 – pokračujte na předchozí stránce Label Název Type Popis target state plane code TARGET_SP [enumeration] Default: 0 One of: • 0 — — • 1 — AK_10 • 2 — AK_2 • 3 — AK_3 • 4 — AK_4 • 5 — AK_5 • 6 — AK_6 • 7 — AK_7 • 8 — AK_8 • 9 — AK_9 • 10 — AL_E • 11 — AL_W • 12 — AR_N • 13 — AR_S • 14 — AZ_C • 15 — AZ_E • 16 — AZ_W • 17 — CA_I • 18 — CA_II • 19 — CA_III • 20 — CA_IV • 21 — CA_V • 22 — CA_VI • 23 — CA_VII • 24 — CO_C • 25 — CO_N • 26 — CO_S • 27 — CT • 28 — DE • 29 — FL_E • 30 — FL_N • 31 — FL_W • 32 — GA_E • 33 — GA_W • 34 — HI_1 • 35 — HI_2 • 36 — HI_3 • 37 — HI_4 • 38 — HI_5 • 39 — IA_N • 40 — IA_S • 41 — ID_C • 42 — ID_E • 43 — ID_W • 44 — IL_E • 45 — IL_W • 46 — IN_E • 47 — IN_W • 48 — KS_N • 49 — KS_S • 50 — KY_N • 51 — KY_S • 52 — LA_N • 53 — LA_S • 54 — MA_I • 55 — MA_M • 56 — MD • 57 — ME_E • 58 — ME_W • 59 — MI_C • 60 — MI_N 1216 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.205 – pokračujte na předchozí stránce Label Název Type Popis additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output LAS/LAZ file OUTPUT_LASLAZ [folder] Default: [Save to temporary folder] Specifies where the folder for the output point clouds. One of: • Skip Output • Save to a Temporary Directory • Save to Directory… The file encoding can also be changed here. Outputs Label Název Type Popis Output LAS/LAZ file OUTPUT_LASLAZ [file] The output LAS/LAZ format file Python code Algorithm ID: lastools:las2las_project import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.7 las2las_transform Popis Uses las2las to filter LiDAR points based on different attributes and to write the surviving subset of points to a new LAZ or LAS file. For more info see the las2las page and its online README file. Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The first file containing points to be merged continues on next page 24.3. LAStools algorithm provider 1217 QGIS Desktop 3.16 User Guide Tabulka 24.206 – pokračujte na předchozí stránce Label Název Type Popis transform (coordinates) TRANSFORM_COORDINATE1[enumeration] Default: 0 Either translate, scale, or clamp the X, Y, or Z coordinate by the value specified below. One of: • 0 — — • 1 — translate_x • 2 — translate_y • 3 — translate_z • 4 — scale_x • 5 — scale_y • 6 — scale_z • 7 — clamp_z_above • 8 — clamp_z_below value for transform (coordinates) TRANSFORM_COORDINATE1_ARG[string] Default: ‚‘ The value that specifies the amount of translating, scaling, or clamping done by the transform selected above. second transform (coordinates) TRANSFORM_COORDINATE2[enumeration] Default: 0 Either translate, scale, or clamp the X, Y, or Z coordinate by the value specified below. One of: • 0 — — • 1 — translate_x • 2 — translate_y • 3 — translate_z • 4 — scale_x • 5 — scale_y • 6 — scale_z • 7 — clamp_z_above • 8 — clamp_z_below value for second transform (coordinates) TRANSFORM_COORDINATE2_ARG[string] Default: ‚‘ The value that specifies the amount of translating, scaling, or clamping done by the transform selected above. transform (intensities, scan angles, GPS times, …) TRANSFORM_OTHER1[enumeration] Default: 0 Either translate, scale, or clamp the X, Y, or Z coordinate by the value specified below. One of: • 0 — — • 1 — scale_intensity • 2 — translate_intensity • 3 — clamp_intensity_above • 4 — clamp_intensity_below • 5 — scale_scan_angle • 6 — translate_scan_angle • 7 — translate_gps_time • 8 — set_classification • 9 — set_user_data • 10 — set_point_source • 11 — scale_rgb_up • 12 — scale_rgb_down • 13 — repair_zero_returns value for transform (intensities, scan angles, GPS times, …) TRANSFORM_OTHER1_ARG[string] Default: ‚‘ The value that specifies the amount of scaling, translating, clamping or setting that is done by the transform selected above. continues on next page 1218 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.206 – pokračujte na předchozí stránce Label Název Type Popis second transform (intensities, scan angles, GPS times, …) TRANSFORM_OTHER2[enumeration] Default: 0 Either translate, scale, or clamp the X, Y, or Z coordinate by the value specified below. One of: • 0 — — • 1 — scale_intensity • 2 — translate_intensity • 3 — clamp_intensity_above • 4 — clamp_intensity_below • 5 — scale_scan_angle • 6 — translate_scan_angle • 7 — translate_gps_time • 8 — set_classification • 9 — set_user_data • 10 — set_point_source • 11 — scale_rgb_up • 12 — scale_rgb_down • 13 — repair_zero_returns value for second transform (intensities, scan angles, GPS times, …) TRANSFORM_OTHER2_ARG[string] Default: ‚‘ The value that specifies the amount of scaling, translating, clamping or setting that is done by the transform selected above. operations (first 7 need an argument) OPERATION [enumeration] Default: 0 One of: • 0 — — • 1 — set_point_type • 2 — set_point_size • 3 — set_version_minor • 4 — set_version_major • 5 — start_at_point • 6 — stop_at_point • 7 — remove_vlr • 8 — auto_reoffset • 9 — week_to_adjusted • 10 — adjusted_to_week • 11 — auto reoffset • 12 — scale_rgb_up • 13 — scale_rgb_down • 14 — remove_all_vlrs • 15 — remove_extra • 16 — clip_to_bounding_box argument for operation OPERATIONARG [string] Default: ‚‘ The value to use as the argument for the operation selected above additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. continues on next page 24.3. LAStools algorithm provider 1219 QGIS Desktop 3.16 User Guide Tabulka 24.206 – pokračujte na předchozí stránce Label Název Type Popis Output LAS/LAZ file OUTPUT_LASLAZ [file] Default: [Skip output] Specifies where the output point cloud is stored. Use LAZ for compressed output, LAS for uncompressed output, and TXT for ASCII. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output LAS/LAZ file OUTPUT_LASLAZ [file] The output (merged) LAS/LAZ format file Python code Algorithm ID: lastools:las2las_transform import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.8 las2txt Popis Translates a LAS/LAZ file to a text file. Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False input LAS/LAZ file INPUT_LASLAZ [file] Default: None parse_string PARSE [string] Default: ‚xyz‘ additional command line parameters Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. continues on next page 1220 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.207 – pokračujte na předchozí stránce Label Název Type Popis Output ASCII file OUTPUT_GENERIC [file] Default: [Create temporary layer] Specify the output file. One of: • Create Temporary Layer (TEMPORARY_OUTPUT) • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output ASCII file OUTPUT_GENERIC [file] The output file Python code Algorithm ID: lastools:las2txt import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.9 lasindex Popis Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False input LAS/LAZ file INPUT_LASLAZ [file] Default: None append *.lax file to *.laz file APPEND_LAX [boolean] Default: False is mobile or terrestrial LiDAR (not airborne) MOBILE_OR_TERRESTRIAL[boolean] Default: False additional command line parameters Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. 24.3. LAStools algorithm provider 1221 QGIS Desktop 3.16 User Guide Outputs The algorithm has no output. Python code Algorithm ID: lastools:lasindex import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.10 lasgrid Grids a selected attribute (e.g. elevation, intensity, classification, scan angle, …) of a large point clouds with a user-defined step size onto raster using a particular method (e.g. min, max, average). For more info see the lasgrid page and its online README file. Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file containing the points to be rastered in LAS/LAZ format. continues on next page 1222 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.209 – pokračujte na předchozí stránce Label Název Type Popis filter (by return, classification, flags) FILTER_RETURN_CLASS_FLAGS1[enumeration] Default: 0 Specifies the subset of points to use for the gridding. One of: • 0 — — • 1 — keep_last • 2 — keep_first • 3 — keep_middle • 4 — keep_single • 5 — drop_single • 6 — keep_double • 7 — keep_class 2 • 8 — keep_class 2 8 • 9 — keep_class 8 • 10 — keep_class 6 • 11 — keep_class 9 • 12 — keep_class 3 4 5 • 13 — keep_class 3 • 14 — keep_class 4 • 15 — keep_class 5 • 16 — keep_class 2 6 • 17 — drop_class 7 • 18 — drop_withheld • 19 — drop_synthetic • 20 — drop_overlap • 21 — keep_withheld • 22 — keep_synthetic • 23 — keep_keypoint • 24 — keep_overlap step size / pixel size STEP [number] Default: 1.0 Specifies the size of the cells of the grid the TIN is rasterized onto Attribute ATTRIBUTE [enumeration] Default: 0 Specifies the attribute to rasterise. One of: • 0 — elevation • 1 — intensity • 2 — rgb • 3 — classification Method METHOD [enumeration] Default: 0 Specifies how the attributes falling into one cell are turned into a raster value. One of: • 0 — lowest • 1 — heighest • 2 — average • 3 — stddev use tile bounding box (after tiling with buffer) USE_TILE_BB [boolean] Default: False Specifies to limit the rastered area to the tile bounding box (only meaningful for input LAS/LAZ tiles that were created with lastile). additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. continues on next page 24.3. LAStools algorithm provider 1223 QGIS Desktop 3.16 User Guide Tabulka 24.209 – pokračujte na předchozí stránce Label Název Type Popis Output raster file OUTPUT_RASTER [raster] Default: [Skip output] Specifies where the output raster is stored. Use image rasters like TIF, PNG, and JPG for false color, gray ramps, and hillshades. Use value rasters like TIF, BIL, IMG, ASC, DTM, FLT, XYZ, and CSV for actual values. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output raster file OUTPUT_RASTER [raster] The output raster Python code Algorithm ID: lastools:lasgrid import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.11 lasinfo Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file to get information about. compute density COMPUTE_DENSITY[boolean] Default: False repair bounding box REPAIR_BB [boolean] Default: False repair counters REPAIR_COUNTERS[boolean] Default: False continues on next page 1224 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.210 – pokračujte na předchozí stránce Label Název Type Popis histogram HISTO1 [enumeration] Default: 0 First histogram. One of: • 0 — — • 1 — x • 2 — y • 3 — z • 4 — intensity • 5 — classification • 6 — scan_angle • 7 — user_data • 8 — point_source • 9 — gps_time • 10 — X • 11 — Y • 12 — Z • 13 — attribute0 • 14 — attribute1 • 15 — attribute2 bin size HISTO1_BIN [number] Default: 1.0 histogram HISTO2 [enumeration] Default: 0 Second histogram. One of: • 0 — — • 1 — x • 2 — y • 3 — z • 4 — intensity • 5 — classification • 6 — scan_angle • 7 — user_data • 8 — point_source • 9 — gps_time • 10 — X • 11 — Y • 12 — Z • 13 — attribute0 • 14 — attribute1 • 15 — attribute2 bin size HISTO2_BIN [number] Default: 1.0 continues on next page 24.3. LAStools algorithm provider 1225 QGIS Desktop 3.16 User Guide Tabulka 24.210 – pokračujte na předchozí stránce Label Název Type Popis histogram HISTO3 [enumeration] Default: 0 Third histogram. One of: • 0 — — • 1 — x • 2 — y • 3 — z • 4 — intensity • 5 — classification • 6 — scan_angle • 7 — user_data • 8 — point_source • 9 — gps_time • 10 — X • 11 — Y • 12 — Z • 13 — attribute0 • 14 — attribute1 • 15 — attribute2 bin size HISTO3_BIN [number] Default: 1.0 additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output ASCII file OUTPUT_GENERIC [file] Default: [Skip output] Specifies where the output is stored. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output ASCII file OUTPUT_GENERIC [file] The file with the output Python code Algorithm ID: lastools:lasinfo import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1226 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide 24.3.12 lasmerge Merge up to seven LAS/LAZ files into one. Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files files are flightlines FILES_ARE_FLIGHTLINES[boolean] Default: False apply file source ID APPLY_FILE_SOURCE_ID[boolean] Default: False input LAS/LAZ file INPUT_LASLAZ [file] The first file containing points to be merged 2nd file Optional FILE2 [file] The second file to merge 3rd file Optional FILE3 [file] The third file to merge 4th file Optional FILE4 [file] The fourth file to merge 5th file Optional FILE5 [file] The fifth file to merge 6th file Optional FILE6 [file] The sixth file to merge 7th file Optional FILE7 [file] The seventh file to merge additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output LAS/LAZ file OUTPUT_LASLAZ [file] Default: [Skip output] Specifies where the output point cloud is stored. Use LAZ for compressed output, LAS for uncompressed output, and TXT for ASCII. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. 24.3. LAStools algorithm provider 1227 QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis Output LAS/LAZ file OUTPUT_LASLAZ [file] The output (merged) LAS/LAZ format file Python code Algorithm ID: lastools:lasmerge import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.13 lasprecision Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file the input point cloud additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output ASCII file OUTPUT_GENERIC [file] Default: [Skip output] Specifies where the output ASCII file is stored. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output ASCII file OUTPUT_GENERIC [file] The output ASCII file 1228 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: lastools:lasprecision import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.14 lasquery Popis Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file the input point cloud area of interest AOI [extent] The extent additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Outputs Python code Algorithm ID: lastools:lasquery import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3. LAStools algorithm provider 1229 QGIS Desktop 3.16 User Guide 24.3.15 lasvalidate Parameters Label Název Type Popis input LAS/LAZ file INPUT_LASLAZ [file] The file the input point cloud save report to ‚*_LVS.xml‘ ONE_REPORT_PER_FILE[boolean] additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output XML file OUTPUT_GENERIC [file] Default: [Skip output] Specifies where the output XML file is stored. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output XML file OUTPUT_GENERIC [file] The output XML file Python code Algorithm ID: lastools:lasvalidate import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.16 laszip Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file to be zipped only report size REPORT_SIZE [boolean] Default: False continues on next page 1230 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.215 – pokračujte na předchozí stránce Label Název Type Popis create spatial indexing file (*.lax) CREATE_LAX [boolean] Default: False append *.lax into *.laz file APPEND_LAX [boolean] Default: False additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output LAS/LAZ file OUTPUT_LASLAZ [file] Default: [Skip output] Specifies where the output point cloud is stored. Use LAZ for compressed output, LAS for uncompressed output, and TXT for ASCII. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Output LAS/LAZ file OUTPUT_LASLAZ [file] The output file Python code Algorithm ID: lastools:laszip import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.3.17 txt2las Parameters Label Název Type Popis verbose VERBOSE [boolean] Default: False Generates more textual control output to the console run new 64 bit executable CPU64 [boolean] Default: False open LAStools GUI GUI [boolean] Default: False Starts the GUI of LAStools with pre-populated input files input LAS/LAZ file INPUT_LASLAZ [file] The file to be zipped parse lines as PARSE [string] Default: ‚xyz‘ continues on next page 24.3. LAStools algorithm provider 1231 QGIS Desktop 3.16 User Guide Tabulka 24.216 – pokračujte na předchozí stránce Label Název Type Popis skip the first n lines SKIP [number] Default: 0 resolution of x and y coordinate SCALE_FACTOR_XY[number] Default: 0.01 resolution of z coordinate SCALE_FACTOR_Z [number] Default: 0.01 resolution of z coordinate SCALE_FACTOR_Z [number] Default: 0.01 source projection PROJECTION [enumeration] Default: 0 One of: • 0 — — • 1 — epsg • 2 — utm • 3 — sp83 • 4 — sp27 • 5 — longlat • 6 — latlong • 7 — ecef source epsg code EPSG_CODE [number] continues on next page 1232 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.216 – pokračujte na předchozí stránce Label Název Type Popis utm zone UTM [enumeration] Default: 0 One of: • 0 — — • 1 — 1 (north) • 2 — 2 (north) • 3 — 3 (north) • 4 — 4 (north) • 5 — 5 (north) • 6 — 6 (north) • 7 — 7 (north) • 8 — 8 (north) • 9 — 9 (north) • 10 — 10 (north) • 11 — 11 (north) • 12 — 12 (north) • 13 — 13 (north) • 14 — 14 (north) • 15 — 15 (north) • 16 — 16 (north) • 17 — 17 (north) • 18 — 18 (north) • 19 — 19 (north) • 20 — 20 (north) • 21 — 21 (north) • 22 — 22 (north) • 23 — 23 (north) • 24 — 24 (north) • 25 — 25 (north) • 26 — 26 (north) • 27 — 27 (north) • 28 — 28 (north) • 29 — 29 (north) • 30 — 30 (north) • 31 — 31 (north) • 32 — 32 (north) • 33 — 33 (north) • 34 — 34 (north) • 35 — 35 (north) • 36 — 36 (north) • 37 — 37 (north) • 38 — 38 (north) • 39 — 39 (north) • 40 — 40 (north) • 41 — 41 (north) • 42 — 42 (north) • 43 — 43 (north) • 44 — 44 (north) • 45 — 45 (north) • 46 — 46 (north) • 47 — 47 (north) • 48 — 48 (north) • 49 — 49 (north) • 50 — 50 (north) • 51 — 51 (north) • 52 — 52 (north) • 53 — 53 (north) • 54 — 54 (north) • 55 — 55 (north) • 56 — 56 (north) • 57 — 57 (north) • 58 — 58 (north) • 59 — 59 (north) • 60 — 60 (north) 24.3. LAStools algorithm provider 1233 QGIS Desktop 3.16 User Guide Tabulka 24.216 – pokračujte na předchozí stránce Label Název Type Popis state plane code SP [enumeration] Default: 0 One of: • 0 — — • 1 — AK_10 • 2 — AK_2 • 3 — AK_3 • 4 — AK_4 • 5 — AK_5 • 6 — AK_6 • 7 — AK_7 • 8 — AK_8 • 9 — AK_9 • 10 — AL_E • 11 — AL_W • 12 — AR_N • 13 — AR_S • 14 — AZ_C • 15 — AZ_E • 16 — AZ_W • 17 — CA_I • 18 — CA_II • 19 — CA_III • 20 — CA_IV • 21 — CA_V • 22 — CA_VI • 23 — CA_VII • 24 — CO_C • 25 — CO_N • 26 — CO_S • 27 — CT • 28 — DE • 29 — FL_E • 30 — FL_N • 31 — FL_W • 32 — GA_E • 33 — GA_W • 34 — HI_1 • 35 — HI_2 • 36 — HI_3 • 37 — HI_4 • 38 — HI_5 • 39 — IA_N • 40 — IA_S • 41 — ID_C • 42 — ID_E • 43 — ID_W • 44 — IL_E • 45 — IL_W • 46 — IN_E • 47 — IN_W • 48 — KS_N • 49 — KS_S • 50 — KY_N • 51 — KY_S • 52 — LA_N • 53 — LA_S • 54 — MA_I • 55 — MA_M • 56 — MD • 57 — ME_E • 58 — ME_W • 59 — MI_C • 60 — MI_N 1234 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.216 – pokračujte na předchozí stránce Label Název Type Popis additional command line parameter(s) Optional ADDITIONAL_OPTIONS[string] Default: ‚‘ Specifies other command-line switches not available via this menu but known to the (advanced) LAStools user. Output LAS/LAZ file OUTPUT_LASLAZ [file] Default: [Skip output] Specifies where the output point cloud is stored. Use LAZ for compressed output, LAS for uncompressed output, and TXT for ASCII. One of: • Skip Output • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis output LAS/LAZ file OUTPUT_LASLAZ [file] The output file Python code Algorithm ID: lastools:txt2las import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.4 TauDEM algorithm provider TauDEM (Terrain Analysis Using Digital Elevation Models) is a set of Digital Elevation Model (DEM) tools for the extraction and analysis of hydrologic information from topography as represented by a DEM. This is software developed at Utah State University (USU) for hydrologic digital elevation model analysis and watershed delineation. TauDEM is distributed as a set of standalone command line executable programs for a Windows and source code for compiling and use on other systems. Poznámka: Please remember that Processing contains only the interface description, so you need to install TauDEM 5.0.6 by yourself and configure Processing properly. Documentation for TauDEM algorithms derived from official TauDEM documentation 24.4. TauDEM algorithm provider 1235 QGIS Desktop 3.16 User Guide 24.4.1 Basic Grid Analysis D-Infinity Contributing Area Calculates a grid of specific catchment area which is the contributing area per unit contour length using the multiple flow direction D-infinity approach. D-infinity flow direction is defined as steepest downward slope on planar triangular facets on a block centered grid. The contribution at each grid cell is taken as the grid cell length (or when the optional weight grid input is used, from the weight grid). The contributing area of each grid cell is then taken as its own contribution plus the contribution from upslope neighbors that have some fraction draining to it according to the D-infinity flow model. The flow from each cell either all drains to one neighbor, if the angle falls along a cardinal (0, π/2, π, 3π/2) or ordinal (π/4, 3π/4, 5π/4, 7π/4) direction, or is on an angle falling between the direct angle to two adjacent neighbors. In the latter case the flow is proportioned between these two neighbor cells according to how close the flow direction angle is to the direct angle to those cells. The contour length used here is the grid cell size. The resulting units of the specific catchment area are length units the same as those of the grid cell size. When the optional weight grid is not used, the result is reported in terms of specific catchment area, the upslope area per unit contour length, taken here as the number of cells times grid cell length (cell area divided by cell length). This assumes that grid cell length is the effective contour length, in the definition of specific catchment area and does not distinguish any difference in contour length dependent upon the flow direction. When the optional weight grid is used, the result is reported directly as a summation of weights, without any scaling. If the optional outlet point shapefile is used, only the outlet cells and the cells upslope (by the D-infinity flow model) of them are in the domain to be evaluated. By default, the tool checks for edge contamination. This is defined as the possibility that a contributing area value may be underestimated due to grid cells outside of the domain not being counted. This occurs when drainage is inwards from the boundaries or areas with „no data“ values for elevation. The algorithm recognizes this and reports „no data“ for the contributing area. It is common to see streaks of „no data“ values extending inwards from boundaries along flow paths that enter the domain at a boundary. This is the desired effect and indicates that contributing area for these grid cells is unknown due to it being dependent on terrain outside of the domain of data available. Edge contamination 1236 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide checking may be turned off in cases where you know it is not an issue or want to ignore these problems, if for example, the DEM has been clipped along a watershed outline. Parameters Label Název Type Popis D-infinity flow directions DINF_FLOWDIR [raster] A grid of flow directions based on the D-infinity flow method using the steepest slope of a triangular facet. Flow direction is determined as the direction of the steepest downward slope on the 8 triangular facets of a 3x3 block centered grid. Flow direction is encoded as an angle in radians, counter-clockwise from east as a continuous (floating point) quantity between 0 and 2π. The resulting flow in a grid is then usually interpreted as being proportioned between the two neighboring cells that define the triangular facet with the steepest downward slope. Outlets Optional OUTLETS [vector: point] A point shapefile defining the outlets of interest. If this input file is used, only the cells upslope of these outlet cells are considered to be within the domain being evaluated. Weight grid Optional WEIGHT_GRID [raster] A grid giving contribution to flow for each cell. These contributions (also sometimes referred to as weights or loadings) are used in the contributing area accumulation. If this input file is not used, the result is reported in terms of specific catchment area (the upslope area per unit contour length) taken as the number of cells times grid cell length (cell area divided by cell length). continues on next page 24.4. TauDEM algorithm provider 1237 QGIS Desktop 3.16 User Guide Tabulka 24.217 – pokračujte na předchozí stránce Label Název Type Popis Check for edge contamination EDGE_CONTAMINATION[boolean] Default: True A flag that indicates whether the tool should check for edge contamination. Edge contamination is defined as the possibility that a contributing area value may be underestimated due to the fact that grid cells outside of the domain have not been evaluated. This occurs when drainage is inwards from the boundaries or areas with NODATA values for elevation. The algorithm recognizes this and reports NODATA for the impated cells. It is common to see streaks of NODATA values extending inwards from boundaries along flow paths that enter the domain at a boundary. This is the desired effect and indicates that contributing area for these grid cells is unknown due to it being dependent on terrain outside of the domain of available data. Edge contamination checking may be turned off in cases where you know this is not an issue, or want to ignore these problems, if for example, the DEM has been clipped along a watershed outline. D-infinity specific catchment area DINF_CONTRIB_AREA[raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis D-infinity specific catchment area DINF_CONTRIB_AREA[raster] A grid of specific catchment area which is the contributing area per unit contour length using the multiple flow direction D-infinity approach. The contributing area of each grid cell is then taken as its own contribution plus the contribution from upslope neighbors that have some fraction draining to it according to the D-infinity flow model. Algorithm ID: taudem:areadinf import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1238 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide D-Infinity Flow Directions Assigns a flow direction based on the D-infinity flow method using the steepest slope of a triangular facet (Tarboton, 1997, „A New Method for the Determination of Flow Directions and Contributing Areas in Grid Digital Elevation Models“, Water Resources Research, 33(2): 309-319). Flow direction is defined as steepest downward slope on planar triangular facets on a block centered grid. Flow direction is encoded as an angle in radians counter-clockwise from east as a continuous (floating point) quantity between 0 and 2π. The flow direction angle is determined as the direction of the steepest downward slope on the eight triangular facets formed in a 3 x 3 grid cell window centered on the grid cell of interest. The resulting flow in a grid is then usually interpreted as being proportioned between the two neighboring cells that define the triangular facet with the steepest downward slope. A block-centered representation is used with each elevation value taken to represent the elevation of the center of the corresponding grid cell. Eight planar triangular facets are formed between each grid cell and its eight neighbors. Each of these has a downslope vector which when drawn outwards from the center may be at an angle that lies within or outside the 45 degree (π/4 radian) angle range of the facet at the center point. If the slope vector angle is within the facet angle, it represents the steepest flow direction on that facet. If the slope vector angle is outside a facet, the steepest flow direction associated with that facet is taken along the steepest edge. The slope and flow direction associated with the grid cell is taken as the magnitude and direction of the steepest downslope vector from all eight facets. Slope is measured as drop/distance, i.e. tan of the slope angle. In the case where no slope vectors are positive (downslope), the flow direction is set using the method of Garbrecht and Martz (1997) for the determination of flow across flat areas. This makes flat areas drain away from high ground and towards low ground. The flow path grid to enforce drainage along existing streams is an optional input, and if used, takes precedence over elevations for the setting of flow directions. The D-infinity flow direction algorithm may be applied to a DEM that has not had its pits filled, but it will then result in „no data“ values for the D-infinity flow direction and slope associated with the lowest point of the pit. 24.4. TauDEM algorithm provider 1239 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Pit filled elevation PIT_FILLED [raster] A grid of elevation values. This is usually the output of the „Pit Remove“ tool, in which case it is elevations with pits removed. Pits are low elevation areas in digital elevation models (DEMs) that are completely surrounded by higher terrain. They are generally taken to be artifacts of the digitation process that interfere with the processing of flow across DEMs. So they are removed by raising their elevation to the point where they just drain off the domain. This step is not essential if you have reason to believe that the pits in your DEM are real. If a few pits actually exist and so should not be removed, while at the same time others are believed to be artifacts that need to be removed, the actual pits should have NODATA elevation values inserted at their lowest point. NODATA values serve to define edges of the domain in the flow field, and elevations are only raised to where flow is off an edge, so an internal NODATA value will stop a pit from being removed, if necessary. D-infinity flow directions DINF_FLOWDIR [raster] Default: [Save to temporary file] Specification of the output flow direction raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. D-infinity slope DINF_SLOPE [raster] Default: [Save to temporary file] Specification of the output slope raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs 1240 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Label Název Type Popis D-infinity flow directions DINF_FLOWDIR [raster] A grid of flow directions based on the D-infinity flow method using the steepest slope of a triangular facet. Flow direction is determined as the direction of the steepest downward slope on the 8 triangular facets of a 3x3 block centered grid. Flow direction is encoded as an angle in radians, counter-clockwise from east as a continuous (floating point) quantity between 0 and 2π. The resulting flow in a grid is then usually interpreted as being proportioned between the two neighboring cells that define the triangular facet with the steepest downward slope. D-infinity slope DINF_SLOPE [raster] A grid of slope evaluated using the D-infinity method described in Tarboton, D. G., (1997), „A New Method for the Determination of Flow Directions and Contributing Areas in Grid Digital Elevation Models“, Water Resources Research, 33(2): 309-319. This is the steepest outwards slope on one of eight triangular facets centered at each grid cell, measured as drop/distance, i.e. tan of the slope angle. Algorithm ID: taudem:dinfflowdir import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. D8 Contributing Area Calculates a grid of contributing areas using the single direction D8 flow model. The contribution of each grid cell is taken as one (or when the optional weight grid is used, the value from the weight grid). The contributing area for each grid cell is taken as its own contribution plus the contribution from upslope neighbors that drain in to it according to the D8 flow model. If the optional outlet point shapefile is used, only the outlet cells and the cells upslope (by the D8 flow model) of them are in the domain to be evaluated. By default, the tool checks for edge contamination. This is defined as the possibility that a contributing area value may be underestimated due to grid cells outside of the domain not being counted. This occurs when drainage is inwards from the boundaries or areas with „no data“ values for elevation. The algorithm recognizes this and reports „no data“ for the contributing area. It is common to see streaks of „no data“ values extending inwards from boundaries along flow paths that enter the domain at a boundary. This is the desired effect and indicates that contributing area for these grid cells is unknown due to it being dependent on terrain outside of the domain of data available. Edge contamination checking may be turned off in cases where you know this is not an issue or want to ignore these problems, if for example, the DEM has been clipped along a watershed outline. 24.4. TauDEM algorithm provider 1241 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis D8 flow directions D8_FLOWDIR [raster] A grid of D8 flow directions which are defined, for each cell, as the direction of the one of its eight adjacent or diagonal neighbors with the steepest downward slope. This grid can be obtained as the output of the „D8 Flow Directions“ tool. Outlets Optional OUTLETS [vector: point] A point shapefile defining the outlets of interest. If this input file is used, only the cells upslope of these outlet cells are considered to be within the domain being evaluated. Weight grid Optional WEIGHT_GRID [raster] A grid giving contribution to flow for each cell. These contributions (also sometimes referred to as weights or loadings) are used in the contributing area accumulation. If this input file is not used, the contribution to flow will assumed to be one for each grid cell. Check for edge contamination EDGE_CONTAMINATION[boolean] Default: True A flag that indicates whether the tool should check for edge contamination. Edge contamination is defined as the possibility that a contributing area value may be underestimated due to the fact that grid cells outside of the domain have not been evaluated. This occurs when drainage is inwards from the boundaries or areas with NODATA values for elevation. The algorithm recognizes this and reports NODATA for the impated cells. It is common to see streaks of NODATA values extending inwards from boundaries along flow paths that enter the domain at a boundary. This is the desired effect and indicates that contributing area for these grid cells is unknown due to it being dependent on terrain outside of the domain of available data. Edge contamination checking may be turned off in cases where you know this is not an issue, or want to ignore these problems, if for example, the DEM has been clipped along a watershed outline. D8 specific catchment area D8_CONTRIB_AREA[raster] Default: [Save to temporary file] Specification of the output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. 1242 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Název Type Popis D8 specific catchment area D8_CONTRIB_AREA[raster] A grid of contributing area values calculated as the cells own contribution plus the contribution from upslope neighbors that drain in to it according to the D8 flow model. Algorithm ID: taudem:aread8 import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. D8 Flow Directions Creates 2 grids. The first contains the flow direction from each grid cell to one of its adjacent or diagonal neighbors, calculated using the direction of steepest descent. The second contain the slope, as evaluated in the direction of steepest descent, and is reported as drop/distance, i.e. tan of the angle. Flow direction is reported as NODATA for any grid cell adjacent to the edge of the DEM domain, or adjacent to a NODATA value in the DEM. In flat areas, flow directions are assigned away from higher ground and towards lower ground using the method of Garbrecht and Martz (1997). The D8 flow direction algorithm may be applied to a DEM that has not had its pits filled, but it will then result in NODATA values for flow direction and slope at the lowest point of each pit. D8 Flow Direction Coding: • 1 — East • 2 — Northeast • 3 — North • 4 — Northwest • 5 — West • 6 — Southwest • 7 — South • 8 — Southeast The flow direction routing across flat areas is performed according to the method described by Garbrecht, J. and L. W. Martz, (1997), „The Assignment of Drainage Direction Over Flat Surfaces in Raster Digital Elevation Models“, Journal of Hydrology, 193: 204-213. 24.4. TauDEM algorithm provider 1243 QGIS Desktop 3.16 User Guide Parameters Label Název Type Popis Pit filled elevation PIT_FILLED [raster] A grid of elevation values. This is usually the output of the „Pit Remove“ tool, in which case it is elevations with pits removed. Pits are low elevation areas in digital elevation models (DEMs) that are completely surrounded by higher terrain. They are generally taken to be artifacts of the digitation process that interfere with the processing of flow across DEMs. So they are removed by raising their elevation to the point where they just drain off the domain. This step is not essential if you have reason to believe that the pits in your DEM are real. If a few pits actually exist and so should not be removed, while at the same time others are believed to be artifacts that need to be removed, the actual pits should have NODATA elevation values inserted at their lowest point. NODATA values serve to define edges of the domain in the flow field, and elevations are only raised to where flow is off an edge, so an internal NODATA value will stop a pit from being removed, if necessary. D8 flow directions D8_FLOWDIR [raster] Default: [Save to temporary file] Specification of the output flow direction raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. D8 slope D8_SLOPE [raster] Default: [Save to temporary file] Specification of the output slope raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis D8 flow directions D8_FLOWDIR [raster] A grid of D8 flow directions which are defined, for each cell, as the direction of the one of its eight adjacent or diagonal neighbors with the steepest downward slope. D8 slope D8_SLOPE [raster] A grid giving slope in the D8 flow direction. This is measured as drop/distance. Algorithm ID: taudem:d8flowdir import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary 1244 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Grid Network Creates 3 grids that contain for each grid cell: 1) the longest path, 2) the total path, and 3) the Strahler order number. These values are derived from the network defined by the D8 flow model. The longest upslope length is the length of the flow path from the furthest cell that drains to each cell. The total upslope path length is the length of the entire grid network upslope of each grid cell. Lengths are measured between cell centers taking into account cell size and whether the direction is adjacent or diagonal. Strahler order is defined as follows: A network of flow paths is defined by the D8 Flow Direction grid. Source flow paths have a Strahler order number of one. When two flow paths of different order join the order of the downstream flow path is the order of the highest incoming flow path. When two flow paths of equal order join the downstream flow path order is increased by 1. When more than two flow paths join the downstream flow path order is calculated as the maximum of the highest incoming flow path order or the second highest incoming flow path order + 1. This generalizes the common definition to cases where more than two flow paths join at a point. Where the optional mask grid and threshold value are input, the function is evaluated only considering grid cells that lie in the domain with mask grid value greater than or equal to the threshold value. Source (first order) grid cells are taken as those that do not have any other grid cells from inside the domain draining in to them, and only when two of these flow paths join is order propagated according to the ordering rules. Lengths are also only evaluated counting paths within the domain greater than or equal to the threshold. If the optional outlet point shapefile is used, only the outlet cells and the cells upslope (by the D8 flow model) of them are in the domain to be evaluated. Parameters Label Název Type Popis D8 flow directions D8_FLOWDIR [raster] A grid of D8 flow directions which are defined, for each cell, as the direction of the one of its eight adjacent or diagonal neighbors with the steepest downward slope. This grid can be obtained as the output of the „D8 Flow Directions“ tool. Mask Grid Optional MASK_GRID [raster] A grid that is used to determine the domain do be analyzed. If the mask grid value >= mask threshold (see below), then the cell will be included in the domain. While this tool does not have an edge contamination flag, if edge contamination analysis is needed, then a mask grid from a function like „D8 Contributing Area“ that does support edge contamination can be used to achieve the same result. Mask threshold Optional THRESHOLD [number] Default: 100.0 This input parameter is used in the calculation mask grid value >= mask threshold to determine if the grid cell is in the domain to be analyzed. Outlets Optional OUTLETS [vector: point] A point shapefile defining the outlets of interest. If this input file is used, only the cells upslope of these outlet cells are considered to be within the domain being evaluated. continues on next page 24.4. TauDEM algorithm provider 1245 QGIS Desktop 3.16 User Guide Tabulka 24.222 – pokračujte na předchozí stránce Label Název Type Popis Longest upslope length LONGEST_PATH [raster] Default: [Save to temporary file] Specification of the output raster with total upslope lengths. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Total upslope length TOTAL_PATH [raster] Default: [Save to temporary file] Specification of the output raster with upslope lengths. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Strahler network order STRAHLER_ORDER [raster] Default: [Save to temporary file] Specification of the output raster with Strahler network order. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Longest upslope length LONGEST_PATH [raster] A grid that gives the length of the longest upslope D8 flow path terminating at each grid cell. Lengths are measured between cell centers taking into account cell size and whether the direction is adjacent or diagonal. Total upslope length TOTAL_PATH [raster] The total upslope path length is the length of the entire D8 flow grid network upslope of each grid cell. Lengths are measured between cell centers taking into account cell size and whether the direction is adjacent or diagonal. Strahler network order STRAHLER_ORDER [raster] A grid giving the Strahler order number for each cell. A network of flow paths is defined by the D8 Flow Direction grid. Source flow paths have a Strahler order number of one. When two flow paths of different order join the order of the downstream flow path is the order of the highest incoming flow path. When two flow paths of equal order join the downstream flow path order is increased by 1. When more than two flow paths join the downstream flow path order is calculated as the maximum of the highest incoming flow path order or the second highest incoming flow path order + 1. This generalizes the common definition to cases where more than two flow paths join at a point. Algorithm ID: taudem:gridnet import processing processing.run("algorithm_id", {parameter_dictionary}) 1246 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Pit Remove Identifies all pits in the DEM and raises their elevation to the level of the lowest pour point around their edge. Pits are low elevation areas in digital elevation models (DEMs) that are completely surrounded by higher terrain. They are generally taken to be artifacts that interfere with the routing of flow across DEMs, so are removed by raising their elevation to the point where they drain off the edge of the domain. The pour point is the lowest point on the boundary of the „watershed“ draining to the pit. This step is not essential if you have reason to believe that the pits in your DEM are real. If a few pits actually exist and so should not be removed, while at the same time others are believed to be artifacts that need to be removed, the actual pits should have NODATA elevation values inserted at their lowest point. NODATA values serve to define edges in the domain, and elevations are only raised to where flow is off an edge, so an internal NODATA value will stop a pit from being removed, if necessary. Parameters Label Název Type Popis Elevation ELEVATION [raster] A digital elevation model (DEM) grid to serve as the base input for the terrain analysis and stream delineation. Depression mask Optional DEPRESSION_MASK[raster] Consider only 4 way neighbors FOUR_NEIGHBOURS[boolean] Default: False Pit removed elevation PIT_FILLED [raster] Default: [Save to temporary file] Specification of the (pit filled) output raster. One of: • Save to a Temporary File • Save to File… The file encoding can also be changed here. Outputs Label Název Type Popis Pit removed elevation PIT_FILLED [raster] A grid of elevation values with pits removed so that flow is routed off of the domain. Algorithm ID: taudem:pitremove import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.4. TauDEM algorithm provider 1247 QGIS Desktop 3.16 User Guide 24.4.2 Specialized Grid Analysis D8 Distance To Streams Computes the horizontal distance to stream for each grid cell, moving downslope according to the D8 flow model, until a stream grid cell is encountered. Parameters Label Name Type Popis D8 Flow Direction Grid [raster] This input is a grid of flow directions that are encoded using the D8 method where all flow from a cells goes to a single neighboring cell in the direction of steepest descent. This grid can be obtained as the output of the „D8 Flow Directions“ tool. Stream Raster Grid [raster] A grid indicating streams. Such a grid can be created by several of the tools in the „Stream Network Analysis“ toolset. However, the tools in the „Stream Network Analysis“ toolset only create grids with a value of 0 for no stream, or 1 for stream cells. This tool can also accept grids with values greater than 1, which can be used in conjunction with the Threshold parameter to determine the location of streams. This allows Contributing Area grids to be used to define streams as well as the normal Stream Raster grids. This grid expects integer (long integer) values and any non-integer values will be truncated to an integer before being evaluated. Threshold [number] Default: 50 This value acts as threshold on the Stream Raster Grid to determine the location of streams. Cells with a Stream Raster Grid value greater than or equal to the Threshold value are interpreted as streams. Outputs Label Name Type Popis Output Distance to Streams [raster] A grid giving the horizontal distance along the flow path as defined by the D8 Flow Directions Grid to the streams in the Stream Raster Grid. Python code Algorithm ID: taudem:d8hdisttostrm import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1248 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide D-Infinity Avalanche Runout Identifies an avalanche’s affected area and the flow path length to each cell in that affacted area. All cells downslope from each source area cell, up to the point where the slope from the source to the affected area is less than a threshold angle called the Alpha Angle can be in the affected area. This tool uses the D-infinity multiple flow direction method for determining flow direction. This will likely cause very small amounts of flow to be dispersed to some downslope cells that might overstate the affected area, so a threshold proportion can be set to avoid this excess dispersion. The flow path length is the distance from the cell in question to the source cell that has the highest angle. All points downslope from the source area are potentially in the affected area, but not beyond a point where the slope from the source to the affected area is less than a threshold angle called the Alpha Angle. Slope is to be measured using the straight line distance from source point to evaluation point. It makes more physical sense to me for the angle to be measured along the flow path. Nevertheless it is equally easy to code straight line angles as angles along the flow path, so an option that allows switching will be provided. The most practical way to evaluate avalanche runout is to keep track of the source point with the greatest angle to each point. Then the recursive upslope flow algebra approach will look at a grid cell and all its upslope neighbors that flow to it. Information from the upslope neighbors will be used to calculate the angle to the grid cell in question and retain it in the runout zone if the angle exceeds the alpha angle. This procedure makes the assumption that the maximum angle at a grid cell will be from the set of cells that have maximum angles to the inflowing neighbors. This will always be true of angle is calculated along a flow path, but I can conceive of cases where flow paths bend back on themselves where this would not be the case for straight line angles. The D-infinity multiple flow direction field assigns flow from each grid cell to multiple downslope neighbors using 24.4. TauDEM algorithm provider 1249 QGIS Desktop 3.16 User Guide proportions (Pik) that vary between 0 and 1 and sum to 1 for all flows out of a grid cell. It may be desirable to specify a threshold T that this proportion has to exceed before a grid cell is counted as flowing to a downslope grid cell, e.g. Pik > T (=0.2 say) to avoid dispersion to grid cells that get very little flow. T will be specified as a user input. If all upslope grid cells are to be used T may be input as 0. Avalanche source sites are to be input as a short integer grid (name suffix *ass, e.g. demass) comprised of positive values where avalanches may be triggered and 0 values elsewhere. The following grids are output: • rz — A runout zone indicator with value 0 to indicate that this grid cell is not in the runout zone and value > 0 to indicate that this grid cell is in the runout zone. Since there may be information in the angle to the associated source site, this variable will be assigned the angle to the source site (in degrees) • dm — Along flow distance from the source site that has the highest angle to the point in question 1250 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Name Type Popis D-Infinity Flow Direction Grid [raster] A grid giving flow direction by the D-infinity method. Flow direction is measured in radians, counter clockwise from east. This can be created by the tool „D-Infinity Flow Directions“. Pit Filled Elevation Grid [raster] This input is a grid of elevation values. As a general rule, it is recommended that you use a grid of elevation values that have had the pits removed for this input. Pits are generally taken to be artifacts that interfere with the analysis of flow across them. This grid can be obtained as the output of the „Pit Remove“ tool, in which case it contains elevation values where the pits have been filled to the point where they just drain. Avalanche Source Site Grid [raster] This is a grid of source areas for snow avalanches that are commonly identified manually using a mix of experience and visual interpretation of maps. Avalanche source sites are to be input as a short integer grid (name suffix *ass, e.g. demass) comprised of positive values where avalanches may be triggered and 0 values elsewhere. Proportion Threshold [number] Default: 0.2 This value is a threshold proportion that is used to limit the dispersion of flow caused by using the D-infinity multiple flow direction method for determining flow direction. The D-infinity multiple flow direction method often causes very small amounts of flow to be dispersed to some downslope cells that might overstate the affected area, so a threshold proportion can be set to avoid this excess dispersion. Alpha Angle Threshold [number] Default: 18 This value is the threshold angle, called the Alpha Angle, that is used to determine which of the cells downslope from the source cells are in the affected area. Only the cells downslope from each source area cell, up to the point where the slope from the source to the affected area is less than a threshold angle are in the affected area. Measure distance along flow path [boolean] Default: True This option selects the method used to measure the distance used to calculate the slope angle. If option is True then measure it along the flow path, where the False option causes the slope to be measure along the straight line distance from the source cell to the evaluation cell. 24.4. TauDEM algorithm provider 1251 QGIS Desktop 3.16 User Guide Outputs Label Name Type Popis Runout Zone Grid [raster] This grid Identifies the avalanche’s runout zone (affected area) using a runout zone indicator with value 0 to indicate that this grid cell is not in the runout zone and value > 0 to indicate that this grid cell is in the runout zone. Since there may be information in the angle to the associated source site, this variable will be assigned the angle to the source site (in degrees). Path Distance Grid [raster] This is a grid of the flow distance from the source site that has the highest angle to each cell. Python code Algorithm ID: taudem:dinfavalanche import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. D-Infinity Concentration Limited Accumulation This function applies to the situation where an unlimited supply of a substance is loaded into flow at a concentration or solubility threshold Csol over a region indicated by an indicator grid (dg). It a grid of the concentration of a substance at each location in the domain, where the supply of substance from a supply area is loaded into the flow at a concentration or solubility threshold. The flow is first calculated as a D-infinity weighted contributing area of an input Effective Runoff Weight Grid (notionally excess precipitation). The concentration of substance over the supply area (indicator grid) is at the concentration threshold. As the substance moves downslope with the D-infinity flow field, it is subject to first order decay in moving from cell to cell as well as dilution due to changes in flow. The decay multiplier grid gives the fractional (first order) reduction in quantity in moving from grid cell x to the next downslope cell. If the outlets shapefile is used, the tool only evaluates the part of the domain that contributes flow to the locations given by the shapefile. This is useful for a tracking a contaminant or compound from an area with unlimited supply of that compound that is loaded into a flow at a concentration or solubility threshold over a zone and flow from the zone may be subject to decay or attenuation. The indicator grid (dg) is used to delineate the area of the substance supply using the (0, 1) indicator function i(x). A[] denotes the weighted accumulation operator evaluated using the D-Infinity Contributing Area function. The Effective Runoff Weight Grid gives the supply to the flow (e.g. the excess rainfall if this is overland flow) denoted as w(x). The specific discharge is then given by: Q(x)=A[w(x)] This weighted accumulation Q(x) is output as the Overland Flow Specific Discharge Grid. Over the substance supply area concentration is at the threshold (the threshold is a saturation or solubility limit). If i(x) = 1, then C(x) = Csol, and L(x) = Csol Q(x), where L(x) denotes the load being carried by the flow. At remaining locations, the load is determined by load accumulation and the concentration by dilution: 1252 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Here d(x) = d(i, j) is a decay multiplier giving the fractional (first order) reduction in mass in moving from grid cell x to the next downslope cell. If travel (or residence) times t(x) associated with flow between cells are available d(x) may be evaluated as exp(-k t(x)) where k is a first order decay parameter. The Concentration grid output is C(x). If the outlets shapefile is used, the tool only evaluates the part of the domain that contributes flow to the locations given by the shapefile. Useful for a tracking a contaminant released or partitioned to flow at a fixed threshold concentration. 24.4. TauDEM algorithm provider 1253 QGIS Desktop 3.16 User Guide Parameters Label Name Type Popis D-Infinity Flow Direction Grid [raster] A grid giving flow direction by the D-infinity method. Flow direction is measured in radians, counter clockwise from east. This grid can be created by the function „D-Infinity Flow Directions“. Disturbance Indicator Grid [raster] A grid that indicates the source zone of the area of substance supply and must be 1 inside the zone and 0 or NODATA over the rest of the domain. Decay Multiplier Grid [raster] A grid giving the factor by which flow leaving each grid cell is multiplied before accumulation on downslope grid cells. This may be used to simulate the movement of an attenuating or decaying substance. If travel (or residence) times t(x) associated with flow between cells are available d(x) may be evaluated as exp(-k t(x)) where k is a first order decay parameter. Effective Runoff Weight Grid [raster] A grid giving the input quantity (notionally effective runoff or excess precipitation) to be used in the D-infinity weighted contributing area evaluation of Overland Flow Specific Discharge. Outlets shapefile Optional [vector: point] This optional input is a point shapefile defining outlets of interest. If this file is used, the tool will only evaluate the area upslope of these outlets. Concentration Threshold [number] Default: 1.0 The concentration or solubility threshold. Over the substance supply area, concentration is at this threshold. Check for edge contamination [boolean] Default: True This option determines whether the tool should check for edge contamination. Edge contamination is defined as the possibility that a value may be underestimated due to grid cells outside of the domain not being considered when determining contributing area. Outputs Label Name Type Popis Concentration Grid [raster] A grid giving the resulting concentration of the compound of interest in the flow. Python code Algorithm ID: taudem:dinfconclimaccum import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1254 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide D-Infinity Decaying Accumulation The D-Infinity Decaying Accumulation tool creates a grid of the accumulated quantity at each location in the domain where the quantity accumulates with the D-infinity flow field, but is subject to first order decay in moving from cell to cell. By default, the quantity contribution of each grid cell is the cell length to give a per unit width accumulation, but can optionally be expressed with a weight grid. The decay multiplier grid gives the fractional (first order) reduction in quantity in accumulating from grid cell x to the next downslope cell. A decayed accumulation operator DA[.] takes as input a mass loading field m(x) expressed at each grid location as m(i, j) that is assumed to move with the flow field but is subject to first order decay in moving from cell to cell. The output is the accumulated mass at each location DA(x). The accumulation of m at each grid cell can be numerically evaluated. Here d(x) = d(i ,j) is a decay multiplier giving the fractional (first order) reduction in mass in moving from grid cell x to the next downslope cell. If travel (or residence) times t(x) associated with flow between cells are available d(x) may be evaluated as exp(-k t(x)) where k is a first order decay parameter. The weight grid is used to represent the mass loading m(x). If not specified this is taken as 1. If the outlets shapefile is used the function is only evaluated on that part of the domain that contributes flow to the locations given by the shapefile. 24.4. TauDEM algorithm provider 1255 QGIS Desktop 3.16 User Guide Useful for a tracking contaminant or compound subject to decay or attenuation. 1256 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Name Type Popis D-Infinity Flow Direction Grid [raster] A grid giving flow direction by the D-infinity method. Flow direction is measured in radians, counter clockwise from east. This grid can be created by the function „D-Infinity Flow Directions“. Decay Multiplier Grid [raster] A grid giving the factor by which flow leaving each grid cell is multiplied before accumulation on downslope grid cells. This may be used to simulate the movement of an attenuating substance. Weight Grid Optional [raster] A grid giving weights (loadings) to be used in the accumulation. If this optional grid is not specified, weights are taken as the linear grid cell size to give a per unit width accumulation. Outlets Shapefile Optional [vector: point] This optional input is a point shapefile defining outlets of interest. If this file is used, the tool will only evaluate the area upslope of these outlets. Check for edge contamination [boolean] Default: True This option determines whether the tool should check for edge contamination. Edge contamination is defined as the possibility that a value may be underestimated due to grid cells outside of the domain not being considered when determining contributing area. Outputs Label Name Type Popis Decayed Specific Catchment Area Grid [raster] The D-Infinity Decaying Accumulation tool creates a grid of the accumulated mass at each location in the domain where mass moves with the D-infinity flow field, but is subject to first order decay in moving from cell to cell. Python code Algorithm ID: taudem:dinfdecayaccum import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.4. TauDEM algorithm provider 1257 QGIS Desktop 3.16 User Guide D-Infinity Distance Down Calculates the distance downslope to a stream using the D-infinity flow model. The D-infinity flow model is a multiple flow direction model, because the outflow from each grid cell is proportioned between up to 2 downslope grid cells. As such, the distance from any grid cell to a stream is not uniquely defined. Flow that originates at a particular grid cell may enter the stream at a number of different cells. The statistical method may be selected as the longest, shortest or weighted average of the flow path distance to the stream. Also one of several ways of measuring distance may be selected: the total straight line path (Pythagoras), the horizontal component of the straight line path, the vertical component of the straight line path, or the total surface flow path. 1258 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Name Type Popis D-Infinity Flow Direction Grid [raster] A grid giving flow direction by the D-infinity method. Flow direction is measured in radians, counter clockwise from east. This can be created by the tool „D-Infinity Flow Directions“. Pit Filled Elevation Grid [raster] This input is a grid of elevation values. As a general rule, it is recommended that you use a grid of elevation values that have had the pits removed for this input. Pits are generally taken to be artifacts that interfere with the analysis of flow across them. This grid can be obtained as the output of the „Pit Remove“ tool, in which case it contains elevation values where the pits have been filled to the point where they just drain. Stream Raster Grid [raster] A grid indicating streams, by using a grid cell value of 1 on streams and 0 off streams. This is usually the output of one of the tools in the „Stream Network Analysis“ toolset. Weight Path Grid Optional [raster] A grid giving weights (loadings) to be used in the distance calculation. This might be used for example where only flow distance through a buffer is to be calculated. The weight is then 1 in the buffer and 0 outside it. Alternatively the weight may reflect some sort of cost function for travel over the surface, perhaps representing travel time or attenuation of a process. If this input file is not used, the loadings will assumed to be one for each grid cell. Statistical Method [enumeration] Default: 2 Statistical method used to calculate the distance down to the stream. In the D-Infinity flow model, the outflow from each grid cell is proportioned between two downslope grid cells. Therefore, the distance from any grid cell to a stream is not uniquely defined. Flow that originates at a particular grid cell may enter the stream at a number of cells. The distance to the stream may be defined as the longest (maximum), shortest (minimum) or weighted average of the distance down to the stream. Options: • 0 — Minimum • 1 — Maximum • 2 — Average Distance Method [enumeration] Default: 1 Distance method used to calculate the distance down to the stream. One of several ways of measuring distance may be selected: the total straight line path (Pythagoras), the horizontal component of the straight line path (horizontal), the vertical component of the straight line path (vertical), or the total surface flow path (surface). Options: • 0 — Pythagoras • 1 — Horizontal • 2 — Vertical • 3 — Surface Check for edge contamination [boolean] Default: True A flag that determines whether the tool should check for edge contamination. This is defined as the possibility that a value may be underestimated due to grid cells outside of the domain not being counted. In the context of Distance Down this occurs when part of a flow path traced downslope from a grid cell leaves the domain without reaching a stream grid cell. With edge contamination checking selected, the algorithm 24.4. TauDEM algorithm provider 1259 QGIS Desktop 3.16 User Guide Outputs Label Name Type Popis D-Infinity Drop to Stream Grid [raster] Grid containing the distance to stream calculated using the D-infinity flow model and the statistical and path methods chosen. Python code Algorithm ID: taudem:dinfdistdown import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. D-Infinity Distance Up This tool calculates the distance from each grid cell up to the ridge cells along the reverse D-infinity flow directions. Ridge cells are defined to be grid cells that have no contribution from grid cells further upslope. Given the convergence of multiple flow paths at any grid cell, any given grid cell can have multiple upslope ridge cells. There are three statistical methods that this tool can use: maximum distance, minimum distance and waited flow average over these flow paths. A variant on the above is to consider only grid cells that contribute flow with a proportion greater than a user specified threshold (t) to be considered as upslope of any given grid cell. Setting t=0.5 would result in only one flow path from any grid cell and would give the result equivalent to a D8 flow model, rather than D-infinity flow model, where flow is proportioned between two downslope grid cells. Finally there are several different optional paths that can be measured: the total straight line path (Pythagoras), the horizontal component of the straight line path, the vertical component of the straight line path, or the total surface flow path. 1260 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Name Type Popis D-Infinity Flow Direction Grid [raster] A grid giving flow direction by the D-infinity method. Flow direction is measured in radians, counter clockwise from east. This can be created by the tool „D-Infinity Flow Directions“. Pit Filled Elevation Grid [raster] This input is a grid of elevation values. As a general rule, it is recommended that you use a grid of elevation values that have had the pits removed for this input. Pits are generally taken to be artifacts that interfere with the analysis of flow across them. This grid can be obtained as the output of the „Pit Remove“ tool, in which case it contains elevation values where the pits have been filled to the point where they just drain. Slope Grid [raster] This input is a grid of slope values. This is measured as drop/distance and it is most often obtained as the output of the „D-Infinity Flow Directions“ tool. Statistical Method [enumeration] Default: 2 Statistical method used to calculate the distance down to the stream. In the D-Infinity flow model, the outflow from each grid cell is proportioned between two downslope grid cells. Therefore, the distance from any grid cell to a stream is not uniquely defined. Flow that originates at a particular grid cell may enter the stream at a number of cells. The distance to the stream may be defined as the longest (maximum), shortest (minimum) or weighted average of the distance down to the stream. Options: • 0 — Minimum • 1 — Maximum • 2 — Average Distance Method [enumeration] Default: 1 Distance method used to calculate the distance down to the stream. One of several ways of measuring distance may be selected: the total straight line path (Pythagoras), the horizontal component of the straight line path (horizontal), the vertical component of the straight line path (vertical), or the total surface flow path (surface). Options: • 0 — Pythagoras • 1 — Horizontal • 2 — Vertical • 3 — Surface Proportion Threshold [number] Default: 0.5 The proportion threshold parameter where only grid cells that contribute flow with a proportion greater than this user specified threshold (t) is considered to be upslope of any given grid cell. Setting t=0.5 would result in only one flow path from any grid cell and would give the result equivalent to a D8 flow model, rather than D-Infinity flow model, where flow is proportioned between two downslope grid cells. Check for edge contamination [boolean] Default: True A flag that determines whether the tool should check for edge contamination. This is defined as the possibility that a value may be underestimated due to grid cells outside of the domain not being counted. 24.4. TauDEM algorithm provider 1261 QGIS Desktop 3.16 User Guide Outputs Label Name Type Popis D-Infinity Distance Up [raster] Grid containing the distances up to the ridge calculated using the D-Infinity flow model and the statistical and path methods chosen. Python code Algorithm ID: taudem:dinfdistup import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. D-Infinity Reverse Accumulation This works in a similar way to evaluation of weighted Contributing area, except that the accumulation is by propagating the weight loadings upslope along the reverse of the flow directions to accumulate the quantity of weight loading downslope from each grid cell. The function also reports the maximum value of the weight loading downslope from each grid cell in the Maximum Downslope grid. This function is designed to evaluate and map the hazard due to activities that may have an effect downslope. The example is land management activities that increase runoff. Runoff is sometimes a trigger for landslides or debris flows, so the weight grid here could be taken as a terrain stability map. Then the reverse accumulation provides a measure of the amount of unstable terrain downslope from each grid cell, as an indicator of the danger of activities that may increase runoff, even though there may be no potential for any local impact. 1262 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Name Type Popis D-Infinity Flow Direction Grid [raster] A grid giving flow direction by the D-infinity method. Flow direction is measured in radians, counter clockwise from east. This can be created by the tool „D-Infinity Flow Directions“. Weight Grid [raster] A grid giving weights (loadings) to be used in the accumulation. Outputs Label Name Type Popis Reverse Accumulation Grid [raster] The grid giving the result of the „Reverse Accumulation“ function. This works in a similar way to evaluation of weighted Contributing area, except that the accumulation is by propagating the weight loadings upslope along the reverse of the flow directions to accumulate the quantity of loading downslope from each grid cell. Maximum Downslope Grid [raster] The grid giving the maximum of the weight loading grid downslope from each grid cell. Python code Algorithm ID: taudem:dinfrevaccum import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. D-Infinity Transport Limited Accumulation - 2 This function is designed to calculate the transport and deposition of a substance (e.g. sediment) that may be limited by both supply and the capacity of the flow field to transport it. This function accumulates substance flux (e.g. sediment transport) subject to the rule that transport out of any grid cell is the minimum between supply and transport capacity, Tcap. The total supply at a grid cell is calculated as the sum of the transport in from upslope grid cells, Tin, plus the local supply contribution, E (e.g. erosion). This function also outputs deposition, D, calculated as total supply minus actual transport. 24.4. TauDEM algorithm provider 1263 QGIS Desktop 3.16 User Guide Here E is the supply. Tout at each grid cell becomes Tin for downslope grid cells and is reported as Transport limited accumulation (tla). D is deposition (tdep). The function provides the option to evaluate concentration of a compound (contaminant) adhered to the transported substance. This is evaluated as follows: Where Lin is the total incoming compound loading and Cin and Tin refer to the Concentration and Transport entering from each upslope grid cell. If else where Cs is the concentration supplied locally and the difference in the second term on the right represents the additional supply from the local grid cell. Then, Cout at each grid cell comprises is the concentration grid output from this function. If the outlets shapefile is used the tool only evaluates that part of the domain that contributes flow to the locations given by the shapefile. Transport limited accumulation is useful for modeling erosion and sediment delivery, including the spatial dependence of sediment delivery ratio and contaminant that adheres to sediment. 1264 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Name Type Popis D-Infinity Flow Direction Grid [raster] A grid giving flow direction by the D-infinity method. Flow direction is measured in radians, counter clockwise from east. This can be created by the tool „D-Infinity Flow Directions“. Supply Grid [raster] A grid giving the supply (loading) of material to a transport limited accumulation function. In the application to erosion, this grid would give the erosion detachment, or sediment supplied at each grid cell. Transport Capacity Grid [raster] A grid giving the transport capacity at each grid cell for the transport limited accumulation function. In the application to erosion this grid would give the transport capacity of the carrying flow. Input Concentration Grid [raster] A grid giving the concentration of a compound of interest in the supply to the transport limited accumulation function. In the application to erosion, this grid would give the concentration of say phosphorous adhered to the eroded sediment. Outlets Shapefile Optional [vector: point] This optional input is a point shapefile defining outlets of interest. If this file is used, the tool will only evaluate the area upslope of these outlets. Check for edge contamination [boolean] Default: True This option determines whether the tool should check for edge contamination. Edge contamination is defined as the possibility that a value may be underestimated due to grid cells outside of the domain not being considered when determining the result. Outputs Label Name Type Popis Transport Limited Accumulation Grid [raster] This grid is the weighted accumulation of supply accumulated respecting the limitations in transport capacity and reports the transport rate calculated by accumulating the substance flux subject to the rule that the transport out of any grid cell is the minimum of the total supply (local supply plus transport in) to that grid cell and the transport capacity. Deposition Grid [raster] A grid giving the deposition resulting from the transport limited accumulation. This is the residual from the transport in to each grid cell minus the transport capacity out of the grid cell. The deposition grid is calculated as the transport in + the local supply - the transport out. Output Concentration Grid [raster] If an input concentration in supply grid is given, then this grid is also output and gives the concentration of a compound (contaminant) adhered or bound to the transported substance (e.g. sediment) is calculated. 24.4. TauDEM algorithm provider 1265 QGIS Desktop 3.16 User Guide Python code Algorithm ID: unknown import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. D-Infinity Transport Limited Accumulation This function is designed to calculate the transport and deposition of a substance (e.g. sediment) that may be limited by both supply and the capacity of the flow field to transport it. This function accumulates substance flux (e.g. sediment transport) subject to the rule that transport out of any grid cell is the minimum between supply and transport capacity, Tcap. The total supply at a grid cell is calculated as the sum of the transport in from upslope grid cells, Tin, plus the local supply contribution, E (e.g. erosion). This function also outputs deposition, D, calculated as total supply minus actual transport. Here E is the supply. Tout at each grid cell becomes Tin for downslope grid cells and is reported as Transport limited accumulation (tla). D is deposition (tdep). The function provides the option to evaluate concentration of a compound (contaminant) adhered to the transported substance. This is evaluated as follows: Where Lin is the total incoming compound loading and Cin and Tin refer to the Concentration and Transport entering from each upslope grid cell. If 1266 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide else where Cs is the concentration supplied locally and the difference in the second term on the right represents the additional supply from the local grid cell. Then, Cout at each grid cell comprises is the concentration grid output from this function. If the outlets shapefile is used the tool only evaluates that part of the domain that contributes flow to the locations given by the shapefile. Transport limited accumulation is useful for modeling erosion and sediment delivery, including the spatial dependence of sediment delivery ratio and contaminant that adheres to sediment. Parameters Label Name Type Popis D-Infinity Flow Direction Grid [raster] A grid giving flow direction by the D-infinity method. Flow direction is measured in radians, counter clockwise from east. This can be created by the tool „D-Infinity Flow Directions“. Supply Grid [raster] A grid giving the supply (loading) of material to a transport limited accumulation function. In the application to erosion, this grid would give the erosion detachment, or sediment supplied at each grid cell. Transport Capacity Grid [raster] A grid giving the transport capacity at each grid cell for the transport limited accumulation function. In the application to erosion this grid would give the transport capacity of the carrying flow. Outlets Shapefile Optional [vector: point] This optional input is a point shapefile defining outlets of interest. If this file is used, the tool will only evaluate the area upslope of these outlets. Check for edge contamination [boolean] Default: True This option determines whether the tool should check for edge contamination. Edge contamination is defined as the possibility that a value may be underestimated due to grid cells outside of the domain not being considered when determining the result. 24.4. TauDEM algorithm provider 1267 QGIS Desktop 3.16 User Guide Outputs Label Name Type Popis Transport Limited Accumulation Grid [raster] This grid is the weighted accumulation of supply accumulated respecting the limitations in transport capacity and reports the transport rate calculated by accumulating the substance flux subject to the rule that the transport out of any grid cell is the minimum of the total supply (local supply plus transport in) to that grid cell and the transport capacity. Deposition Grid [raster] A grid giving the deposition resulting from the transport limited accumulation. This is the residual from the transport in to each grid cell minus the transport capacity out of the grid cell. The deposition grid is calculated as the transport in + the local supply - the tranport out. Python code Algorithm ID: taudem:dinftranslimaccum import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. D-Infinity Upslope Dependence The D-Infinity Upslope Dependence tool quantifies the amount each grid cell in the domain contributes to a destination set of grid cells. D-Infinity flow directions proportion flow from each grid cell between multiple downslope grid cells. Following this flow field downslope the amount of flow originating at each grid cell that reaches the destination zone is defined. Upslope influence is evaluated using a downslope recursion, examining grid cells downslope from each grid cell, so that the map produced identifies the area upslope where flow through the destination zone originates, or the area it depends on, for its flow. The figures below illustrate the amount each source point in the domain x (blue) contributes to the destination point or zone y (red). If the indicator weighted contributing area function is denoted I(y; x) giving the weighted contribution using a unit value (1) from specific grid cells y to grid cells x, then the upslope dependence is: D(x; y) = I(y; x). 1268 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide This is useful for example to track where flow or a flow related substance or contaminant that enters a destination area may come from. Parameters Label Name Type Popis D-Infinity Flow Direction Grid [raster] A grid giving flow direction by the D-Infinity method where the flow direction angle is determined as the direction of the steepest downward slope on the eight triangular facets formed in a 3x3 grid cell window centered on the grid cell of interest. This grid can be produced using the „D-Infinity Flow Direction“ tool. Destination Grid [raster] A grid that encodes the destination zone that may receive flow from upslope. This grid must be 1 inside the zone y and 0 over the rest of the domain. Outputs Label Name Type Popis Output Upslope Dependence Grid [raster] A grid quantifing the amount each source point in the domain contributes to the zone defined by the destination grid. 24.4. TauDEM algorithm provider 1269 QGIS Desktop 3.16 User Guide Python code Algorithm ID: taudem:dinfupdependence import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Slope Average Down This tool computes slope in a D8 downslope direction averaged over a user selected distance. Distance should be specified in horizontal map units. Parameters Label Name Type Popis D8 Flow Direction Grid [raster] This input is a grid of flow directions that are encoded using the D8 method where all flow from a cells goes to a single neighboring cell in the direction of steepest descent. This grid can be obtained as the output of the „D8 Flow Directions“ tool. Pit Filled Elevation Grid [raster] This input is a grid of elevation values. As a general rule, it is recommended that you use a grid of elevation values that have had the pits removed for this input. Pits are generally taken to be artifacts that interfere with the analysis of flow across them. This grid can be obtained as the output of the „Pit Remove“ tool, in which case it contains elevation values where the pits have been filled to the point where they just drain. Downslope Distance [number] Default: 50 Input parameter of downslope distance over which to calculate the slope (in horizontal map units). 1270 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Name Type Popis Slope Average Down Grid [raster] This output is a grid of slopes calculated in the D8 downslope direction, averaged over the selected distance. Python code Algorithm ID: taudem:slopeavedown import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Slope Over Area Ratio Calculates the ratio of the slope to the specific catchment area (contributing area). This is algebraically related to the more common ln(a/tan beta) wetness index, but contributing area is in the denominator to avoid divide by 0 errors when slope is 0. Parameters Label Name Type Popis Slope Grid [raster] A grid of slope. This grid can be generated using ether the „D8 Flow Directions“ tool or the „D-Infinity Flow Directions“ tool. Specific Catchment Area Grid [raster] A grid giving the contributing area value for each cell taken as its own contribution plus the contribution from upslope neighbors that drain in to it. Contributing area is counted in terms of the number of grid cells (or summation of weights). This grid can be generated using either the „D8 Contributing Area“ tool or the „D-Infinity Contributing Area“ tool. Outputs Label Name Type Popis Slope Divided By Area Ratio Grid [raster] A grid of the ratio of slope to specific catchment area (contributing area). This is algebraically related to the more common ln(a/tan beta) wetness index, but contributing area is in the denominator to avoid divide by 0 errors when slope is 0. 24.4. TauDEM algorithm provider 1271 QGIS Desktop 3.16 User Guide Python code Algorithm ID: taudem:slopearearatio import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Topographic wetness index Calculates the topographic wetness index (TWI). Parameters Label Name Type Popis Slope [raster] A grid of slope. This grid can be generated using ether the „D8 Flow Directions“ tool or the „D-Infinity Flow Directions“ tool. Specific catchment area [raster] A grid giving the contributing area value for each cell taken as its own contribution plus the contribution from upslope neighbors that drain in to it. Contributing area is counted in terms of the number of grid cells (or summation of weights). This grid can be generated using either the „D8 Contributing Area“ tool or the „D-Infinity Contributing Area“ tool. Outputs Label Name Type Popis Wetness index [raster] A grid of the wetness index (TWI). Python code Algorithm ID: taudem:twi import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1272 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide 24.4.3 Stream Network Analysis Connect down For each zone in a raster entered (e.g. HUC converted to grid) it identifies the point with largest AreaD8. This is taken to be the outlet. A OGR file is created. Using flow directions each outlet is moved downflow a specified number of grid cells which is user controllable (Default is 1). The ID of the location the point has moved to is taken as iddown. Two OGR files are created one with the initial points and one with the moved points. Both contain id, iddown and AreaD8. Parameters Label Name Type Popis D8 flow directions [raster] A grid of flow directions that are encoded using the D8 method where all flow from a cells goes to a single neighboring cell in the direction of steepest descent D8 contribution area [raster] A grid giving the contributing area value in terms of the number of grid cells (or the summation of weights) for each cell taken as its own contribution plus the contribution from upslope neighbors that drain in to it using the D8 algorithm. This is usually the output of the „D8 Contributing Area“ tool. Watershed [raster] Watershed grid delineated from gage watershed function or streamreachwatershed function. Other watershed (e.g. HUC) raster also can be used as watershed grid. Grid cells move to downstream [number] Number of grid cells move to downstream based on flow directions. Outputs Label Name Type Popis Outlets [vector: point] A point OGR file where each point is created from watershed grid having the largest contributing area for each zone. Moved Outlets [vector: point] A point OGR file defining moved outlets of interest. where each outlet is moved downflow a specified number of grid cells using flow directions. Python code Algorithm ID: taudem:connectdown import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.4. TauDEM algorithm provider 1273 QGIS Desktop 3.16 User Guide D8 Extreme Upslope Value Evaluates the extreme (either maximum or minimum) upslope value from an input grid based on the D8 flow model. This is intended initially for use in stream raster generation to identify a threshold of the slope times area product that results in an optimum (according to drop analysis) stream network. If the optional outlet point shapefile is used, only the outlet cells and the cells upslope (by the D8 flow model) of them are in the domain to be evaluated. By default, the tool checks for edge contamination. This is defined as the possibility that a result may be underestimated due to grid cells outside of the domain not being counted. This occurs when drainage is inwards from the boundaries or areas with „no data“ values for elevation. The algorithm recognizes this and reports „no data“ for the result for these grid cells. It is common to see streaks of „no data“ values extending inwards from boundaries along flow paths that enter the domain at a boundary. This is the desired effect and indicates that the result for these grid cells is unknown due to it being dependent on terrain outside of the domain of data available. Edge contamination checking may be turned off in cases where you know this is not an issue or want to ignore these problems, if for example, the DEM has been clipped along a watershed outline. Parameters Label Name Type Popis D8 Flow Directions Grid [raster] A grid of D8 flow directions which are defined, for each cell, as the direction of the one of its eight adjacent or diagonal neighbors with the steepest downward slope. This grid can be obtained as the output of the „D8 Flow Directions“ tool. Upslope Values Grid [raster] This is the grid of values of which the maximum or minimum upslope value is selected. The values most commonly used are the slope times area product needed when generating stream rasters according to drop analysis. Outlets Shapefile Optional [vector: point] A point shape file defining outlets of interest. If this input file is used, only the area upslope of these outlets will be evaluated by the tool. Check for edge contamination [boolean] Default: True A flag that indicates whether the tool should check for edge contamination. Use max upslope value [boolean] Default: True A flag to indicate whether the maximum or minimum upslope value is to be calculated. Outputs Label Name Type Popis Extreme Upslope Values Grid [raster] A grid of the maximum/minimum upslope values. 1274 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: taudem:d8flowpathextremeup import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Gage Watershed Calculates Gage Watersheds Grid. Each grid cell is labeled with the identifier (from column id) of the gage to which it drains directly without passing through any other gages. Parameters Label Name Type Popis A suppr D-infinity flow directions DINF_FLOWDIR[raster] A grid of flow directions based on the D-infinity flow method D8 Flow Directions Grid [raster] A grid of D8 flow directions which are defined, for each cell, as the direction of the one of its eight adjacent or diagonal neighbors with the steepest downward slope. This grid can be obtained as the output of the „D8 Flow Directions“ tool. Gages Shapefile [vector: point] A point shapefile defining the gages to which watersheds will be delineated. This shapefile should have a colmun id. Grid cells draining directly to each point in this shapefile will be labeled with this id. Outputs Label Name Type Popis Gage Watershed Grid [raster] A grid identifies each gage watershed. Each grid cell is labeled with the identifier (from column id) of the gage to which it drains directly without passing through any other gages. Downstream Identifiers File [file] Text file giving watershed downslope connectivity Python code Algorithm ID: taudem:gagewatershed import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.4. TauDEM algorithm provider 1275 QGIS Desktop 3.16 User Guide Length Area Stream Source Creates an indicator grid (1, 0) that evaluates A >= (M)(Ly) based on upslope path length, D8 contributing area grid inputs, and parameters M and y. This grid indicates likely stream source grid cells. This is an experimental method with theoretical basis in Hack’s law which states that for streams L ~ A 0.6. However for hillslopes with parallel flow L ~ A. So a transition from hillslopes to streams may be represented by L ~ A 0.8 suggesting identifying grid cells as stream cells if A > M (L (1/0.8)). Parameters Label Name Type Popis Length Grid [raster] A grid of the maximum upslope length for each cell. This is calculated as the length of the flow path from the furthest cell that drains to each cell. Length is measured between cell centers taking into account cell size and whether the direction is adjacent or diagonal. It is this length (L) that is used in the formula, A >(M)(Ly), to determine which cells are considered stream cells. This grid can be obtained as an output from the „Grid Network“ tool. Contributing Area Grid [raster] A grid of contributing area values for each cell that were calculated using the D8 algorithm. The contributing area for a cell is the sum of its own contribution plus the contribution from all upslope neighbors that drain to it, measured as a number of cells. This grid is typically obtained as the output of the „D8 Contributing Area“ tool. In this tool, it is the contributing area (A) that is compared in the formula A > (M)(Ly) to determine the transition to a stream. Threshold [number] Default: 0.03 The multiplier threshold (M) parameter which is used in the formula: A > (M)(Ly), to identify the beginning of streams. Exponent [number] Default: 1.3 The exponent (y) parameter which is used in the formula: A > (M)(Ly), to identify the beginning of streams. In branching systems, Hack’s law suggests that L = 1/M A(1/y) with 1/y = 0.6 (or 0.56) (y about 1.7). In parallel flow systems L is proportional to A (y about 1). This method tries to identify the transition between these two paradigms by using an exponent y somewhere in between (y about 1.3). Outputs Label Name Type Popis Stream Source Grid [raster] An indicator grid (1,0) that evaluates A >= (M)(L^y), based on the maximum upslope path length, the D8 contributing area grid inputs, and parameters M and y. This grid indicates likely stream source grid cells. 1276 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Python code Algorithm ID: taudem:lengtharea import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Move Outlets To Streams Moves outlet points that are not aligned with a stream cell from a stream raster grid, downslope along the D8 flow direction until a stream raster cell is encountered, the „max_dist“ number of grid cells are examined, or the flow path exits the domain (i.e. a „no data“ value is encountered for the D8 flow direction). The output file is a new outlets shapefile where each point has been moved to coincide with the stream raster grid, if possible. A field „dist_moved“ is added to the new outlets shapefile to indicate the changes made to each point. Points that are already on a stream cell are not moved and their „dist_moved“ field is assigned a value 0. Points that are initially not on a stream cell are moved by sliding them downslope along the D8 flow direction until one of the following occurs: a) A stream raster grid cell is encountered before traversing the „max_dist“ number of grid cells. In which case, the point is moved and the „dist_moved“ field is assigned a value indicating how many grid cells the point was moved. b) More than the „max_number“ of grid cells are traversed, or c) the traversal ends up going out of the domain (i.e., a „no data“ D8 flow direction value is encountered). In which case, the point is not moved and the „dist_moved“ field is assigned a value of -1. Parameters Label Name Type Popis D8 Flow Direction Grid [raster] A grid of D8 flow directions which are defined, for each cell, as the direction of the one of its eight adjacent or diagonal neighbors with the steepest downward slope. This grid can be obtained as the output of the „D8 Flow Directions“ tool. Stream Raster Grid [raster] This output is an indicator grid (1, 0) that indicates the location of streams, with a value of 1 for each of the stream cells and 0 for the remainder of the cells. This file is produced by several different tools in the „Stream Network Analysis“ toolset. Outlets Shapefile [vector: point] A point shape file defining points of interest or outlets that should ideally be located on a stream, but may not be exactly on the stream due to the fact that the shapefile point locations may not have been accurately registered with respect to the stream raster grid. Maximum Number of Grid Cells to traverse [number] Default: 50 This input parameter is the maximum number of grid cells that the points in the input outlet shapefile will be moved before they are saved to the output outlet shapefile. 24.4. TauDEM algorithm provider 1277 QGIS Desktop 3.16 User Guide Outputs Label Name Type Popis Output Outlet Shapefile [vector: point] A point shape file defining points of interest or outlets. This file has one point in it for each point in the input outlet shapefile. If the original point was located on a stream, then the point was not moved. If the original point was not on a stream, the point was moved downslope according to the D8 flow direction until it reached a stream or the maximum distance had been reached. This file has an additional field „dist_moved“ added to it which is the number of cells that the point was moved. This field is 0 if the cell was originally on a stream, -1 if it was not moved because there was not a stream within the maximum distance, or some positive value if it was moved. Python code Algorithm ID: taudem:moveoutletstostreams import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Peuker Douglas Creates an indicator grid (1, 0) of upward curved grid cells according to the Peuker and Douglas algorithm. With this tool, the DEM is first smoothed by a kernel with weights at the center, sides, and diagonals. The Peuker and Douglas (1975) method (also explained in Band, 1986), is then used to identify upwardly curving grid cells. This technique flags the entire grid, then examines in a single pass each quadrant of 4 grid cells, and unflags the highest. The remaining flagged cells are deemed „upwardly curved“, and when viewed, resemble a channel network. This proto-channel network generally lacks connectivity and requires thinning, issues that were discussed in detail by Band (1986). Parameters Label Name Type Popis Elevation Grid [raster] A grid of elevation values. This is usually the output of the „Pit Remove“ tool, in which case it is elevations with pits removed. Center Smoothing Weight [number] Default: 0.4 The center weight parameter used by a kernel to smooth the DEM before the tool identifies upwardly curved grid cells. Side Smoothing Weight [number] Default: 0.1 The side weight parameter used by a kernel to smooth the DEM before the tool identifies upwardly curved grid cells. continues on next page 1278 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.234 – pokračujte na předchozí stránce Diagonal Smoothing Weight [number] Default: 0.05 The diagonal weight parameter used by a kernel to smooth the DEM before the tool identifies upwardly curved grid cells. Outputs Label Name Type Popis Stream Source Grid [raster] An indicator grid (1, 0) of upward curved grid cells according to the Peuker and Douglas algorithm, and if viewed, resembles a channel network. This proto-channel network generally lacks connectivity and requires thinning, issues that were discussed in detail by Band (1986). Python code Algorithm ID: taudem:peukerdouglas import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. See also • Band, L. E., (1986), „Topographic partition of watersheds with digital elevation models“, Water Resources Research, 22(1): 15-24. • Peuker, T. K. and D. H. Douglas, (1975), „Detection of surface-specific points by local parallel processing of discrete terrain elevation data“, Comput. Graphics Image Process., 4: 375-387. Peuker Douglas stream Combines the functionality of the „Peuker Douglas“, „D8 Contributing Area“, „Stream Drop Analysis“ and „Stream Definition by Threshold“ tools in order to generate a stream indicator grid (1,0) where the streams are located using a DEM curvature-based method. With this method, the DEM is first smoothed by a kernel with weights at the center, sides, and diagonals. The Peuker and Douglas (1975) method (also explained in Band, 1986), is then used to identify upwardly curving grid cells. This technique flags the entire grid, then examines in a single pass each quadrant of 4 grid cells, and unflags the highest. The remaining flagged cells are deemed ‚upwardly curved‘, and when viewed, resemble a channel network. This proto-channel network sometimes lacks connectivity, and/or requires thinning, issues that were discussed in detail by Band (1986). The thinning and connecting of these grid cells is achieved here by computing the D8 contributing area using only these upwardly curving cells. An accumulation threshold on the number of these cells is then used to map the channel network where this threshold is optionally set by the user, or determined via drop analysis. If drop analysis is used, then instead of providing a value for the accumulation threshold, the accumulation threshold value is determined by searching the range between the Drop Analysis Parameters „Lowest“ and „Highest“, using the number of steps in the parameter „Number“. For the science behind drop analysis, see Tarboton, et al. (1991, 1992), and Tarboton and Ames (2001). The value of accumulation threshold that is selected is the smallest value where the absolute value of the t-statistic is less than 2. This is written to the drop analysis table text file. Drop analysis is only possible when outlets have been specified, because if an entire grid domain is analyzed, as the threshold varies, shorter 24.4. TauDEM algorithm provider 1279 QGIS Desktop 3.16 User Guide streams draining off the edge may not meet the threshold criterion and be excluded from the analysis. This makes defining drainage density problematic and it is somewhat inconsistent to compare statistics evaluated over differing domains. Parameters Outputs Label Name Type Popis Stream source [raster] An indicator grid (1, 0) of upward curved grid cells according to the Peuker and Douglas algorithm, and if viewed, resembles a channel network. This proto-channel network generally lacks connectivity and requires thinning, issues that were discussed in detail by Band (1986). Python code Algorithm ID: taudem:peukerdouglasstreamdef import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Slope Area Combination Creates a grid of slope-area values = (Sm) (An) based on slope and specific catchment area grid inputs, and parameters m and n. This tool is intended for use as part of the slope-area stream raster delineation method. Parameters Label Name Type Popis Slope Grid [raster] This input is a grid of slope values. This grid can be obtained from the „D-Infinity Flow Directions“ tool. Contributing Area Grid [raster] A grid giving the specific catchment area for each cell taken as its own contribution (grid cell length or summation of weights) plus the proportional contribution from upslope neighbors that drain in to it. This grid is typically obtained from the „D-Infinity Contributing Area“ tool. Slope Exponent [number] Default: 2 The slope exponent (m) parameter which will be used in the formula: (Sm)(An), that is used to create the slope-area grid. Area Exponent [number] Default: 1 The area exponent (n) parameter which will be used in the formula: (Sm)(An), that is used to create the slope-area grid. 1280 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Outputs Label Name Type Popis Slope Area Grid [raster] A grid of slope-area values = (Sm)(An) calculated from the slope grid, specific catchment area grid, m slope exponent parameter, and n area exponent parameter. Python code Algorithm ID: taudem:slopearea import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Slope area stream definition Creates a grid of slope-area values = (Sm) (An) based on slope and specific catchment area grid inputs, and parameters m and n. This tool is intended for use as part of the slope-area stream raster delineation method. Parameters Label Name Type Popis D8 flow directions [raster] D-infinity Contributing Area [raster] A grid giving the specific catchment area for each cell taken as its own contribution (grid cell length or summation of weights) plus the proportional contribution from upslope neighbors that drain in to it. This grid is typically obtained from the „D-Infinity Contributing Area“ tool. Slope [raster] This input is a grid of slope values. This grid can be obtained from the „D-Infinity Flow Directions“ tool. Mask grid [raster] Outlets [vector: point] Pit-filled grid for drop analysis [raster] D8 contributing area for drop analysis [raster] Slope Exponent [number] Default: 2 The slope exponent (m) parameter which will be used in the formula: (Sm)(An), that is used to create the slope-area grid. Area Exponent [number] Default: 1 The area exponent (n) parameter which will be used in the formula: (Sm)(An), that is used to create the slope-area grid. Accumulation threshold [number] continues on next page 24.4. TauDEM algorithm provider 1281 QGIS Desktop 3.16 User Guide Tabulka 24.239 – pokračujte na předchozí stránce Minimum threshold [number] Maximum threshold [number] Number of drop thresholds [number] Type of threshold step [enumeration] Default: 0 Options: • 0 — Logarithmic • 1 — Linear Check for edge contamination [boolean] Select threshold by drop analysis [boolean] Outputs Label Name Type Popis Stream raster [raster] Slope area [raster] A grid of slope-area values = (Sm)(An) calculated from the slope grid, specific catchment area grid, m slope exponent parameter, and n area exponent parameter. Maximum upslope [raster] Drop analysis [file] Python code Algorithm ID: taudem:slopeareastreamdef import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Stream Definition By Threshold Operates on any grid and outputs an indicator (1, 0) grid identifying cells with input values >= the threshold value. The standard use is to use an accumulated source area grid to as the input grid to generate a stream raster grid as the output. If you use the optional input mask grid, it limits the domain being evaluated to cells with mask values >= 0. When you use a D-infinity contributing area grid (*sca) as the mask grid, it functions as an edge contamination mask. The threshold logic is: src = ((ssa >= thresh) & (mask >= s0)) ? 1:0 1282 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Name Type Popis Accumulated Stream Source Grid [raster] This grid nominally accumulates some characteristic or combination of characteristics of the watershed. The exact characteristic(s) varies depending on the stream network raster algorithm being used. This grid needs to have the property that grid cell values are monotonically increasing downslope along D8 flow directions, so that the resulting stream network is continuous. While this grid is often from an accumulation, other sources such as a maximum upslope function will also produce a suitable grid. Threshold [number] Default: 100 This parameter is compared to the value in the Accumulated Stream Source grid (*ssa) to determine if the cell should be considered a stream cell. Streams are identified as grid cells for which ssa value is >= this threshold. Mask Grid Optional [raster] This optional input is a grid that is used to mask the domain of interest and output is only provided where this grid is >= 0. A common use of this input is to use a D-Infinity contributing area grid as the mask so that the delineated stream network is constrained to areas where D-infinity contributing area is available, replicating the functionality of an edge contamination mask. Outputs Label Name Type Popis Stream Raster Grid [raster] This is an indicator grid (1, 0) that indicates the location of streams, with a value of 1 for each of the stream cells and 0 for the remainder of the cells. Python code Algorithm ID: taudem:threshold import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 24.4. TauDEM algorithm provider 1283 QGIS Desktop 3.16 User Guide Stream definition with drop analysis Combines the function of the „Stream Drop Analysis“ tool and the „Stream Definition by Threshold“ tools. It applies a series of thresholds (determined from the input parameters) to the input accumulated stream source grid (ssa) grid and outputs the results in the stream drop statistics table (drp.txt). Then it outputs a stream raster grid, which is an indicator (1,0) grid of stream cells. Stream cells are defined as those cells where the accumulated stream source value is >= the optimal threshold as determined from the stream drop statistics. There is an option to include a mask input to replicate the functionality for using the *sca file as an edge contamination mask. The threshold logic should be: src = ((ssa >= thresh) & (mask >=0)) ? 1:0 Parameters Outputs Python code Algorithm ID: taudem:streamdefdropanalysis import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. Stream Drop Analysis Applies a series of thresholds (determined from the input parameters) to the input accumulated stream source grid (*ssa) grid and outputs the results in the *drp.txt file the stream drop statistics table. This function is designed to aid in the determination of a geomorphologically objective threshold to be used to delineate streams. Drop Analysis attempts to select the right threshold automatically by evaluating a stream network for a range of thresholds and examining the constant drop property of the resulting Strahler streams. Basically it asks the question: Is the mean stream drop for first order streams statistically different from the mean stream drop for higher order streams, using a T-test. Stream drop is the difference in elevation from the beginning to the end of a stream defined as the sequence of links of the same stream order. If the T-test shows a significant difference then the stream network does not obey this „law“ so a larger threshold needs to be chosen. The smallest threshold for which the T-test does not show a significant difference gives the highest resolution stream network that obeys the constant stream drop „law“ from geomorphology, and is the threshold chosen for the „objective“ or automatic mapping of streams from the DEM. This function can be used in the development of stream network rasters, where the exact watershed characteristic(s) that were accumulated in the accumulated stream source grid vary based on the method being used to determine the stream network raster. The constant stream drop „law“ was identified by Broscoe (1959). For the science behind using this to determine a stream delineation threshold, see Tarboton et al. (1991, 1992), Tarboton and Ames (2001). 1284 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Parameters Label Name Type Popis D8 Contributing Area Grid [raster] A grid of contributing area values for each cell that were calculated using the D8 algorithm. The contributing area for a cell is the sum of its own contribution plus the contribution from all upslope neighbors that drain to it, measured as a number of cells or the sum of weight loadings. This grid can be obtained as the output of the „D8 Contributing Area“ tool. This grid is used in the evaluation of drainage density reported in the stream drop table. D8 Flow Direction Grid [raster] A grid of D8 flow directions which are defined, for each cell, as the direction of the one of its eight adjacent or diagonal neighbors with the steepest downward slope. This grid can be obtained as the output of the „D8 Flow Directions“ tool. Pit Filled Elevation Grid [raster] A grid of elevation values. This is usually the output of the „Pit Remove“ tool, in which case it is elevations with pits removed. Accumulated Stream Source Grid [raster] This grid must be monotonically increasing along the downslope D8 flow directions. It it compared to a series of thresholds to determine the beginning of the streams. It is often generated by accumulating some characteristic or combination of characteristics of the watershed with the „D8 Contributing Area“ tool, or using the maximum option of the „D8 Flow Path Extreme“ tool. The exact method varies depending on the algorithm being used. Outlets Shapefile [vector: point] A point shapefile defining the outlets upstream of which drop analysis is performed. Minimum Threshold [number] Default: 5 This parameter is the lowest end of the range searched for possible threshold values using drop analysis. This technique looks for the smallest threshold in the range where the absolute value of the t-statistic is less than 2. For the science behind the drop analysis see Tarboton et al. (1991, 1992), Tarboton and Ames (2001). Maximum Threshold [number] Default: 500 This parameter is the highest end of the range searched for possible threshold values using drop analysis. This technique looks for the smallest threshold in the range where the absolute value of the t-statistic is less than 2. For the science behind the drop analysis see Tarboton et al. (1991, 1992), Tarboton and Ames (2001). Number of Threshold Values [number] Default: 10 The parameter is the number of steps to divide the search range into when looking for possible threshold values using drop analysis. This technique looks for the smallest threshold in the range where the absolute value of the t-statistic is less than 2. For the science behind the drop analysis see Tarboton et al. (1991, 1992), Tarboton and Ames (2001). continues on next page 24.4. TauDEM algorithm provider 1285 QGIS Desktop 3.16 User Guide Tabulka 24.243 – pokračujte na předchozí stránce Spacing for Threshold Values [enumeration] Default: 0 This parameter indicates whether logarithmic or linear spacing should be used when looking for possible threshold values using drop analysis. Options: • 0 — Logarithmic • 1 — Linear Outputs Label Name Type Popis D-Infinity Drop to Stream Grid [file] This is a comma delimited text file with the following header line: Threshold,DrainDen,NoFirstOrd, →NoHighOrd,MeanDFirstOrd,MeanDHighOrd, →StdDevFirstOrd,StdDevHighOrd,T The file then contains one line of data for each threshold value examined, and then a summary line that indicates the optimum threshold value. This technique looks for the smallest threshold in the range where the absolute value of the t-statistic is less than 2. For the science behind the drop analysis, see Tarboton et al. (1991, 1992), Tarboton and Ames (2001). Python code Algorithm ID: taudem:dropanalysis import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. See also • Broscoe, A. J., (1959), „Quantitative analysis of longitudinal stream profiles of small watersheds“, Office of Naval Research, Project NR 389-042, Technical Report No. 18, Department of Geology, Columbia University, New York. • Tarboton, D. G., R. L. Bras and I. Rodriguez-Iturbe, (1991), „On the Extraction of Channel Networks from Digital Elevation Data“, Hydrologic Processes, 5(1): 81-100. • Tarboton, D. G., R. L. Bras and I. Rodriguez-Iturbe, (1992), „A Physical Basis for Drainage Density“, Geomorphology, 5(1/2): 59-76. • Tarboton, D. G. and D. P. Ames, (2001), „Advances in the mapping of flow networks from digital elevation data“, World Water and Environmental Resources Congress, Orlando, Florida, May 20-24, ASCE, https://www.researchgate.net/publication/2329568_Advances_in_the_Mapping_of_Flow_Networks_ From_Digital_Elevation_Data. 1286 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Stream Reach and Watershed This tool produces a vector network and shapefile from the stream raster grid. The flow direction grid is used to connect flow paths along the stream raster. The Strahler order of each stream segment is computed. The subwatershed draining to each stream segment (reach) is also delineated and labeled with the value identifier that corresponds to the WSNO (watershed number) attribute in the Stream Reach Shapefile. This tool orders the stream network according to the Strahler ordering system. Streams that don’t have any other streams draining in to them are order 1. When two stream reaches of different order join the order of the downstream reach is the order of the highest incoming reach. When two reaches of equal order join the downstream reach order is increased by 1. When more than two reaches join the downstream reach order is calculated as the maximum of the highest incoming reach order or the second highest incoming reach order + 1. This generalizes the common definition to cases where more than two reaches join at a point. The network topological connectivity is stored in the Stream Network Tree file, and coordinates and attributes from each grid cell along the network are stored in the Network Coordinates file. The stream raster grid is used as the source for the stream network, and the flow direction grid is used to trace connections within the stream network. Elevations and contributing area are used to determine the elevation and contributing area attributes in the network coordinate file. Points in the outlets shapefile are used to logically split stream reaches to facilitate representing watersheds upstream and downstream of monitoring points. The program uses the attribute field „id“ in the outlets shapefile as identifiers in the Network Tree file. This tool then translates the text file vector network representation in the Network Tree and Coordinates files into a shapefile. Further attributes are also evaluated. The program has an option to delineate a single watershed by representing the entire area draining to the Stream Network as a single value in the output watershed grid. Parameters Label Name Type Popis Pit Filled Elevation Grid [raster] A grid of elevation values. This is usually the output of the „Pit Remove“ tool, in which case it is elevations with pits removed. D8 Flow Direction Grid [raster] A grid of D8 flow directions which are defined, for each cell, as the direction of the one of its eight adjacent or diagonal neighbors with the steepest downward slope. This grid can be obtained as the output of the „D8 Flow Directions“ tool. D8 Drainage Area [raster] A grid giving the contributing area value in terms of the number of grid cells (or the summation of weights) for each cell taken as its own contribution plus the contribution from upslope neighbors that drain in to it using the D8 algorithm. This is usually the output of the „D8 Contributing Area“ tool and is used to determine the contributing area attribute in the Network Coordinate file. Stream Raster Grid [raster] An indicator grid indicating streams, by using a grid cell value of 1 on streams and 0 off streams. Several of the „Stream Network Analysis“ tools produce this type of grid. The Stream Raster Grid is used as the source for the stream network. continues on next page 24.4. TauDEM algorithm provider 1287 QGIS Desktop 3.16 User Guide Tabulka 24.245 – pokračujte na předchozí stránce Outlets Shapefile as Network Nodes Optional [vector: point] A point shape file defining points of interest. If this file is used, the tool will only deliniate the stream network upstream of these outlets. Additionally, points in the Outlets Shapefile are used to logically split stream reaches to facilitate representing watersheds upstream and downstream of monitoring points. This tool REQUIRES THAT THERE BE an integer attribute field „id“ in the Outlets Shapefile, because the „id“ values are used as identifiers in the Network Tree file. Delineate Single Watershed [boolean] Default: True This option causes the tool to delineate a single watershed by representing the entire area draining to the Stream Network as a single value in the output watershed grid. Otherwise a seperate watershed is delineated for each stream reach. Default is False (seperate watershed). Outputs Label Name Type Popis Stream Order Grid [raster] The Stream Order Grid has cells values of streams ordered according to the Strahler order system. The Strahler ordering system defines order 1 streams as stream reaches that don’t have any other reaches draining in to them. When two stream reaches of different order join the order of the downstream reach is the order of the highest incoming reach. When two reaches of equal order join the downstream reach order is increased by 1. When more than two reaches join the downstream reach order is calculated as the maximum of the highest incoming reach order or the second highest incoming reach order + 1. This generalizes the common definition to cases where more than two flow paths reaches join at a point. Watershed Grid [raster] This output grid identified each reach watershed with a unique ID number, or in the case where the delineate single watershed option was checked, the entire area draining to the stream network is identified with a single ID. continues on next page 1288 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide Tabulka 24.246 – pokračujte na předchozí stránce Stream Reach Shapefile [vector: line] This output is a polyline shapefile giving the links in a stream network. The columns in the attribute table are: • LINKNO — Link Number. A unique number associated with each link (segment of channel between junctions). This is arbitrary and will vary depending on number of processes used • DSLINKNO — Link Number of the downstream link. -1 indicates that this does not exist • USLINKNO1 — Link Number of first upstream link. (-1 indicates no link upstream, i.e. for a source link) • USLINKNO2 — Link Number of second upstream link. (-1 indicates no second link upstream, i.e. for a source link or an internal monitoring point where the reach is logically split but the network does not bifurcate) • DSNODEID — Node identifier for node at downstream end of stream reach. This identifier corresponds to the „id“ attribute from the Outlets shapefile used to designate nodes • Order — Strahler Stream Order • Length — Length of the link. The units are the horizontal map units of the underlying DEM grid • Magnitude — Shreve Magnitude of the link. This is the total number of sources upstream • DS_Cont_Ar — Drainage area at the downstream end of the link. Generally this is one grid cell upstream of the downstream end because the drainage area at the downstream end grid cell includes the area of the stream being joined • Drop — Drop in elevation from the start to the end of the link • Slope — Average slope of the link (computed as drop/length) • Straight_L — Straight line distance from the start to the end of the link • US_Cont_Ar — Drainage area at the upstream end of the link • WSNO — Watershed number. Cross reference to the *w.shp and *w grid files giving the identification number of the watershed draining directly to the link • DOUT_END — Distance to the eventual outlet (i.e. the most downstream point in the stream network) from the downstream end of the link • DOUT_START — Distance to the eventual outlet from the upstream end of the link • DOUT_MID — Distance to the eventual outlet from the midpoint of the link continues on next page 24.4. TauDEM algorithm provider 1289 QGIS Desktop 3.16 User Guide Tabulka 24.246 – pokračujte na předchozí stránce Network Connectivity Tree [file] This output is a text file that details the network topological connectivity is stored in the Stream Network Tree file. Columns are as follows: • Link Number (Arbitrary — will vary depending on number of processes used) • Start Point Number in Network coordinates (*coord.dat) file (Indexed from 0) • End Point Number in Network coordinates (*coord.dat) file (Indexed from 0) • Next (Downstream) Link Number. Points to Link Number. -1 indicates no links downstream, i.e. a terminal link • First Previous (Upstream) Link Number. Points to Link Number. -1 indicates no upstream links • Second Previous (Upstream) Link Numbers. Points to Link Number. -1 indicates no upstream links. Where only one previous link is -1, it indicates an internal monitoring point where the reach is logically split, but the network does not bifurcate • Strahler Order of Link • Monitoring point identifier at downstream end of link. -1 indicates downstream end is not a monitoring point • Network magnitude of the link, calculated as the number of upstream sources (following Shreve) Network Coordinates [file] This output is a text file that contains the coordinates and attributes of points along the stream network. Columns are as follows: • X coordinate • Y Coordinate • Distance along channels to the downstream end of a terminal link • Elevation • Contributing area Python code Algorithm ID: taudem:streamnet import processing processing.run("algorithm_id", {parameter_dictionary}) The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console. 1290 Kapitola 24. Processing providers and algorithms QGIS Desktop 3.16 User Guide 24.5 OTB applications provider OTB (Orfeo ToolBox) is an image processing library for remote sensing data. It also provides applications that provide image processing functionalities. The list of applications and their documentation are available in OTB CookBook 24.5. OTB applications provider 1291 QGIS Desktop 3.16 User Guide 1292 Kapitola 24. Processing providers and algorithms KAPITOLA 25 Zásuvné moduly 25.1 QGIS Plugins QGIS has been designed with a plugin architecture. This allows many new features and functions to be easily added to the application. Some of the features in QGIS are actually implemented as plugins. 25.1.1 Core and External plugins QGIS plugins are implemented either as Core Plugins or External Plugins. Core Plugins are maintained by the QGIS Development Team and are automatically part of every QGIS distribution. They are written in one of two languages: C++ or Python. Most of External Plugins are currently written in Python. They are stored either in the ‚Official‘ QGIS Repository at https://plugins.qgis.org/plugins/ or in external repositories and are maintained by the individual authors. Detailed documentation about the usage, minimum QGIS version, home page, authors,and other important information are provided for the plugins in the Official repository. For other external repositories, documentation might be available with the external plugins themselves. External plugins documentation is not included in this manual. To install or activate a plugin, go to Plugins menu and select Manage and install plugins…. Installed external python plugins are placed under the python/plugins folder of the active user profile path. Paths to Custom C++ plugins libraries can also be added under Settings ► Options ► System. Poznámka: According to the plugin manager settings, QGIS main interface can display an icon on the right of the status bar to inform you that there are updates for your installed plugins or new plugins available. 1293 QGIS Desktop 3.16 User Guide 25.1.2 The Plugins Dialog The tabs in the Plugins dialog allow the user to install, uninstall and upgrade plugins in different ways. Each plugin has some metadata displayed in the right panel: • information on whether the plugin is experimental • description • rating vote(s) (you can vote for your preferred plugin!) • tags • some useful links to the home page, tracker and code repository • author(s) • version available At the top of the dialog, a Search function helps you find any plugin using metadata information (author, name, description…). It is available in nearly every tab (except Settings). The Settings tab The Settings tab is the main place you can configure which plugins can be displayed in your application. You can use the following options: • Check for updates on startup. Whenever a new plugin or a plugin update is available, QGIS will inform you ‚every time QGIS starts‘, ‚once a day‘, ‚every 3 days‘, ‚every week‘, ‚every 2 weeks‘ or ‚every month‘. • Show also experimental plugins. QGIS will show you plugins in early stages of development, which are generally unsuitable for production use. • Show also deprecated plugins. Because they use functions that are no longer available in QGIS, these plugins are set deprecated and generally unsuitable for production use. They appear among invalid plugins list. By default, QGIS provides you with its official plugin repository with the URL https://plugins.qgis.org/plugins/ plugins.xml?qgis=3.0 (in case of QGIS 3.0) in the Plugin repositories section. To add external author repositories, click Add… and fill in the Repository Details form with a name and the URL. The URL can be of http:// or file:// protocol type. The default QGIS repository is an open repository and you don’t need any authentication to access it. You can however deploy your own plugin repository and require an authentication (basic authentication, PKI). You can get more information on QGIS authentication support in Authentication chapter. If you do not want one or more of the added repositories, they can be disabled from the Settings tab via the Edit… button, or completely removed with the Delete button. 1294 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide Obr. 25.1: The Settings tab The All tab In the All tab, all the available plugins are listed, including both core and external plugins. Use Upgrade All to look for new versions of the plugins. Furthermore, you can use Install Plugin if a plugin is listed but not installed, Uninstall Plugin as well as Reinstall Plugin if a plugin is installed. An installed plugin can be temporarily de/activated using the checkbox. 25.1. QGIS Plugins 1295 QGIS Desktop 3.16 User Guide Obr. 25.2: The All tab The Installed tab In the Installed tab, you’ll find listed the Core plugins, that you can not uninstall. You can extend this list with external plugins that can be uninstalled and reinstalled any time, using the Uninstall Plugin and Reinstall Plugin buttons. You can Upgrade All the plugins here as well. Obr. 25.3: The Installed tab 1296 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide The Not installed tab The Not installed tab lists all plugins available that are not installed. You can use the Install Plugin button to implement a plugin into QGIS. Obr. 25.4: The Not installed tab The Upgradeable and New tabs The Upgradeable and New tabs are enabled when new plugins are added to the repository or a new version of an installed plugin is released. If you activated Show also experimental plugins in the Settings menu, those also appear in the list giving you opportunity to early test upcoming tools. Installation can be done with the Install Plugin, Upgrade Plugin or Upgrade All buttons. 25.1. QGIS Plugins 1297 QGIS Desktop 3.16 User Guide Obr. 25.5: The Upgradeable tab The Invalid tab The Invalid tab lists all installed plugins that are currently broken for any reason (missing dependency, errors while loading, incompatible functions with QGIS version…). You can try the Reinstall Plugin button to fix an invalidated plugin but most of the times the fix will be elsewhere (install some libraries, look for another compatible plugin or help to upgrade the broken one). Obr. 25.6: The Invalid tab 1298 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide The Install from ZIP tab The Install from ZIP tab provides a file selector widget to import plugins in a zipped format, e.g. plugins downloaded directly from their repository. Obr. 25.7: The Install from zip tab 25.2 Using QGIS Core Plugins 25.2.1 DB Manager Plugin The DB Manager Plugin is intended to be the main tool to integrate and manage spatial database formats supported by QGIS (PostGIS, SpatiaLite, GeoPackage, Oracle Spatial, Virtual layers) in one user interface. The DB Manager Plugin provides several features. You can drag layers from the QGIS Browser into the DB Manager, and it will import your layer into your spatial database. You can drag and drop tables between spatial databases and they will get imported. 25.2. Using QGIS Core Plugins 1299 QGIS Desktop 3.16 User Guide Obr. 25.8: DB Manager dialog The Database menu allows you to connect to an existing database, to start the SQL window and to exit the DB Manager Plugin. Once you are connected to an existing database, the menus Schema (relevant for DBMSs, such as PostGIS / PostgreSQL) and Table will appear. The Schema menu includes tools to create and delete (only if empty) schemas and, if topology is available (e.g. with PostGIS topology), to start a TopoViewer. The Table menu allows you to create and edit tables and to delete tables and views. It is also possible to empty tables and to move tables between schemas. You can Run Vacuum Analyze for the selected table. Vacuum reclaims space and makes it available for reuse, and analyze updates statistics that is used to determine the most efficient way to execute a query. Change Logging… allows you to add change logging support to a table. Finally, you can Import Layer/File… and Export to File…. The Providers window lists all existing databases supported by QGIS. With a double-click, you can connect to the database. With the right mouse button, you can rename and delete existing schemas and tables. Tables can also be added to the QGIS canvas with the context menu. If connected to a database, the main window of the DB Manager offers four tabs. The Info tab provides information about the table and its geometry, as well as about existing fields, constraints and indexes. It allows you to create a spatial index on a the selected table. The Table tab shows the table, and the Preview tab renders the geometries as preview. When you open an SQL Window, it will be placed in a new tab. 1300 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide Working with the SQL Window You can use the DB Manager to execute SQL queries against your spatial database. Queries can be saved and loaded, and there the SQL Query Builder will help you formulate your queries. You can even view spatial output by checking Load as new layer and specifying Column(s) with unique values (IDs), Geometry column and Layer name (prefix). It is possible to highlight a portion of the SQL to only execute that portion when pressing Ctrl+R or clicking the Execute button. The Query History button stores the last 20 queries of each database and provider. Double clicking on an entry will add the string to the SQL window. Obr. 25.9: Executing SQL queries in the DB Manager SQL window Poznámka: The SQL Window can also be used to create Virtual Layers. In that case, instead of selecting a database, select QGIS Layers under Virtual Layers before opening the SQL Window. See Creating virtual layers for instructions on the SQL syntax to use. 25.2. Using QGIS Core Plugins 1301 QGIS Desktop 3.16 User Guide 25.2.2 Geometry Checker Plugin Geometry Checker is a powerful core plugin to check and fix the geometry validity of a layer. It is available from the Vector menu ( Check Geometries…). Configuring the checks The Check Geometries dialog shows different grouped settings in the first tab (Setup): • Input vector layers: to select the layers to check. A Only selected features checkbox can be used to restrict the checking to the geometries of the selected features. • Allowed geometry types gives the chance to restrict the geometry type of the input layer(s) to: – Point – Multipoint – Line – Multiline – Polygon – Multipolygon • Geometry validity. Depending on geometry types you can choose between: – Self intersections – Duplicate nodes – Self contacts – Polygon with less than 3 nodes. • Geometry properties. Depending on geometry types, different options are available: – Polygons and multipolygons may not contain any holes – Multipart objects must consist of more than one part – Lines must not have dangles • Geometry conditions. Allows you to add some condition to validate the geometries with: – Minimal segment length (map units) – Minimum angle between segment (deg) – Minimal polygon area (map units sqr.) – No sliver polygons with a Maximum thinness and a Max. area (map units sqr.) • Topology checks. Depending on geometry types, many different options are available: – Checks for duplicates – Checks for features within other features – Checks for overlaps smaller than – Checks for gaps smaller than 1302 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide – Points must be covered by lines – Points must properly lie inside a polygon – Lines must not intersect any other lines – Lines must not intersect with features of layer – Polygons must follow boundaries of layer • Tolerance. You can define the tolerance of the check in map layer units. • Output vector layer gives the choice to: – Modify input layer – Create new layers When you are happy with the configuration, you can click on the Run button. 25.2. Using QGIS Core Plugins 1303 QGIS Desktop 3.16 User Guide Obr. 25.10: The Geometry Checker Plugin The Geometry Checker Plugin can find the following errors: • Self intersections: a polygon with a self intersection • Duplicate nodes: two duplicates nodes in a segment • Holes: hole in a polygon • Segment length: a segment length lower than a threshold • Minimum angle: two segments with an angle lower than a threshold • Minimum area: polygon area lower than a threshold 1304 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide • Silver polygon: this error come from very small polygon (with small area) with a large perimeter • Duplicates features • Feature within feature • Overlaps: polygon overlapping • Gaps: gaps between polygons The following figure shows the different checks made by the plugin. Obr. 25.11: Some checks supported by the plugin Analysing the results The results appear in the second tab (Result) and as an overview layer of the errors in the canvas (its name has the default prefix checked_). A table lists the Geometry check result with one error per row and columns containing: the layer name, an ID, the error type, then the coordinates of the error, a value (depending on the type of the error) and finally the resolution column which indicates the resolution of the error. At the bottom of this table, you can Export the error into different file formats. You also have a counter with the number of total errors and fixed ones. You can select a row to see the location of the error. You can change this behavior by selecting another action between Error (default), Feature, Don’t move, and Highlight contour of selected features. Below the zoom action when clicking on the table row, you can: • Show selected features in attribute table • Fix selected errors using default resolution • Fix selected errors, prompt for resolution method You will see a window to choose the resolution’s method among which: 25.2. Using QGIS Core Plugins 1305 QGIS Desktop 3.16 User Guide – Merge with neighboring polygon with longest shared edge – Merge with neighboring polygon with largest area – Merge with neighboring polygon with identical attribute value, if any, or leave as is – Delete feature – No action • Error resolution settings allows you to change the default resolution method depending on the error type Tip: Fix multiple errors You can fix multiple errors by selecting more than one row in the table with the CTRL + click action. Finally, you can choose which Attribute to use when merging features by attribute value. 25.2.3 MetaSearch Catalog Client Úvod MetaSearch is a QGIS plugin to interact with metadata catalog services, supporting the OGC Catalog Service for the Web (CSW) standard. MetaSearch provides an easy and intuitive approach and user-friendly interface to searching metadata catalogs within QGIS. Obr. 25.12: Search and results of Services in MetaSearch 1306 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide Working with Metadata Catalogs in QGIS MetaSearch is included by default in QGIS, with all of its dependencies, and can be enabled from the QGIS Plugin Manager. CSW (Catalog Service for the Web) CSW (Catalog Service for the Web) is an OGC (Open Geospatial Consortium) specification that defines common interfaces to discover, browse and query metadata about data, services, and other potential resources. Startup To start MetaSearch, click the icon or select Web ► MetaSearch ► MetaSearch via the QGIS main menu. The MetaSearch dialog will appear. The main GUI consists of three tabs: Services, Search and Settings. 25.2. Using QGIS Core Plugins 1307 QGIS Desktop 3.16 User Guide Managing Catalog Services Obr. 25.13: Managing Catalog Services The Services tab allows the user to manage all available catalog services. MetaSearch provides a default list of Catalog Services, which can be added by pressing the Add Default Services button. To find all listed Catalog Service entries, click the dropdown select box. To add a Catalog Service entry: 1. Click the New button 2. Enter a Name for the service, as well as the URL (endpoint). Note that only the base URL is required (not a full GetCapabilities URL). 1308 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide 3. If the CSW requires authentication, enter the appropriate User name and Password credentials. 4. Click OK to add the service to the list of entries. To edit an existing Catalog Service entry: 1. Select the entry you would like to edit 2. Click the Edit button 3. And modify the Name or URL values 4. Kliknout OK. To delete a Catalog Service entry, select the entry you would like to delete and click the Delete button. You will be asked to confirm deleting the entry. MetaSearch allows loading and saving connections to an XML file. This is useful when you need to share settings between applications. Below is an example of the XML file format. To load a list of entries: 1. Click the Load button. A new window will appear. 2. Click the Browse button and navigate to the XML file of entries you wish to load. 3. Click Open. The list of entries will be displayed. 4. Select the entries you wish to add from the list and click Load. Click the Service Info button to display information about the selected Catalog Service such as service identification, service provider and contact information. If you would like to view the raw XML response, click the GetCapabilities Response button. A separate window will open displaying the Capabilities XML. 25.2. Using QGIS Core Plugins 1309 QGIS Desktop 3.16 User Guide Searching Catalog Services Obr. 25.14: Searching catalog services The Search tab allows the user to query Catalog Services for data and services, set various search parameters and view results. The following search parameters are available: • Keywords: free text search keywords; • From: the Catalog Service to perform the query against; • Bounding box: the spatial area of interest to filter, defined by Xmax, Xmin, Ymax, and Ymin. Click Set Global to do a global search, click Map Extent to do a search in the visible area, or enter values manually. Clicking the Search button will search the selected Metadata Catalog. Search results are displayed in a list, and can be sorted by clicking on the column header. You can navigate through search results with the directional buttons below the search results. Select a result and: • Click the View Search Results as XML button to open a window with the service response in raw XML format. 1310 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide • If the metadata record has an associated bounding box, a footprint of the bounding box will be displayed on the map. • Double-click the record to display the record metadata with any associated access links. Clicking a link opens the link in the user’s web browser. • If the record is a supported web service (WMS/WMTS, WFS, WCS, ArcGIS Map Service, ArcGIS Feature Service, etc.), the Add Data button will be enabled. When clicking this button, MetaSearch will verify if this is a valid OWS. The service will then be added to the appropriate QGIS connection list, and the appropriate connection dialog will appear. Obr. 25.15: Metadata record display 25.2. Using QGIS Core Plugins 1311 QGIS Desktop 3.16 User Guide Nastavení Obr. 25.16: MetaSearch settings You can fine tune MetaSearch with the following Settings: • Server Timeout: when searching metadata catalogs, the number of seconds for blocking connection attempt. Default value is 10. • Results paging: when searching metadata catalogs, the number of results to show per page. Default value is 10. CSW Server Errors In some cases, the CSW will work in a web browser, but not in MetaSearch. This may be due to the CSW server’s configuration/setup. CSW server providers should ensure URLs are consistent and up to date in their configuration (this is common in HTTP -> HTTPS redirection scenarios). Please see the pycsw FAQ item for a deeper explanation of the issue and fix. Although the FAQ item is pycsw specific it can also apply in general to other CSW servers. 1312 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide 25.2.4 Offline Editing Plugin For data collection, it is a common situation to work with a laptop or a cell phone offline in the field. Upon returning to the network, the changes need to be synchronized with the master datasource (e.g., a PostGIS database). If several persons are working simultaneously on the same datasets, it is difficult to merge the edits by hand, even if people don’t change the same features. The Offline Editing Plugin automates the synchronisation by copying the content of a datasource (usually PostGIS or WFS-T) to a SpatiaLite or GeoPackage database and storing the offline edits to dedicated tables. After being connected to the network again, it is possible to apply the offline edits to the master dataset. To use the plugin: 1. Open a project with some vector layers (e.g., from a PostGIS or WFS-T datasource). 2. Assuming you have already enabled the plugin (see Core and External plugins) go to Database ► Offline Editing ► Convert to offline project. The eponym dialog opens. 3. Select the Storage type. It can be of GeoPackage or SpatiaLite database type. 4. Use the Browse button to indicate the location of the database in which to store the Offline data. It can be an existing file or one to create. 5. In the Select remote layers section, check the layers you’d like to save. The content of the layers is saved to database tables. 6. You can check Only synchronize selected features if a selection is present allowing to only save and work on a subset. It can be invaluable in case of large layers. This is all! 7. Save your project and bring it on the field. 8. Edit the layers offline. 9. After being connected again, upload the changes using Database ► Offline Editing ► Synchronize. 25.2. Using QGIS Core Plugins 1313 QGIS Desktop 3.16 User Guide Obr. 25.17: Create an offline project 1314 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide 25.2.5 Topology Checker Plugin Obr. 25.18: The Topology Checker Plugin Topology describes the relationships between points, lines and polygons that represent the features of a geographic region. With the Topology Checker plugin, you can look over your vector files and check the topology with several topology rules. These rules check with spatial relations whether your features ‚Equal‘, ‚Contain‘, ‚Cover‘, are ‚CoveredBy‘, ‚Cross‘, are ‚Disjoint‘, ‚Intersect‘, ‚Overlap‘, ‚Touch‘ or are ‚Within‘ each other. It depends on your individual questions which topology rules you apply to your vector data (e.g., normally you won’t accept overshoots in line layers, but if they depict dead-end streets you won’t remove them from your vector layer). QGIS has a built-in topological editing feature, which is great for creating new features without errors. But existing data errors and user-induced errors are hard to find. This plugin helps you find such errors through a list of rules. It is very simple to create topology rules with the Topology Checker plugin. On point layers the following rules are available: • Must be covered by: Here you can choose a vector layer from your project. Points that aren’t covered by the given vector layer occur in the ‚Error‘ field. • Must be covered by endpoints of: Here you can choose a line layer from your project. • Must be inside: Here you can choose a polygon layer from your project. The points must be inside a polygon. Otherwise, QGIS writes an ‚Error‘ for the point. • Must not have duplicates: Whenever a point is represented twice or more, it will occur in the ‚Error‘ field. • Must not have invalid geometries: Checks whether the geometries are valid. • Must not have multi-part-geometries: All multi-part points are written into the ‚Error‘ field. On line layers, the following rules are available: • End points must be covered by: Here you can select a point layer from your project. • Must not have dangles: This will show the overshoots in the line layer. 25.2. Using QGIS Core Plugins 1315 QGIS Desktop 3.16 User Guide • Must not have duplicates: Whenever a line feature is represented twice or more, it will occur in the ‚Error‘ field. • Must not have invalid geometries: Checks whether the geometries are valid. • Must not have multi-part geometries: Sometimes, a geometry is actually a collection of simple (single-part) geometries. Such a geometry is called multi-part geometry. If it contains just one type of simple geometry, we call it multi-point, multi-linestring or multi-polygon. All multi-part lines are written into the ‚Error‘ field. • Must not have pseudos: A line geometry’s endpoint should be connected to the endpoints of two other geometries. If the endpoint is connected to only one other geometry’s endpoint, the endpoint is called a pseudo node. On polygon layers, the following rules are available: • Must contain: Polygon layer must contain at least one point geometry from the second layer. • Must not have duplicates: Polygons from the same layer must not have identical geometries. Whenever a polygon feature is represented twice or more it will occur in the ‚Error‘ field. • Must not have gaps: Adjacent polygons should not form gaps between them. Administrative boundaries could be mentioned as an example (US state polygons do not have any gaps between them…). • Must not have invalid geometries: Checks whether the geometries are valid. Some of the rules that define a valid geometry are: – Polygon rings must close. – Rings that define holes should be inside rings that define exterior boundaries. – Rings may not self-intersect (they may neither touch nor cross one another). – Rings may not touch other rings, except at a point. • Must not have multi-part geometries: Sometimes, a geometry is actually a collection of simple (single-part) geometries. Such a geometry is called multi-part geometry. If it contains just one type of simple geometry, we call it multi-point, multi-linestring or multi-polygon. For example, a country consisting of multiple islands can be represented as a multi-polygon. • Must not overlap: Adjacent polygons should not share common area. • Must not overlap with: Adjacent polygons from one layer should not share common area with polygons from another layer. Below is the list of Core plugins provided with QGIS. They are not necessarily enabled by default. Ikona Plugin Popis Manual Reference Správce databází Manage your databases within QGIS DB Manager Plugin Geometry Checker Check and repair errors in vector geometries Geometry Checker Plugin GPS Tools Tools for loading and importing GPS data GPS Plugin GRASS GRASS functionality GRASS GIS Integration MetaSearch Catalog Client Interact with metadata catalog services (CSW) MetaSearch Catalog Client Offline Editing Offline editing and synchronizing with database Offline Editing Plugin Zpracování Spatial data processing framework QGIS processing framework Topology Checker Find topological errors in vector layers Topology Checker Plugin 1316 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide 25.3 QGIS Python console As you will see later in this chapter, QGIS has been designed with a plugin architecture. Plugins can be written in Python, a very famous language in the geospatial world. QGIS brings a Python API (see PyQGIS Developer Cookbook for some code sample) to let the user interact with its objects (layers, feature or interface). QGIS also has a Python console. The QGIS Python Console is an interactive shell for the python command executions. It also has a python file editor that allows you to edit and save your python scripts. Both console and editor are based on PyQScintilla2 package. To open the console go to Plugins ► Python Console (Ctrl+Alt+P). 25.3.1 The Interactive Console The interactive console is composed of a toolbar, an input area and an output one. Panel nástrojů The toolbar proposes the following tools: • Clear Console to wipe the output area; • Run Command available in the input area: same as pressing Enter; • Show Editor : toggles The Code Editor visibility; • Options… : opens a dialog to configure console properties (see Python Console Settings); • Help… : browses the current documentation. Console The console main features are: • Code completion, highlighting syntax and calltips for the following APIs: – Python – PyQGIS – PyQt5 – QScintilla2 – osgeo-gdal-ogr • Ctrl+Alt+Space to view the auto-completion list if enabled in the Python Console Settings; • Execute code snippets from the input area by typing and pressing Enter or Run Command; • Execute code snippets from the output area using the Enter Selected from the contextual menu or pressing Ctrl+E; • Browse the command history from the input area using the Up and Down arrow keys and execute the command you want; • Ctrl+Shift+Space to view the command history: double-clicking a row will execute the command. The Command History dialog can also be accessed from context menu of input area; • Save and clear the command history. The history will be saved into the console_history.txt file under the active user profile folder; • Open QGIS C++ API documentation by typing _api; 25.3. QGIS Python console 1317 QGIS Desktop 3.16 User Guide • Open QGIS Python API documentation by typing _pyqgis. • Open PyQGIS Cookbook by typing _cookbook. Tip: Reuse executed commands from the output panel You can execute code snippets from the output panel by selecting some text and pressing Ctrl+E. No matter if selected text contains the interpreter prompt (>>>, ...). Obr. 25.19: The Python Console 25.3.2 The Code Editor Use the Show Editor button to enable the editor widget. It allows editing and saving Python files and offers advanced functionalities to manage your code (comment and uncomment code, check syntax, share the code via codepad.org and much more). Main features are: • Code completion, highlighting syntax and calltips for the following APIs: – Python – PyQGIS – PyQt5 – QScintilla2 – osgeo-gdal-ogr • Ctrl+Space to view the auto-completion list. • Sharing code snippets via codepad.org. • Ctrl+4 Syntax check. • Search bar (open it with the default Desktop Environment shortcut, usually Ctrl+F): – Use the default Desktop Environment shortcut to find next/previous (Ctrl+G and Shift+Ctrl+G); – Automatically find first match when typing in find box; – Set initial find string to selection when opening find; – Pressing Esc closes the find bar. • Object inspector: a class and function browser; • Go to an object definition with a mouse click (from Object inspector); 1318 Kapitola 25. Zásuvné moduly QGIS Desktop 3.16 User Guide • Execute code snippets with the Run Selected command in contextual menu; • Execute the whole script with the Run Script command (this creates a byte-compiled file with the extension .pyc). Poznámka: Running partially or totally a script from the Code Editor outputs the result in the Console output area. Obr. 25.20: The Python Console editor Tip: Save the options To save the state of console’s widgets you have to close the Python Console from the close button. This allows you to save the geometry to be restored to the next start. 25.3. QGIS Python console 1319 QGIS Desktop 3.16 User Guide 1320 Kapitola 25. Zásuvné moduly KAPITOLA 26 Pomoc a podpora 26.1 Mailing list QGIS je v aktivním vývoji a jako takový nebude vždy fungovat tak, jak jste očekávali. Preferovaný způsob, jak získat pomoc, je připojení se k mailing listu uživatelů qgis. Vaše dotazy se dostanou k širšímu publiku a odpovědi budou prospěšné ostatním. 26.1.1 Uživatelé QGIS This mailing list is used for discussion about QGIS in general, as well as specific questions regarding its installation and use. You can subscribe to the qgis-users mailing list by visiting the following URL: https://lists.osgeo.org/mailman/ listinfo/qgis-user 26.1.2 Vývojáři QGIS If you are a developer facing problems of a more technical nature, you may want to join the qgis-developer mailing list. This list is also a place where people can chime in and collect and discuss QGIS related UX (User Experience) / usability issues. It’s here: https://lists.osgeo.org/mailman/listinfo/qgis-developer 26.1.3 Komunitní tým QGIS This list deals with topics like documentation, context help, user guide, web sites, blog, mailing lists, forums, and translation efforts. If you would like to work on the user guide as well, this list is a good starting point to ask your questions. You can subscribe to this list at: https://lists.osgeo.org/mailman/listinfo/qgis-community-team 1321 QGIS Desktop 3.16 User Guide 26.1.4 Překlady QGIS This list deals with the translation efforts. If you like to work on the translation of the website, manuals or the graphical user interface (GUI), this list is a good starting point to ask your questions. You can subscribe to this list at: https: //lists.osgeo.org/mailman/listinfo/qgis-tr 26.1.5 Řídící výbor projektu QGIS (PSC) This list is used to discuss Steering Committee issues related to overall management and direction of QGIS. You can subscribe to this list at: https://lists.osgeo.org/mailman/listinfo/qgis-psc 26.1.6 Uživatelské skupiny QGIS In order to locally promote QGIS and contribute to its development, some QGIS communities are organized into QGIS User Groups. These groups are places to discuss local topics, organize regional or national user meetings, organize sponsoring of features… The list of current user groups is available at https://qgis.org/en/site/forusers/usergroups. html Jste vítáni k zapsání se k jakémukoliv z těchto seznamů. Prosíme nezapomeňte přispět do seznamů zodpovězením otázek a sdílením Vašich zkušeností. 26.2 IRC We also maintain a presence on IRC - visit us by joining the #qgis channel on irc.freenode.net. Please wait for a response to your question, as many folks on the channel are doing other things and it may take a while for them to notice your question. If you missed a discussion on IRC, not a problem! We log all discussion, so you can easily catch up. Just go to http://irclogs.geoapt.com/qgis/ and read the IRC-logs. 26.3 Commercial support Commercial support for QGIS is also available. Check the website https://qgis.org/en/site/forusers/commercial_ support.html for more information. 26.4 BugTracker While the qgis-users mailing list is useful for general ‚How do I do XYZ in QGIS?‘-type questions, you may wish to notify us about bugs in QGIS. You can submit bug reports using the QGIS bug tracker. Mějte na paměti, že vaše chyba nemusí mít vždy přednost, ve kterou můžete doufat (v závislosti na její závažnosti). Některé chyby mohou vyžadovat větší úsilí vývojářů k nápravě a pracovní síla nemusí být vždy k dispozici. Feature requests can be submitted as well using the same ticket system as for bugs. Please make sure to select the type Feature request. If you have found a bug and fixed it yourself, you can submit a Pull Request on the Github QGIS Project. Read Bugs, Features and Issues and submit_patch for more details. 1322 Kapitola 26. Pomoc a podpora QGIS Desktop 3.16 User Guide 26.5 Blog The QGIS community also runs a weblog at https://plugins.qgis.org/planet/, which has some interesting articles for users and developers. Many other QGIS blogs exist, and you are invited to contribute with your own QGIS blog! 26.6 Zásuvné moduly The website https://plugins.qgis.org is the official QGIS plugins web portal. Here, you find a list of all stable and experimental QGIS plugins available via the ‚Official QGIS Plugin Repository‘. 26.7 Wiki Lastly, we maintain a WIKI web site at https://github.com/qgis/QGIS/wiki where you can find a variety of useful information relating to QGIS development, release plans, links to download sites, message-translation hints and more. Check it out, there are some goodies inside! 26.5. Blog 1323 QGIS Desktop 3.16 User Guide 1324 Kapitola 26. Pomoc a podpora KAPITOLA 27 Contributors QGIS is an open source project developed by a team of dedicated volunteers and organisations. We strive to be a welcoming community for people of all race, creed, gender and walks of life. At any moment, you can get involved. 27.1 Authors Below are listed people who dedicate their time and energy to write, review, and update the whole QGIS documentation. Tim Sutton Yves Jacolin Jacob Lanstorp Gary E. Sherman Richard Duivenvoorde Tara Athan Anita Graser Arnaud Morvan Gavin Macaulay Luca Casagrande K. Koy Hugo Mercier Akbar Gumbira Marie Silvestre Jürgen E. Fischer Fran Raga Eric Goddard Martin Dobias Diethard Jansen Saber Razmjooei Ko Nagase Nyall Dawson Matthias Kuhn Andreas Neumann Harrissou Sant-anna Manel Clos David Willis Larissa Junek Paul Blottière Sebastian Dietrich Chris Mayo Stephan Holl Magnus Homann Bernhard Ströbl Alessandro Pasotti N. Horning Radim Blazek Joshua Arnott Luca Manganelli Marco Hugentobler Andre Mano Mie Winstrup Frank Sokolic Vincent Picavet Jean-Roc Morreale Andy Allan Victor Olaya Tyler Mitchell René-Luc D’Hont Marco Bernasocchi Ilkka Rinne Werner Macho Chris Berkhout Nicholas Duggan Jonathan Willitts David Adler Lars Luthman Brendan Morely Raymond Nijssen Carson J.Q. Farmer Jaka Kranjc Mezene Worku Patrick Sunter Steven Cordwell Stefan Blumentrath Andy Schmid Vincent Mora Alexandre Neto Hien Tran-Quang Alexandre Busquets João Gaspar Tom Kralidis Alexander Bruy Paolo Cavallini Milo Van der Linden Peter Ersts Ujaval Gandhi Dominic Keller Giovanni Manghi Maximilian Krambach Anne Ghisla Dick Groskamp Uros Preloznik Stéphane Brunner QGIS Korean Translator Zoltan Siki Håvard Tveite Mattheo Ghetta Salvatore Larosa Konstantinos Nikolaou Tom Chadwin Larry Shaffer Nathan Woodrow Martina Savarese Godofredo Contreras Astrid Emde Luigi Pirelli Thomas Gratier Giovanni Allegri GiordanoPezzola Paolo Corti Tudor Bărăscu Maning Sambale Claudia A. Engel Yoichi Kayama Otto Dassau Denis Rouzaud Nick Bearman embelding ajazepk Ramon Andrei zstadler icephale Rosa Aguilar 1325 QGIS Desktop 3.16 User Guide 27.2 Translators QGIS is a multi-language application and as is, also publishes a documentation translated into several languages. Many other languages are being translated and would be released as soon as they reach a reasonable percentage of translation. If you wish to help improving a language or request a new one, please see https://qgis.org/en/site/ getinvolved/index.html. The current translations are made possible thanks to: Language Contributors Bahasa Indonesia Emir Hartato, I Made Anombawa, Januar V. Simarmata, Muhammad Iqnaul Haq Siregar, Trias Aditya Chinese (Traditional) Calvin Ngei, Zhang Jun, Richard Xie Dutch Carlo van Rijswijk, Dick Groskamp, Diethard Jansen, Raymond Nijssen, Richard Duivenvoorde, Willem Hoffman Finnish Matti Mäntynen, Kari Mikkonen French Arnaud Morvan, Augustin Roche, Didier Vanden Berghe, Dofabien, Etienne Trimaille, Francis Gasc, Harrissou Sant-anna, Jean-Roc Morreale, Jérémy Garniaux, Loïc Buscoz, Lsam, Marc-André Saia, Marie Silvestre, Mathieu Bossaert, Mathieu Lattes, Mayeul Kauffmann, Médéric Ribreux, Mehdi Semchaoui, Michael Douchin, Nicolas Boisteault, Nicolas Rochard, Pascal Obstetar, Robin Prest, Rod Bera, Stéphane Henriod, Stéphane Possamai, sylther, Sylvain Badey, Sylvain Maillard, Vincent Picavet, Xavier Tardieu, Yann Leveille-Menez, yoda89 Galician Xan Vieiro German Jürgen E. Fischer, Otto Dassau, Stephan Holl, Werner Macho Hindi Harish Kumar Solanki Italian Alessandro Fanna, Anne Ghisla, Flavio Rigolon, Giuliano Curti, Luca Casagrande, Luca Delucchi, Marco Braida, Matteo Ghetta, Maurizio Napolitano, Michele Beneventi, Michele Ferretti, Roberto Angeletti, Paolo Cavallini, Stefano Campus Japanese Baba Yoshihiko, Minoru Akagi, Norihiro Yamate, Takayuki Mizutani, Takayuki Nuimura, Yoichi Kayama Korean OSGeo Korean Chapter Polish Andrzej Świąder, Borys Jurgiel, Ewelina Krawczak, Jakub Bobrowski, Mateusz Łoskot, Michał Kułach, Michał Smoczyk, Milena Nowotarska, Radosław Pasiok, Robert Szczepanek, Tomasz Paul Portuguese Alexandre Neto, Duarte Carreira, Giovanni Manghi, João Gaspar, Joana Simões, Leandro Infantini, Nelson Silva, Pedro Palheiro, Pedro Pereira, Ricardo Sena Portuguese (Brasil) Arthur Nanni, Felipe Sodré Barros, Leônidas Descovi Filho, Marcelo Soares Souza, Narcélio de Sá Pereira Filho, Sidney Schaberle Goveia Romanian Alex Bădescu, Bogdan Pacurar, Georgiana Ioanovici, Lonut Losifescu-Enescu, Sorin Călinică, Tudor Bărăscu Russian Alexander Bruy, Artem Popov Spanish Carlos Dávila, Diana Galindo, Edwin Amado, Gabriela Awad, Javier César Aldariz, Mayeul Kauffmann, Fran Raga Ukrainian Alexander Bruy 1326 Kapitola 27. Contributors QGIS Desktop 3.16 User Guide 27.3 Statistics of translation Efforts of translation for QGIS 3.16 Long Term Release are provided below. (last update: 2022-03-11) Number of strings Number of target languages Overall Translation ratio 32361 59 12.3% Language Translation ratio (%) Language Translation ratio (%) Language Translation ratio (%) Albanian 0.23 Arabic 4.02 Azerbaijani 0.02 Basque 1.42 Bengali 0.19 Bulgarian 2.59 Burmese 0.1 Catalan 1.51 Chinese Simplified 8.53 Chinese Traditional 0.69 Croatian 0.12 Czech 6.0 Danish 0.66 Dutch 100.0 Estonian 1.3 Finnish 1.81 French 98.49 Galician 0.59 Georgian 0.11 German 21.73 Greek 0.37 Hebrew 0.74 Hindi 0.31 Hungarian 9.3 Igbo 0.01 Indonesian 2.77 Italian 88.87 Japanese 71.07 Kabyle 0.11 Korean 88.58 Lao 0.0 Lithuanian 6.06 Macedonian 0.13 Malay 0.05 Malayalam 0.1 Marathi 0.19 Mongolian 0.11 N’ko 1.82 Norwegian Bokmål 3.32 Panjabi (Punjabi) 0.0 Persian 0.48 Polish 1.85 Portuguese (Brazil) 37.01 Portuguese (Portugal) 8.5 Romanian 30.61 Russian 14.94 Serbian 0.11 Slovak 1.55 Slovenian 3.2 Spanish 96.0 Swedish 1.19 Tagalog 0.1 Tamil 0.52 Telugu 0.03 Thai 0.11 Turkish 2.82 Ukrainian 2.37 Urdu 0.0 Vietnamese 0.33 27.3. Statistics of translation 1327 QGIS Desktop 3.16 User Guide 1328 Kapitola 27. Contributors KAPITOLA 28 Dodatky 28.1 Appendix A: GNU General Public License Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Každému je povoleno kopírovat a šířit doslovné kopie tohoto licenčního dokumentu, ale není povoleno je měnit. Úvod The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software–to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author’s protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors‘ reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, 1329 QGIS Desktop 3.16 User Guide we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The „Program“, below, refers to any such program or work, and a „work based on the Program“ means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term „modification“.) Each licensee is addressed as „you“. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of 1330 Kapitola 28. Dodatky QGIS Desktop 3.16 User Guide the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients‘ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 28.1. Appendix A: GNU General Public License 1331 QGIS Desktop 3.16 User Guide 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and „any later version“, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM „AS IS“ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. QGIS Qt exception for GPL In addition, as a special exception, the QGIS Development Team gives permission to link the code of this program with the Qt library, including but not limited to the following versions (both free and commercial): Qt/Non-commercial Windows, Qt/Windows, Qt/X11, Qt/Mac, and Qt/Embedded (or with modified versions of Qt that use the same license as Qt), and distribute linked combinations including the two. You must obey the GNU General Public License in all respects for all of the code used other than Qt. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. 28.2 Appendix B: GNU Free Documentation License Verze 1.3, 3. listopad 2008 Copyright 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc http://fsf.org/ Každému je povoleno kopírovat a šířit doslovné kopie tohoto licenčního dokumentu, ale není povoleno je měnit. Úvod Smyslem této licence je učinit manuál, učebnici nebo jiný funkční a užitečný dokument „svobodným“ v tomto smyslu svobody: zaručit každému skutečnou svobodu pro kopírování a šíření, s úpravami či bez úprav, ať už komerčně nebo 1332 Kapitola 28. Dodatky QGIS Desktop 3.16 User Guide nekomerčně. Za druhé, tato licence zajišťuje pro autora i vydavatele možnost zásluh za jejich práci, aniž by byl odpovědným za úpravy, které udělali jiní. Tato licence je druh „copyleftu“, což znamená, že odvozená díla od daného dokumentu musí být sama taktéž svobodná. Doplňuje GNU všeobecnou veřejnou licenci, což je copyleftová licence určená pro svobodný software. Navrhli jsme tuto licenci, k použití pro manuály ke svobodnému softwaru, protože svobodný software vyžaduje svobodnou dokumentaci: Svobodný program by měl přijít s manuály poskytujícími stejné svobody, jako software. Avašak tato licence není omezena softwarovými manuály; může být použita pro jakékoli textové dílo, nehledě na téma nebo zda je vydáno jako tištěná kniha. Doporučujeme tuto licenci zejména pro díla, jejichž účelem je výuka nebo poskytování informací. 1. POUŽITELNOST A DEFINICE Tato licence platí pro jakýkoli manuál nebo jiné dílo, v jakémkoliv médiu, které obsahuje oznámení, umístěné držitelem autorských práv, které říká, že dílo může být šířeno za podmínek této licence. Toto oznámení uděluje celosvětovou, bezplatnou licenci, neomezenou v trvání, pro použití daného díla za podmínek stanovených zde. Tento dokument, níže, odkazuje na další takový manuál nebo dílo. Každý člen veřejnosti je držitelem licence, a je označován jako „vy“. Licenci přijímáte, pokud kopírujete, upravujete nebo distribujete dílo takovým způsobem, který vyžaduje povolení podléhající autorskému zákonu. „Upravená verze“ dokumentu znamená jakékoli dílo obsahující dokument nebo jeho část, ať už zkopírovaný doslovně, nebo s úpravami a/nebo přeložený do jiného jazyka. „Druhotný oddíl“ je pojmenovaný jako dodatek nebo vstupní díl dokumentační části, který se zabývá výhradně vztahem vydavatelů nebo autorů dokumentu k celkovému tématu dokumentu (nebo souvisejících záležitostí) a neobsahuje nic, co by mohlo přímo spadat do rámce tohoto celkového tému. (Je-li tedy dokument částí učebnice matematiky, druhotný oddíl nesmí vysvětlovat cokoli z matematiky.) Tento vztah by mohl být otázkou historického spojení s tématem či souvisejícími záležitostmi nebo s právním, obchodním, filozofickým, etickým či politickým postojem k nim. „Neměnné oddíly“ jsou z jisté čísti druhotnými oddíly, jejichž názvy jsou označeny tak, jako názvy neměnných oddílů s poznámkou, kde stojí, že se dokument zveřejňuje pod touto licencí. Pokud se oddíl nepřizpůsobí výše uvedené definici druhotného oddílu, pak není povoleno, aby byl označen za neměnný. Dokument může obsahovat prázdné neměnné oddíly. V případě, že dokument neurčí žádné neměnné oddíly, pak v něm žádné nejsou. The „Cover Texts“ are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A „Transparent“ copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not „Transparent“ is called Opaque. Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. „** Titulní stránka **“ znamená u tištěné knihy samotnou titulní stránku a také následující stránky, které jsou čitelně potřebné k uchovávání materiálu, který tato licence vyžaduje, aby se objevil na titulní stránce. U děl ve formátech, které nemají žádnou titulní stránku jako takovou, znamená „titulní stránka“ text v blízkosti nejvýznamnějšího vzhledu názvu díla, který předchází začátek textu. The „publisher“ means any person or entity that distributes copies of the Document to the public. A section „Entitled XYZ“ means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as „Acknowledgements“, „Dedications“, „Endorsements“, or „History“.) 28.2. Appendix B: GNU Free Documentation License 1333 QGIS Desktop 3.16 User Guide To „Preserve the Title“ of such a section when you modify the Document means that it remains a section „Entitled XYZ“ according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING Můžete kopírovat a distribuovat dokument na jakémkoli médiu, ať už komerčně nebo nekomerčně, za předpokladu, že tato licence, upozornění na autorská práva a upozornění na licenci uvádějící, že tato licence se vztahuje na dokument, jsou reprodukovány ve všech kopiích a že nepřidáte žádné další podmínky k těm z této licence. Nesmíte používat technická opatření, která by bránila nebo kontrolovala čtení nebo další kopírování kopií, které vytváříte nebo distribuujete. Výměnou za kopie však můžete přijmout náhradu. Pokud distribuujete dostatečně velký počet kopií, musíte rovněž dodržet podmínky v části 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. 1334 Kapitola 28. Dodatky QGIS Desktop 3.16 User Guide G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled „History“, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled „History“ in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the „History“ section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. U jakékoli části s názvem „Poděkování“ nebo „Věnování“ zachovejte název sekce a v této části uchovejte veškerou podstatu a tón každého z uznání a / nebo věnování uvedených přispěvatelů. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled „Endorsements“. Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled „Endorsements“ or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles. You may add a section Entitled „Endorsements“, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled „History“ in the various original documents, forming one section Entitled „History“; likewise combine any sections Entitled „Acknowledgements“, and any sections Entitled „Dedications“. You must delete all sections Entitled „Endorsements“. 6. COLLECTIONS OF DOCUMENTS 28.2. Appendix B: GNU Free Documentation License 1335 QGIS Desktop 3.16 User Guide You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an „aggregate“ if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Překlad je považován za druh úpravy, takže překlady Dokumentu můžete distribuovat za podmínek uvedených v části 4. Nahrazení Invariantních sekcí překlady vyžaduje zvláštní povolení jejich držitelů autorských práv, ale kromě některých můžete zahrnout i překlady některých nebo všech Invariantních sekcí. původní verze těchto Invariantních sekcí. Můžete zahrnout překlad této licence a všech licenčních oznámení v dokumentu a veškerá zřeknutí se záruky za předpokladu, že uvedete také původní anglickou verzi této licence a původní verze těchto oznámení a zřeknutí se odpovědnosti. V případě neshody mezi překladem a původní verzí této licence nebo oznámením či zřeknutím se odpovědnosti bude mít přednost původní verze. If a section in the Document is Entitled „Acknowledgements“, „Dedications“, or „History“, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License „or any later version“ applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Document. 1336 Kapitola 28. Dodatky QGIS Desktop 3.16 User Guide 11. RELICENSING „Massive Multiauthor Collaboration Site“ (or „MMC Site“) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A „Massive Multiauthor Collaboration“ (or „MMC“) contained in the site means any set of copyrightable works thus published on the MMC site. „CC-BY-SA“ means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. „Incorporate“ means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is „eligible for relicensing“ if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright © YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the „with … Texts.“ line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. Pokud váš dokument obsahuje netriviální příklady programového kódu, doporučujeme tyto příklady uvolnit paralelně pod vaší volnou licencí svobodného softwaru, jako je GNU General Public License, aby bylo povoleno jejich použití ve svobodném softwaru. 28.3 Appendix C: QGIS File Formats 28.3.1 QGS/QGZ - The QGIS Project File Format The QGS format is an XML format for storing QGIS projects. The QGZ format is a compressed (zip) archive containing a QGS file and a QGD file. The QGD file is the associated sqlite database of the qgis project that contain auxiliary data for the project. If there are no auxiliary data, the QGD file will be empty. A QGIS file contains everything that is needed for storing a QGIS project, including: • project title • project CRS • the layer tree • snapping settings • relations 28.3. Appendix C: QGIS File Formats 1337 QGIS Desktop 3.16 User Guide • the map canvas extent • project models • legend • mapview docks (2D and 3D) • the layers with links to the underlying datasets (data sources) and other layer properties including extent, SRS, joins, styles, renderer, blend mode, opacity and more. • project properties The figures below show the top level tags in a QGS file and the expanded ProjectLayers tag. Obr. 28.1: The top level tags in a QGS file 1338 Kapitola 28. Dodatky QGIS Desktop 3.16 User Guide Obr. 28.2: The expanded top level ProjectLayers tag of a QGS file 28.3.2 QLR - The QGIS Layer Definition file A Layer Definition file (QLR) is an XML file that contains a pointer to the layer data source in addition to QGIS style information for the layer. The use case for this file is simple: To have a single file for opening a data source and bringing in all the related style information. QLR files also allow you to mask the underlying datasource in an easy to open file. An example of QLR usage is for opening MS SQL layers. Rather than having to go to the MS SQL connection dialog, connect, select, load and finally style, you can simply add a .qlr file that points to the correct MS SQL layer with all the necessary style included. In the future a .qlr file may hold a reference to more than one layer. 28.3. Appendix C: QGIS File Formats 1339 QGIS Desktop 3.16 User Guide Obr. 28.3: The top level tags of a QLR file 28.3.3 QML - The QGIS Style File Format QML is an XML format for storing layer styling. A QML file contains all the information QGIS can handle for the rendering of feature geometries including symbol definitions, sizes and rotations, labelling, opacity and blend mode and more. The figure below shows the top level tags of a QML file (with only renderer_v2 and its symbol tag expanded). 1340 Kapitola 28. Dodatky QGIS Desktop 3.16 User Guide Obr. 28.4: The top level tags of a QML file (only the renderer_v2 tag with its symbol tag is expanded) 28.4 Appendix D: QGIS R script syntax Contributed by Matteo Ghetta - funded by Scuola Superiore Sant’Anna Writing R scripts in Processing is a bit tricky because of the special syntax. A Processing R script starts with defining its Inputs and Outputs, each preceded with double hash characters (##). Before the inputs, the group to place the algoritm in can be specified. If the group already exists, the algorithm will be added to it, if not, the group will be created. In the example below, the name of the group is My group: ##My Group=group 28.4. Appendix D: QGIS R script syntax 1341 QGIS Desktop 3.16 User Guide 28.4.1 Inputs All input data and parameters have to be specified. There are several types of inputs: • vector: ##Layer = vector • vector field: ##F = Field Layer (where Layer is the name of an input vector layer the field belongs to) • raster: ##r = raster • table: ##t = table • number: ##Num = number • string: ##Str = string • boolean: ##Bol = boolean • elements in a dropdown menu. The items must be separated with semicolons ;: ##type=selection point;lines;point+lines 28.4.2 Outputs As for the inputs, each output has to be defined at the beginning of the script: • vector: ##output= output vector • raster: ##output= output raster • table: ##output= output table • plots: ##output_plots_to_html (##showplots in earlier versions) • To show R output in the Result Viewer, put > in front of the command whose output you would like to show. 28.4.3 Syntax Summary for QGIS R scripts A number of input and output parameter types are offered. 1342 Kapitola 28. Dodatky QGIS Desktop 3.16 User Guide Input parameter types Parameter Syntax example Returning objects vector Layer = vector sf object (or SpatialDataFrame object, if ##load_vector_using_rgdal is specified) vector point Layer = vector point sf object (or SpatialDataFrame object, if ##load_vector_using_rgdal is specified) vector line Layer = vector line sf object (or SpatialDataFrame object, if ##load_vector_using_rgdal is specified) vector polygon Layer = vector polygon sf object (or SpatialPolygonsDataFrame object, if ##load_vector_using_rgdal is used) multiple vector Layer = multiple vector sf object (or SpatialDataFrame objects if ##load_vector_using_rgdal is specified) table Layer = table dataframe conversion from csv, default object of read.csv function field Field = Field Layer name of the Field selected, e.g. "Area" raster Layer = raster RasterBrick object, default object of raster package multiple raster Layer = multiple raster RasterBrick objects, default object of raster package number N = number integer or floating number chosen string S = string string added in the box longstring LS = longstring string added in the box, could be longer then the normal string selection S = selection first;second;third string of the selected item chosen in the dropdown menu crs C = crs string of the resulting CRS chosen, in the format: "EPSG:4326" extent E = extent Extent object of the raster package, you can extract values as E@xmin point P = point when clicked on the map, you have the coordinates of the point file F = file path of the file chosen, e.g. „/home/matteo/file.txt“ folder F = folder path of the folder chosen, e.g. „/home/matteo/Downloads“ A parameter can be OPTIONAL, meaning that it can be ignored. In order to set an input as optional, you add the string optional before the input, e.g: ##Layer = vector ##Field1 = Field Layer ##Field2 = optional Field Layer Output parameter types Parameter Syntax example vector Output = output vector raster Output = output raster table Output = output table file Output = output file Poznámka: You can save plots as png from the Processing Result Viewer, or you can choose to save the plot directly from the algorithm interface. 28.4. Appendix D: QGIS R script syntax 1343 QGIS Desktop 3.16 User Guide Script body The script body follows R syntax and the Log panel can help you if there is something wrong with your script. Remember that you have to load all additional libraries in the script: library(sp) 28.4.4 Examples Example with vector output Let’s take an algorithm from the online collection that creates random points from the extent of an input layer: ##Point pattern analysis=group ##Layer=vector polygon ##Size=number 10 ##Output=output vector library(sp) spatpoly = as(Layer, "Spatial") pts=spsample(spatpoly,Size,type="random") spdf=SpatialPointsDataFrame(pts, as.data.frame(pts)) Output=st_as_sf(spdf) Explanation (per line in the script): 1. Point pattern analysis is the group of the algorithm 2. Layer is the input vector layer 3. Size is a numerical parameter with a default value of 10 4. Output is the vector layer that will be created by the algorithm 5. library(sp) loads the sp library 6. spatpoly = as(Layer, "Spatial") translate to an sp object 7. Call the spsample function of the sp library and run it using the input defined above (Layer and Size) 8. Create a SpatialPointsDataFrame object using the SpatialPointsDataFrame function 9. Create the output vector layer using the st_as_sf function That’s it! Just run the algorithm with a vector layer you have in the QGIS Legend, choose the number of random point. The resulting layer will be added to your map. Example with raster output The following script will perform basic ordinary kriging to create a raster map of interpolated values from a specified field of the input point vector layer by using the autoKrige function of the automap R package. It will first calculate the kriging model and then create a raster. The raster is created with the raster function of the raster R package: ##Basic statistics=group ##Layer=vector point ##Field=Field Layer ##Output=output raster ##load_vector_using_rgdal require("automap") require("sp") require("raster") (continues on next page) 1344 Kapitola 28. Dodatky QGIS Desktop 3.16 User Guide (pokračujte na předchozí stránce) table=as.data.frame(Layer) coordinates(table)= ~coords.x1+coords.x2 c = Layer[[Field]] kriging_result = autoKrige(c~1, table) prediction = raster(kriging_result$krige_output) Output<-prediction By using ##load_vector_using_rgdal, the input vector layer will be made available as a SpatialDataFrame objects, so we avoid having to translate it from an sf object. Example with table output Let’s edit the Summary Statistics algorithm so that the output is a table file (csv). The script body is the following: ##Basic statistics=group ##Layer=vector ##Field=Field Layer ##Stat=Output table Summary_statistics<-data.frame(rbind( sum(Layer[[Field]]), length(Layer[[Field]]), length(unique(Layer[[Field]])), min(Layer[[Field]]), max(Layer[[Field]]), max(Layer[[Field]])-min(Layer[[Field]]), mean(Layer[[Field]]), median(Layer[[Field]]), sd(Layer[[Field]])), row.names=c("Sum:","Count:","Unique values:","Minimum value:","Maximum value:", →"Range:","Mean value:","Median value:","Standard deviation:")) colnames(Summary_statistics)<-c(Field) Stat<-Summary_statistics The third line specifies the Vector Field in input and the fourth line tells the algorithm that the output should be a table. The last line will take the Stat object created in the script and convert it into a csv table. Example with console output We can use the previous example and instead of creating a table, print the result in the Result Viewer: ##Basic statistics=group ##Layer=vector ##Field=Field Layer Summary_statistics<-data.frame(rbind( sum(Layer[[Field]]), length(Layer[[Field]]), length(unique(Layer[[Field]])), min(Layer[[Field]]), max(Layer[[Field]]), max(Layer[[Field]])-min(Layer[[Field]]), mean(Layer[[Field]]), median(Layer[[Field]]), sd(Layer[[Field]])),row.names=c("Sum:","Count:","Unique values:","Minimum value:", →"Maximum value:","Range:","Mean value:","Median value:","Standard deviation:")) colnames(Summary_statistics)<-c(Field) >Summary_statistics 28.4. Appendix D: QGIS R script syntax 1345 QGIS Desktop 3.16 User Guide The script is exactly the same as the one above except for two edits: 1. no output specified (the fourth line has been removed) 2. the last line begins with >, telling Processing to make the object available through the result viewer Example with plot To create plots, you have to use the ##output_plots_to_html parameter as in the following script: ##Basic statistics=group ##Layer=vector ##Field=Field Layer ##output_plots_to_html ####output_plots_to_html qqnorm(Layer[[Field]]) qqline(Layer[[Field]]) The script uses a field (Field) of a vector layer (Layer) as input, and creates a QQ Plot (to test the normality of the distribution). The plot is automatically added to the Processing Result Viewer. 1346 Kapitola 28. Dodatky KAPITOLA 29 Literature and Web References GDAL-SOFTWARE-SUITE. Geospatial data abstraction library. https://gdal.org, 2013. GRASS-PROJECT. Geographic resource analysis support system. https://grass.osgeo.org, 2013. NETELER, M., AND MITASOVA, H. Open source gis: A grass gis approach, 2008. OGR-SOFTWARE-SUITE. Geospatial data abstraction library. https://gdal.org, 2013. OPEN-GEOSPATIAL-CONSORTIUM. Web map service (1.1.1) implementation specification. https://portal. opengeospatial.org, 2002. OPEN-GEOSPATIAL-CONSORTIUM. Web map service (1.3.0) implementation specification. https://portal. opengeospatial.org, 2004. POSTGIS-PROJECT. Spatial support for postgresql. http://postgis.refractions.net/, 2013. 1347