Software

Overview of our vision for software design.

The system that facilitates data acquisition and storage, transforms data into scientific results and supports communicating those results is software. Our software system will handle:

A good data storage software system facilitates scientific analyses, data sharing, and continuity across many years of an evolving project.

We currently store our site data in Excel spreadsheet tables and our model gridded results in NetCDF multidimensional arrays. Neither of these formats provides an easy way to connect with website data editing or web mapping. Looking at the other options, none of them are ideal for both point (~vector) and gridded (raster) data.

Therefore, we can either find a compromise solution that can accommodate both data types, or have two separately evolving data systems that converge at the website, particularly within the web mapping system.

Databases evolved to store data tables, which naturally led to storing geographic features such as continental coastlines as vectors in spatially extended databases. Potential hybrid database solutions with both raster and vector capabilities are:

  • PostGIS 2.1 with raster support
  • SciDB
  • rasdaman
  • SpatiaLite

Most of these database management systems have associated R software packages. Every new data system has a substantial learning curve and requires significant time investments to set up. Therefore, we should proceed with caution, evaluating our best options, and keeping things as simple as possible.

My current (evolving) take on ecological and climate data:

  1. Create a pipeline that automates importation of Excel spreadsheet site data into one of the above database systems that is R-friendly
  2. Keep gridded array model data in NetCDF files for now, while we are becoming more familiar with the database system
  3. Continue to evaluate the database system for raster-friendliness
  4. Develop the R interfaces to both the database system and the NetCDF files
  5. Create site data entry page on our community website
  6. Write code to merge site and gridded data in online maps
  7. Keep learning and discussing our data options

We want data entry and editing to be robust and easy so our team can focus on doing good science.

Project members must be able enter and edit their biodiversity data via our community website. This requires some programming in an appropriate language such as PHP, Python, or Ruby to create client-side code which processes data entered through web forms by passing it to server-side code, probably written in some flavor of SQL, which will integrate the new data into an appropriate database.

The current state of biodiversity will be put in context by adding the fourth dimension. Connecting the past with the present and the future will reveal the conservation timescales for each of our key species.

Websites can be be created using:

Websites can be created line-by-line using these programming languages:

  • HTML5
  • Provides website content
  • CSS
  • Provides website appearance
  • JavaScript
  • Provides website visual and behavioral functions
  • PHP
  • Provides website data manipulation
  • Python
  • Web programming language
  • Ruby
  • Another web programming language

Popular WYSIWYG (What You See Is What You Get) editors:

Popular Content Management Systems and frameworks:

Geospatial Content Management System and framework packages:

The initially rapid deployment of a good-looking functional website made possible using a CMS, perhaps with a geospatial extension that provides an integrated software stack, makes this option very tempting. However, website develop using a CMS always hits a wall when the web developer tries to do anything outside of the CMS design. Hand-coding, on the other hand, starts very slowly, particularly if the web designer has to learn html and css syntax along the way, but rapidly accelerates as the website and the knowledge base both evolve.

In between these two options are Integrated Development Environments (IDEs) and WYSIWYG editors. With some of these, like iWeb, you can not see or edit the HTML or CSS code, although you can often add your own snippets of code. With some others, you have the "best of both worlds" and can create quick pages using drag-and-drop, and also modify the code by hand.

Transforming our science into visual maps will enhance our prospects for communication and collective action.

Web Mapping Stack

A typical web mapping solution consists of:

  • PostGIS — Spatial database
  • GeoServer — Web map / application server
  • GeoWebCache — Tile cache server
  • OpenLayers — Browser-based map display library
  • GeoExt — Mapping application library

Geospatial database options:

  • PostGIS 2.1 with raster support
  • SciDB
  • rasdaman
  • SpatiaLite

Web map server options:

  • GeoServer
  • MapServer

Scientific results and visualizations are transformed into education and policy by effective communication.

Plants and animals have co-evolved with each other and with the Earth's climate in a dynamic quasi-equilibrium. The resultant biogeographical and ecological relationships between these elements of the Earth system can be exploited in developing simulation algorithms to reconstruct the past, fill in observational gaps in the present, and predict the future.

We already have statistical models for predicting animal extinctions, simulation models for predicting the response of plant communities to climate change, and access to a number of global climate models (GCMs) and associated future climate change scenarios. Our next step is to find the best way to connect our predictions of future vegetation change with our animal population models.

Ecological sensitivity map