The technologies underpinning Stepping Into Time will take advantage of free or low cost computing resources and open-source software now prevalent in web and app development. The final technical infrastructure is being finalised but this post summarises the fundamental components.
The server-side of Stepping Into Time will be built using the Python GeoDjango web-app framework, supplemented by Geoserver, with the generated data hosted in a PostGIS database. The server will run in a industry standard Linux-Apache server environment, deployable on a wide variety of server providers (eg Amazon EC2, University hosted – to be determined).
The PostGIS database provides an appropriate method for data storage, management, spatial retrieval and processing, and is the most appropriate Spatial Relational Database Management System (RDBMS) for integration with the rest of the proposed technology stack, ie it is fully supported and the recommended spatial RDBMS for GeoDjango. It will hold the geographic data in the format of either a point, line or an area (ie vector data) for example each bomb that fell is marked at the street level as point with an X, Y coordinate that denotes its location.
The original maps are scanned they are processed in the desktop GIS to add a geographic reference system – a method known as geo-referencing (we will use the low cost GIS called Manifold), they will be saved in the GeoTiff file format and saved on the server. The middleware Geoserver will then enable the geographic data to be accessed and served to the tools we are developing, in a variety of standard formats (eg KML, SHP, Map Tiles and WMS georeferenced images) by either the desktop GIS, mobile application or web-mapping application.
GeoDjango is a web framework designed to facilitate the building of GIS-based web applications, and to enable the use of spatial data on the web. It is based on the Django framework, a Python framework originally designed to handle fast-moving news websites. Django offers an in-built administration interface, along with the ability to define database data models and queries, and a template language to separate design, content and code.