Tight integration between Icebox and geonode
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
- Started by
- Completed by
Related branches
Related bugs
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(
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.
HazardMapLayerV
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://
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