Skip to content

Google Summer of Code 2022

Dingrui Lei edited this page Sep 8, 2022 · 4 revisions

Echoshader

Overview

Echoshader is an Open Source Python package for building ocean sonar data visualizations based on the HoloViz suite of Python tools. This project aims to enhance the capability to interactively visualize large volumes of cloud-based ocean sonar data to accelerate the data exploration and discovery process.

The project will go hand-in-hand with ongoing development of the echopype package that handles the standardization, pre-processing, and organization of these data. The main work for processing sonar data is sampling and interpretation. Echopype is responsible for the sampling work, including extracting data from the cloud database, converting the raw data to netCDF, and performing denoising and calibration. The next job is to interpret: Build a library called echoshader, combine different libraries in HoloViz ecosystem for visual display, and discover the rules from it.

Development Process

Before starting coding, I read lots of documents to find the most suitable tool. Although there are many excellent and fantastic visualizing libraries with Python, such as Plotly and Bokeh, they can not process xarray directly, which is a kind of multidimensional labeled data massively used in echopype. Then I locked my eyes on HoloViz ecosystem, whose tools and examples are based on Plotly and Bokeh, and generally work with any Python standard data types (lists, dictionaries, etc.), plus Pandas or Dask DataFrames and NumPy, Xarray, or Dask arrays. After determining which type of tool to use, I began to read a user guide about HoloViz libraries. There are several libraries mainly used in echoshader: hvplot, Holoviews, GeoViews and Panel. Hvplot and HoloViews declare objects for instantly visualizable data, building Bokeh plots from convenient high-level specifications. GeoViews visualize geographic data corresponding to ship survey datasets. Panel assembles grams and control widgets from these different libraries into a layout which could be displayed in a Jupyter notebook and in a standalone servable dashboard. In addition to HoloViz libraries, PyVista and other libraries are involved for 3D extension, which also fit well in panel layout. Also, benchmarking and doc work are required for each module.

Code Links and Demos

What’s Done

  • Visualizing sonar data as a stack of cards
  • Plotting statistics from sonar data interactively
  • Interactive visualization of sonar data and geospatial location
  • Plotting 3D echogram curtain along ship track
  • Importing testing Data and Benchmarking

What’s Next

Acknowledgements

I’d like to thank Wu-jung, Don, Valentina, Brandon and Emilio, without whom the project would not have been possible to finish. They have been instrumental and instructive in helping me solve the necessary problems. This summer was filled with interest, excitement and new learning.

I really recommend future GSoC participants select the IOOS organization and Echospace team as your target and exploit your ability and talent to contribute to the community. Water is extremely significant for holding an adequate food supply and a productive environment for all living organisms. So working here can not just improve your coding and teamwork capability, but also create a beautiful tomorrow for ourselves and our Mother Earth.

Looking forward to more contributors to IOOS. 🤗

Contact

Please email me if you have any questions: [email protected]