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

QGIS hackfest 2014 (Essen) — day 1

02.10.2014 20:36 ·  Notes  ·  qgis, travels, meetings

The first day of the 12th QGIS Developer Meeting in Essen has passed. Actually, it’s not really correct to consider it a full-featured day of the meeting, because most of the attendees were just arriving today. Moreover, today Linuxhotel was hosting an event and we were not able to fully use its infrastructure.

But all this did not prevent us from getting to know each other, communicating and even (there were such maniacs) doing something. For example, Otto, Richard, and Yves started documentation update. The day ended with a joint dinner at Haus Großjung.


02.10.2014 05:19 ·  Notes  ·  travels, meetings

After a long break, I’m going to the QGIS developer meeting again. This time in Germany.

I’m in Boryspil now, almost two hours before boarding… Wi-Fi is not very good here: one 15-minute session, then you have to reconnect.

OSGeo-ICA Laboratory

26.09.2014 08:28 ·  Notes  ·  osgeo

The Open Source Geospatial Foundation (OSGeo), besides developing free GIS software, pays great attention to educational and scientific work. In particular, together with the ICA and ISPRS, OSGeo supports the formation of laboratories and research centers around the world (the so-called ICA-OSGeo Laboratory Network). The goal of this initiative is to promote and encourage educational, research, and other activities related to free GIS and open geodata.

The first (and so far the only) scientific and educational OSGeo laboratory in Ukraine and the former USSR was created on the basis of the Department of Physical Geography and Geoecology Department of the Faculty of Geography of Taras Shevchenko National University of Kyiv.

New role

09.08.2014 13:04 ·  Notes  ·  osgeo

From now on, I am an OSGeo Charter Member and an OSGeo Advocate. The first and, so far, the only one in Ukraine.


05.08.2014 10:02 ·  Notes  ·  visa, travels

Last week I was in Kyiv applying for a German visa. It turned out that the process is not as complex and scary as it is said over the internet.

First, I checked the information published on the German embassy website and found out that:

What is important is that in the case of an application via the visa center, documents can be submitted either in person or with the help of an authorized representative, while applying via the embassy is only possible in person. I chose the second option — applying through the visa center. Firstly, I have to travel (to Kyiv or another city) anyway. Secondly, the number of available time slots at the embassy is much lower than at the visa center. Thirdly, application processing will be faster in the visa center. And lastly, when applying through the visa center, you can order delivery of the passport by courier service. So I checked train and bus schedules and chose the visa center in Kyiv: it should be more or less comfortable timing, and there is no need to stay overnight.

Next, determine the purpose of the trip and download a list of required documents, a visa application form, and, in the case of applying through the visa center, a consent for personal data processing. Then collect all the required certificates and other documents. Luckily, a notarized translation to German is not needed to be more precise:

Translation of Ukrainian documents is optional and not subject to notarization.

At least, this is the response I received to my question.

The sample of the visa application form is in German, but it can be filled out in Ukrainian, except for the name, surname, and place of birth. Although I filled it out in German. If you have to contact your bank to get a statement of account, make sure that the stamp is present not only on the certificate but also in the statement itself.

That’s pretty much all the preparation.

I arrived in Kyiv and spent some time finding the building of the visa center: formally, the visa center is located at Frunze street, 60. But to find it, one needs to turn to Zavodska street first and walk about 100 meters. Actually, under number 60, there is not only the German visa center but about 10 of them. There are Canada, Poland, France, Belgium, the Netherlands, all Scandinavian countries… Neat houses surrounded by a common fence.

The visa center’s website contains information about security measures: electronic devices (including mobile phones) are not allowed, bags and backpacks are not allowed, and so on. In fact, it’s not all that bad. You can bring your phone, but the security guard will ask you to turn it off. As for backpacks and bags, there are some luggage storage facilities. But I don’t know if it’s like that in all centers.

The documents were accepted quickly: I had an appointment for 9 a. m., but was already free at that time. This is despite the fact that I was 19th in line.

