Skip to content

Commit ea85009

Browse files
committed
feat: example loading nrrd
1 parent 876d6cc commit ea85009

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

examples/load_nrrd.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import argparse
2+
import webbrowser
3+
import neuroglancer
4+
import neuroglancer.cli
5+
import nrrd
6+
from pathlib import Path
7+
8+
HERE = Path(__file__).parent
9+
NRRD_FILE_PATH = HERE / "volume1.nrrd"
10+
11+
12+
def add_image_layer(state):
13+
readdata, header = nrrd.read(NRRD_FILE_PATH)
14+
scales = [header["space directions"][i][i] for i in range(3)]
15+
dimensions = neuroglancer.CoordinateSpace(
16+
names=["x", "y", "z"], units="um", scales=scales
17+
)
18+
data = readdata
19+
local_volume = neuroglancer.LocalVolume(data, dimensions)
20+
state.layers.append(
21+
name="image",
22+
layer=neuroglancer.ImageLayer(
23+
source=local_volume,
24+
volume_rendering_mode="ON",
25+
volume_rendering_depth_samples=400,
26+
),
27+
shader="""
28+
#uicontrol invlerp normalized
29+
void main() {
30+
float val = normalized();
31+
emitRGBA(vec4(val, val, val, val));
32+
}
33+
""",
34+
)
35+
state.layout = "3d"
36+
37+
38+
def launch_nglancer():
39+
ap = argparse.ArgumentParser()
40+
neuroglancer.cli.add_server_arguments(ap)
41+
args = ap.parse_args()
42+
neuroglancer.cli.handle_server_arguments(args)
43+
viewer = neuroglancer.Viewer()
44+
return viewer
45+
46+
47+
def main():
48+
viewer = launch_nglancer()
49+
with viewer.txn() as s:
50+
add_image_layer(s)
51+
webbrowser.open_new(viewer.get_viewer_url())
52+
53+
54+
if __name__ == "__main__":
55+
main()

0 commit comments

Comments
 (0)