Greenland Development Documentation

Do you want to develop with Greenland - add features, fix bugs? Then your are in the right place here. Do you want to report a problem, get support, or read user tutorials? Please take a look at GreenlandHelp instead.

Contributor Set-up

Even though Greenland uses a Maven build process to generate a Java web application archive, its sources themselves are directly runnable within usual web browsers. It is not required to run a full build process for getting started with the code, instead it is sufficient to run webapp/index-debug.html in a web browser.

For testing purposes, it is recommended to use Google Chrome/Chromium web browser with the --disable-web-security argument to ignore the same origin policy.

The full build process offers optimizations such as code minifying and creates the webapp required to use all Greenland functions (Portlet, WMS Capabilities Proxy, THREDDS Proxy).

Code Checkout

Greenland code is located in the geostatistics repository: https://svn.52north.org/svn/geostatistics/main/greenland/trunk/

Create Eclipse Javascript Project

Prerequisites:
  • Eclipse
  • m2e plugin (filter Marketplace for m2e)
  • SVN connector (filter Marketplace for svn)
  • Java JDK installed
Simply check out Greenland from SVN to create a Eclipse project:
  1. Start Eclipse
  2. Click "File" > "Import..."
  3. Select one of the following
To specify Maven run configurations:
  1. Click "Run" > "Run Configurations..."
  2. Select "Maven Build" and add a new run configuration ("New" button)
    • "Name": Package
    • "Base directory":
      • Click "Browse Workspace...", then select project folder or
      • Specify ${workspace_loc}/${project_name}
    • "Goals": clean package
    • To update license headers, set format as "Profiles"

Software Architecture

Greenland Configuration

Global JavaScript application settings are specified in webapp/js/greenland/settings.js:
  • vissUrl: URL to UncertWeb VISS which allows to specify custom raster data sources
  • omConversionServiceUrl: URL to UncertWeb U-O&M2 XML to JSON converter
  • wmsCapabilitiesProxy: URL to proxy service allowing to read WMS Capabilities document from non-CORS-enabled services
  • defaultResources: Array of resource configuration objects to provide by default. Each individual resource is specified by an object with attributes url and mime

Resources

The following MIME-Types are supported for resource specfications (see defaultResources setting).
Resource Specification Mime type Notes
XML (generic?) tba application/xml requires CORS support
Uncertainty-enabled Observations and Measurements (OGC, UncertWeb), JSON encoding tba application/x-om-u+json requires CORS support
GeoTIFF tba image/geotiff using VISS
NetCDF tba application/netcdf using VISS
Observations and Measurements (OGC), XML encoding tba application/vnd.ogc.om+xml using VISS
Uncertainty-enabled Observations and Measurements (OGC, UncertWeb), XML encoding tba application/x-om-u+xml requires CORS support
Web Map Service (OGC) tba wms using Capabilities proxy
ncWMS (Univ. Reading) - NetCDF data via a WMS interface tba ncwms requires CORS support

Architecture

ALERT! what files are in which folder.. describe all top level folders!

Used Libraries

LibrarySorted ascending Version License Download
ExtJS 3.4.0

Open Source GPL 3.0

Exceptions:

http://www.sencha.com/products/extjs3/download/ext-js-3.4.0/
flot 0.7 MIT License, Expat License http://code.google.com/p/flot/downloads/list
GeoExt 1.0

3-clause BSD license,

makes use of ExtJS license exceptions

