# Overlapping Segmentions Export to NIFTI

**URL:** <https://discourse.slicer.org/t/overlapping-segmentions-export-to-nifti/15773>\
**Category:** Support\
**Created:** [February 1, 2021, 2:09pm UTC](https://discourse.slicer.org/t/overlapping-segmentions-export-to-nifti/15773 "2021-02-01T14:09:29Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![Pete](https://avatars.discourse-cdn.com/v4/letter/p/3ab097/32.png) [@Pete](https://discourse.slicer.org/u/Pete)\
**Post date:** [February 6, 2021, 10:14am UTC](https://discourse.slicer.org/t/overlapping-segmentions-export-to-nifti/15773/13 "2021-02-06T10:14:59Z")

</div>

Great idea, working perfectly now. Thanks so much for your extensive help. In case anyone else wants to do something similar, here is my final code:

```
# *****THE FINAL SCRIPT*****

# Required to have 3 segments - "Mask", "Single", "Multi"

# Save Image data as Image Data.nii.gz

node = slicer.mrmlScene.GetFirstNodeByClass('vtkMRMLScalarVolumeNode')
file_path = "/Users/pete/OneDrive/ImageData.nii.gz"
properties = {'useCompression': 1}; #use compression
slicer.util.saveNode(node, file_path, properties)

# Get segmentation called "Segmentation" and rename to "Single"

segmentationNode = getNode('Segmentation')
segmentationNode.GetName()
segmentationNode.SetName('Single')

# get segment "Single" and export to Single.nii.gz

extension = "nii.gz"
useCompression = "true"
destinationFolder = "/Users/pete/OneDrive"
segmentationNode = getNode('Single')
segmentNames = ["Single"]
segmentIds = vtk.vtkStringArray()
for segmentName in segmentNames:
    segmentId = segmentationNode.GetSegmentation().GetSegmentIdBySegmentName(segmentName)
    segmentIds.InsertNextValue(segmentId)
    slicer.vtkSlicerSegmentationsModuleLogic.ExportSegmentsBinaryLabelmapRepresentationToFiles(destinationFolder, segmentationNode, segmentIds, extension, useCompression)

# Get segmentation called "Single" and rename to "Multi"

segmentationNode = getNode('Single')
segmentationNode.GetName()
segmentationNode.SetName('Multi')

# get segment "Multi" and export to Multi.nii.gz

segmentationNode = getNode('Multi')
segmentNames = ["Multi"]
segmentIds = vtk.vtkStringArray()
for segmentName in segmentNames:
    segmentId = segmentationNode.GetSegmentation().GetSegmentIdBySegmentName(segmentName)
    segmentIds.InsertNextValue(segmentId)
    slicer.vtkSlicerSegmentationsModuleLogic.ExportSegmentsBinaryLabelmapRepresentationToFiles(destinationFolder, segmentationNode, segmentIds, extension, useCompression)

# Get segmentation called "Multi" and rename to "Mask"

segmentationNode = getNode('Multi')
segmentationNode.GetName()
segmentationNode.SetName('Mask')

# get segment "Mask" and export to Mask.nii.gz

segmentationNode = getNode('Mask')
segmentNames = ["Mask"]
segmentIds = vtk.vtkStringArray()
for segmentName in segmentNames:
    segmentId = segmentationNode.GetSegmentation().GetSegmentIdBySegmentName(segmentName)
    segmentIds.InsertNextValue(segmentId)
    slicer.vtkSlicerSegmentationsModuleLogic.ExportSegmentsBinaryLabelmapRepresentationToFiles(destinationFolder, segmentationNode, segmentIds, extension, useCompression)

# Get segmentation called "Mask" and rename to "Segmentation"

segmentationNode = getNode('Mask')
segmentationNode.GetName()
segmentationNode.SetName('Segmentation')
segmentationNode.GetName()
```

---

_[View the full topic](https://discourse.slicer.org/t/overlapping-segmentions-export-to-nifti/15773)._
