datashader icon indicating copy to clipboard operation
datashader copied to clipboard

TODOs related to Canvas.trimesh

Open gbrener opened this issue 8 years ago • 1 comments

The following issue describes outstanding TODO items related to the Canvas.trimesh() feature (from #525):

API

  • [x] Write utility function (in ds.utils) to help generate the data structure accepted by the mesh keyword argument
  • [ ] Add xarray.Dataset to datashader's pipeline, via built-in dispatch mechanism, so that the trimesh method can accept it as an argument (related to #526, https://github.com/ContinuumIO/earthio/issues/13, https://github.com/ContinuumIO/elm/issues/163, https://github.com/ContinuumIO/xarray_filters/issues/1)
  • [ ] With additional interpolation methods (in "Misc Features", below), the interp flag should be something other than a boolean

Docs

  • [ ] Notebook for user guide, describing the available options and what they do
  • [ ] Notebook for topics directory, plus dataset(s) in examples/datasets.yml illustrating sample use-case w/ inference(s)

Dask

  • [ ] Enhance dask dataframe support, to leverage datashader's built-in dispatch mechanism - i.e. instead of calling .compute() on dask dataframes and passing them through the pipeline as pandas dataframes
  • [ ] Add vertex winding auto-detection (and correction) for dask dataframes

Performance

  • [ ] Make improvements to datashader/compiler.py, so that the append performance optimizations can be applied to other glyphs
  • [ ] Other performance-enhancing activities. Current approaches I'd like to explore (time permitting):
    • [ ] Adapting the rasterization algorithm to be a numba gufunc
    • [ ] Leveraging a spatial index to speed up traversal/exclusion of triangles outside viewing area (open question on how to use this with dask)
    • [ ] Partitioning the mesh so it can be processed in parallel (via multithreading, multiprocessing, or distributed/remote workers)
    • [ ] Adapting the rasterization algorithm to run on the GPU

Misc Features

  • [ ] Add the ability to visualize only triangle edges (like a "wireframe")
  • [ ] Add other interpolation methods (TBD). This is a prerequisite to an API change mentioned above.

gbrener avatar Dec 07 '17 21:12 gbrener

Notebook for topics directory, plus dataset(s) in examples/datasets.yml

I think we should just use this one example, which I've uploaded to S3 and thus can now be added to datasets.yml:

https://s3.amazonaws.com/datashader-data/Chesapeake_and_Delaware_Bays.3dm

jbednar avatar Dec 07 '17 22:12 jbednar