http://trac.geoext.org/wiki/Download
jQuery 1.5.1 MIT License, Expat License http://jquery.com/download/
jStat 1.0 MIT License (at least on https://github.com/jstat/jstat) http://www.jstat.org/download
OpenLayers 2.12 Release 2-clause BSD license http://trac.osgeo.org/openlayers/wiki/HowToDownload
Proj4js 1.0.2 MIT License, Expat License http://trac.osgeo.org/proj4js/wiki/Download

ExtJS Extensions

  • Ext.ux.VIS.FeatureArrow, actually extending GeoExt.FeatureRenderer, a graphical component to visually link a window to a map feature
  • Ext.ux.VIS.FlotPanel, extending Ext.Panel to use jQuery flot plots as usual ExtJs components
  • Ext.ux.VIS.Legend and Ext.ux.VIS.Legend.DropZone, extensions managing layer legends, settings and their drag&drop functionalities
  • Ext.ux.VIS.LegendScaleBar, extending Ext.Panel to show color scale bars etc. for layers
  • Ext.ux.VIS.ResourceNodesContainer and Ext.ux.VIS.ResourceLoader, custom tree extensions for displaying and loading the various levels of resources
  • Ext.ux.VIS.Slider, the Ext.slider.MultiSlider extension which provides irregular snapping values and tick marks

Test ncWMS-Q

If you want to test the features of the WMS-Q specification, namely automatic visualisation configuration based on quality metadata in a WMS Capabilities document, then you might find our WMS-Q Facade Server useful.

Roadmap

1st Quarter 2013: Release of stable version "1.0" for download area

Changelog

  • 1.0
    • Add all layer-settings to permalink
    • Add code to about page that shows the current SVN version
    • Add a possibility to remove the background map completely (important for visual mapping from legend colours to data colours)
    • Link zu GetCapabilities in WMS service
    • Added support for arbitrary projections (handled by proj4, including viewports for spatial extends on adjacent maps across projections
    • Add a "Source" tab to visualisation information dialog to find out about the WMS capabilities and other metadata
    • Added a pointer in the two-dimensional legend
    • Added context-aware help system

Release 1.0 (Targeted for September 2013)

Group Item PrioritySorted ascending Costs Contributor/Status
- As a developer I want to use GitHub for code versioning, see SvnToGitHubMigration 0 led-aqua led-aqua unchecked
-

As a user I want to see the actual values of raster cells rendered into the cells (and switch that on and off in the layer properties). This requires resampling. Visualisatoin types: whitening, color range.

1 led-aqua DONE
THREDDS As a user I want to explore THREDDS servers and OPeNDAP data sources for netCDF data, see http://www.opendap.org/ respectively http://www.unidata.ucar.edu/projects/THREDDS/. I want to visually browse THREDDS catalog files (see http://www.unidata.ucar.edu/projects/THREDDS/tech/catalog/v1.0.2/Primer.html). 1 led-aqua DONE
GVQ As a user I want to see if a datasource that I load has user feedback information available and I want to access that information during the process of adding a datasource as well as from the datasource properties using a simple HTML link to the external feedback server (and it's form for feedback submission about a datasource) 1 led-aqua led-aqua led-aqua unchecked (Holger)
GVQ As a user I want to use Greenland to browse resources in the Geoportal > See http://twiki.geoviqua.org/twiki/bin/view/GeoViQuaIntranet/GeoPortalDevelopmentBacklog for detailed tasks. 2 led-aqua led-aqua led-aqua led-aqua checked (Matthes, Holger)
Understanding/Help As a user I want to know the background of specific visualisation methods, e.g. if I use 2-dimensional color scale I want to click on a Help-button that opens a pop-op with a short explanatory text that tells me how to read the map and provides links to external resources such as the Greenland help, scientific publications or blog entries (or all of the above). 2 led-aqua led-aqua led-aqua DONE
THREDDS As a user I want to add WMS and ncWMS layers from THREDDS servers. 2 led-aqua led-aqua

DONE

(ncWMS requires CORS)

 

As a user I would like to be pointed towards an uncertainty visualisation selector (if one is configured and the URL is available, starting with http://geoviqua.dev.52north.org/UVS/).

The link should be included in a context help next to the "Details" section of an "Add Resource" dialog, i.e. "To see whether this visualisation fits your data add your information to the UVS: <link>."

3 led-aqua unchecked
GVQ As a user I want to see and submit feedback about dataset resources loaded into Greenland based on the GeoViQua Feedback Catalog, using temporal and spatial extend. 8 led-aqua led-aqua led-aqua unchecked

Task Backlog

Group Item PrioritySorted ascending Costs Contributor/Status
Usability Implement improvements to handle results of usability survey. 1 led-aqua led-aqua led-aqua checked
- Extract contribution to OpenLayers (regarding time) and ask if that is a useful contribution/offer it. 2 led-aqua led-aqua unchecked
- As a user I need detailed information about the unit of measurement (UOM) for all datasources (WMS-Q, O&M, netCDF, ...) within the layer view and the layer settings. 3 led-aqua led-aqua DONE
- As an administrator, I want services on which greenland depends to be integrated within the greenland server components. (This affects VISS components and O&M Conversion Service) 3 led-aqua led-aqua led-aqua led-aqua unchecked
- As somebody who integrates Greenland in a legacy system (e.g. GEOPortal), I want the server components to be Java 1.5 compatible 3 led-aqua DONE
- As a user I want to explore raw data in point example, i.e. being able to look at the UncertML markup (and know where did the PDF come from?) 4 led-aqua led-aqua led-aqua led-aqua unchecked
- As a user I want to use Greenland on the OSGeo live DVD together with the built-in WMS server (from a documentation and organisation point of view, not just technical). 4 led-aqua led-aqua unchecked
- As a user I want to enjoy multidimensional legend markers (see Whitening) also while interacting with other viewports and not directly with a corresponding layer 4 led-aqua led-aqua led-aqua DONE
- As a user I want to be able to easily synchronize various visualization settings between layers 4 led-aqua led-aqua led-aqua unchecked
- As a user I want to manually name layers and add a short description. 5 led-aqua led-aqua led-aqua unchecked
- As a user I want to do everything that the Aguila interactive client is able to do (see for example publication one or publicatoin two and videos). 5 led-aqua led-aqua led-aqua unchecked
- As a user I want to use a web feature service (WFS) for background data (no interactive visualisation settings). 5 led-aqua led-aqua led-aqua unchecked
- As a user I want to filter data by time period, not only instance 5 led-aqua led-aqua led-aqua unchecked
- As a user I want to use Legends for WMS resources (implement GetLegendGraphic WMS request) 5 led-aqua led-aqua unchecked
THREDDS As a user I want to add netCDF files from THREDDS servers. 5 led-aqua led-aqua led-aqua

unchecked

requires better integration of VISS into Greenland

- As a user I want to explore geometric corrections of raster data with glyphs together with the source and target data (based on this dataset). 6 led-aqua led-aqua unchecked
- As a user I want to integrate WMS data together with error information based on gridded data files (e.g. ASCII format) - based on dataset Digital Climatic Atlas of the Iberian Peninsula. 7 led-aqua led-aqua unchecked
- As a developer I want to be able to include Greenland in existing browser clients and would be happy if there were no global fields and libraries interfering an existing codebase 7 led-aqua led-aqua unchecked
- As a user I want to browse web coverage services (WCS). 8 led-aqua led-aqua led-aqua unchecked
- As a user I want to browse quality-enabled web coverage services (WCS) based on a facade server. 9 led-aqua led-aqua led-aqua unchecked
- As an adminstrator I want to be able to tailor Greenland to specific use cases, so to limit the amount of possible interactions to support specific tasks - "appify" Greenland. This could include interactive configuration or map.apps - if the OSGI-part ever becomes open source usable. 10 led-aqua led-aqua led-aqua led-aqua unchecked

Legend

Priorities: 1 = highest priority, n = lower priorities

Costs: "Felt" development costs, relative, no actual estimation neccessary, going from led-aqua = "low" to led-aqualed-aqualed-aqualed-aqua = "very high"

Statuses: unchecked = open task, checked = somebody is working on the task, DONE the task is "done". We have a very loose definition of done: "Contributor did some tests and it worked."

Group: Can be used freely to associate items together, but is optional.

Bugs

Current bugs: https://bugzilla.52north.org/buglist.cgi?product=52N%20Geostatistics&component=greenland&resolution=---

Usability Improvement

Actions to take to improve usability and acceptance. See UncertWeb usability study report for evaluation of UncertWeb Vis-Client.

Open Issues
  • Adding Resources
    • Unclear distinction between Resources, static- and dynamic Visualizations in Add Resource dialog
      • Added icon for "visualisations" when adding a new resource
    • Interactions not clear (e.g. lower panel allows to add to treeview, selecting leafs in tree shows details in right panel, etc.)
    • "Please wait..."
  • Legends
    • Depiction of interval classes in legends not clear, e.g. no information about visualization of values lower than first classification or if there is a maximum value
    • No clear hint in legend showing continuous value bounds
  • Temporal data
    • No indication for temporal data
    • No indication if a dataset/visualization/layer is not rendered because of the seleced time instance
    • No customizations for animations
  • No feedback when a layer does not support a custom map projection
  • Adding/removing map viewports is clumsy
  • Missing tooltips
  • "Local Cache" no longer required

Team

Active Developers

Contributors

  • Edzer Pebesma
  • Lydia Gerharz
  • Christoph Stasch
  • DanielNuest

Metadata

  • Topic created by: DanielNuest
  • Topic created on: 2012-11-15

License

Creative Commons Licence
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Topic revision: r64 - 05 Nov 2013, DanielNuest
Legal Notice | Privacy Statement


This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki? Send feedback