Graph Rework
We need to improve the graphing capabilities
This needs
-
Rewrite of the sampling API to only give a limited number of points (random sampling, deterministic per query) -
Lineplots -
Featherplots (esp. for ADCPs) -
Histograms -
RosePlots -
Colormaps -
Multiple graphs in one window -
Fix the data queries / interactivity (mouse move over window) -
Maybe move the visualization to either a canvas-based implementation or some API -
Make Intensity optional -
Better names for the layers in the selection -
Initialize layer selection with currently selected layer -
What do we do about line layers? ADCPs? -
Can we export graphs as part of the scene? -
Graph naming -
Export graphs as either interactive (HTML) or SVG (or maybe PNG?) -
Export Data as CSV or some other format -
Move selection button to graph window -
Chart Icon per Layer -
Store initializers/settings per graph window
Maybe a JS class for each graph
sampled data is a Float64Array with Lat,Lon,Height,Time,V1,V2,V3 for each point (currently -> move to DataTable)
Dropdown for default values
Dropdown for constants (-> numerical input) -> very far future
Is NaN a default value?
GraphFactory: //LineGraphFactory, RosePlotFactory
- requiredInputs -> [String] // z.B. ["Direction","Magnitude"], ["X", "Y", "Variable"]
- estimateAxis(data) -> (ExtentX, ExtentY) //z.B. [400,500] oder null falls keine Achsen erzeugt werden
- createSVG(data, extentX, extentY) -> SVG //data is Float64Array, fertiges Graph-Layer ohne Achsen
Who creates the axes?
Interactivity:
- each interactive Element has an attribute
data-interactive
that is shown when the mouse hovers over the element
Edited by Flemming Stäbler