Tag: qgis

QGIS 1.0.2 and 1.1.0 are out

15.05.2009 15:13 ·  GIS  ·  qgis, release

Finally! The simultaneous release of QGIS versions 1.0.2 “Kore” (stable release) and 1.1.0 “Pan” (unstable release) was officially announced yesterday. The most notable changes are outlined in the release announcement (Ukrainian version is also available) and Tim’s blog post, while the list of fixed bugs can be found in Trac.

Packages for various Linux distributions and a source code archive can be found on the download page. For Windows users there are two options: the OSGeo4W network installer and a standalone all-in-one installer.

Patching fTools

13.05.2009 10:54 ·  GIS  ·  qgis, ftools

After creating my plugin for QGIS (statistics for vector layers), I moved on to improving fTools. Namely, I started adding the ability to work with selected features to the geoprocessing tools.

Last week I finished Buffer and Convex Hull, today I had some free time and updated Dissolve. There are 5 tools left, then I can move on to another group. By a strange coincidence there are also five in fTools.

The more tools the better ;-)

02.05.2009 12:53 ·  GIS, Notes  ·  qgis, ftools

Somehow, unnoticed by myself, I have been drawn into the QGIS development process. It all started with a letter asking if I would be interested in a small project (I wrote about it a few days ago). While discussing the project details, I was also asked about the possibility of creating a generic plugin to generate a statistical summary for a vector layer field, something like what ArcMap has. I was also given a link to the forum discussion on this topic.

The point is that QGIS has no standard tools for displaying a statistical summary for a table field. Of course, there is the fTools plugin by Carson Farmer, which has the “Basic statistics” tool, but it works for the whole layer, ignoring the selected features, which is not always convenient. The task seemed interesting to me, so after the work was done, I started to look into this.

First, I studied the fTools code — it (they?) is distributed in source form, like all Python plugins. As I said, the QGIS API is quite well-designed and logical, and the Python language is quite simple and has strict formatting rules, so there were no major difficulties. In the end, using Carson’s code as a base, I wrote my own tool, and also sent Carson a patch adding the ability to get statistics not only on the whole layer, but also on selected features. I also posted a message in a forum thread and sent Oleg a plugin for testing. To be honest, I wasn’t expecting such a response and the subsequent development of events.

First of all, I received a suggestion for improving the plugin from Oleg. His request boiled down to the following: currently the plugin only works with numeric fields, but it would be nice to be able to get statistics for text fields as well (e.g. number of filled/unfilled records, average text length, etc.). I have taken that into account and started working on it.

I soon received a reply from Carson as well. It turns out that he was also thinking about adding the ability to work with selected features, but he has a lot of other projects at the moment, and the process is moving slowly. So the patch came in handy. I wrote to him about statistics on text fields and suggested adding this functionality to fTools, which was welcomed. The last sentence of Carson’s letter is the title of this post.

The post on the forum did not go unnoticed. I got approval and support from the administrator there and got even more involved in the process :-).

And you know, I love it. It is terribly gratifying to feel that you are doing something useful, to realise that your work is needed and does not go unnoticed, and to feel the support and gratitude of complete strangers. Such a contrast to the situation at work.

This is probably the answer to the question raised in the previous post. I’m not used to being idle, and since my knowledge and my experience are not in demand at work, is the only thing left for me to do is to move computers from place to place and explain for the 100th time how to print on A3 sheets? Not to develop or, even worse, gradually degrade? Well, no, there are other more interesting and useful activities! That’s where this incomprehensible urge to participate in various projects comes from!

Or maybe I’m wrong, and it’s just time to move on to the next stage of self-development. This has happened before. I remember how enthusiastically I started learning GIS Geoproject and creating templates for it. As a result, I created a collection of FAQs, wrote several articles, and unexpectedly became a moderator of the support forum. In this connection I would like to thank Evgeny Yasnikov for his help in learning Geoproject, support of my efforts and trust.

Meanwhile, work continues on the statistics plugin. Getting information on text fields (both for the whole layer and for selected features) is already working. And I have received two more feature requests:

The second request has already been fulfilled, now I’m looking into the possibility of plotting graphs with PyQt tools to close the first request. I also slightly refactored the plugin code to allow localisation and added the Ukrainian language. In parallel, I am trying to add to fTools the ability to perform spatial operations not only on the entire layer, but also on selected features.

There is a great lack of time: work and, to a lesser extent, dancing do not leave enough time for everything I would like to do. The situation is compounded by family issues - when there is time, it is not always possible to work on the computer.

Waiting for QGIS 1.1

27.04.2009 09:47 ·  Notes  ·  qgis

It so happened that I had been following the development of Quantum GIS exclusively from the sidelines for quite some time. I followed the discussions on the mailing lists, had a look from time to time at the forum and the blog, but I did not download new versions and did not play with them. It wasn’t because I had lost interest or the desire to master the program, but because of the chaos at work and the lack of time. There was also no prospect of using the GIS itself or the general knowledge of the technology at work. Of course, it can be argued that “knowledge is not a burden”, “who knows what will happen tomorrow” and so on. But anyway, there was no one around to say all the right things, no one to appeal to my conscience… In the end, everything turned out the way it did.

Probably the passive observation would have continued for a long time, but on one of the freelance sites I received a message with a job offer (later it turned out that I already know the guy, but that is not important), and the work is directly related to my interests: development and GIS. One of the requirements was to use free software. After some research and discussions with the client, I decided to use QGIS and Python.

Compared to the last 0.11 version I saw, the current 1.0 is a HUGE step forward. I was particularly pleased with the topological editing, support for external pyramids for raster data, many other improvements, and a new API that is simple and logical. All this, plus the ease of interface creation, makes QGIS a very promising piece of software. By the way, version 1.1 will be released soon and will add support for SpatiaLite data sources, among other things.

Looking forward for it.

April Fool's day

01.04.2009 09:10 ·  Notes  ·  qgis

I have never been a big fan of this “holiday”. As long as it is limited to innocent jokes, it is fine. But when people start doing all kinds of bad things and claim it’s a joke…

By the way, the QGIS developers celebrated today’s April Fool’s Day in a peculiar way by announcing that QGIS will become closed source, proprietary software. Humorists.

QGIS plugin hardships

09.09.2008 08:55 ·  Notes  ·  qgis, plugins

I have been struggling with development of the Python plugin for Quantum GIS for quite some time now… I’m adding new features to a polygon layer, but after addition they are not visible on a map and not listed in the layer’s attribute table. However, if I remove the layer from the project and then add it again — all new features are there.

Here is the code I use

geom = QgsGeometry.fromPolygon([lstCoords])
ft = QgsFeature()
ft.setGeometry(geom)
ft.addAttribute(0, QVariant("atribute 1"))
self.iface.getMapCanvas().setCurrentLayer(vLayer)
vLayer.startEditing()
if vLayer.addFeature(ft, True):
    vLayer.commitChanges()
self.iface.getMapCanvas().refresh()

What is the problem? Am I doing something wrong?…