-
Notifications
You must be signed in to change notification settings - Fork 7
Home
Upcoming HI (neutral Hydrogen) surveys will deliver large datasets, and automated processing using the full 3-D information (two positional dimensions and one spectral dimension) to find and characterize HI objects is imperative. In this context, visualization is an essential tool for enabling qualitative and quantitative human control on an automated source finding and analysis pipeline. Visual Analytics, the combination of automated data processing and human reasoning, creativity and intuition, supported by interactive visualization, enables flexible and fast interaction with the 3-D data, helping the astronomer to deal with the analysis of complex sources. 3-D visualization, coupled to modeling, provides additional capabilities helping the discovery and analysis of subtle structures in the 3-D domain.
* [x] 1) proper visualization of astronomical data cubes: using data astronomical data formats, such as FITS, and astronomical world coordinates system (WCS); * [ ] 2) Quantification: visualization of the beam, generation of Histogram, flux density profiles, moment maps and position-velocity diagrams, statistics linked with the 3-D view; * [x] 3) enabling interactive smoothing in all three dimensions; * [ ] 4) interactive HI data modeling coupled to visualization; * [ ] 5) introduction of the SAMP protocol to enable interoperability with Topcat, and other VO tools and catalogs.Check also: https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerAstro http://arxiv.org/abs/1505.06976
* [x] FITS reader and AstroVolume done; * [x] WCS included in AstroVolume; * [x] Added AstroLabelMapVolume (WCS compatible); * [x] Generalization of qSlicerUnits; * [x] Slicer dataProbe moduile overrided with AstroDataProbe one; * [x] First desing of the AstroVolume interface done; * [x] Added WCS axis in the 2-D views; * [x] Customization of 2-D and 3-D Views; * [x] Welcoming to SlicerAstro and AstroSampleData modules implemented; * [x] Done! * [ ] Beam; * [ ] Histogram; * [ ] flux density profiles; * [ ] moment maps; * [ ] position-velocity diagrams; * [ ] statistics; * [ ] masking volumes with segmentations; * [x] module created; * [x] interface designed; * [x] Logic methods implemented on CPU (OpenMP); * [x] Logic methods implemented on GPU (OpenGL); * [x] Done! * [x] implementing CloudLasso (3-D Lasso) effect in the segmentation editor; * [x] implementing interface for easy conversion of AstroLabelMapVolume to/from SegmentationNode; * [ ] adding tilted-ring model routines (e.g.: 3DBarolo) (**currently working**); * [ ] visualization: implement 3-D Views link; * [ ] implementing SAMP protocol in SlicerAstro; * [ ] skill to overlay observations at different wavelength (i.e. different WCS and gridding); * at the moment datacubes NAXIS>3 not supported (NAXIS=4 and NAXIS4=1 -> NAXIS=3). * In Slicer is possible to overley two datacube in the 2-D Views. However, at the moment, SlicerAstro does not perform any regridding and/or reprojection operations. This means that, at the moment, the user should take care to load datacubes with same gridding and and same WCS if she/he desires to overlay them on the 2-D Views. * at the moment the SlicerAstro is not aware of the CELLSCAL keyword. * 3-DSlicer, at the moment, uses Qt4.8.5. For example, using last versions of Ubuntu, it may happen to spot odd behaviour for the popup menus. This will be solved by the upgrade of 3-DSlicer to Qt5 (see https://www.slicer.org/slicerWiki/index.php/Documentation/Labs/Qt5).SlicerAstro is an official 3-DSlicer extension. Please, download 3-DSlicer nightly build:
http://download.slicer.org/donwload SlicerAstro using the 3-DSlicer extension manager tool (available for Linux and MAC): http://wiki.slicer.org/slicerWiki/index.php/Documentation/Nightly/SlicerApplication/ExtensionsManager
After the installation, please configure the settings with the following instruction (to open the setting interface, you may press ctrl+2):
- Volume Rendering: setup if the default rendering pipeline runs on CPU or GPU (and the amount of your DRAM).
- Modules: A) toggle command-line plugins under the line Skip loading of any; B) Remove all the remaining medical modules by untoggling all the modules which are not included in the following list: Annotations, AstroDataProbe, AstroDataSample, AstroVolume, Cameras, Colors, Data, DataProbe, DataStore, Markups, Reformat, Scene Views, Screen Capture, Segment Editor, Segmentations, Smooth Volume, Subject Hierarchy, Tables, Transforms, Units, Volume Rendering, Volumes, Welcome to Slicer, Welcome to SlicerAstro, Smooth Volume.
- Set the default startup module: Welcome to SlicerAstro.
For general information about 3-DSlicer and tutorials we refer to
- http://www.slicer.org/
- http://slicer.org/slicerWiki/index.php/Main_Page
- http://slicer.org/slicerWiki/index.php/Documentation/Nightly/Training
For information about the GUI and the navigation, we refer to the Slicer documentation:
- http://slicer.org/slicerWiki/index.php/Documentation/Nightly/SlicerApplication/MainApplicationGUI
- http://www.na-mic.org/Wiki/images/7/71/3DDataLoadingandVisualization_SoniaPujol_slicer4.4.pdf
- and Welcome module (see the picture below)
Markups and crosshair are also very useful tools. Please, check the following links:
- http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/SlicerApplication/MouseandKeyboardShortcuts
- http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Markups

