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.
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.
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 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 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.
Have you ever tried to pass the coordinates of any location by phone or explain to someone where to find a specific place on a map in the absence of a map? This is not an easy task: not everyone can easily memorize long coordinates, and it is difficult to recognize them, especially when spelling over the phone. Of course, there are different techniques designed to simplify this. For example, one can say coordinate in full, spell it by individual numbers, or even use the International Phonetic Alphabet (of course, if interlocutors are familiar with it). But anyway, it is slow, inconvenient, and error-prone.
In such cases, the what3words service comes to the rescue. With its help, one can pass the coordinates of any location with 3 meters of accuracy in just three words. All you need to do is install the Android/iOS application or open the website, find the desired point on a map, and copy three words that encode the point’s coordinates. For instance, V. N. Karazin Kharkiv National University (Svobody square, 4), where the GIS-Forum 2016 is currently taking place, is at robes.mimics.array.
The service is free and already supports 8 languages. The number of supported languages grows every month.
QGIS users can install the plugin of the same name developed by BoundlessGeo. The plugin allows you to get the coordinates of any point in what3words notation and quickly navigate to a location defined by what3words coordinates.
I have released a new version of the Photo2Shape plugin. This is a QGIS plugin that allows you to create a point vector layer from a set of geotagged photos.
Users now have the ability to recursively process directories and the option to append data to an existing file. The code has also been refactored, and instead of EXIF.py the more convenient and reliable exifread is now used.
A great new feature has been added in revision r15250: Tim Sutton implemented support for custom directories for C++ plugins. The directories are added one at a time, and the next time QGIS is started, it will load both the default plugins and the plugins from the specified directories. The plugins can then be activated as usual from the plugin manager.
This is useful for both users, who will find it easier to add third-party plugins, and developers. Another benefit is that there is no need to worry about copying plugins to the correct location after updates.
Despite the fact that QGIS now has a built-in raster calculator (I wrote about this a couple of times), the RasterCalc plugin I developed is still quite popular. I don’t know how to explain it: either it’s a matter of habit, or my calculator is more convenient… I’d like to know what the reason is, maybe I should make a poll.
Why this preface? For a long time, I’ve been “terrorised” by requests to add support for conditional operators to my plugin. A guy from Spain was particularly active. And no matter how often I pointed out that I was busy with other projects, no matter how hard I tried to avoid it, nothing helped. After a short break, the “attacks” were repeated. Apparently, they had decided to wear me down.
The inclusion of a patch that added comparison operators (submitted by Ghislain Picard) didn’t help either. It was not enough, and it was not what they were looking for. People wanted more, something similar to r.mapcalc from GRASS and preferably with the same syntax.
Well… I have to admit, they got it. Today this most wanted feature is implemented. However, the syntax is different from r.Mapcalc’s, because I didn’t want to make the already complex parsing code even more complicated. Now you can do things like:
compare pixel values with a constant and replace pixel values that meet the condition with another value
compare pixel values with corresponding pixels of another raster/band, and replace pixel values that match the condition with corresponding values from the third raster/band
other similar things
This nice feature is still in my local repository. I will not commit it to the public repository until the documentation has been updated. And I really don’t have the mood or energy to do that. I don’t like writing, whether it’s an essay, an article, or anything else. There are times when it is easy to write, but those are rare.
There is another reason or two, to be precise and honest. Firstly, I’m thinking about optimising the plugin a bit: operations on large rasters use a lot of CPU and memory. And secondly, that very active Spaniard made another feature request the other day, and I have a feeling that he will be as persistent in his efforts to get me to implement it as he was before.
But I haven’t made a final decision yet. Maybe the conditional operator should be enough for a new version and I should not bother with refactoring and optimisation? Or should I wait a bit, but release an even more powerful calculator and consolidate the success of the first versions?