Evolving from Traitsui & Chaco based analysis software to Bokeh

Hi all,

Following Peter’s presentation at EuroScipy 2013 in Brussels and the potential of Bokeh/JS, I’m really considering rebuilding my seismic analysis (read “earthquake measurement and analysis”) software, strip it down to its core for the “server” part and make it available as a webapp for the seismologists.

For this, I could have two students in internship for the period February->June, but before opening the positions, I wanted to have your insights on the following:

Is the current or the “soon to be available” Bokeh + Bokehjs capable of doing most of what Chaco can achieve? For example:

  • Plot jointly images & scatters
  • Have a scatter/highlight tool to click the scatter
  • Have ProgressBars
  • plot time series
  • have the tools: LineInspector, RangeSelection, RangeOverlay
  • send actions of the tools to the server (typically "click somewhere on the timeseries and save the index (=arrival time))
  • provide toolbars & menus

Thanks a lot in advance,

Cheers from Brussels,

Thomas

To give you an idea of how it currently looks: here are some informations about the software:

General Information

DP is a Python software for Seismological Data processing. It currently relies on the database structure of the Seismology-Gravimetry O.D. from the Royal Observatory of Belgium, but shouldn’t be hard to port to QuakeML or other database structures. It is built upon the Enthought Tool Suite, a state-of-the art suite of excellent tools.

Welcome screen of DP

The Main window of DP loads a world map and super imposes the recent SeisComP3 detections from our local system. This will
be replaced by GEOFON or other sources solutions in the future.

DP has the capability of searching a waveform archive for time windows, being manually input or automatically from an earthquakes database.

SearchForTimeStamp

SearchForEvent

Once searched, traces corresponding to this Search is presented, sorted by distance :

3069

Traces respond to single click events, and open the AnalysisWindow:

AnalysisWindow

Where 3 Components are presented by default, but can be shown separately:

3069-Ana1

This figure also shows the Zoom Tool (the mouse pointer is not visible here, but is a small magnifying glass icon at the bottom right).

Filters and Modules are available here (too):

filters

filters-default

Modules (extensions) can be provided (see [link]). Some modules are built-in, like the Export to PNG function:

export_png

Hi Thomas,

I can give my perspective on some of your questions, hopefully Peter and others can weigh in as well. Just as a heads up, none of the images in the bottom of your email came through for me. Is there another link or page I can go to to see them?

  • Plot jointly images & scatters

Bokeh can currently generate pages with multiple plots, including images and scatters that have linked ranges or other linking. Bokeh can also generate single plots that have multiple types of renderers, for instance an image with scatter data overlaid. We recently created just such a visualization for a different customer, with scatter markers on top of a map image.

  • Have a scatter/highlight tool to click the scatter

Right now we have a box selection tool for scatter plots in bokeh. However, I look forward to adding additional types of selection tools (point, line, polygon, etc) to Bokeh in the near future.

  • Have ProgressBars
  • provide toolbars & menus

This is something Peter might want to weigh in on as well. I doubt that Bokeh itself with have support for these widgets. However, we are just beginning to integrate Bokeh with an "app creation" tool that will be released shortly. This tool greatly simplifies creating and distributing web apps with widgets and plots, and this is where widgets like progress bars, tool bars, menus, etc. will be exposed.

  • plot time series

Bokeh can easily plot time series as line or scatter or bar plots, etc., or more complicated visualizations from products derived from time series (we have a nice candlestick chart example, for instance). Bokeh does currently still need a date time axis, but this will go into the second early release (0.2) which will happen well before February.

  • have the tools: LineInspector, RangeSelection, RangeOverlay

I also expect these tools in the 0.2 release of Bokeh. They are not especially hard, we are all just busy. :slight_smile:

  • send actions of the tools to the server (typically "click somewhere on the timeseries and save the index (=arrival time))

Yes this kind of communication between the web client and backend application is central to Bokeh. Currently the communication is accomplished through a redis-database persistence layer.

Let me know if there are other questions I can address. I can say that I would personally be very interested in collaborating on this sort of project.

Bryan Van de Ven

···

On Aug 26, 2013, at 2:42 PM, Thomas Lecocq <[email protected]> wrote:

Hi all,

Following Peter's presentation at EuroScipy 2013 in Brussels and the potential of Bokeh/JS, I'm really considering rebuilding my seismic analysis (read "earthquake measurement and analysis") software, strip it down to its core for the "server" part and make it available as a webapp for the seismologists.

For this, I could have two students in internship for the period February->June, but before opening the positions, I wanted to have your insights on the following:

Is the current or the "soon to be available" Bokeh + Bokehjs capable of doing most of what Chaco can achieve? For example:
  • Plot jointly images & scatters
  • Have a scatter/highlight tool to click the scatter
  • Have ProgressBars
  • plot time series
  • have the tools: LineInspector, RangeSelection, RangeOverlay
  • send actions of the tools to the server (typically "click somewhere on the timeseries and save the index (=arrival time))
  • provide toolbars & menus

Thanks a lot in advance,

Cheers from Brussels,

Thomas

To give you an idea of how it currently looks: here are some informations about the software:

General Information

DP is a Python software for Seismological Data processing. It currently relies on the database structure of the Seismology-Gravimetry O.D. from the Royal Observatory of Belgium, but shouldn’t be hard to port to QuakeML or other database structures. It is built upon the Enthought Tool Suite, a state-of-the art suite of excellent tools.

The Main window of DP loads a world map and super imposes the recent SeisComP3 detections from our local system. This will be replaced by GEOFON or other sources solutions in the future.

DP has the capability of searching a waveform archive for time windows, being manually input or automatically from an earthquakes database.

Once searched, traces corresponding to this Search is presented, sorted by distance :

Traces respond to single click events, and open the AnalysisWindow:

Where 3 Components are presented by default, but can be shown separately:

This figure also shows the Zoom Tool (the mouse pointer is not visible here, but is a small magnifying glass icon at the bottom right).

Filters and Modules are available here (too):

Modules (extensions) can be provided (see [link]). Some modules are built-in, like the Export to PNG function:

--
You received this message because you are subscribed to the Google Groups "Bokeh Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/c2bda9ad-003e-4a92-b588-04511ce4ef81%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/groups/opt_out.

FYI: I sent this call to potential users:

https://github.com/ThomasLecocq/webDP

Thomas

···

Le lundi 26 août 2013 21:42:09 UTC+2, Thomas Lecocq a écrit :

Hi all,

Following Peter’s presentation at EuroScipy 2013 in Brussels and the potential of Bokeh/JS, I’m really considering rebuilding my seismic analysis (read “earthquake measurement and analysis”) software, strip it down to its core for the “server” part and make it available as a webapp for the seismologists.

For this, I could have two students in internship for the period February->June, but before opening the positions, I wanted to have your insights on the following:

Is the current or the “soon to be available” Bokeh + Bokehjs capable of doing most of what Chaco can achieve? For example:

  • Plot jointly images & scatters
  • Have a scatter/highlight tool to click the scatter
  • Have ProgressBars
  • plot time series
  • have the tools: LineInspector, RangeSelection, RangeOverlay
  • send actions of the tools to the server (typically "click somewhere on the timeseries and save the index (=arrival time))
  • provide toolbars & menus

Thanks a lot in advance,

Cheers from Brussels,

Thomas

To give you an idea of how it currently looks: here are some informations about the software:

General Information

DP is a Python software for Seismological Data processing. It currently relies on the database structure of the Seismology-Gravimetry O.D. from the Royal Observatory of Belgium, but shouldn’t be hard to port to QuakeML or other database structures. It is built upon the Enthought Tool Suite, a state-of-the art suite of excellent tools.

Welcome screen of DP

The Main window of DP loads a world map and super imposes the recent SeisComP3 detections from our local system. This will
be replaced by GEOFON or other sources solutions in the future.

DP has the capability of searching a waveform archive for time windows, being manually input or automatically from an earthquakes database.

SearchForTimeStamp

SearchForEvent

Once searched, traces corresponding to this Search is presented, sorted by distance :

3069

Traces respond to single click events, and open the AnalysisWindow:

AnalysisWindow

Where 3 Components are presented by default, but can be shown separately:

3069-Ana1

This figure also shows the Zoom Tool (the mouse pointer is not visible here, but is a small magnifying glass icon at the bottom right).

Filters and Modules are available here (too):

filters

filters-default

Modules (extensions) can be provided (see [link]). Some modules are built-in, like the Export to PNG function:

export_png