Metadata-Version: 2.1
Name: datashader
Version: 0.6.6
Summary: Data visualization toolchain based on aggregating into a grid
Home-page: http://datashader.org
Maintainer: Datashader developers
Maintainer-email: dev@datashader.org
License: New BSD
Platform: UNKNOWN
Requires-Python: >=2.7
Description-Content-Type: text/markdown
Provides-Extra: build
Provides-Extra: doc
Provides-Extra: examples
Provides-Extra: all
Provides-Extra: examples_extra
Provides-Extra: tests
Requires-Dist: dask[complete] (>=0.15.4)
Requires-Dist: toolz (>=0.7.4)
Requires-Dist: datashape (>=0.5.1)
Requires-Dist: numba (>=0.37.0)
Requires-Dist: numpy (>=1.7)
Requires-Dist: pandas (>=0.20.3)
Requires-Dist: pillow (>=3.1.1)
Requires-Dist: xarray (>=0.9.6)
Requires-Dist: colorcet (>=0.9.0)
Requires-Dist: param (>=1.6.0)
Requires-Dist: pyct
Requires-Dist: scikit-image
Requires-Dist: bokeh
Requires-Dist: scipy
Provides-Extra: all
Requires-Dist: attrs; extra == 'all'
Requires-Dist: beautifulsoup4; extra == 'all'
Requires-Dist: bokeh; extra == 'all'
Requires-Dist: cartopy; extra == 'all'
Requires-Dist: colorcet; extra == 'all'
Requires-Dist: dill; extra == 'all'
Requires-Dist: distributed; extra == 'all'
Requires-Dist: fastparquet; extra == 'all'
Requires-Dist: flake8; extra == 'all'
Requires-Dist: geoviews; extra == 'all'
Requires-Dist: graphviz; extra == 'all'
Requires-Dist: holoviews (>=1.10); extra == 'all'
Requires-Dist: iris; extra == 'all'
Requires-Dist: jupyter; extra == 'all'
Requires-Dist: jupyter-dashboards; extra == 'all'
Requires-Dist: krb5; extra == 'all'
Requires-Dist: matplotlib; extra == 'all'
Requires-Dist: nbsite; extra == 'all'
Requires-Dist: nbsmoke (>=0.2.6); extra == 'all'
Requires-Dist: networkx (>=2.0); extra == 'all'
Requires-Dist: numpydoc; extra == 'all'
Requires-Dist: pandas; extra == 'all'
Requires-Dist: paramnb; extra == 'all'
Requires-Dist: pvutil; extra == 'all'
Requires-Dist: pyproj; extra == 'all'
Requires-Dist: pytables; extra == 'all'
Requires-Dist: pytest (>=2.8.5); extra == 'all'
Requires-Dist: pytest-benchmark (>=3.0.0); extra == 'all'
Requires-Dist: python-graphviz; extra == 'all'
Requires-Dist: python-snappy; extra == 'all'
Requires-Dist: pyyaml; extra == 'all'
Requires-Dist: rasterio; extra == 'all'
Requires-Dist: requests; extra == 'all'
Requires-Dist: shapely; extra == 'all'
Requires-Dist: snappy; extra == 'all'
Requires-Dist: sphinx-ioam-theme; extra == 'all'
Requires-Dist: statsmodels; extra == 'all'
Requires-Dist: streamz (==0.2.0); extra == 'all'
Requires-Dist: tblib; extra == 'all'
Requires-Dist: webargs; extra == 'all'
Requires-Dist: xarray; extra == 'all'
Provides-Extra: build
Requires-Dist: param (>=1.6.1); extra == 'build'
Requires-Dist: setuptools; extra == 'build'
Provides-Extra: doc
Requires-Dist: attrs; extra == 'doc'
Requires-Dist: beautifulsoup4; extra == 'doc'
Requires-Dist: bokeh; extra == 'doc'
Requires-Dist: colorcet; extra == 'doc'
Requires-Dist: dill; extra == 'doc'
Requires-Dist: distributed; extra == 'doc'
Requires-Dist: holoviews (>=1.10); extra == 'doc'
Requires-Dist: jupyter; extra == 'doc'
Requires-Dist: jupyter-dashboards; extra == 'doc'
Requires-Dist: matplotlib; extra == 'doc'
Requires-Dist: networkx (>=2.0); extra == 'doc'
Requires-Dist: pandas; extra == 'doc'
Requires-Dist: paramnb; extra == 'doc'
Requires-Dist: requests; extra == 'doc'
Requires-Dist: tblib; extra == 'doc'
Requires-Dist: xarray; extra == 'doc'
Requires-Dist: pvutil; extra == 'doc'
Requires-Dist: pyyaml; extra == 'doc'
Requires-Dist: streamz (==0.2.0); extra == 'doc'
Requires-Dist: webargs; extra == 'doc'
Requires-Dist: cartopy; extra == 'doc'
Requires-Dist: graphviz; extra == 'doc'
Requires-Dist: python-graphviz; extra == 'doc'
Requires-Dist: fastparquet; extra == 'doc'
Requires-Dist: geoviews; extra == 'doc'
Requires-Dist: iris; extra == 'doc'
Requires-Dist: krb5; extra == 'doc'
Requires-Dist: pyproj; extra == 'doc'
Requires-Dist: pytables; extra == 'doc'
Requires-Dist: python-snappy; extra == 'doc'
Requires-Dist: rasterio; extra == 'doc'
Requires-Dist: snappy; extra == 'doc'
Requires-Dist: shapely; extra == 'doc'
Requires-Dist: statsmodels; extra == 'doc'
Requires-Dist: nbsite; extra == 'doc'
Requires-Dist: sphinx-ioam-theme; extra == 'doc'
Requires-Dist: numpydoc; extra == 'doc'
Provides-Extra: examples
Provides-Extra: examples_extra
Requires-Dist: attrs; extra == 'examples_extra'
Requires-Dist: beautifulsoup4; extra == 'examples_extra'
Requires-Dist: bokeh; extra == 'examples_extra'
Requires-Dist: colorcet; extra == 'examples_extra'
Requires-Dist: dill; extra == 'examples_extra'
Requires-Dist: distributed; extra == 'examples_extra'
Requires-Dist: holoviews (>=1.10); extra == 'examples_extra'
Requires-Dist: jupyter; extra == 'examples_extra'
Requires-Dist: jupyter-dashboards; extra == 'examples_extra'
Requires-Dist: matplotlib; extra == 'examples_extra'
Requires-Dist: networkx (>=2.0); extra == 'examples_extra'
Requires-Dist: pandas; extra == 'examples_extra'
Requires-Dist: paramnb; extra == 'examples_extra'
Requires-Dist: requests; extra == 'examples_extra'
Requires-Dist: tblib; extra == 'examples_extra'
Requires-Dist: xarray; extra == 'examples_extra'
Requires-Dist: pvutil; extra == 'examples_extra'
Requires-Dist: pyyaml; extra == 'examples_extra'
Requires-Dist: streamz (==0.2.0); extra == 'examples_extra'
Requires-Dist: webargs; extra == 'examples_extra'
Requires-Dist: cartopy; extra == 'examples_extra'
Requires-Dist: graphviz; extra == 'examples_extra'
Requires-Dist: python-graphviz; extra == 'examples_extra'
Requires-Dist: fastparquet; extra == 'examples_extra'
Requires-Dist: geoviews; extra == 'examples_extra'
Requires-Dist: iris; extra == 'examples_extra'
Requires-Dist: krb5; extra == 'examples_extra'
Requires-Dist: pyproj; extra == 'examples_extra'
Requires-Dist: pytables; extra == 'examples_extra'
Requires-Dist: python-snappy; extra == 'examples_extra'
Requires-Dist: rasterio; extra == 'examples_extra'
Requires-Dist: snappy; extra == 'examples_extra'
Requires-Dist: shapely; extra == 'examples_extra'
Requires-Dist: statsmodels; extra == 'examples_extra'
Provides-Extra: tests
Requires-Dist: pytest (>=2.8.5); extra == 'tests'
Requires-Dist: pytest-benchmark (>=3.0.0); extra == 'tests'
Requires-Dist: flake8; extra == 'tests'
Requires-Dist: nbsmoke (>=0.2.6); extra == 'tests'

