Category: GIS

Plugins repository is back

27.04.2026 14:51 ·  GIS, Notes  ·  qgis, plugins, life

Back in February 2022, when russia launched its unprovoked, full-scale invasion of Ukraine, I made the difficult decision to shut down my plugins repository. It was my way of taking a stand and ensuring that my work would not benefit the aggressor while my country was under attack.

The war continues. russia has not stopped. Our cities are still being bombed, and our people are still being killed. Nothing about that has changed and neither has my position.

However, I have decided to re-launch my plugins repository. I have realized that by keeping my work hidden I am allowing the aggressor to claim a small victory over my professional life and my contributions. My plugins were built to help people solve problems and work more effectively. And I want them to serve that purpose again.

This is not a return to “business as usual”.

If you are a russian, belarusian or iranian citizen or resident; if you believe this is merely “putin’s war”; if you do not recognize russia as an aggressor and occupier; if you refuse to condemn this aggression against a sovereign state; if you accept the false narratives of russian propaganda: my work is not for you.

By using any of my plugins or their source code for any purpose and in any form, you accept and uphold the following:

To make this more prominent and explicit, the plugins will display a one-time reminder about these terms upon launch and after updates. My code will not be a silent partner to those who fund or ignore the war in my country.

I choose to keep my work alive. Not for the benefit of the aggressors, but for the global community that stands with us.

Photo2Shape goes Processing

19.03.2026 10:50 ·  GIS  ·  qgis, plugins, photo2shape, processing

Photo2Shape was the next plugin I decided to update to support QGIS Qt6 builds.

As with the Statist plugin, I did not stop after fixing compatibility issues. I had been thinking about porting some of my plugins to Processing for years, and Photo2Shape was one of them. Although I am very comfortable with Processing and have developed many Processing providers, I always postponed the migration because the plugins were working fine, and there was always something more urgent. Then the war started, and my focus shifted completely. So Qt6 migration was the perfect opportunity to catch up and cross another item off my long TODO list.

This is how the new version of Photo2Shape was born. It is now a Processing algorithm provider with three algorithms for importing geotagged images, each powered by a different backend: GDAL, exif-py, and QGIS (exiv2). The backends vary in their support for different image formats and handling of missing EXIF GPS tags. The plugin’s main functionality remains unchanged. It still:

In addition to the point vector layer, it is now possible to generate an optional geometryless table containing information about any images that could not be processed, including the specific reason for the error.

Check the plugin documentation for more details and installation instructions.

Raster Transparency 3.0

18.03.2026 15:15 ·  GIS  ·  qgis, plugins, raster transparency

The next plugin I picked up for updating to Qt6 was Raster Transparency.

Contrary to the Statist plugin, which was not only ported to Qt6 but also underwent refactoring and a UI update, this plugin received only minor changes focused on Qt6 compatibility. The main reason for this is that the QGIS API does not offer any new features that would benefit the Raster Transparency plugin.

While writing this post, I realized I have never written a word about this plugin on my blog. Let’s fix that!

Raster Transparency is a QGIS plugin designed to interactively define transparent pixel ranges for raster layers. While this can be done in the “Transparency” tab of the layer properties dialog, this plugin is more convenient. It integrates into the “Layer Styling” panel and allows you to adjust transparent pixel ranges using a dual-handle slider and/or spinboxes. The raster updates interactively as you move the handles or change spinboxes’ values, providing immediate visual feedback.

Check the plugin documentation for more details and installation instructions.

Statist 4.0

17.03.2026 16:30 ·  GIS  ·  qgis, plugins, statist

When QGIS Qt6 builds received stable Python bindings in early 2024, I began the process of updating my plugins. Since Statist was the first QGIS plugin I have developed, it was the natural choice to start with it.

Although the porting was completed almost a year ago, I haven’t announced the new version for both personal and global reasons.

The switch to Qt6 was straightforward and mostly involved fixing imports and enums handling. However, this was also a great opportunity for refactoring, code cleanup, and UI polishing, which I could not pass up. So, I switched from a custom worker thread implementation to QgsTask, aligned the user interface with the native QGIS Statistical Summary panel, and improved the appearance of the frequency distribution plot when using a dark theme.

Check the plugin documentation for more details and installation instructions.

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.

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 ››

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: