So...with #106 and #107 merged and released, I thought it would be a good idea to revisit this topic. Originally, the idea behind squeezing (among others) was, that many downstream processing algorithms don't squeeze data on their end, which might lead to errors due to dimension missmatches.
That being said, I think there is still a strong case for actually squeezing out singleton dimensions. And with the named axes in, we can do so without getting ourselves in trouble when trying to parse and upload annotations later.
I thought the following could be done:
- Squeeze out (leading?) singleton dimensions and update the
axis_labels.
- In
save_rois, inspect this property and process annotations accordingly. I guess for Points and for Shapes there wouldn't be much of a different, anyway, but for the Labels (arguably the most prominent use case) it would make a big difference.
So...with #106 and #107 merged and released, I thought it would be a good idea to revisit this topic. Originally, the idea behind squeezing (among others) was, that many downstream processing algorithms don't squeeze data on their end, which might lead to errors due to dimension missmatches.
That being said, I think there is still a strong case for actually squeezing out singleton dimensions. And with the named axes in, we can do so without getting ourselves in trouble when trying to parse and upload annotations later.
I thought the following could be done:
axis_labels.save_rois, inspect this property and process annotations accordingly. I guess forPointsand forShapesthere wouldn't be much of a different, anyway, but for theLabels(arguably the most prominent use case) it would make a big difference.