Datashader
----------

[![Travis build Status](https://travis-ci.org/bokeh/datashader.svg?branch=master)](https://travis-ci.org/bokeh/datashader)
[![Appveyor build status](https://ci.appveyor.com/api/projects/status/h3lwh6ju4hfcgkm8/branch/master?svg=true)](https://ci.appveyor.com/project/bokeh-integrations/datashader/branch/master)
[![Task Status](https://badge.waffle.io/bokeh/datashader.png?label=ready&title=tasks)](https://waffle.io/bokeh/datashader)


Datashader is a data rasterization pipeline for automating the process of
creating meaningful representations of large amounts of data. Datashader
breaks the creation of images of data into 3 main steps:

1. Projection

   Each record is projected into zero or more bins of a nominal plotting grid
   shape, based on a specified glyph.

2. Aggregation

   Reductions are computed for each bin, compressing the potentially large
   dataset into a much smaller *aggregate* array.

3. Transformation

   These aggregates are then further processed, eventually creating an image.

Using this very general pipeline, many interesting data visualizations can be
created in a performant and scalable way. Datashader contains tools for easily
creating these pipelines in a composable manner, using only a few lines of code.
Datashader can be used on its own, but it is also designed to work as
a pre-processing stage in a plotting library, allowing that library
to work with much larger datasets than it would otherwise.


## Installation

The best way to get started with Datashader is install it together
with our extensive set of examples, following the instructions in the
[examples README](/examples/README.md).

If all you need is datashader itself, without any of the files used in
the examples, you can install it from the `bokeh` channel using the using the
[`conda` package manager](https://conda.io/docs/install/quick.html):

```bash
conda install -c bokeh datashader
```

If you want to get the very latest unreleased changes to datashader
(e.g. to edit the source code yourself), first install using conda 
as above to ensure the dependencies are installed, and you can
then tell Python to use a git clone instead:

```bash
conda remove --force datashader
git clone https://github.com/bokeh/datashader.git
cd datashader
pip install -e .
```

Datashader is not currently available on PyPI, to avoid broken or
low-performance installations that come from not keeping track of
C/C++ binary dependencies such as LLVM (required by Numba).

To run the test suite, first install pytest (e.g. ``conda install
pytest``), then run ``py.test datashader`` in your datashader source
directory.

## Learning more

After working through the examples, you can find additional resources linked
from the [datashader documentation](http://datashader.org),
including API documentation and papers and talks about the approach.

## Screenshots

![USA census](examples/assets/images/usa_census.jpg)

![NYC races](examples/assets/images/nyc_races.jpg)

![NYC taxi](examples/assets/images/nyc_pickups_vs_dropoffs.jpg)


