Thinking in GIS

After 18 months of hard work in our spare time, the PostGIS cookbook has been finally published! The book, in a friendly tutorial fashion, covers a plethora of PostGIS related topics such as: Importing and exporting data Vectorial and Raster management and analysis functions Using desktop clients such as QGIS, OpenJump, gvSIG and UDig pgRouting and how to use the Nth dimension writing PostGIS programs with Python using PostGIS to do web GIS with web…

GDAL is most likely the most powerfull GIS toolset out there, with very geekish features that may seem complicated at first, but become extremely powerful and simple at the same time once you master them. One of these features I most like is the virtual format concept, valid both for raster data sources (GDAL) and for vectorial data sources (OGR). Basically GDAL gives to the user a very simple mechanism to create virtual formats from…

There is a recurring question at GIS mailing lists, forum and at some extent in my mailbox: what is the best way to master Python for developing geospatial applications? I myself had this question far away in 2006 when I started switching from proprietary software to open source, and had identified in Python the way to go. In this post I will try to quickly summarize what is the best way to go in my…

Today in the GDAL mailing list Frank Warmerdam has announced that GDAL 1.9.0 has finally been released. Being a major new release, it offers many new features, but what I was waiting for is the support for Esri File GDB and Google Fusion Table. So I couldn’t resist to install it and giving a try. Using GDAL with Esri File Geodatabase For using the File Geodatabase driver I had to dowload the ESRI File Geodatabase…

Today together with Paolo Cavallini, I have been trying to figure out a workflow for managing documentation’s translations for QGIS. There are many tools for managing documentation workflows out there: a common approach to which I have been exposed by following both the Python and the OSGeo communities is to keep the documentation source files in the restructured text markup format, and to generate the end user documentation with tools like docutils and Sphinx to…

PostGIS in action has landed: finally a book about PostGIS, we were all missing it! A software project that has a public visibility since almost 10 years, with a large community and a long series of use cases, finally has its deserved book. I started using PostGIS in 2006 in a situation where the company I were working for at that time had to cut the cost of licenses and maintenance. Opting for FOSS gave…

If you have ever tried to interact with a WFS (via a browser, or curl, or OpenLayers or whatever), you are fully aware that it has alway been a pain to interact with, and until now the only Python library that made life simpler was the excellent OWSLib by Sean Gillies (that, BTW, will deserve itself another post at this blog in the next weeks). But since some weeks, from the release of the GDAL…

These are my quick notes for installing Oracle Instant Client on a Linux box (currently I have tested this on a Ubuntu 10.10 64 bit box and with Oracle 11.2 and GDAL 1.8.0), and then configuring GDAL for using Oracle (OCI and GeoRaster drivers support). Finally I will show how to configure GeoDjango to use an Oracle spatial database by using the Cx_Oracle Python library. Installation of Oracle Instant Client First download Oracle Client files…

So, after five years of blogging I have sent my Wordpress blog to pension and I have moved my blog to Blogofile. You may wonder why I have moved my blog from a spread and fully featured platform to an almost unknown exotic one. Basically I wanted to have the following advantages: Python framework, with the possibility to write in this language plugins and extensions ability to write my blog posts offline, in a markup…

Last week I have been attending the GFOSS Day 2010 in Foligno, basically the FOSS4G Italian Event that is held every year. The conference was split in two days: in the first days a good number of workshop and tutorials were given, related to a number of geospatial technologies. In the second day there were the instutional talks, mostly related on the open data theme. This year I myself gave two talks at the conference:…

In many situations, in your web applications, you will need a feature for geocoding an address, a city, a country… A possible approach is to use the Javascript API of the main geocoding services (Google Maps, Yahoo! Maps, GeoNames…). But as I have showed in a previous post, if you are using Python, there is an excellent API that will take care of this, without Javascript headaches: geoPy. In this post I will show how…

This year I was enough lucky to have the possibility to attend at the FOSS4G World conference in Barcelona (thanks to my company for having send me there!) - that has been run just this week, as many of you may already know. I just came back home yesterday night and until my impression are still very clear, I were thinking it is a good idea to post them here. The conference, as you may…

The NoSQL movement In the last months there has been a plenty of activity in the non relational (NoSQL) database world. NoSQL database tries to solve 3 main RDBMS problems: Scalability, for example the ability to automatically partitioning data across multiple machines Performance, in some case RDBMS can be very slow Fixed schema: RDBMS have nice goodness (referential integrity, relationships, triggers…) but force you to store any object to a fixed schema (migrations are a…

There are now may geocoding web services out there, like Google geocoder, Yahoo geocoder, geocoder.us (only for US address), Microsoft MapPoint, GeoNames and MediaWiki. Normally you may access this web services API directly with HTTP REST request, and get a response in common formats like xml, json, kml. For example you may geocode with the Google geocoder an address like this one: “1071 5th Avenue, New York, NY” with a request like this one: http://maps.google.com/maps/geo?q=1071+5th+Avenue,+New+York,+NY&output=json&oe=utf8&sensor=true_or_false=&key=your_apy_key…

This time i will introduce a really brilliant framework that every serious Web/GIS developers should be aware of: GeoDjango. Django is a Python Web framework for agile developers. It implements best web frameworks practices like coding by convention, MVC, ORM, REST, URL dispatcher and so on. Django is for Python what Rails is for Ruby, Grails is for Java, and MonoRail (and now ASP.NET MVC) is for .NET. GeoDjango is a Django application that is…

My friend Diego Guidi is the smartest GIS/.NET developer I personally know here in Italy. He is the developer of NetTopologySuite, the port in the .NET world of the popular Java’s JTS Topology Suite from VIVID Solutions. I wanted, sooner or later, write some stuff here about WMS and TMS, and now I am very happy that Diego asked me to publish this brilliant article about this topic. First of all, let me thanks Paolo…

As many of you can have already read, ArcSde for Postgres is coming out at ArcGis 9.3 (it is currently in the release candidate state). It will let you store geometries in two formats, Esri geometry and PostGis geometry, in the same fashion ArcSde for Oracle is letting Esri or Oracle geometries be stored. I have seen some interest in the GIS community about this new, and i was reading interesting posts by Bill Dollins,…

In the previous post we have seen an introduction to FeatureServer, and we were just playing with the base edit sample, with the scribble layer. Now it is time to use FeatureServer with our datasets: I am assuming that you will want to create FeatureServer services for shapefiles, PostGis layers, OpenStreetMap, Twitter and Flickr. Data preparation for this demo 1) shapefiles If you want to follow my steps, you can download the sample shapefiles of…

Some friends already spoke me well about FeatureServer by MetaCarta in the last weeks, so I already was waiting for having a bit of time to get started with it. Then James posted this on his blog, and my curiosity was definitely fired. So I decided to spend a day for installing and testing it, without thinking of the lack of documentation (FeatureServer is still a young project, so no wonder here if the only…

For people not familiar with the Spatial SQL, I post this quick sample showing its beauty and simplicity at the same time. We will go using PostGIS, but this could be performed in a similiar way with any GIS Database compliant with OGC Simple Feature Access - SQL Option. The geomunion function The geomunion Open GIS function make it possible to combine two geometries and getting from these a single geometry. FUNCTION geomunion(geometry, geometry) RETURNS…

Here I post a sample java class I developed some months ago, working with geometry creation in GeoTools 2. This class, given an input shapefile, will elaborate an output shapefile merging the input polygons on a common field. Geotools is an open source (LGPL) Java code library which provides standards compliant methods for the manipulation of geospatial data, for example to implement Geographic Information Systems (GIS). The Geotools library implements Open Geospatial Consortium (OGC) specifications…