QGIS Plugin of the Week: OpenLayers

This week we look at the OpenLayers plugin for QGIS. This plugin allows you to add a number of image services to your map canvas: Google Physical Streets Hybrid Satellite OpenStreetMap Yahoo Street Hybrid Satellite Bing Road Aerial Aerial with labels Installing the Plugin The OpenLayers plugin is installed like all other Python plugins. From the the Plugins menu in QGIS, choose Fetch Python Plugins.

QGIS Plugin of the Week: Profile

This week we take a look at a how to plot a terrain profile using the Profile plugin. The plugin can be used with any raster format supported by QGIS. You can can display profiles from up to three rasters at once, allowing you to compare the results. To illustrate, we’ll create a simple profile using a DEM of a 1:63,360 quadrangle in Alaska. Installing the Plugin The Profile plugin is installed like all other Python plugins.

QGIS Plugin of the Week: Points to Paths

This week we highlight the Points to Paths plugin, a handy way to convert a series of points into line features. This plugin lets you “connect the dots” based on an common attribute and a sequence field. The attribute field determines which points should be grouped together into a line. The sequence field determines the order in which the points will connected. The output from this plugin is a shapefile.

QGIS Plugin of the Week: Time Manager

QGIS has a lot of plugins, including over 180 that have been contributed by users. If you aren’t using plugins, you are missing out on a lot that QGIS has to offer. I’m starting what I hope to be a regular feature: Plugin of the Week. This week we’ll take a look at Time Manager. Time Manager lets you browse spatial data that has a temporal component. Essentially this includes anything that changes location through time.

QGIS Users Around the World

One of the difficult things to track in the open source world is the number of people who actually use your software. In the proprietary commercial world you have licenses, invoices, and so forth. In the case of QGIS, we can track the total number of downloads from qgis.org, but this doesn’t represent the total installed base. It is impossible to accurately determine the actual number of people using QGIS, but we can get an approximation of the number and where they are in the world.

Using git With Multiple QGIS Branches

This post is for those of you that build QGIS on a regular basis and want to keep up with everything going on in the current release branches (1.7.2 and 1.8) as well as the master branch that will eventually become version 2.0. While you can do all your work in one clone, this method has a couple of advantages, at the expense of a bit of disk space: Quicker compiles compared to branch switching, especially if you are using ccache Less likelihood of making a merge mess when switching branches The basic steps are:

Using the QGIS Plugin Builder

The Plugin Builder allows you to quickly create a skeleton Python plugin by generating all that boring boilerplate that every plugin requires. Here is a short video showing how to create, compile, and install a new plugin. For more information, see QGIS Workshop Documentation and the PyQGIS Cookbook.

Search QGIS IRC Logs

I added a simple feature that allows you to search the IRC logs from #qgis back to May 10, 2006. The search is case sensitive and will return a list of all matches. Not too smart but it will get you close to what you want. See the link at http://irclogs.geoapt.com/qgis

History of QGIS Committers

Using the git log leading up to the 1.7 release (June 2011) I put together a graphic that shows the growth of committers working on the project. In 2002 we had two people (me alone up until October). You can see significant jumps in developer interest in 2004 and 2008: In 2004 there were a number of releases that added significant functionality Following an announcement at FOSS4G 2007 in Victoria we released 0.

Importing a DBF containing X-Y Values into QGIS

Suppose you have a DBF (.dbf) file containing X and Y values that you want to import and save as a spatial layer. QGIS doesn’t support direct import of a DBF file as a map layer, however, we can use some command line magic to convert it to a CSV file and then use the Delimited Text plugin to get the job done. Your DBF file should have an id for each record and fields containing X and Y values.

Developing QGIS Plugins with git

Writing a QGIS plugin is not overly complicated but represents a bit of work. Using git in conjunction with your development efforts can make sure your investment in coding time is preserved. Development Tools The QGIS project team has set up a central location for plugin development which includes pretty much everything you need to develop and support your plugins, including: Issue tracking Wiki Documents

Evolution of QGIS

An interesting visualization of QGIS development over the last eight years: http://woostuff.wordpress.com/2011/01/03/generating-a-gource-source-commit-history-visualization-for-qgis-quantum-gis/

Contributing to QGIS Using Git

One of the challenges in any open source project is accepting contributions from people that don’t have, need, or want access to your centralized source code repository. Managing repository accounts for occasional or one-time contributors can be come a bit of an administrative issue. To date, the QGIS project has accepted one-time or occasional contributions through patches submitted via a help ticket. To make it easier for you to contribute to QGIS, we have created a clone of the Subversion repository on GitHub.

GeoApt Spatial Data Browser

This is a project I have had lingering around for a while. It is a geospatial data browser written in Python using the PyQt and QGIS bindings. It allows you to navigate a tree structure and preview raster and vector datasets. Metadata extracted from the data can be viewed as well. It supports drag and drop for any target that accepts filenames (e.g. QGIS). For screenshots and more, see http://geoapt.com/geoapt-data-browser.

Sherman's Law

In any sufficiently aged bureaucracy, process overshadows product.