-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ExternalImageSeries #462
base: dev
Are you sure you want to change the base?
Conversation
This has always been annoying. Maybe we should just create a separate data type for external videos |
I am also in favor of this solution and would prefer it. The new data type |
I'm fine with creating a separate type, but I don't fully understand why this would be treated as Events? Isn't this just a regular timeseries (with timestamps, data, unit etc.) where the only difference is that the |
So if a single tiff file is the external image file for 300 timestamps, then That would be fine with me. It uses a bit more space than it needs to, but it is clear and explicit. |
Do we need to replicate the filename 300 times? That's even worse than the current solution. |
need to test creating an empty array in MatNWB |
After discussion with @bendichter, we decided to:
|
@bendichter How are labs using storing time series of multi-channel image data in the NWB file, if at all? According to the Would it be better to have an |
See also #316 where we changed |
We could call it an ExternalImageStack if we want to maintain consistency that a "Series" is always a TimeSeries |
Also worth noting with this change is that all types that extend ImageSeries and use external files will need to have a corresponding new External type. E.g. |
To summarize this issue and PR: Problem: The main use cases of
In the majority of cases, the user wants to store the raw image/video data outside of the NWB file to maximize interoperability with other tools. Some possible solutions: Option 1: Make
Cons:
Option 2: Make
Cons:
Option 3: Make
Cons:
Option 4: Make new
Cons:
|
Labs with multiple channels are storing them as multiple |
After discussion with @oruebel, we have decided to go with Option 1 for now and put the other changes in this PR regarding handling of external files on hold for NWB 2.5.0. This will give us more time to solicit input from relevant parties and decide on the best course of action. Additionally, we had a few more thoughts: Option 4 is not ideal for image data stored in the file because it could result in 100s or 1000s of Option 3 is not ideal because all extensions of |
The
ImageSeries
neurodata_type is a subtype ofTimeSeries
.TimeSeries
requires the datasetdata
; however,ImageSeries
makesdata
optional becauseexternal_file
may be provided in place ofdata
. This breaks the rules of inheritance -- a child must have all required fields of a parent, and this inconsistency creates challenges in NeurodataWithoutBorders/pynwb#1274This PR makes
ImageSeries.data
required and updates the documentation. Ifexternal_file
is provided, thendata
should be set to an empty 3D array.See also discussion here: NeurodataWithoutBorders/pynwb#1220
Seeking your input @oruebel @ajtritt @bendichter