# Datashader Meetings
## First Meeting - 01/11/22
### Introduction & History
- Original vision for Datashader as described by Peter:
- Statistical computation aggregating kernels, e.g. of uncertainty per datapoint
- Simpler vision that actually got implemented: "2D histograms"
- Original version written in Java, then briefly implemented as "abstract rendering" in Bokeh in early days of Anaconda/Continuum, then finally implemented from scratch in Python/Numba with some basic Bokeh support
- Originally created using funding from government grants, then funded through various contracts with primarily government agencies
- Currently no dedicated Datashader funding, though it's improved in small ways as part of many other funded projects, including some current funding for improving Datashader timeseries/line rendering support
- The history of Datashader development increased capabilities along two axes: (1) which glyphs that can be rendered (starting with points, soon followed by polylines) and later adding support for rasters, quad/tri-meshes, polygons etc., and (2) secondarily adding data structures that would allow efficient rendering (starting with pandas/dask and pushing into GPU with cuDF and ragged arrays with spatialpandas)
### Makepath interest
- Primarily interested in efficient rendering pipeline for both raster and vector data
- Datashader addresses vector -> raster
- Hoping to add support for distributed Canvas, i.e. outputting rasters that are larger than memory (previously out of scope because of Datashader assuming it is rendering to a display device with limited resolution)
- Other interests: Anti-aliasing, ragged array representations (e.g. for contouring)
### Agenda
- Ragged Arrays:
- Geopandas vs Spatialpandas
- Awkward Array vs Arrow
- History: Geopandas has history of depending on geo-stack, while spatialpandas only depends on arrow and numba. Geopandas pushing towards more efficient in-memory representation and eliminating problematic required dependencies.
- Ownership of Spatialpandas?
- Distributed Canvas:
- Datashader originally built with opposite assumption "data much larger than memory; canvas basically a screen buffer"
- Project "Ownership"
- Currently Jim is project owner
- PR merging is blocked by Jim's limited bandwidth for reviewing complex PRs
- Add secondary owner?
- Active PRs:
- Discrete color keys
- Ian working on
- Need high-level "developer docs" for the internal design of rendering pipeline covering multi-dispatch, numba code generation, optimization passes