Sunday, November 29, 2015

Raster math in GRASS GIS using numpy

Houay Lamphan Gnai, yet another hydropower plant just started commercial operations recently with a reservoir area of seven square kilometers as reported by local media. Time to put it on OpenStreetMap using up-to-date Landsat 8 imagery and the new GRASS GIS 7 plugin for QGIS 2.12. To get familiar with GRASS GIS' interface to numpy, I've decided to extract the reservoir using numpy.

Houay Lamphan Gnai on Landsat 8 image
Houay Lamphan Gnai on Landsat 8 image taken on the 23rd Oct, 2015

Thursday, August 14, 2014

Web Map Service with PyCairo and Pyramid

From time to time I have the chance to work with PyCairo, the Python bindings to the cairo graphic library. I appreciate this library because it allows to draw graphics primitives so super fast and thus it is very suitable to use it in web projects.
After my trials with GRASS GIS as WMS backend I thought I could create a raster web map service with improved performance by using PyCairo instead of GRASS GIS as renderer.

Zoom in - it is a super fast WMS!

Tuesday, July 22, 2014

Imitating MapBox' Cloudless Atlas

Inspired by several posts which explain MapBox' marvellous Cloudless Atlas, I wanted to imitate a cloudless atlas by myself. Limited in time and computer power I had to do it much simpler of course. But using first class spatial Python libraries I could achieve quite nice results with a simple Python script.
The result: a cloudless Landsat 8 scene

Saturday, February 22, 2014

Building ZOO with Java on Ubuntu 12.04

I tried to build the ZOO WPS platform with Java support on Ubuntu 12.04 and it turned out to be not so easy. This is how I managed it with OpenJDK 7 (packages openjdk-7-jdk and openjdk-7-jre):
./configure LDFLAGS=-L/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server --with-java=/usr/lib/jvm/java-7-openjdk-amd64
For unknown reasons the configuration writes wrong JAVALDFLAGS to the Makefile, thus the Makefile needs to be altered as follows. Replace the line where the JAVALDFLAGS are defined:
JAVALDFLAGS=-L/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/client/ -ljvm -lpthread
JAVALDFLAGS=-L/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/ -ljvm -lpthread
then follow the normal instructions with

Thursday, December 19, 2013

GRASS GIS Web Map Service with Pyramid

Lately I explored the capabilities of the Python bindings in GRASS GIS. Since I'm quite familiar with Python web frameworks it was an easy task to wrap the d.mon module and create a Web Map Service based on a GRASS location.

Here I'll show how I implemented the WMS using the Pyramid framework in a single file.

Wednesday, November 28, 2012

New downloads available

I'm happy to announce additional Shapefile downloads on
those include buildings, national parks, provincial and national boundaries for Laos and Cambodia.
Please find all files at

Two villages close to Pakxan with buildings displayed in QGIS.
Data © OpenStreetMap contributors

Monday, November 19, 2012

Nam Ngum 2 dam three year ago

Yesterday I found by chance a picture that is exactly three years old. I took it when I flew from Phonsavan back to Vientiane and it shows the Nam Ngum 2 dam under construction.

Nam Ngum 2 dam under construction on 21. November 2009