Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Next-generation GUI #225
The previous GUI is useful, and only works in, the jupyter-notebook context. The selected item becomes available to the user, so that they can continue their analysis in normal code.
A new GUI should be based on panel or bokeh, so that it can be run within a notebook or stand-alone with the same experience. For the stand-alone version to be useful, it must be able to interact with the data to some degree, rather than just listing datasets and entry details.
Here we want to sketch out ideas for a data application on Intake, which can be stand-alone.
Initially, this can be the same as the previous version, but with the following addition:
This extra information can be a box below the main area, which can be similar to what we have now.
Currently, the file browser only navigates the local filesystem, but we have the ability to view any. The "load URL" box shows that we can actually load from any place. Would be nice to be able to import catalogues from wherever by browsing.
Many online platforms in this space have a "create data source" wizard, in which you can select data type, select files/query, and for each choose from appropriate options to define a file source, insert it into the given catalogue and save the result.
Using xarray.hvplot, render map of the data and if there are additional dimensions to the data, display widgets to select indices for those dimensions.
Does that sound reasonable?
This is definitely in-scope for the interface that I am imagining here, but it could be a specialised interface for netCDF data (taking advantage of labels and variable names), but I had originally imagined all being unified in the same interface. Each data type (xarray, dataframe...) would present a different graphical "explore" panel, but the selection, navigating and searching of catalogues and display of basic entry details should be the same for all types. The GSoC project could be to make the one panel type that you care about.
An open question here would be compute resources, since the data could be very large. Anything we're thinking of can run on Dask, of course (with imaging via datashader), but we will probably have to assume that there is already a correctly-configures Client around to take the load.
@bryevdv , how far along are you in thinking about a strategy for implementing my three phases, above?
referenced this issue
Feb 11, 2019
@rsignell-usgs fyi: panel's layout system is improving rapidly and will have auto-sizing and spacers in the next release, much like a desktop widget-set. That should be enough to make something nice, even for someone who doesn't wish to make their own CSS.
Possible future direction, just a thought.
Given that we are/will be able to browse datasets at will, and create arbitrary plots from them, it may make sense to come up with a prescription for a "layout" (or "dashboard") which is basically some arrangement of these visuals or tables from one or more sources, where we can surface some of the control options to the viewer.
(together with the "import wizard", this would make for a complete data app - except for computational pipelines)