-
Notifications
You must be signed in to change notification settings - Fork 0
Remote Data Interface
On JS side, have new data source, RemoteDataSource. It is responsible for providing local ColumnDataSource instances to all the renderers that it is shared with, and also for updating those local sources based on bounds requested by the renderers or tools.
- ColumnDataSource (per renderer)
- local bounds : bounds of local values
- full bounds : full bounds on the server side
- LOD flag : Indicates that this data is downsampled, so that when tools interact with it, they push region selection and hit testing to the server side (i.e. local values are approximate)
- update( colA: {start?, end?, resolution?}, colB: {start?, end?, resolution?}, aspect?, onload=callback_function )
Resolution can be specified as:
- N points
- data units / pixel
If two columns are specified, then aspect ration representing B/A can be considered for joint dimension downsampling
- how to specify data we already have to not repeat sending it
- how to or whether to have columns of different size
Selections can be thought of as geometric filters on data sources. Filters are stored on the server and any renderer can use the selection geometry to query its own local spatial index for highlighting, etc. If something (a tool on the python side, probably) needs the underlying raw data (to compute a distribution or regression, etc) it can explicitly ask for it from the server, based on the selection.