On March 18-20, Kharkiv hosted the annual GIS-Forum “Education, Science, and Production”. It was the fourth conference and the second one I participated in (the first time was last year).
This year there were minor organisational issues: the opening on the first day was delayed for about half an hour due to some problems with the equipment and with the joining of remote participants; most of the speakers were hard to hear despite the presence of a microphone and speakers; and there was no Wi-Fi.
The talks were different: both outright trash and very interesting. This year, the works presented at the student competition and the results of the competition itself left a mixed feeling. Firstly, some works were presented for the second time without any improvements or changes. Secondly, the selection of the winner in the category “Best ideas for GIS application”… From my point of view, the selection process and criteria were not transparent, and the results were strange. Though, two strong presentations still won prizes.
This year’s workshops attracted more participants, but they were not active at all, just like last year. However, the discussion organized by Daria and me was quite lively. We didn’t even have enough time to cover all the planned topics.
I want to say thank you to the organizers for their hospitality and interesting program. Hopefully the next anniversary Forum will be even better.
2014 is over, and it’s time to recall how it went for me.
At the beginning of the year, I finally took the risk of becoming self-employed (read: freelancing). There was a lot of paperwork involved, and then I had to deal with some of the nuances of our “wonderful” legislation. But on the whole, I am still happy with the result.
I received an invitation to GIS-Forum 2014 in Kharkiv, where I went in March and gave two workshops. Together with Daria, we started working on an introductory training course on QGIS. I also translated the QGIS website and documentation and localised IntraMaps Roam. I gradually cleaned up the blog and started writing again, although not as often as before.
At the end of the year, I agreed to an adventurous project, but I’ll tell you about that later.
All in all, it has been a very active year, full of events, meetings, and new experiences. Some things were achieved and even surpassed, while others remained in the form of plans. I do not have any special plans for the next year, except that I would like to take part in the next QGIS developer meetings on a regular basis.
When viewing TMS layers in QGIS, as well as in any other GIS, the background map may be blurred if the current map scale does not match the scale of the tiles. The reason for this is a feature of TMS, namely the use of a fixed set of so-called “zoom levels”: tiles are generated only for certain scales defined by the data provider.
So to get a sharp image, you should only use the scales that correspond to the zoom levels of the selected TMS service. For OpenStreetMap, the formula for calculating the scale for each zoom level can be found on this page, and a similar approach can be used for other services.
Some time ago I added a special widget to QGIS to select a map scale from a given set. Later, it became possible to edit this list and define a set of scales on a global level as well as on a project level. So if your project uses TMS layers, you can create your own list of scales and switch between them. At the same time, you still have the option of using any intermediate scale values.
Another option is to install the Tile Map Scale plugin. This plugin allows you to easily connect popular TMS layers (remember about ToS!). It also monitors map scale changes and automatically sets the nearest correct TMS scale. Note that you will not be able to use intermediate scale values in this case.
Finally, QGIS has a built-in widget for changing the scale according to the layer’s scale list. It can be found in “View → Panels → Tile scale” or from the toolbar context menu.
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.
I’m pretty sure that the heterogeneity of the Processing plugin’s graphical interface is not something that many people (if any) pay attention to. And it is very likely that the code responsible for the generation of the interface has never been seen by anyone other than the developers. Since everything works as expected, everyone is happy with it. And it does not matter what the windows or buttons look like. Let alone the code. In fact, both are important. A unified interface looks professional, is more convenient and pleasant to use, while clean, well-structured code is easier to maintain and extend.
My first thought was to do a crowdfunding campaign like Matthias, but then I changed my mind. So now I am slowly fixing it in my spare time. I’m hoping to get this done in time for the 2.8 release, which will be a long-term supported release.
The 12th QGIS developers meeting, which took place in Essen (Germany), has ended.
In my previous posts (day 1, day 2, and day 3), I have already covered the main points, and now I will go into a little more detail about the most interesting results.
Four types of certificates are planned: QGIS User, QGIS Professional, QGIS Trainer, and QGIS Developer. Also, PSC will issue so-called “grandfather” certificates. The TAO online platform will be used for assessments.
New geometry class
A complete update of the QgsGeometry class, which is responsible for the spatial component of objects, is planned:
support for an extended set of geometric primitives
support for Z (altitude) and M (measurement) values
support for curves
new extensible architecture
an extensive set of unit-tests
The first batch of changes has already been implemented, and new functionality is expected to be included in the QGIS 2.7 code base. The work was supported by the Canton of Solothurn.
In fact, there were many more interesting and active discussions, and some topics appeared on the agenda spontaneously (for example, support for SAGA and OTB in Processing on Debian builds). In addition to broad discussions, there were also “narrow” discussions where specialized problems were solved (such as downloading data from the Portuguese iGeo portal), and participants periodically organized into groups to solve problems together and/or find and fix bugs.
Also during the meeting:
we discussed changes to the release schedule: it is proposed to maintain the LTS release with a 1 year lifecycle
support for Python plugins for the QGIS Server was proposed and partially implemented. This way, one can significantly expand the functionality of the server without the need to make changes to its code
we discussed the prospects of fTools (vector data) and GDALTools (raster data) plug-ins and their possible replacement with Processing
PSC completed process of the trademark registration and developed guidelines for its use
we started work on integrating contextual help into the documentation
lots of bugs were fixed
documentation was updated
Many thanks to the organizers and LinuxHotel staff for their hospitality.
The second day of the QGIS hackfest is coming to an end.
The documentation team has continued to update the documentation and website, with over 30 commits today. The developers have not lagged behind - the number of commits is approaching 40. As always, Martin is a delight: thanks to his efforts, the rendering speed of a simple symbol renderer has increased significantly. Depending on the data, the speed increase ranges from 19 to 31%.
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.