Today I gave a pretty general talk “Cartography and composition of interactive Maps“ at the WAURISA GIS 2014 conference in Tacoma. The talk is strongly based on Ian Muehlenhaus’s excellent book “Web Cartography. Map design for Interactive and Mobile devices” (2014). This years conference had a strong theme about communication which worked out really well and my presentation fit right in. The presentation slides are here.
For some time I had been wishing to create an interactive web map showing downloads of gvSIG CE over time. This could provide a nice opportunity to learn more about using the Leaflet JS viewer, and dynamically outputting results as GeoJSON, while at the same time providing more detailed insight into the download dynamics of the gvSIG CE project over time. The idea was to create a map that provides for custom styling and has query capability of the download statistics by country and time intervals.
The software downloads of gvSIG CE are hosted on Sourceforge. Sourceforge also supplies an API for retrieving download statistics for any of their hosted projects - see . The technical steps taken to create the new gvSIG CE download map are as follows: On a server that already had a complete software stack of OS GIS web mapping components installed I created a new PostGIS data base. A simplified Countries (of the world) GIS layer was imported and additional tables to hold the gvSIG download data and summaries created.
Next a way to load the gvSIG CE download statistics into the PostGIS was needed. This was implemented via a custom Python script that can retrieve the data from the Sourceforge API ( automated via a server cron job ) on a daily basis. To obtain all existing data for each day the script had to run separate API calls for each day from the initial start of downloads on August 30 2011 up to today. The Python script then creates a temporary SQL file on the server file system that includes the SQL insert commands for creating the download records in the PostGIS table. Executing the SQL commands in the SQL file in the data base a separate record will be created in that table including the number of downloads for each country and day. For example if on a specific day there where one or multiple downloads from 4 countries then there would be 4 new records added having the countries names, and respective number of downloads along with the download date. Next the web page for the web map was created using a Leaflet based GIS viewer (a Java Script library). The simple Country layer in GeoJSON format was added to Leaflet and some nice, third party base map tiles (in gray scale from www.toolserver.org/tiles/bw-mapnik/ ) added to the map view. In PostGIS the download data was then summarized and joined to the Country geometries in a data base view. The contents of this data base view where exported as GeoJSON and saved as a static java script file and included as a layer in the Leaflet map.
The map at this stage showed the (static) total number of downloads for each Country from the start of downloads to today, however this did not include any query capability. To implement query capability some additional steps are needed: in the GUI two data selection HTML fields for start and end date where added along with a query button. When a user clicks the query button a PHP on the server will be called with the query dates. The query logic is a moderately complex SQL query that summarizes the download data for the selected time period, joins the results to the Country PostGIS layer geometries and then outputs the results as GeoJSON dynamically. Consequently for each query those countries that have had no downloads for the queried time period will not appear in colors in the GeoJSON result layer. In essence the dynamic query replaces the static java script file with the country geometries and total download statistics we added initially.
The draft map that resulted from this work can be found at http://gvsigce.terragis.net. At first glance the most interesting thing is that the top three countries are Spain followed by China and Germany in number of total downloads.
The Web GIS workshop was organized in a cooperation between Sokoine University of Agriculture (SUA), Tanzania and the University of Hohenheim, Germany. Last week my friend and fellow Soil Scientist Dr. Ludger Herrmann and me met at SUA in Morogoro, Tanzania to jointly lead this 3 day workshop for the Trans-SEC project working on food security in eastern Africa. Ludger had been my boss during my first job from 1998-2000 at the University of Hohenheim, Department of Soil Science and Land Evaluation, but we had not worked together professionally since then.
The long name of Trans-SEC is Innovating Strategies to safeguard Food Security using Technology and Knowledge Transfer. Over the next 3 years I will work together with Ludger and our partners at SUA, a team of scientists lead by professor Siza Tumbo. My role will be to teach and support the team implementing a Web GIS platform (based on Open Source GIS software) for use in the Trans-Sec project and to publish an Atlas of Food security of Tanzania.
During this first workshop participants where introduced to MapServer, OpenLayers and PostGIS and we build some first temporary web maps together on a temporary web server. On the second last day of the workshop the server that was shipped from Hohenheim arrived in Morogoro by bus and was then installed on the last day of our stay at the computing center at SUA with help from the IT department. Ludger and I will return for two more web mapping workshops over the next two years to support the project and its mapping components.