Tight integration between Icebox and geonode

Registered by matley on 2013-11-03

Icebox should create geonode layers such that it is possible to share/comment/rate the output stored.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Icebox store calculation outputs as geoserver layers (in the future we should support also tilestream layers) and calculation objects as geonode Map objects.

That means that we need to create proper Output tables (in Icebox) which can be read by geoserver. E.g.

Calculation(id, user_id, map_id)
HazardMap(id, calculation_id, layer_id, display_name)
HazardMapData(location, poe, hazard_map_id)

where map_id and layer_id are foreign keys to the geonode_map and geonode_layer tables.

A proper view should be created for each Output (e.g. to show only the proper hazardmap data). E.g.
HazardMapLayerView(location, poe) # this is the layer store view

oq-engine-server will be responsible to perform a dblink COPY FROM between the engine and the platform once that the calculation is complete. (http://www.postgresql.org/docs/9.1/static/dblink.html)

TODO:
1) Ensure that oq-engine output data tables do not hold data with blob fields (i.e. pickled numpy arrays)
2) Define and create output tables in icebox
3) Write migration scripts on oq-engine-server
4) Write logic that creates geonode Map, and geoserver layers when a calculation is complete
5) Change the UI such that it is possible to list all the generated Map and Layers with all the geonode action links

Possible enhancements:

0) use a per-user schema for output views
1) add "zoom_level" to the layer tables
2) generate aggregates for each zoom level
3) scale-dependent layer

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.