<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>QGIS 3.20 | LUCCHESE, L. V.</title><link>https://www.luisalucchese.com/tag/qgis-3.20/</link><atom:link href="https://www.luisalucchese.com/tag/qgis-3.20/index.xml" rel="self" type="application/rss+xml"/><description>QGIS 3.20</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><copyright>© 2021 Luísa Vieira Lucchese</copyright><lastBuildDate>Mon, 22 Nov 2021 12:43:11 -0300</lastBuildDate><image><url>https://www.luisalucchese.com/media/icon_hu53236650bc1a5ebfc06b43e82ad412e0_5119_512x512_fill_lanczos_center_2.png</url><title>QGIS 3.20</title><link>https://www.luisalucchese.com/tag/qgis-3.20/</link></image><item><title>Solved: QGIS 3.20 Python Console shows an error when running Clip Vector by Extent tool</title><link>https://www.luisalucchese.com/post/solved-qgis-python-console-clip/</link><pubDate>Mon, 22 Nov 2021 12:43:11 -0300</pubDate><guid>https://www.luisalucchese.com/post/solved-qgis-python-console-clip/</guid><description>&lt;p>Fellow researchers and open-source GIS enthusiasts,&lt;/p>
&lt;p>Welcome to my blog!&lt;/p>
&lt;p>I’d like to start with a disclaimer – I may be a researcher of this very area but that doesn’t mean everything I do or write here will work for you, in your own desktop configurations and package versions. I have no responsibility if you lose data or mess up your installation. I also do not authorize any copies of my content.&lt;/p>
&lt;p>Today, I am writing about an error I obtained while using QGIS 3.20 Python Console. I was trying to clip a vector layer populated with points I had just created, by an extent of the type $xmin,xmax,ymin,ymax$, using the tool Clip Vector by Extent, from GDAL.&lt;/p>
&lt;h3 id="the-error">The error&lt;/h3>
&lt;p>First, I ran the following line, to set the tool parameters:&lt;/p>
&lt;pre>&lt;code class="language-python">paramgdal= {'INPUT': points_layer, 'EXTENT':extent_final, 'OUTPUT':output_path}
&lt;/code>&lt;/pre>
&lt;p>The variables “extent_final” and “output_path” were previously set. “points_layer” is the vector layer of the type shapefile in which the points I want to clip by the extent are stored. It was loaded previously, using the following snippet:&lt;/p>
&lt;pre>&lt;code class="language-python">points_layer = QgsVectorLayer(path_to_file, 'points_loaded', 'ogr')
&lt;/code>&lt;/pre>
&lt;p>Well, so far, so good.&lt;/p>
&lt;p>But, after setting the parameters, I ran:&lt;/p>
&lt;pre>&lt;code class="language-python">processing.run(&amp;quot;gdal:clipvectorbyextent&amp;quot;, paramgdal)
&lt;/code>&lt;/pre>
&lt;p>and then, this error appeared:&lt;/p>
&lt;pre>&lt;code class="language-bash">ERROR 1: Attempt to write non-multipoint (POINT) geometry to multipoint shapefile.
ERROR 1: Unable to write feature 0 from layer points_layer.
ERROR 1: Terminating translation prematurely after failed translation of layer points_layer (use -skipfailures to skip errors)
&lt;/code>&lt;/pre>
&lt;p>And the resulting layer was not correctly generated.&lt;/p>
&lt;h3 id="interpretation-of-the-issue">Interpretation of the issue&lt;/h3>
&lt;p>Re-reading the error message, I noticed that GDAL, for some reason, tries to save the generated layer as a Multipoint shapefile, instead of, simply, a Point shapefile. For this reason, it is unable to write any of the features from the original layer on the new one, because their types do not match.&lt;/p>
&lt;h3 id="solution">Solution&lt;/h3>
&lt;p>Checking on the &lt;a href="https://docs.qgis.org/3.16/en/docs/user_manual/processing_algs/gdal/vectorgeoprocessing.html#clip-vector-by-extent" target="_blank" rel="noopener">QGIS documentation&lt;/a> we can notice that there are four possible parameters to run gdal:clipvectorbyextent. One of them, “OPTIONS”, is Optional, and refers to GDAL creation options. Because the algorithm Clip Vector by Extent is based on the GDAL utility &lt;a href="https://gdal.org/programs/ogr2ogr.html" target="_blank" rel="noopener">ogr2ogr&lt;/a>, the options available for the original algorithm can be used to build the new layer through the Python Console as well.&lt;/p>
&lt;p>Especially, one of the options is useful in this scenario. The &lt;a href="https://gdal.org/programs/ogr2ogr.html#cmdoption-ogr2ogr-nlt" target="_blank" rel="noopener">“nlt” option of ogr2ogr&lt;/a> defines the geometry of the generated file, which is just what we were looking for. In the case here shown, I simply added&lt;/p>
&lt;pre>&lt;code class="language-python">'OPTIONS': '-nlt point'
&lt;/code>&lt;/pre>
&lt;p>to the $gdalparams$ Python dictionary. This tells GDAL that the layer to be created is a point layer, and it solved my issue completely. The code snippet shown at the start of this post was adapted by me as:&lt;/p>
&lt;pre>&lt;code class="language-python">paramgdal= {'INPUT': points_layer, 'EXTENT':extent_final, 'OPTIONS': '-nlt point', 'OUTPUT':output_path}
processing.run(&amp;quot;gdal:clipvectorbyextent&amp;quot;, paramgdal)
&lt;/code>&lt;/pre>
&lt;p>And when I ran the snippet above, the clipped point layer was correctly generated, without any errors or warnings.&lt;/p>
&lt;p>A simple fix!&lt;/p>
&lt;h3 id="extras">Extras&lt;/h3>
&lt;ul>
&lt;li>Why don’t you simply use GDAL from the command line, or click on the tool through the Processing Toolbox and use it directly from the GUI? Why do you want to use the Python Console on QGIS?&lt;/li>
&lt;/ul>
&lt;p>Because sometimes the Python Console is the most practical way to perform a calculation, and this code snippet shown here is a small part of a large code. For this motive, it is not worth it to change the whole interface or language in which we are developing code.&lt;/p>
&lt;ul>
&lt;li>I loaded my vector file using the QGIS Python Console, but it did not appear on the layers list on QGIS! What happened?&lt;/li>
&lt;/ul>
&lt;p>This is not an issue. The code snippet used to load the vector layer does not list the layer on QGIS Layers panel, nor shows it in the map visualization. To do that, you should run&lt;/p>
&lt;pre>&lt;code class="language-python">QgsProject.instance().addMapLayers([points_layer])
&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>I&amp;rsquo;m not sure what I should import before using the tool &amp;ldquo;gdal:clipvectorbyextent&amp;rdquo; on QGIS Python Console.&lt;/li>
&lt;/ul>
&lt;p>You should import the QGIS algorithms and the processing tool. See the snippet below:&lt;/p>
&lt;pre>&lt;code class="language-python">from qgis.core import *
import processing
&lt;/code>&lt;/pre></description></item><item><title>Sampling raster values in predetermined points on QGIS</title><link>https://www.luisalucchese.com/post/sampling-raster-values-points/</link><pubDate>Mon, 04 Oct 2021 10:10:08 -0300</pubDate><guid>https://www.luisalucchese.com/post/sampling-raster-values-points/</guid><description>&lt;p>Fellow researchers and open-source GIS enthusiasts,&lt;/p>
&lt;p>Welcome to my blog!&lt;/p>
&lt;p>I’d like to start with a disclaimer – I may be a researcher of this very area but that doesn’t mean everything I do or write here will work for you, in your own desktop configurations and package versions. I have no responsibility if you lose data or mess up your installation. I also do not authorize any copies of my content.&lt;/p>
&lt;p>Today, I will write about sampling the values of rasters in given points. This may be useful for a range of applications, especially statistical analyses.&lt;/p>
&lt;p>In this post, I show how to perform this process using two different tools, one of them is native of QGIS, and the other is a plugin available on the plugin repository. Then, I comment on how to sample the original raster using an interpolation such as cubic, cubic spline, or bilinear for the sampled value.&lt;/p>
&lt;p>For the example here shown, I am using the same raster dataset I used for the talk on &lt;a href="https://qgisbrasil.org/2021/09/16/qgis-open-day-setembro-2021/" target="_blank" rel="noopener">QGIS Open Day Brazil September/2021&lt;/a>, available at &lt;a href="https://github.com/luisalucchese/QGISday_092021">https://github.com/luisalucchese/QGISday_092021&lt;/a>.&lt;/p>
&lt;p>It is based on an “imaginary” Digital Elevation Model (DEM), created by using &lt;a href="https://github.com/ArMoraer/dem-utils" target="_blank" rel="noopener">dem-utils&lt;/a> code, from ArMoraer on GitHub. All projections attributed to layers are only for example processing, but the DEM does not portrait a real part of the globe.&lt;/p>
&lt;p>I open the rasters on QGIS 3.20 “Odense” and see this:&lt;/p>
&lt;p>&lt;img src="rastersonQGIS.png" alt="rasters opened on QGIS 3.20 Odense" style="width:80%" >&lt;/p>
&lt;p>Then, just for this example, I create a point layer and add three points in it.&lt;/p>
&lt;p>&lt;img src="featured.png" alt="rasters and point layer" style="width:80%" >&lt;/p>
&lt;p>Now, there are two main ways to sample the raster in these points.&lt;/p>
&lt;h3 id="using-the-native-tool-sample-raster-values">Using the native tool “Sample raster values”&lt;/h3>
&lt;p>Find the tool “Sample raster values” or “native:rastersampling” in your Processing Toolbox.&lt;/p>
&lt;p>&lt;img src="sample_raster.png" alt="the tool sample raster values" style="width:60%" >&lt;/p>
&lt;p>Using this algorithm, you should sample each raster layer individually.&lt;/p>
&lt;p>I changed the Output column prefix to “DEM_” because I will have some more rasters to sample later.&lt;/p>
&lt;p>&lt;img src="sample_raster2.png" alt="the tool sample raster values" style="width:70%" >&lt;/p>
&lt;p>Clicking Run, it ran without issues.&lt;/p>
&lt;p>Opening the attribute table of my new vector, I find:&lt;/p>
&lt;p>&lt;img src="sample_raster3.png" alt="the result of the tool sample raster values" style="width:50%" >&lt;/p>
&lt;p>The column was given the suffix “1”, probably because it was the first and only band of the raster.&lt;/p>
&lt;p>Zooming into the raster cell in which each point is located, I find the values:&lt;/p>
&lt;p>&lt;img src="ponto1_1.png" alt="point 1 over raster" style="width:70%" >
&lt;img src="ponto1_2.png" alt="info tool on raster" style="width:50%" >&lt;/p>
&lt;p>&lt;img src="ponto2_1.png" alt="point 2 over raster" style="width:70%" >
&lt;img src="ponto2_2.png" alt="info tool on raster" style="width:50%" >&lt;/p>
&lt;p>&lt;img src="ponto3_1.png" alt="point 3 over raster" style="width:70%" >
&lt;img src="ponto3_2.png" alt="info tool on raster" style="width:50%" >&lt;/p>
&lt;p>The values for the cell in which each point is contained are the same as those extracted by the algorithm. This means that the value is simply extracted from the raster, and no interpolation is performed. This is the same as saying that the tool performed a Nearest Neighbor interpolation.&lt;/p>
&lt;p>To extract the values of all four rasters, run the tool three more times. In each run, select the input as the point output from the last run, but select a different raster. When the process was completed, I opened the attribute table of the resulting layer:&lt;/p>
&lt;p>&lt;img src="attrtable.png" alt="attribute table" style="width:80%" >&lt;/p>
&lt;p>This process gets tedious fast if you have many raster layers from which to extract information. And in-built batch processing is not really an option, since you need the output of the last run as an input on the current one. But an option to deal with that would be to build a multiband raster from the rasters you have in separate layers and then run the algorithm.&lt;/p>
&lt;h3 id="using-the-plugin-point-sampling-tool">Using the plugin “Point Sampling Tool”&lt;/h3>
&lt;p>The plugin “Point Sampling Tool” can be found in the plugin manager of QGIS. I am using the version 0.5.3 of this plugin.&lt;/p>
&lt;p>When I open the plugin, I see this:&lt;/p>
&lt;p>&lt;img src="plugin.png" alt="attribute table" style="width:70%" >&lt;/p>
&lt;p>Select more than one raster by holding Ctrl while clicking the layers’ names.&lt;/p>
&lt;p>&lt;img src="plugin2.png" alt="attribute table" style="width:70%" >&lt;/p>
&lt;p>In this plugin, it is not possible to save a temporary file.&lt;/p>
&lt;p>I select the output path on &amp;ldquo;Browse&amp;rdquo; and click OK.&lt;/p>
&lt;p>The plugin shows this warning “All layers must have the same coordinate refere system. The &amp;lt;layer name&amp;gt; layer seems to have different CRS id (0) than the point layer (32722) […]”&lt;/p>
&lt;p>&lt;img src="plugin3.png" alt="plugin warning" style="width:80%" >&lt;/p>
&lt;p>In this case, I am using DEMs created only for example purposes, and I am sure they all “descend” from the same raster, so I clicked “Yes”. However, you should analyze on a case-by-case basis. Usually, it is better to reproject either the raster or the point layer.&lt;/p>
&lt;p>Opening the attribute table of the resulting raster:&lt;/p>
&lt;p>&lt;img src="attrtable2.png" alt="attribute table" style="width:80%" >&lt;/p>
&lt;p>The values are the same as those acquired by the native tool, only with less significant figures.&lt;/p>
&lt;p>They are also acquired with no interpolation a.k.a. Nearest Neighbor.&lt;/p>
&lt;p>The names of the columns are based on the names of the layers in your QGIS project.&lt;/p>
&lt;h3 id="extras">Extras&lt;/h3>
&lt;h4 id="--which-one-should-i-use">- Which one should I use?&lt;/h4>
&lt;p>Both tools work very well. In my opinion, it depends on the number of raster layers you have to extract information from. If it is only one or two rasters, I would use the native tool, but if you have more than that, I think using the plugin pays off.&lt;/p>
&lt;h4 id="--you-mentioned-that-both-point-samplers-use-the-nearest-neighbor-interpolation-how-to-use-another-type-of-interpolation">- You mentioned that both point samplers use the Nearest Neighbor interpolation. How to use another type of interpolation?&lt;/h4>
&lt;p>Well, you can’t. But there is a workaround for that. Using “Warp (reproject)” (“gdal:warpreproject”), you can resample your raster layers to a smaller pixel size using a different type of interpolation and then run any of the sampling tools I just showed here.&lt;/p>
&lt;p>Example:&lt;/p>
&lt;p>Original raster:&lt;/p>
&lt;p>&lt;img src="original.png" alt="original raster" style="width:90%" >&lt;/p>
&lt;p>&lt;img src="gdalwarp.png" alt="Warp (reproject)" style="width:70%" >&lt;/p>
&lt;p>Choosing the “Cubic” interpolation and giving the output raster a smaller pixel size, this is the resulting raster:&lt;/p>
&lt;p>&lt;img src="cubic.png" alt="cubic interpolated raster" style="width:90%" >&lt;/p>
&lt;p>Now, if I extract the value of this point it will be 61.9293 instead of 61.7967. In this case, in which the original pixels were not too large neither did they differ a lot in value, the difference on the extracted value is in the order of $10^{-1}$, but it can be larger depending on the case. It is better to examine the nature of your raster and analyze it to see if you should resample your raster as a pre-processing step.&lt;/p></description></item><item><title>Testing some of my favorite changes in QGIS 3.20 Odense</title><link>https://www.luisalucchese.com/post/new-qgis-320-odense/</link><pubDate>Mon, 21 Jun 2021 16:57:19 -0300</pubDate><guid>https://www.luisalucchese.com/post/new-qgis-320-odense/</guid><description>&lt;p>Fellow researchers and open-source GIS enthusiasts,&lt;/p>
&lt;p>Welcome to my blog!&lt;/p>
&lt;p>I’d like to start with a disclaimer – I may be a researcher of this very area but that doesn’t mean everything I do or write here will work for you, in your own desktop configurations and package versions. I have no responsibility if you lose data or mess up your installation. I also do not authorize any copies of my content.&lt;/p>
&lt;p>Today QGIS 3.20 “Odense” was released!&lt;/p>
&lt;p>In today’s post, I will test some of my favorite features of the new version.&lt;/p>
&lt;p>To check all the new features and the bugs fixed, check the full &lt;a href="https://www.qgis.org/pt_BR/site/forusers/visualchangelog320/index.html" target="_blank" rel="noopener">Changelog of QGIS 3.20&lt;/a>.&lt;/p>
&lt;h3 id="opening-an-attribute-table-with-just-the-selected-features">Opening an attribute table with just the selected features&lt;/h3>
&lt;p>Especially useful when dealing with shapefiles with multiple polygons, lines, or points.&lt;/p>
&lt;p>I am testing this in a shapefile with the countries of the world.&lt;/p>
&lt;h4 id="select-the-features">Select the features&lt;/h4>
&lt;p>&lt;img src="select.png" alt="Select features" style="width:40%" >&lt;/p>
&lt;p>I will select all countries that are on these latitudes.&lt;/p>
&lt;p>&lt;img src="latitudes1.png" alt="Select features on a latitude" style="width:90%" >&lt;/p>
&lt;p>Resulting on this selection.&lt;/p>
&lt;p>&lt;img src="latitudes2.png" alt="Select features on a latitude" style="width:90%" >&lt;/p>
&lt;h4 id="open-the-atribute-table">Open the atribute table&lt;/h4>
&lt;p>Click in Open Attribute Table (Selected Features)&lt;/p>
&lt;p>&lt;img src="openattr.png" alt="Select features on a latitude" style="width:40%" >&lt;/p>
&lt;p>Which opens an attribute table with just the selected countries:&lt;/p>
&lt;p>&lt;img src="attr.png" alt="Select features on a latitude" style="width:50%" >&lt;/p>
&lt;p>If you want to see all features, just click the button “Show Selected Features” and click “Show All Features”.&lt;/p>
&lt;p>&lt;img src="show_selected.png" alt="Select features on a latitude" style="width:40%" >&lt;/p>
&lt;h3 id="stream-digitizing">Stream digitizing&lt;/h3>
&lt;p>QGIS now supports freehand drawing of lines and polygons.&lt;/p>
&lt;p>In the advanced digitizing toolbar, select “Stream Digitizing”:&lt;/p>
&lt;p>&lt;img src="stream_digitizing.png" alt="stream digitizing" style="width:40%" >&lt;/p>
&lt;p>After clicking the first point, just move your mouse pointer around the screen to draw the line or polygon.&lt;/p>
&lt;p>&lt;img src="freehand1.png" alt="stream digitizing" style="width:70%" >&lt;/p>
&lt;p>&lt;img src="freehand2.png" alt="stream digitizing" style="width:70%" >&lt;/p>
&lt;p>&lt;img src="freehand3.png" alt="stream digitizing" style="width:70%" >&lt;/p>
&lt;h3 id="snapping-to-endpoints">Snapping to endpoints&lt;/h3>
&lt;p>Like in Computer Aided Design (CAD) applications, now in QGIS you can snap to the endpoints of lines when drawing.&lt;/p>
&lt;p>First, I draw one line (in green). Then, I start drawing another line.&lt;/p>
&lt;p>&lt;img src="endpoint1.png" alt="snap to endpoint" style="width:70%" >&lt;/p>
&lt;p>Make sure that the Snapping Toolbar is activated in View, Toolbars, Snapping Toolbar. In the snapping toolbar, select the option “Line Endpoints”.&lt;/p>
&lt;p>&lt;img src="endpoint2.png" alt="snap to endpoint" style="width:50%" >&lt;/p>
&lt;p>After selecting this option, when your cursor is close to a line endpoint, it should show a special marker.&lt;/p>
&lt;p>&lt;img src="endpoint3.png" alt="snap to endpoint" style="width:70%" >&lt;/p>
&lt;p>Just click and the line is drawn.&lt;/p>
&lt;p>&lt;img src="endpoint4.png" alt="snap to endpoint" style="width:70%" >&lt;/p>
&lt;h3 id="variable-thickness-of-lines-and-painting-them-with-a-gradient">Variable thickness of lines and painting them with a gradient&lt;/h3>
&lt;p>&lt;del>This feature is listed in QGIS 3.20 Changelog. Unfortunately, I could not make this work in QGIS 3.20.0 Odense.&lt;/del>&lt;/p>
&lt;p>&lt;del>I will update this post in case I manage to make it work.&lt;/del>&lt;/p>
&lt;p>&lt;b> Updated! June 22th, 2021 &lt;/b>&lt;/p>
&lt;p>This looks especially useful for hydrology representation. Configure the streams to have thinner lines at one extremity and thicker at the other.&lt;/p>
&lt;h4 id="first-open-the-symbology-panel">First, open the symbology panel&lt;/h4>
&lt;p>&lt;img src="update1.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;p>&lt;img src="update2.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;h4 id="click-in-simple-line">Click in Simple Line&lt;/h4>
&lt;p>&lt;img src="update3.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;h4 id="choose-the-type-of-symbol-as-interpolated-line">Choose the type of symbol as Interpolated Line&lt;/h4>
&lt;p>&lt;img src="update4.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;p>This panel should open:&lt;/p>
&lt;p>&lt;img src="update5.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;h4 id="troque-o-tipo-de-largura-da-linha">Troque o tipo de largura da linha&lt;/h4>
&lt;p>Switch from Fixed width to Varying width. This should appear:&lt;/p>
&lt;p>&lt;img src="update6.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;p>If you click the selector on the right side of Start value, QGIS will offer you the option “id”. Do not click!&lt;/p>
&lt;p>&lt;img src="update7.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;p>Actually, populate this field with a number. It should be a different number from the one you write on &amp;ldquo;End value&amp;rdquo;. If you write the same number the linewidth will not vary.&lt;/p>
&lt;h4 id="write-01-in-start-value-and-10-in-end-value-click-in-apply">Write 0.1 in Start Value and 10 in End Value. Click in Apply.&lt;/h4>
&lt;p>&lt;img src="update8.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;p>Done! Variable width.&lt;/p>
&lt;h4 id="up-next-gradient-color">Up next, gradient color&lt;/h4>
&lt;p>On the dropdown menu, switch from Single color to Varying color. This panel should be opened:&lt;/p>
&lt;p>&lt;img src="update9.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;p>Once more, do not select &amp;ldquo;id&amp;rdquo; as Start or End value. Type numbers instead.&lt;/p>
&lt;p>I typed 0.1 as Start Value and 10 as End Value. I then clicked in Apply.&lt;/p>
&lt;p>At this point, the line looks like this:&lt;/p>
&lt;p>&lt;img src="update10.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;p>However, we can change the color gradient, in &amp;ldquo;Color ramp&amp;rdquo;. I chose the one named &amp;ldquo;Blues&amp;rdquo; because tones of blue should suit hydrology applications well.&lt;/p>
&lt;p>&lt;img src="update11.png" alt="variable color and width line" style="width:70%" >&lt;/p>
&lt;p>Done!&lt;/p>
&lt;h3 id="these-are-my-favorites-so-far">These are my favorites so far!&lt;/h3>
&lt;p>If you work with vector labels, many new features on this matter were implemented and I suggest you take a look on the &lt;a href="https://www.qgis.org/pt_BR/site/forusers/visualchangelog320/index.html" target="_blank" rel="noopener">full log&lt;/a>.&lt;/p>
&lt;h3 id="is-it-worth-to-install-qgis-320-if-qgis-322-lts-is-scheduled-to-be-out-in-october">Is it worth to install QGIS 3.20 if QGIS 3.22 LTS is scheduled to be out in October?&lt;/h3>
&lt;p>I haven’t had serious bugs on QGIS 3.18 and it has the implementation of &lt;a href="https://www.luisalucchese.com/post/qgis_legend/">continuous raster legends&lt;/a>, which I use all the time. I cannot imagine waiting until October to have continuous raster legends in Print Layout, when this feature already exists. I have been installing non-LTS versions of QGIS for over a year so far with little crashes. That said, people have different experiences, and installing a non-LTS version is considered risky by some.&lt;/p></description></item></channel></rss>