mango.io.writeDds

mango.io.writeDds(fileName, dds, melemperfile=256, writehistogram=True)

Writes Dds array data to a specified file/directory.

Parameters:
  • fileName (str) – The netCDF file/directory to which 3D array data is written.
  • dds (mango.Dds) – The data which is to be written to file.
  • melemperfile (int) – Number (approximate) of array elements (mega-elements) per file. Large arrays are split into multiple files. This parameter specifies the number of mega-elements per file. A value of melemperfile=256 implies approximately 256-mega-elements (256*1024*1024 elements) per block-file.
  • writehistogram (bool) – If True, write image histogram data to file as netCDF variable.
Return type:

str

Returns:

Path where the data was written, this is parent directory of of the block files, or just the single netCDF file containing the entire array.

Example:

import mango
import mango.data
import mango.io
import os
import os.path

melemperfile=4
segDds = mango.data.gaussian_noise(shape=(150,400,400), mtype="segmented", mean=128, stdd=16)
segOutFile = mango.io.writeDds("./segmentedGaussianNoise.nc", segDds, melemperfile=melemperfile)
tomDds = mango.data.gaussian_noise(shape=(150,400,400), mtype="tomo", mean=32000, stdd=4000)
tomOutFile = mango.io.writeDds("./tomoGaussianNoise.nc", tomDds, melemperfile=melemperfile)
lblDds = mango.data.gaussian_noise(shape=(150,400,400), mtype="labels", mean=128000, stdd=8000)
lblOutFile = mango.io.writeDds("./labelsGaussianNoise.nc", lblDds, melemperfile=melemperfile)

def getFileAndSizeListString(dirName):
    strList = []
    fileNameList = os.listdir(dirName)
    fileNameList.sort()
    for fileName in fileNameList:
       fileName = os.path.join(dirName, fileName)
       strList.append("%10d %50s" % (os.path.getsize(fileName), fileName))
    return "\n".join(strList)


print("segOutFile=%s:\n%s" % (segOutFile, getFileAndSizeListString(segOutFile)))
print("\ntomOutFile=%s:\n%s" % (tomOutFile, getFileAndSizeListString(tomOutFile)))
print("\nlblOutFile=%s:\n%s" % (lblOutFile, getFileAndSizeListString(lblOutFile)))

And the output is:

segOutFile=./segmentedGaussianNoise_nc:
   4480736       ./segmentedGaussianNoise_nc/block00000000.nc
   4480588       ./segmentedGaussianNoise_nc/block00000001.nc
   4480588       ./segmentedGaussianNoise_nc/block00000002.nc
   4480588       ./segmentedGaussianNoise_nc/block00000003.nc
   4480588       ./segmentedGaussianNoise_nc/block00000004.nc
   1600588       ./segmentedGaussianNoise_nc/block00000005.nc

tomOutFile=./tomoGaussianNoise_nc:
   8960704            ./tomoGaussianNoise_nc/block00000000.nc
   8960568            ./tomoGaussianNoise_nc/block00000001.nc
   8960568            ./tomoGaussianNoise_nc/block00000002.nc
   8960568            ./tomoGaussianNoise_nc/block00000003.nc
   8960568            ./tomoGaussianNoise_nc/block00000004.nc
   3200568            ./tomoGaussianNoise_nc/block00000005.nc

lblOutFile=./labelsGaussianNoise_nc:
  17920708          ./labelsGaussianNoise_nc/block00000000.nc
  17920572          ./labelsGaussianNoise_nc/block00000001.nc
  17920572          ./labelsGaussianNoise_nc/block00000002.nc
  17920572          ./labelsGaussianNoise_nc/block00000003.nc
  17920572          ./labelsGaussianNoise_nc/block00000004.nc
   6400572          ./labelsGaussianNoise_nc/block00000005.nc

Previous topic

mango.io.readDds

Next topic

mango.io.uncompress

This Page