Posts in category osgeo

GeoMeetup Slides

I've posted slides from my talk at the  GeoMeetup in San Francisco.

The talk was on Python Plugin development for QGIS, get the slides over on  Scribd

OSGeo Live Partial Download Estimates

I had a chance this last week to do a little bit of analysis on the download logs for the  OSGeo-Live project. The basics: downloads have increased quite a bit from version 4.5 to 5.0 and the full 4.4 GB iso file is the most popular but that doesn't mean there aren't quite a few people downloading the other variants.

There is some uncertainty in the actual numbers as I haven't had a chance to filter out bots, incomplete downloads, etc... Also for those wondering I do plan to follow up with a Map of downloads by country/region soon but early estimate is people from 100 different countries have downloaded.

These graphs represent data for all of 2011 from 2 of 5 servers, the 2 in California.

osgeo 2011 downloads by type osgeo 2011 downloads by version

Anyone know what the difference is between viewed, entry and exit on awstats?

How big was that database?

Database servers are great, but there's a lot of magic in there sometimes and it can be hard to figure just how much storage is being taken up by what database and which tables.

A nice little hint on how to check the size of the whole or parts of you database server (Postgres):

Or for the lazy

SELECT pg_database.datname,
       pg_size_pretty(pg_database_size(pg_database.datname)) AS size
  FROM pg_database;

Open Source Mapping Workflow

This quarter some students and professors got together to reinvent/recreate/re-instigate  Cartography at UC Davis. While this isn't my first Cartography course it's been a bit more realistic in terms of applying the ideas to making maps.

Below is an example of mine, showing the possibilities of an Open Source cartographic workflow. I used  Spatialite to crunch the data,  QGIS to prep and  Inkscape to Polish.

It's a semi-ficticous map showing major air routes that cross the Arctic Circle using data from and a background map from

I'll link to the full pdf later. Creative Commons license in the footer applies.

NACIS 2009 Opening up

So at the AAG Conference last year, we ran an  OSGeo booth. Some representative from North American Cartographic Information Society ( NACIS) approached and invited us to their conference.(It wasn't the 1st time after one of my talks on FOSS previously I had been asked).

Now the important part, the California Chapter gave a 50 minute, 4 app demo at the NACIS "Practical Cartography Day" to an audience of 150.  Details Take home message - Cartographers want good svg output.

Notes from the rest of the conference, "Open" was actually mentioned a lot. Here's a rough breakdown of the frequency of relevant topics(In presentations):

  • Postgis ++
  • OpenLayers(not by name but showed up in slides and on demo sites) +++
  • mapnik ++
  • GDAL +
  • Modestmaps
  • php +++
  • OpenSource +++++(Even ESRI)
  • Python +++
  • OpenStreetmap ++++
  • Flash/Flex +++++++
  • OGC +
  • Inkscape +
  • GIMP +
  • WMS +

(Maybe I'll post a plot when I get chance)

Next post: Some new public domain datasets people are going to want to get their hands on...

Desktop Open Source goes mainstream, old school style

Gary Sherman's book in the UC Davis library Congratulations to Gary Sherman who's recent book has successfully made it to the shelves of academia. Well that might be in part to our librarian taking advice on what open source gis books are missing that should be on the shelf. Lucky for everyone else, since the publisher didn't classify it as a text book it's also affordable too if you want your own copy, paper or ebook.

Desktop GIS: Mapping the Planet with Open Source. Pragmatic Bookshelf, 360 pages, ISBN 1934356069,

Wondering what other books you've missed see the  OSGeo Library

Network analysis using GRASS

I ended up wanting to analyze commute paths on several networks, but instructions on how to properly prepare a network file with new points snapped to it as nodes was a little less than clear. I'm not 100% sure this is right but it is pieced together from the command history  GRASS stored with each layer in my mapset.

#bring the layer in -o dsn="/scratch/congelton/davis_ped_net/ped_net_sep28.shp" output="pednets28" min_area=0.0001 snap=-1

#find the nearest line to a point and create a line that connects them
v.distance -p from="[email protected]" to="pednetsep28" from_type="point" to_type="point,line,area" from_layer=1 to_layer=1 output="ppl2pednet" dmax=-1 upload="dist" column="dist"

#add categories to the distance lines(I think this is required otherwise won't work later, if the cat column is already populated then you can skip this)
v.category input="ppl2pednet" output="ppl2pednetcat" type="point,line,boundary,centroid,area" option="add" cat=1 layer=1 step=1

#patch the distance lines to the to the original points, so you have the nodes for
v.patch input="ppl2pednetcat,pednets28" output="pplpednet"

# patch the distance lines to the network
v.patch input="pplpednet,davissubset" output="pplonpednet"

#I ran a clean before I did the actual command to make sure I dropped things that wouldn't work, outliers
v.clean input="pplonpednet" output="pplonpednetclean3" type="line,point" tool="snap,break" thresh=3,3

#run the network shortest path using the original points as starting points and end points in batch from a csv, the point id is it's cat input="pplonpednetclean3" output="dcommute3" type="line,boundary" alayer=1 nlayer=1 file="pplonpednetclean.csv" dmax=1000

#example of the csv
#autonumber,Start node cat, end node cat
1       1       3000
2       5       3000
3       6       3000
4       7       3000
5       8       3000
6       9       3000
7       10      3000
8       14      3000
9       15      3000
10      25      3000
11      26      3000
12      27      3000
#yes all my people traveled to the same end point

Things to watch out for:

  • A network file should have both lines and points with the same layer number(ie 1_points 1_lines)
  • A network file with no cat column in the points component