Ecoinformatics site parent site of Partnership for Biodiversity Informatics site parent site of REAP - Home


 

 

 



O Pe NDAP Discovery And Subsetting

This is version 13. It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]


I have been prototyping a UI for getting OPeNDAP data into Kepler.

My idea was to use a browser to allow the user to navigate to data sets of interest using the OPeNDAP servers web interface. When the user selects a data set by clicking on one of the DAP response types the request is caught and the DDS is rendered as a "selection" tree like one might see in a typical software installer:

Software Installer Snapshot

Where the interface allows the user to select parts of the hierarchy by clicking the selection boxes. Selecting a node selects all of it's children. Expanding a node and selecting some of it's children causes the selection icon for the node to indicate that is partially selected (PartialSelect.gif). So I would sketch the UI like this:

UI Sketch

I built a simple prototype. The browser is pretty limited (it doesn't do javascript or Ajax) but it works. Here is a snapshot of the UI pointed at a collection page of the OPeNDAP test server:

UI Snapshot 1

Clicking on one of the data set links on the left causes the UI to look at the dataset and load it's type hierarchy into the center pane and it's metadata into the left pane:

UI Snapshot 2

And I stopped writing code there because it's clearly going to get a lot more complex pretty quickly and it's time to solicit input. The rest of the idea is that when a user selects a variable by highlighting (single clicking on) the name in the data set tree the appropriate sub-setting interface appears in the Sub-setting Pane. By navigating the data set tree, clicking the check boxes, and highlighting the selected variables the user can build the data request that they want.

I have some questions:

  1. Does this seem like a reasonable design time interface?
  2. Does anyone know of a java library that implements a JTree as the selection tree in the first image? Basically I can see how to implement custom icons and the like in a JTree but I am stuck on how to get the mouse event behavior I want. I imagine that this kind of tree has been implemented in java by someone somewhere. The software installer that I pictured above works like this:
    • Single clicking on a triangle icon toggles expansion/collapse of the associated node.
    • Single clicking the check box of an item toggles it's selection (checked or unchecked)
    • Double clicking the name of a node toggles expansion/collapse of the node.
    • Nodes that are partially selected have the PartialSelect.gif icon

I can see a couple of things to try beyond this:

  1. I could have the browser pane change to a (lazy loading!) Tree hierarchy when the user drops in the URL for a THREDDS catalog. They could then traverse the THREDDS tree and when they get to a leaf the view would switch the view of metadata on the left with the dataset hierarchy in the center pane.
  2. There is a pure java open source browser call Lobo that I may be able to bend to this purpose. Lobo supports both javascript and Ajax - this is important for discovery.
  3. James and I had an interesting conversation about sub-setting OPeNDAP data sets: Every DAP server has a sub-setting tool built into it, accessible via a web browser. Some sites have customized this sub-setting page to work more closely with the data held there. It may be that the smart thing to do is to allow the server to provide the sub-setting interface for the data being served, rather than trying to develop a universal sub-setting interface for the client. To that end a browser like Lobo could be used to embed the rendering of the sub-setting interface in the DAP UI for Kepler. Once the user submits the form to get data, the Kepler UI would intercept the request and use it to configure the actor.

Any input you all care to give would be welcome!

N


Attachments:
PartialSelect.tiff Info on PartialSelect.tiff 1382 bytes
PartialSelect.gif Info on PartialSelect.gif 1382 bytes
menu.jpg Info on menu.jpg 50300 bytes
db2.jpg Info on db2.jpg 176053 bytes
db0.jpg Info on db0.jpg 465287 bytes
db1.jpg Info on db1.jpg 199686 bytes


Go to top   More info...   Attach file...
This particular version was published on 18-Sep-2007 16:19:03 PDT by uid=potter,o=unaffiliated.