Skip to content

Python script for vertical integration_126025882

nxi edited this page Apr 9, 2015 · 1 revision

Gumtree : Python script for vertical integration

Created by Tony Lam, last modified on Jul 28, 2009
    from au.gov.ansto.bragg.datastructures.nexus import NexusUtils
    from au.gov.ansto.bragg.datastructures.core import StaticDefinition
    from au.gov.ansto.bragg.datastructures.core.plot import PlotFactory
    from org.gumtree.data.gdm.core import Factory

    # Get data
    entry = NexusUtils.getNexusEntryList(input.getRootGroup()).get(0)
    data = NexusUtils.getNexusData(entry)
    plot = PlotFactory.copyToPlot(data, data.getShortName(), StaticDefinition.getDataDimensionType('mapset'));
    
    # vertical integration
    verticalIntegration = plot.integrateDimension(plot.getRank() - 2)
    verticalIntegration.addStringAttribute("NX_class", "NXdata")
    
    # wrap result as dataset
    output = Factory.createDataset()
    output.getRootGroup().addStringAttribute("NX_class", "NXroot")
    output.getRootGroup().addStringAttribute("NeXus_version", "4.1.0")
    entry = NexusUtils.createNexusEntry(output.getRootGroup(), "entry1")
    entry.addSubgroup(verticalIntegration)
    verticalIntegration.removeAttribute(verticalIntegration.findAttribute("dataStructureType"))
    return output


from au.gov.ansto.bragg.datastructures.core import StaticDefinition
from au.gov.ansto.bragg.nbi.ui.tasks import DatasetPlotTask
from au.gov.ansto.bragg.nbi.ui.tasks import NeXusReaderTask
from au.gov.ansto.bragg.nbi.ui.tasks import ScriptablePythonTask
from org.gumtree.workflow.ui.util import WorkflowFactory

# Create workflow
workflow = WorkflowFactory.createEmptyWorkflow()

# Read data
readerTask = NeXusReaderTask()
readerTask.setFileLocation("../QKK0004119.nx.hdf")
workflow.addTask(readerTask)

# Integrate
task = ScriptablePythonTask()
task.setScriptExecutor(__executor__)
task.setFunctionName(run.func_name)
workflow.addTask(task)

# Plot
plotTask = DatasetPlotTask()
plotTask.setType(StaticDefinition.getDataDimensionType('patternset'))
workflow.addTask(plotTask)

# Run
workflow.run()
result = workflow.getRunResults()
print result.get(0)
Document generated by Confluence on Apr 01, 2015 00:11
Clone this wiki locally