Actually, why am I talking about it. I just received a package with my passport, and there is a new visa in it.

PyQGIS Cookbook in Ukrainian

28.07.2014 11:09 ·  GIS  ·  qgis, translations

Translated PyQGIS Developer Cookbook into Ukrainian. Soon it will be available on the QGIS documentation portal.

Comments and constructive criticism are welcome. Or even better, create an account and edit directly in Transifex (although I personally don’t like it much and translate locally: git + Qt Linguist are the best).

QGIS hackfest 2014 (Vienna)

28.03.2014 18:35 ·  Notes  ·  qgis, meetings

The 11th QGIS developers meeting, held in Vienna (Austria), has finished. This time, the hackfest took place under the umbrella of a larger developer meeting — OSGeo Code Sprint 2014.

The activity of the participants was at a traditionally high level, and there is no sense or possibility to describe everything. Among the most notable things from an end-user prospective are:

There were also discussions about:


Multithreaded rendering in QGIS

23.02.2014 17:49 ·  GIS  ·  qgis

At last! QGIS has finally got support for multithreaded rendering, the corresponding changes were merged into master by Martin Dobias just an hour ago. This is basically a revival of the 2010 GSoC project “QGIS on steroids” (successfully completed, but never merged into master), taking into account the latest changes to the QGIS codebase.

By default, multithreaded rendering is disabled, one can enable it in the QGIS settings “Settings → Options → Rendering → Render layers in parallel using all available CPU cores”. It is also possible to set canvas refresh interval during rendering (0 means real-time updates).

The work was done with the financial support from Lutra Consulting and Swiss QGIS User group.

Pitfalls of gdal_calc

06.05.2011 17:13 ·  GIS  ·  gdal

Not long ago I wrote about the raster calculator in GDAL. It is a useful tool and has enough functionality to solve most tasks. But as it turns out, it is not without its bugs.

I was playing with this calculator and looked at the code. Almost immediately I noticed that it reads data “as is”, which was something to worry about, as I had already stepped on that rake some time ago (/me is immersed in memories for a few minutes. It was a fun time: two parallel projects, both related to GDAL; lots of new stuff to learn…). A little test confirmed my fears. Here is the result of an NDVI calculation for a Byte raster, performed with RasterCalc and saved as Float32.

NDVI calculated with RasterCalc for inputs with Byte data type
NDVI calculated with RasterCalc for inputs with Byte data type

And this is the result of the same operation performed by gdal_calc

NDVI calculated with gdal_calc for inputs with Byte data type
NDVI calculated with gdal_calc for inputs with Byte data type

You can’t get this across with an image, but the white areas aren’t really white at all — they contain a NODATA value.

What can I say, the results are very interesting. But the explanation is simple: since the data is read “as is”, when performing arithmetic operations, you can run into things like integer overflow and rounding of the result (in Python, the result of dividing two integers is also an integer).

Obviously, this is a bug. So let’s write to the author, report the issue and propose a patch.

If you are using this tool, you may not want to wait for the next version of GDAL and fix the bug yourself. To do this, open in your favourite text editor and lines 230–232

myval=BandReadAsArray(myFiles[i].GetRasterBand(myBands[i]), xoff=myX, yoff=myY, win_xsize=nXValid, win_ysize=nYValid)

change to this

myval=BandReadAsArray(myFiles[i].GetRasterBand(myBands[i]), xoff=myX, yoff=myY, win_xsize=nXValid, win_ysize=nYValid).astype(numpy.float32)

TinyOWS for OSGeo4W

04.05.2011 18:19 ·  GIS  ·  osgeo4w, tinyows

TinyOWS is a lightweight and fast WFS-T server. OSGeo4W is an installer for various free GIS software. What do they have in common? Until today, the correct answer was “nothing”.

From today, OSGeo4W users can install and use the latest version of TinyOWS 1.0.0rc1. Previously, the only reasonably easy way to get the TinyOWS server running on Windows was to use MS4W installer, but it provides the old 0.9.0 version.

I have also written a guide on how to build TinyOWS on Windows.