Hi, I’m new to Bokeh, trying to evaluate whether Bokeh is the right choice for my project or will I need some more elaborate/higher level solution such as HoloViews. My dataset consists of a large amount of datapoints which need to be downsampled before being sent to the frontend. I would also like to have zoom functionality, where users can drill down into their dataset and sampling interval is decreased.
Somewhere in the documentation, I believe it is mentioned that Bokeh Server can downsample the data before feeding it to the frontend. But I can’t find any more elaborate information about this except some old stackoverflow questions. So, is this functionality provided by Bokeh or not?
Hopefully someone else can chime in about Bokeh’s native downsampling support, if any, but I just wanted to note that HoloViews is expecting to have greatly improved timeseries downsampling in the next release (see e.g. Implement 1D downsampling including LTTB algorithm by philippjfr · Pull Request #5552 · holoviz/holoviews · GitHub); this is an active area of current work. So if you do have needs in this area and are considering HoloViews, now’s the time to comment over on the HoloViews github repo.
Bokeh does not have any built-in downsampling support. Any mentions of downsampling were always in the context of writing a Bokeh server app, i.e. a Bokeh server app makes dynamic downsampling possible, by providing a place for it to happen (i.e. in the app callbacks). But the details of how to appropriately downsample are often linked to the specifics of the data and the use-case, so we don’t attempt to provide any generic capability “out of the box”, and leave it to users or other tools to make those decisions.