Giter VIP home page Giter VIP logo

hdf5_vibez's Issues

Apple M1 Support

Hi,

I've been trying to get this plugin working with Fiji on an M1 MacBook. While Fiji is running natively it seems that there are no native HDF5 libraries available for this plugin. Is there any chance that this will be updated in the future?

Open API

Hi guys,

I know that this project needs serious reworking to become Scifio compatible, but could you please make reading and writing methods from HDF5ImageJ public? Using IJ.run() always shows the image which is pretty annoying in scripts...

Cheers,

Radek

Load hdf5 dataset > 2GB

Dear team,

Could I ask for the support to load dataset larger than 2GB? Because I think that hdf5 is chosen for much larger data, which has performances better than stack tiff.

Thanks!!!

Make it work with IJ2 data structures

It would be great to implement HDF5 as IJ2 plugin so one could work with Datasets directly. This could be implemented quite quickly... Of course SCIFIO would be the next step, but this would require some architecture decisions.

For example, IOService.open(String source) only takes one argument, yet HDF5 requires both filename and dataset name. One could return some kind of lazily-loaded Dataset pointing to separate HDF5 datasets, but yeah... This really needs architecture decisions...

@ctrueden your thoughts on this?

Support for reading from external links

As far as I can tell, HDF5_Vibez does not support reading from external links. I would like to add this functionality. I've forked the repo, will do my best, and submit a pull request when/if I come up with something that works. Any pointers from existing contributors on this matter would be a big help (e.g. which file, which section of which file, would be most appropriate to begin looking at). Some documentation of the issue:

Suppose I have a .h5 file which contains only external links; when I attempt to open such a file in Fiji with File --> import --> hdf5, I see the following:

screen shot 2018-04-11 at 3 05 57 pm

So, HDF5_Vibez knows the external links are there, but does not make them available for reading.
On the other hand, HDF5 compass can traverse the links in the same file no problem:

screen shot 2018-04-11 at 3 07 28 pm

So, I think the file is ok. FYI, I created the file using h5py:

`#!/usr/bin/env python3

-- coding: utf-8 --

import os
import h5py

get all paths, working directory and hdf5 file names

cwd = os.getcwd()
h5_files = os.listdir(cwd)
h5_files.sort()
h5_files = [s for s in h5_files if s.endswith('.h5')]

create container object to write external links to

container_name = 'container.h5'
container = h5py.File(container_name, 'w')

loop through h5py files and add them as external links

for i, h5_file in enumerate(h5_files):
key = 'timepoint{}_extlink.h5'.format(i)
container[key] = h5py.ExternalLink(cwd+'/'+h5_file, '/default')

`

Use case:
I have thousands of separate .h5 files, each a separate time point from the same time series experiment. I don't want to build a new .h5 file, rewriting the separate time points as groups, as this will take forever and the file will be huge. So, creating container files with external links to just the subset of time points that I want, and then using that to access those time points, seems like a crafty solution... but I need to be able to load and view the results.

zooming to selection fails

We are working with highly asymmetric datasets (100 px x 40,000 px). Here an example. Zooming to an arbitrary selection fails.

Image --> Zoom --> To Selection

The action zooms out totally, instead of to the selected region (yellow box in screenshot). Could you please explain how to zoom asymmetrically i.e. with different factors in x and y direction? Thanks.
Screenshot 2019-06-26 at 09 32 09

int16 data sets not read properly

I work for a large microscopy center which is starting to generate data written in HDF5 format (FEI's EMD format). Your HDF5 vibez plugin for Fiji is extremely useful for users who are not able to read the data using any other GUI based software. However, signed integer 16-bit data is not being properly read. It looks like there is an issue between converting from HDF5 int16 and ImageJ's int16 format.

I had a similar issue writing a Jython plugin for Fiji. The solution was to read unsigned and signed data as signed. Then everything worked when creating a ImagePlus.

The issue is probably in this part of the Vibez plugin

As per information from my issue posted to the ImageJ Forum linked above:

short in Java is always signed (-32,768 to 32,767)
a ShortProcessor in ImageJ1 is always unsigned

I am not a Java developer and not setup to compile/test this in ImageJ. Do you have anytime to look into this issue?

I can send a small test H5 file with int16 and uint16 datasets to show the problem. It's easy to create this using the following Python code

import h5py
import numpy as np

int1 = np.linspace(-32768,32767,100,dtype=np.int16)
uint1 = np.linspace(0,65535,100,dtype=np.uint16)

YY,XX = np.meshgrid(int1,int1)
YYu,XXu = np.meshgrid(uint1,uint1)

with h5py.File('integers.h5','w') as f1:
    f1.create_dataset('int16',data=XX.astype(np.int16),compression='gzip')
    f1.create_dataset('uint16',data=XXu.astype(np.uint16),compression='gzip')
    f1.create_dataset('XX',data=XX.astype(np.float32),compression='gzip')
    f1.create_dataset('XXu',data=XXu.astype(np.float32),compression='gzip')

Here is the data read into Fiji using your plugin:
uint16
image

int16
image

PS Thank you very much for all your work on this plugin. Its extremely useful and will see a lot more use as HDF5 data sets become more ubiquitous.

float(), uint8(), ... and object()

Hello,

I'm about to set up a project in Eclipse, that uses scifio and HDF5_Vibez.

It's fine so far, all imports are resolved, the only issues are with float(), uint8(), ... and object() in HDF5_Reader_Vibez, HDF5ImageJ and Vibez_Validate (see attached screenshot of HDF5_Reader_Vibez).

What jar or java files are missing to solve these compilation problems? What needs to be done?

Thanks

Juergen
hdf5_reader_vibez errors

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.