UML Diagrams for BigDataViewer

I’m currently looking into using and expanding the BigDataViewer with large tile-based multiphoton datasets (>2TB) and am slowly working my way through trying to understand the codebase. Since there are quite a number of wrapping layers involved in accessing and working with the data, UML diagrams or some schematics regarding the data model would be extremely helpful. If such documents already exist, I would be extremely helpful if someone could post them or point me in the right direction :).

ps: I have to say I am extremely impressed with the performance of the bdv in combination with hdf5 files. I recently demoed it by showing a 700GB dataset, streamed via our local network onto my three year old 13" macbook pro. Even the commercial software I’ve tried couldn’t match that.

2 Likes

this could help: http://arxiv.org/pdf/1412.0488v1.pdf

but I’m sure @tpietzsch can help you better

4 Likes

Actually that did help quite a lot, thank you very much. :slight_smile:
I think for all the remaining questions it might make most sense to contact @tpietzsch directly.

@cniedwor I would actually prefer the forum if there is a chance that the remaining questions are relevant to others… Regarding the original question, unfortunately I don’t have UML diagrams etc. BDV developer documentation is very sparse currently (besides the javadoc which is not too bad, I think). Do you have suggestions which parts would be particularly beneficial to have as UML / code examples / etc?

2 Likes

I think the document above helped a great deal making things clearer. There is quite a bit of javadoc, I agree, but actually I already found the naming convention in the code nice enough to tell the story almost on its own. The problem isn’t that there is no documentation or the code is hard to read, it’s just that there is a critical mass of knowledge needed to understand what’s going on and it can be quite challenging to get that without a map. :wink:

The biggest difficulty for me was finding out initially what concept belonged to what term. What is the meaning of “Volatile” (shown in the pdf), what exactly is a “Cell” (became obvious eventually), what is a Setup, what is a Sequence etc…

So in that sense the PDF did a great job explaining the concepts behind it. UML-wise I think the most helpful would have been a diagram showing the different classes and interfaces involved in the path from the raw data (HDF5AccessHack) to the final useable image (CachedCellImg) and possibly a short sentence explaining what each interface or class represents. I think I’m fine with it now, but if you want to do it for the wider community feel free! :slight_smile:

Regarding the other questions, I think it might make most sense to ask them in separate threads.

2 Likes