Blog

Here I post my thoughts, QGIS tips and tricks, updates on my QGIS-related work, etc.

Raster creation options in QGIS

26.03.2025 13:43 ·  GIS  ·  qgis

As you probably know, QGIS support for raster data (both reading and writing) is based on the GDAL library. One of the essential parts of raster handling is support for raster creation options — parameters that control specific details of the created file. For example, the GeoTIFF driver has options to control compression and whether the file should be tiled.

QGIS already allows setting these options when exporting raster dataset, GDAL algorithms in Processing of course, also support them. And not that long ago, I have implemented a corresponding widget wrapper for Processing and updated most of the native raster algorithms to support raster creation options out of the box.

Raster creation options in a QGIS Processing algorithm
Raster creation options in a QGIS Processing algorithm

However, there are more places in QGIS that could benefit from the creation options support, and I have recently started working in this direction. First, as a part of the QGIS bugfixing efforts, I updated the grid writer class used by QGIS’s native interpolation code to use the QgsRasterFileWriter API instead of writing output in the ASCII Grid format. This change not only allowed interpolation results to be saved in any GDAL-supported format but also paved the way for support for creation options and custom NODATA value.

The next step was the georeferencer. While the original ticket, I was working on, was about support for the BIGTIFF option, I decided to implement a more comprehensive fix and added full support for creation options.

Raster creation options in the QGIS georeferencer
Raster creation options in the QGIS georeferencer

After that, now in my spare time, I continued to improve the support for creation options in various places in QGIS. With the QgsGridFileWriter using the proper API, it was not too hard to implement support for custom NODATA values and creation options. For now, this is still an API-only change, as the Processing algorithms using this class are written in Python and have some known issues. I would rather wait and expose new functionality when porting them to C++.

My latest contribution is related to the QGIS Raster Calculator. After adding API to set creation options and change the NODATA value, I have also exposed this functionality to the UI both in the native tool and Processing algorithm.

Raster creation options in QGIS raster calculator (left — native tool, right — Processing algorithm)
Raster creation options in QGIS raster calculator (left — native tool, right — Processing algorithm)

I hope all these changes will make your raster analysis workflows easier and more productive, and output files smaller and faster to load.

Do not hesitate to contact me if you have any suggestions related to raster creation options support in QGIS.

OpenLitterMap for Processing

09.02.2025 16:34 ·  GIS  ·  qgis, plugins, processing

Last year, I developed a new plugin — OpenLitterMap for Processing.

OpenLitterMap is a citizen science project that aims to create a comprehensive, open-access database of litter and plastic pollution around the world. The data collected by the project are freely available to anyone for any purpose, including research, analysis, and advocacy. However, in order to access the data, one must manually construct a request and query the server. This is where OpenLitterMap for Processing comes in. The plugin allows you to select an area of interest on a map, specify a year for which you want to download data, and get a result.

Currently, the plugin has an experimental status.

2024 year in review

31.12.2024 19:28 ·  Notes  ·  year-in-review

I haven’t done this kind of summary post for a while, and I think it’s a good time to start doing them again.

This year has not been an easy one. It was full of hardships, losses, dramatic changes, and dashed hopes. All these things were draining almost all my attention and energy, leaving me nearly without any possibility to work on something I would like to, despite my efforts to return to normal.

While I was not able to work on QGIS as much as I would like, I still managed to contribute some bugfixes and new features, namely:

For some people, this list may look big, but it is actually not. Of course, I’m happy that I was able to do all this, as it is better than nothing. Still, it is far behind my previous level of involvement in the project.

I also published one QGIS plugin — OpenLitterMap — to download data from the eponymous project. Nothing special, just a small Processing provider with a single algorithm for now. The plugin is a bit limited as the parent project lacks a proper API, but I will try to keep an eye on it and update and improve the plugin when the new version with the API is released.

There were a couple of other specialized plugins I developed for clients. One integrates a landslide modeling tool, utilizing the Smoothed Particle Hydrodynamics (SPH) approach, into QGIS and the other implements a set of validation rules for fiber optic networks. Since both plugins are not of interest to most users, I decided not to write about them in detail here. Maybe one day I will write a separate post about the challenges and problems I faced while working on these projects.

Unfortunately, my own plugins and projects had almost zero activity, and I really need to do something about that.

As for the rest of my life, it’s too early to draw any conclusions, as I’m still in the process of understanding things and adapting to the new situation. There are still a lot of issues to resolve and things to handle, from work-related problems to personal life.

I hope that the next year will be more active and positive, with new projects and professional challenges, events and travels, new connections and experiences.

Conefor for Processing

