StackLayerhas a method
http://bocklab.hhmi.org/h2n5/tile/volumes/raw/%SCALE_DATASET%/0_2/256_26/%AXIS_0%/%AXIS_2%/%AXIS_1%. And we started
h2n5just in its most simple form:
http://localhost:8088/group/dataset/etc/%SCALE_DATASET%/[slicing dimensions]/[tile size]/%AXIS_0%/%AXIS_1%/%AXIS_2%/, permuting the
AXISsubstitution parameter order as necessary for xyz, xzy, etc.
h2n5to show the image data using this URL:
http://127.0.0.1:8088/tile/raw/data/%SCALE_DATASET%/0_1/256_256/%AXIS_0%/%AXIS_1%/%AXIS_2%, but struggle to get the labels shown. With http://127.0.0.1:8088/tile/labels/unique-labels/%SCALE_DATASET%/0_1/256_256/%AXIS_0%/%AXIS_1%/%AXIS_2%`. We seem to get binary data back and the browser complains with code 501 (Data type does not have an image renderer implemented), which sounds promising. We tried to use the Randomised Label Color Map, but this doesn't seem to change anything.
unique-labelsdataset from Paintera is an index of labels, not a label map
devbranch of h2n5 already includes the channel packing
features/image-block-layerCATMAID branch to access the N5 directly.
This should install
conda update -c hanslovsky paintera
paintera-0.8.1. It will also install
paintera-conversion-helper-0.4.0, I made a separate package for that tool for better versioning. I tested very briefly and as far as I can tell, scalar label support works now. Let me know if you encounter any issues.
This is how I created a data set with scalar labels, notice the
paintera-conversion-helper -r -d /home/hanslovskyp/Downloads/sample_A_padded_20160501.hdf,volumes/raw,raw -d /home/hanslovskyp/Downloads/sample_A_padded_20160501.hdf,volumes/labels/neuron_ids,label -o /data/hanslovskyp/sample_A_padded_20160501-bs=64-winner-takes-all-n5-lookup2.n5 -b 64,64,64 -s 2,2,1 2,2,1 2,2,1 2,2,2 2,2,2 2,2,2 --winner-takes-all-downsampling --label-block-lookup-backend-n5=10000
ObjectLabelColorMapshader to shader version 300, making shaders generic/specializable to the datatype of image stacks, and setting the right GL parameters in the image block layer
runserverdoes start a minimal ASGI server as well that uses shared memory (
/dev/shm) for inter-process communication. I typically run in therefore typically as
runserver --noasgiand the deadlocks are gone. In production we use Daphne for our WebSockets/ASGI needs.
websocketHandlersoption when registering the widget using