XrViz: An interactive visualisation interface for Xarrays

Harman Deep Singh
Level Up Coding
Published in
3 min readJun 28, 2019

--

Lake Ontario

XrViz is an interactive, in browser visualisation interface for Xarrays backed by the full power of the Python ecosystem. It allows controlled data points selection, massive rendering, data display, custom interaction and selection of fields for plotting in the browser using Intake, Xarray and PyViz(now HoloViz) collection of tools. It holds the promise of saving Earth Science and other researchers significant amounts of time since they can directly focus on visual data analysis and research rather than writing custom code to explore data.

Here is the project repository.

As of now it has 3 panels:
1. Set Coordinates

This panel allows the user to set/reset the coordinates.

2. Variables Panel

This panel allows the user to select a variable for plotting and have a look at its properties or attributes.

3. Axes Selection Panel

This panel allows the user to select the axis along which to create a plot. It also allows to select aggregations to apply to remaining dimensions. In case you do not need to apply any aggregation, you can create a Selector or Animation widget for a dimension.

Upcoming features

These are some of the upcoming features:
1. Style Panel
2. Projection Panel
3. Series extraction feature

Advantages

  1. This interface is built in Python which has become one of the most pervasive programming languages in the scientific community. Hence this interface could be easily extended by the researchers.
  2. It is being developed in open source, so anyone can share their ideas, contribute to the code or request new features. Open source environment will also ensure that the interface keeps becoming better, stronger, well tested with time as community uses it.
  3. It will have the capability to handle large scale datasets and data stored on cloud. Parallel computation and memory management could be taken care of by using it in conjunction with tools like Dask.
  4. Better user interface and much more functionality as compared to other such tools (Ncview, Panoply, Godiva).
  5. It could be easily extended to have domain specific functionality, such as for astronomy or oceanography.

Dashboard

To use the interface install Xrviz using pip by:

pip install git+https://github.com/intake/xrviz.git

or with conda by:

conda install -c conda-forge xrviz
pip install git+https://github.com/intake/xrviz --no-deps

Then run python -c "import xrviz; xrviz.example()" or the following script:

This is how the interface looks:

XrViz Interface

I am working on this project in Google Summer of Code with the organisation Earth Science Information Partners (ESIP), under member organisation US Geological Survey. My mentors for this project are Rich Signell, a research oceanographer at the US Geological Survey in Woods Hole and Martin Durant, a data scientist and software engineer at Anaconda, inc.

Discussions

Please stay tuned with the weekly progress reports. If you have any ideas or questions regarding this project please feel free to discuss in our Gitter channel.

--

--

Computer Science Student, Interested in Data Visualisation and Deep Learning | GSoC’19 @ESIP