13.07.2023 14:19 ·  GIS  ·  qgis, plugins, processing

At the beginning of the year, I developed a new plugin — Conefor for Processing.

Conefor (previously known as Conefor Sensinode) is a tool to quantify the importance of habitat areas and links for the maintenance of connectivity. It is also used to evaluate the impacts on connectivity of habitat and landscape changes. Conefor is used to conduct a spatial ecology analysis and conservation planning. The Conefor for Processing plugin contains tools to prepare data and perform all types of analysis available in the Conefor.

The new plugin is a great addition to the Circuitscape provider I have developed before. Together, these plugins create a powerful set of tools for spatial ecology and conservation, allowing researchers from different fields to predict the movements of animals, evaluate the impact of climate change on range shifts, analyse the spread of invasive species or disease, understand how landscape patterns affect gene flow, and much more.

MIL-STD-2525D symbol renderer for QGIS

09.07.2023 09:26 ·  GIS  ·  qgis, plugins

To be effective on the battlefield, make informed and timely decisions, the army needs to analyse tons of data. While all information comes from various sources and in different forms, it ends up being laid out on a map. There are many ways to represent it, and one of them is by using special symbols like the ones described by NATO APP-6D and DOD MIL-STD-2525D standards.

Read more ››

Reloaded

18.06.2023 10:45 ·  Site, Notes  ·  blog

I haven’t posted anything for ages. Partially because of preoccupation and partially because I kind of lost motivation. Quite a lot has happened since my last post, and all of these things have affected both my life and my desire/ability to write something in one or another way. Disturbances at work, pandemics, changes in personal life and, finally, last year, war came to the doorstep of my home, ruining everything.

A few weeks ago, I tried to gather myself and finally get my hands dirty in an attempt to make this site look the way I wanted it. Refreshing HTML/CSS skills took some time, so did digging through the Hugo documentation, as well as trials and errors. It turned out that Hugo is indeed a great tool: powerful, flexible and at the same time relatively easy to deal with. There is a learning curve, but it is not as steep as it looks at first sight. It was fun, and I do not regret a single second spent on it.

And here we go. While not perfect and probably not optimal here and there, the site is good enough, and I’m quite happy with the result. Still need to migrate old posts, though, and maybe make the whole site multilingual.

Let’s hope that now I will return to more or less regular writing.

Bye-bye, nginx, bye-bye, WordPress

12.04.2020 15:24 ·  Site  ·  blog

As it is said, “the subject says it all”. I replaced nginx with caddy and instead of WordPress took HUGO. Both are more than enough for my needs. Moreover, it is a bit more convenient now.

All that is left is to tweak the theme or maybe even create my own.

QGIS 3.0 "Girona"

25.02.2018 08:20 ·  GIS  ·  qgis, release

The release of QGIS 3.0 “Girona” has been announced.

QGIS is a free and open-source geographic information system (GIS) running on Linux, Unix, Mac OS X, Windows, and Android (QField project). This release is named after the city of Girona, where the 15th QGIS developer meeting and the 2nd QGIS User Conference took place in spring 2016.

As this is the first release in the 3.x series, it is marked as an “early adopter release” and is aimed at enthusiasts and advanced users. Of course, anyone can install it, but keep in mind that this version is not yet as stable and polished as the 2.x series. Also, note that QGIS 2.14 has reached its end of life and QGIS 2.18 is now LTR.

Read more ››

Processing providers updated for QGIS 3

17.01.2018 17:43 ·  GIS  ·  qgis, plugins, processing

As QGIS 3.0 has entered the “hard freeze” phase, it is time to update the plugins. I decided to start with Processing providers, as they are the most relevant. As of today, all of them are updated and available for installation from my plugin repository:

WhiteboxTools for Processing

23.12.2017 09:59 ·  GIS  ·  qgis, plugins, processing

Yesterday I published a new plugin — WhiteboxTools Processing provider.

WhiteboxTools provides a set of spatial analysis tools, primarily for raster data. It was developed as a response to numerous requests coming from users of the specialized GIS called Whitebox GAT. People wanted to use Whitebox GAT functionality in automated data processing workflows. At the time of this post, WhiteboxTools already contains more than 250 tools from Whitebox GAT and about the same number will be added in the near future. The WhiteboxTools for Processing plugin I have developed integrates these tools into QGIS.

The plugin is already available from my plugin repository. Only QGIS 3.0 (or newer) is supported. Currently, the plugin has an experimental status, so do not forget to enable experimental plugins in the QGIS Plugin Manager settings. In addition to the plugin, you should also download and install WhiteboxTools and specify their location in the Processing settings.