Coder Social home page Coder Social logo

Copying/exporting datasets about h5web HOT 5 CLOSED

silx-kit avatar silx-kit commented on May 23, 2024
Copying/exporting datasets

from h5web.

Comments (5)

axelboc avatar axelboc commented on May 23, 2024

User feedback suggested allowing rows/columns of the Matrix visualization to be selected and copied. Because the grid is virtualized, we can't rely on default text selection and copy; we'd have to provide a specific UI for this and make use of the Clipboard API.

For the UI:

  • We could have a button in the toolbar to copy the whole table, another to copy the current slice for 3D+ datasets, and an input of sorts to enter a range to copy (e.g. 0,0,:,:).
  • We could allow selection of visible rows and columns with click-and-drag -- when a selection is active, we could then show a button in the toolbar to copy the selection (and another button to clear the selection).
  • We could allow copying a single row/column by showing a button in the row/column header cell on hover.
  • ...

from h5web.

axelboc avatar axelboc commented on May 23, 2024

User feedback suggested allowing rows/columns of the Matrix visualization to be selected and copied.

We won't support this behaviour.

However, we should allow users to export data from other visualizations:

  • Line as CSV
  • Heatmap as CSV
  • NxSpectrum as CSV, with custom axis values, and with axis label and plot title as column headers
  • NxImage as CSV -- exact format to be discussed
  • TIFF and NPY formats should also be considered

from h5web.

axelboc avatar axelboc commented on May 23, 2024

We're going to implement TIFF encoding in H5Grove (i.e. in the back-end) and use provider-level feature detection to determine whether to show the export button in the toolbars.

Once we have the feature detection system implemented, we'll be able to do the same for the CSV and NPY exports.

from h5web.

axelboc avatar axelboc commented on May 23, 2024

Now that we have a proof of concept for TIFF export, we know we can do the same with CSV and NPY (and even replace the current CSV export feature on the Matrix vis so it's done server-side). The question is then: should we provide all three exports on all visualizations? Or does TIFF only make sense on Heatmap/NxImage, CSV on Matrix, etc.?

From a UI standpoint, we can merge the export toolbar controls into a single "Export" drop-down to save space. Which means that if we want to display all three exports (TIFF/CSV/NPY) on all visualizations, it's no problem at all.

from h5web.

axelboc avatar axelboc commented on May 23, 2024

As per our discussion:

  • MatrixVis : CSV ☑️ (to be delegated to H5Grove), NPY
  • LineVis : CSV, NPY
  • HeatmapVis : TIFF ✅ , NPY

Additional notes:

  • When dimension sliders are visible, only the current slice is exported, not the entire dataset.
  • NeXus visualizations could provide export either of the signal dataset only, or of the signal and axes combined in the form of an x/y/data scatter format. Until the user need arises for the latter, we will implement only the former.
  • The construction of the export data is to be done server-side like we did with TIFF in #885.
  • Providers must opt in to supporting these export features.

from h5web.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.