Check https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/SlicerAstro
It is a very useful util to access run-time the Slicer classes (e.g. the data of the fits file are stored in the AstroVolume class). Python script can also be runned typing on termianl Slicer --python ...
See:
- https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Python_scripting
- http://www.slicer.org/slicerWiki/images/d/d7/Slicer4_ProgrammingTutorial_SPujol-SPieper_slicer4.4.pdf

- SmoothRenderSaveVideos.py:
slicer.util.loadVolume("/full_path/WEIN069.fits",{"center":True})
mw = slicer.util.mainWindow()
ms = mw.moduleSelector()
# Smooth the datacube
ms.selectModule('AstroSmoothing')
smowidget = slicer.modules.astrosmoothing.widgetRepresentation()
smomrmlpara = smowidget.mrmlAstroSmoothingParametersNode()
smomrmlpara.SetMode("Manual")
# only if a GPU is present:
#smomrmlpara.SetHardware(1)
smowidget.onApply()
ms.selectModule('AstroVolume')
# Setting maximum quality for the rendering
astrovolumewidget = slicer.modules.astrovolume.widgetRepresentation()
astrovolumewidget.onCurrentQualityControlChanged(1)
volumes = slicer.mrmlScene.GetNodesByClass("vtkMRMLAstroVolumeNode")
volumefiltered = volumes.GetItemAsObject(1)
smomrmlpara.SetInputVolumeNodeID(volumefiltered.GetID())
astrovolumewidget.onCurrentQualityControlChanged(1)
# Create videos
ms.selectModule('ScreenCapture')
screencapturewidget = slicer.modules.screencapture.widgetRepresentation()
instance = screencapturewidget.self()
viewNode = slicer.util.getNode('vtkMRMLViewNode1')
instance.viewNodeSelector.setCurrentNode(viewNode)
instance.numberOfStepsSliderWidget.setValue(360)
instance.videoExportCheckBox.setChecked(1)
instance.videoFormatWidget.setCurrentIndex(1)
instance.videoFileNameWidget.setText("WEIN069.mp4")
instance.videoLengthSliderWidget.setValue(6)
instance.onCaptureButton()
viewNode = slicer.util.getNode('vtkMRMLViewNode2')
instance.viewNodeSelector.setCurrentNode(viewNode)
instance.viewNodeSelector.setCurrentNode(viewNode)
instance.numberOfStepsSliderWidget.setValue(360)
instance.videoExportCheckBox.setChecked(1)
instance.videoFormatWidget.setCurrentIndex(1)
instance.videoFileNameWidget.setText("WEIN069_smoothed.mp4")
instance.videoLengthSliderWidget.setValue(6)
instance.onCaptureButton()run as: ./Slicer --python-script SmoothRenderSaveVideos.py
Quick Links: Home • Download • SlicerAstro Roadmap • Tutorial • 3DSlicer User Manual • SlicerAstro User Manual • Python Interactor • Developer Manual
![]()