def getReferenceDataMOSFLMNewmat(self): xsDataMOSFLMNewmat = XSDataMOSFLMNewmat() XSDataMatrixDoubleA = XSDataMatrixDouble() XSDataMatrixDoubleA.setM11(-0.00826416) XSDataMatrixDoubleA.setM12(0.00885073) XSDataMatrixDoubleA.setM13(0.00937013) XSDataMatrixDoubleA.setM21(0.00126554) XSDataMatrixDoubleA.setM22(0.01251971) XSDataMatrixDoubleA.setM23(-0.00845341) XSDataMatrixDoubleA.setM31(-0.01484956) XSDataMatrixDoubleA.setM32(-0.00385867) XSDataMatrixDoubleA.setM33(-0.00593515) xsDataMOSFLMNewmat.setAMatrix(XSDataMatrixDoubleA) xsDataMOSFLMMissettingsAngles = XSDataMOSFLMMissettingsAngles() xsDataMOSFLMMissettingsAngles.setPhix(XSDataAngle(1.000)) xsDataMOSFLMMissettingsAngles.setPhiy(XSDataAngle(2.000)) xsDataMOSFLMMissettingsAngles.setPhiz(XSDataAngle(3.000)) xsDataMOSFLMNewmat.setMissettingAngles(xsDataMOSFLMMissettingsAngles) XSDataMatrixDoubleU = XSDataMatrixDouble() XSDataMatrixDoubleU.setM11(-0.4849475) XSDataMatrixDoubleU.setM12(0.5598049) XSDataMatrixDoubleU.setM13(0.6718960) XSDataMatrixDoubleU.setM21(0.0742629) XSDataMatrixDoubleU.setM22(0.7918670) XSDataMatrixDoubleU.setM23(-0.6061614) XSDataMatrixDoubleU.setM31(-0.8713845) XSDataMatrixDoubleU.setM32(-0.2440595) XSDataMatrixDoubleU.setM33(-0.4255866) xsDataMOSFLMNewmat.setUMatrix(XSDataMatrixDoubleU) xsDataCellRefined = XSDataCell() xsDataCellRefined.setLength_a(XSDataLength(54.8079)) xsDataCellRefined.setLength_b(XSDataLength(59.0751)) xsDataCellRefined.setLength_c(XSDataLength(66.9736)) xsDataCellRefined.setAngle_alpha(XSDataAngle(91.0000)) xsDataCellRefined.setAngle_beta(XSDataAngle(92.0000)) xsDataCellRefined.setAngle_gamma(XSDataAngle(93.0000)) xsDataMOSFLMNewmat.setRefinedCell(xsDataCellRefined) return xsDataMOSFLMNewmat
def getDataMOSFLMNewmat(self, _strNewmatFileName=None): self.DEBUG("EDPluginMOSFLMv10.getDataMOSFLMNewmat") xsDataMOSFLMNewmat = None strNewmatFileName = None listOfListOfFloat = [] if (_strNewmatFileName == None): strNewmatFileName = self.getNewmatFileName() else: strNewmatFileName = _strNewmatFileName strNewmat = None try: strNewmat = self.readProcessFile(strNewmatFileName) except: strError = self.readProcessErrorLogFile() if (strError is not None) and (strError != ""): strErrorMessage = "EDPluginMOSFLMv10.getDataMOSFLMNewmat: %s : error reading newmat file : %s" % \ (self.getClassName(), strError) self.error(strErrorMessage) self.addErrorMessage(strErrorMessage) self.setFailure() else: strErrorMessage = "EDPluginMOSFLMv10.getDataMOSFLMNewmat : Cannot read MOSFLM NEWMAT file : " + strNewmatFileName self.error(strErrorMessage) self.addErrorMessage(strErrorMessage) self.setFailure() #print strNewmat if (strNewmat is not None): listLine = strNewmat.split("\n") # Convert into list of lists of float for strLine in listLine: if not strLine.startswith("SYMM"): listOfListOfFloat.append(self.splitStringIntoListOfFloats(strLine)) # Fill in the data xsDataMOSFLMNewmat = XSDataMOSFLMNewmat() XSDataMatrixDoubleA = XSDataMatrixDouble() XSDataMatrixDoubleA.setM11(listOfListOfFloat[0][0]) XSDataMatrixDoubleA.setM12(listOfListOfFloat[0][1]) XSDataMatrixDoubleA.setM13(listOfListOfFloat[0][2]) XSDataMatrixDoubleA.setM21(listOfListOfFloat[1][0]) XSDataMatrixDoubleA.setM22(listOfListOfFloat[1][1]) XSDataMatrixDoubleA.setM23(listOfListOfFloat[1][2]) XSDataMatrixDoubleA.setM31(listOfListOfFloat[2][0]) XSDataMatrixDoubleA.setM32(listOfListOfFloat[2][1]) XSDataMatrixDoubleA.setM33(listOfListOfFloat[2][2]) xsDataMOSFLMNewmat.setAMatrix(XSDataMatrixDoubleA) xsDataMOSFLMMissettingsAngles = XSDataMOSFLMMissettingsAngles() xsDataMOSFLMMissettingsAngles.setPhix(XSDataAngle(listOfListOfFloat[3][0])) xsDataMOSFLMMissettingsAngles.setPhiy(XSDataAngle(listOfListOfFloat[3][1])) xsDataMOSFLMMissettingsAngles.setPhiz(XSDataAngle(listOfListOfFloat[3][2])) xsDataMOSFLMNewmat.setMissettingAngles(xsDataMOSFLMMissettingsAngles) XSDataMatrixDoubleU = XSDataMatrixDouble() XSDataMatrixDoubleU.setM11(listOfListOfFloat[4][0]) XSDataMatrixDoubleU.setM12(listOfListOfFloat[4][1]) XSDataMatrixDoubleU.setM13(listOfListOfFloat[4][2]) XSDataMatrixDoubleU.setM21(listOfListOfFloat[5][0]) XSDataMatrixDoubleU.setM22(listOfListOfFloat[5][1]) XSDataMatrixDoubleU.setM23(listOfListOfFloat[5][2]) XSDataMatrixDoubleU.setM31(listOfListOfFloat[6][0]) XSDataMatrixDoubleU.setM32(listOfListOfFloat[6][1]) XSDataMatrixDoubleU.setM33(listOfListOfFloat[6][2]) xsDataMOSFLMNewmat.setUMatrix(XSDataMatrixDoubleU) xsDataCellRefined = XSDataCell() xsDataCellRefined.setLength_a(XSDataLength(listOfListOfFloat[7][0])) xsDataCellRefined.setLength_b(XSDataLength(listOfListOfFloat[7][1])) xsDataCellRefined.setLength_c(XSDataLength(listOfListOfFloat[7][2])) xsDataCellRefined.setAngle_alpha(XSDataAngle(listOfListOfFloat[7][3])) xsDataCellRefined.setAngle_beta(XSDataAngle(listOfListOfFloat[7][4])) xsDataCellRefined.setAngle_gamma(XSDataAngle(listOfListOfFloat[7][5])) xsDataMOSFLMNewmat.setRefinedCell(xsDataCellRefined) return xsDataMOSFLMNewmat
def generateXSDataMOSFLMInputGeneratePrediction( xsDataGeneratePredictionInput): """ Translation from XSDataGeneratePredictionInput to XSDataMOSFLMInputGeneratePrediction. """ EDVerbose.DEBUG( "EDHandlerXSDataMOSFLMv10.generateXSDataMOSFLMInputGeneratePrediction" ) EDFactoryPluginStatic.loadModule("XSDataMOSFLMv10") from XSDataMOSFLMv10 import XSDataMOSFLMBeamPosition from XSDataMOSFLMv10 import XSDataMOSFLMImage from XSDataMOSFLMv10 import XSDataMOSFLMNewmat from XSDataMOSFLMv10 import XSDataMOSFLMMissettingsAngles from XSDataMOSFLMv10 import XSDataMOSFLMInputGeneratePrediction xsDataIndexingSolutionSelected = xsDataGeneratePredictionInput.getSelectedIndexingSolution( ) xsDataCollection = xsDataGeneratePredictionInput.getDataCollection() xsDataSubWedge = xsDataCollection.getSubWedge()[0] xsDataImageList = xsDataSubWedge.getImage() xsDataImageFirst = xsDataImageList[0] xsDataCrystal = xsDataIndexingSolutionSelected.getCrystal() xsDataOrientation = xsDataIndexingSolutionSelected.getOrientation() xsDataExperimentalCondition = xsDataIndexingSolutionSelected.getExperimentalConditionRefined( ) xsDataDetector = xsDataExperimentalCondition.getDetector() xsDataBeam = xsDataExperimentalCondition.getBeam() xsDataMatrixA = xsDataOrientation.getMatrixA() xsDataMatrixU = xsDataOrientation.getMatrixU() xsDataCell = xsDataCrystal.getCell() xsDataMOSFLMInputGeneratePrediction = XSDataMOSFLMInputGeneratePrediction( ) xsDataMOSFLMNewmat = XSDataMOSFLMNewmat() xsDataMOSFLMNewmat.setRefinedCell(xsDataCell) xsDataMOSFLMNewmat.setAMatrix(xsDataMatrixA) xsDataMOSFLMNewmat.setUMatrix(xsDataMatrixU) xsDataMOSFLMInputGeneratePrediction.setMatrix(xsDataMOSFLMNewmat) xsDataMOSFLMMissettingsAngles = XSDataMOSFLMMissettingsAngles() xsDataMOSFLMMissettingsAngles.setPhix(XSDataAngle(0.0)) xsDataMOSFLMMissettingsAngles.setPhiy(XSDataAngle(0.0)) xsDataMOSFLMMissettingsAngles.setPhiz(XSDataAngle(0.0)) xsDataMOSFLMNewmat.setMissettingAngles(xsDataMOSFLMMissettingsAngles) xsDataMOSFLMBeamPosition = XSDataMOSFLMBeamPosition() xsDataMOSFLMBeamPosition.setX(xsDataDetector.getBeamPositionX()) xsDataMOSFLMBeamPosition.setY(xsDataDetector.getBeamPositionY()) xsDataMOSFLMInputGeneratePrediction.setBeam(xsDataMOSFLMBeamPosition) xsDataMOSFLMInputGeneratePrediction.setMosaicity( xsDataCrystal.getMosaicity()) xsDataMOSFLMInputGeneratePrediction.setSymmetry( xsDataCrystal.getSpaceGroup().getName()) strPathFirst = xsDataImageFirst.getPath().getValue() strDirectoryFirst = os.path.dirname(strPathFirst) strFilenameFirst = os.path.basename(strPathFirst) xsDataMOSFLMInputGeneratePrediction.setWavelength( xsDataBeam.getWavelength()) xsDataMOSFLMInputGeneratePrediction.setDistance( xsDataDetector.getDistance()) xsDataMOSFLMInputGeneratePrediction.setDirectory( XSDataString(strDirectoryFirst)) xsDataMOSFLMDetector = EDHandlerXSDataMOSFLMv10.getXSDataMOSFLMDetector( xsDataDetector) xsDataMOSFLMInputGeneratePrediction.setDetector(xsDataMOSFLMDetector) # The MOSFLM plugin can only handle one image xsDataImage = xsDataSubWedge.getImage()[0] xsDataGoniostat = xsDataSubWedge.getExperimentalCondition( ).getGoniostat() iImageNumber = xsDataImage.getNumber().getValue() if xsDataDetector.type.value == "eiger2_16m": strMOSFLMTemplate = EDUtilsImage.getH5MasterTemplate( strFilenameFirst, iImageNumber) else: strMOSFLMTemplate = EDUtilsImage.getTemplate(strFilenameFirst, "#") xsDataMOSFLMInputGeneratePrediction.setTemplate( XSDataString(strMOSFLMTemplate)) xsDataMOSFLMImage = XSDataMOSFLMImage() xsDataMOSFLMImage.setNumber(XSDataInteger(iImageNumber)) fOscillationStart = xsDataGoniostat.getRotationAxisStart().getValue() fOscillationRange = xsDataGoniostat.getOscillationWidth().getValue() xsDataMOSFLMImage.setRotationAxisStart(XSDataAngle(fOscillationStart)) xsDataMOSFLMImage.setRotationAxisEnd( XSDataAngle(fOscillationStart + fOscillationRange)) xsDataMOSFLMInputGeneratePrediction.setImage(xsDataMOSFLMImage) return xsDataMOSFLMInputGeneratePrediction
def getDataMOSFLMNewmat(self, _strNewmatFileName=None): self.DEBUG("EDPluginMOSFLMv10.getDataMOSFLMNewmat") xsDataMOSFLMNewmat = None strNewmatFileName = None listOfListOfFloat = [] if (_strNewmatFileName == None): strNewmatFileName = self.getNewmatFileName() else: strNewmatFileName = _strNewmatFileName strNewmat = None try: strNewmat = self.readProcessFile(strNewmatFileName) except: strError = self.readProcessErrorLogFile() if (strError is not None) and (strError != ""): strErrorMessage = "EDPluginMOSFLMv10.getDataMOSFLMNewmat: %s : error reading newmat file : %s" % \ (self.getClassName(), strError) self.error(strErrorMessage) self.addErrorMessage(strErrorMessage) self.setFailure() else: strErrorMessage = "EDPluginMOSFLMv10.getDataMOSFLMNewmat : Cannot read MOSFLM NEWMAT file : " + strNewmatFileName self.error(strErrorMessage) self.addErrorMessage(strErrorMessage) self.setFailure() # print strNewmat if (strNewmat is not None): listLine = strNewmat.split("\n") # Convert into list of lists of float for strLine in listLine: if not strLine.startswith("SYMM"): listOfListOfFloat.append( self.splitStringIntoListOfFloats(strLine)) # Fill in the data xsDataMOSFLMNewmat = XSDataMOSFLMNewmat() XSDataMatrixDoubleA = XSDataMatrixDouble() XSDataMatrixDoubleA.setM11(listOfListOfFloat[0][0]) XSDataMatrixDoubleA.setM12(listOfListOfFloat[0][1]) XSDataMatrixDoubleA.setM13(listOfListOfFloat[0][2]) XSDataMatrixDoubleA.setM21(listOfListOfFloat[1][0]) XSDataMatrixDoubleA.setM22(listOfListOfFloat[1][1]) XSDataMatrixDoubleA.setM23(listOfListOfFloat[1][2]) XSDataMatrixDoubleA.setM31(listOfListOfFloat[2][0]) XSDataMatrixDoubleA.setM32(listOfListOfFloat[2][1]) XSDataMatrixDoubleA.setM33(listOfListOfFloat[2][2]) xsDataMOSFLMNewmat.setAMatrix(XSDataMatrixDoubleA) xsDataMOSFLMMissettingsAngles = XSDataMOSFLMMissettingsAngles() xsDataMOSFLMMissettingsAngles.setPhix( XSDataAngle(listOfListOfFloat[3][0])) xsDataMOSFLMMissettingsAngles.setPhiy( XSDataAngle(listOfListOfFloat[3][1])) xsDataMOSFLMMissettingsAngles.setPhiz( XSDataAngle(listOfListOfFloat[3][2])) xsDataMOSFLMNewmat.setMissettingAngles( xsDataMOSFLMMissettingsAngles) XSDataMatrixDoubleU = XSDataMatrixDouble() XSDataMatrixDoubleU.setM11(listOfListOfFloat[4][0]) XSDataMatrixDoubleU.setM12(listOfListOfFloat[4][1]) XSDataMatrixDoubleU.setM13(listOfListOfFloat[4][2]) XSDataMatrixDoubleU.setM21(listOfListOfFloat[5][0]) XSDataMatrixDoubleU.setM22(listOfListOfFloat[5][1]) XSDataMatrixDoubleU.setM23(listOfListOfFloat[5][2]) XSDataMatrixDoubleU.setM31(listOfListOfFloat[6][0]) XSDataMatrixDoubleU.setM32(listOfListOfFloat[6][1]) XSDataMatrixDoubleU.setM33(listOfListOfFloat[6][2]) xsDataMOSFLMNewmat.setUMatrix(XSDataMatrixDoubleU) xsDataCellRefined = XSDataCell() xsDataCellRefined.setLength_a(XSDataLength( listOfListOfFloat[7][0])) xsDataCellRefined.setLength_b(XSDataLength( listOfListOfFloat[7][1])) xsDataCellRefined.setLength_c(XSDataLength( listOfListOfFloat[7][2])) xsDataCellRefined.setAngle_alpha( XSDataAngle(listOfListOfFloat[7][3])) xsDataCellRefined.setAngle_beta( XSDataAngle(listOfListOfFloat[7][4])) xsDataCellRefined.setAngle_gamma( XSDataAngle(listOfListOfFloat[7][5])) xsDataMOSFLMNewmat.setRefinedCell(xsDataCellRefined) return xsDataMOSFLMNewmat
def generateXSDataMOSFLMInputGeneratePrediction(xsDataGeneratePredictionInput): """ Translation from XSDataGeneratePredictionInput to XSDataMOSFLMInputGeneratePrediction. """ EDVerbose.DEBUG("EDHandlerXSDataMOSFLMv10.generateXSDataMOSFLMInputGeneratePrediction") EDFactoryPluginStatic.loadModule("XSDataMOSFLMv10") from XSDataMOSFLMv10 import XSDataMOSFLMBeamPosition from XSDataMOSFLMv10 import XSDataMOSFLMImage from XSDataMOSFLMv10 import XSDataMOSFLMNewmat from XSDataMOSFLMv10 import XSDataMOSFLMMissettingsAngles from XSDataMOSFLMv10 import XSDataMOSFLMInputGeneratePrediction xsDataIndexingSolutionSelected = xsDataGeneratePredictionInput.getSelectedIndexingSolution() xsDataCollection = xsDataGeneratePredictionInput.getDataCollection() xsDataSubWedge = xsDataCollection.getSubWedge()[0] xsDataImageList = xsDataSubWedge.getImage() xsDataImageFirst = xsDataImageList[0] xsDataCrystal = xsDataIndexingSolutionSelected.getCrystal() xsDataOrientation = xsDataIndexingSolutionSelected.getOrientation() xsDataExperimentalCondition = xsDataIndexingSolutionSelected.getExperimentalConditionRefined() xsDataDetector = xsDataExperimentalCondition.getDetector() xsDataBeam = xsDataExperimentalCondition.getBeam() xsDataMatrixA = xsDataOrientation.getMatrixA() xsDataMatrixU = xsDataOrientation.getMatrixU() xsDataCell = xsDataCrystal.getCell() xsDataMOSFLMInputGeneratePrediction = XSDataMOSFLMInputGeneratePrediction() xsDataMOSFLMNewmat = XSDataMOSFLMNewmat() xsDataMOSFLMNewmat.setRefinedCell(xsDataCell) xsDataMOSFLMNewmat.setAMatrix(xsDataMatrixA) xsDataMOSFLMNewmat.setUMatrix(xsDataMatrixU) xsDataMOSFLMInputGeneratePrediction.setMatrix(xsDataMOSFLMNewmat) xsDataMOSFLMMissettingsAngles = XSDataMOSFLMMissettingsAngles() xsDataMOSFLMMissettingsAngles.setPhix(XSDataAngle(0.0)) xsDataMOSFLMMissettingsAngles.setPhiy(XSDataAngle(0.0)) xsDataMOSFLMMissettingsAngles.setPhiz(XSDataAngle(0.0)) xsDataMOSFLMNewmat.setMissettingAngles(xsDataMOSFLMMissettingsAngles) xsDataMOSFLMBeamPosition = XSDataMOSFLMBeamPosition() xsDataMOSFLMBeamPosition.setX(xsDataDetector.getBeamPositionX()) xsDataMOSFLMBeamPosition.setY(xsDataDetector.getBeamPositionY()) xsDataMOSFLMInputGeneratePrediction.setBeam(xsDataMOSFLMBeamPosition) xsDataMOSFLMInputGeneratePrediction.setMosaicity(xsDataCrystal.getMosaicity()) xsDataMOSFLMInputGeneratePrediction.setSymmetry(xsDataCrystal.getSpaceGroup().getName()) strPathFirst = xsDataImageFirst.getPath().getValue() strDirectoryFirst = os.path.dirname(strPathFirst) strFilenameFirst = os.path.basename(strPathFirst) xsDataMOSFLMInputGeneratePrediction.setWavelength(xsDataBeam.getWavelength()) xsDataMOSFLMInputGeneratePrediction.setDistance(xsDataDetector.getDistance()) xsDataMOSFLMInputGeneratePrediction.setDirectory(XSDataString(strDirectoryFirst)) xsDataMOSFLMDetector = EDHandlerXSDataMOSFLMv10.getXSDataMOSFLMDetector(xsDataDetector) xsDataMOSFLMInputGeneratePrediction.setDetector(xsDataMOSFLMDetector) strMOSFLMTemplate = EDUtilsImage.getTemplate(strFilenameFirst, "#") xsDataMOSFLMInputGeneratePrediction.setTemplate(XSDataString(strMOSFLMTemplate)) # The MOSFLM plugin can only handle one image xsDataImage = xsDataSubWedge.getImage()[0] xsDataGoniostat = xsDataSubWedge.getExperimentalCondition().getGoniostat() xsDataMOSFLMImage = XSDataMOSFLMImage() iImageNumber = xsDataImage.getNumber().getValue() xsDataMOSFLMImage.setNumber(XSDataInteger(iImageNumber)) fOscillationStart = xsDataGoniostat.getRotationAxisStart().getValue() fOscillationRange = xsDataGoniostat.getOscillationWidth().getValue() xsDataMOSFLMImage.setRotationAxisStart(XSDataAngle(fOscillationStart)) xsDataMOSFLMImage.setRotationAxisEnd(XSDataAngle(fOscillationStart + fOscillationRange)) xsDataMOSFLMInputGeneratePrediction.setImage(xsDataMOSFLMImage) return xsDataMOSFLMInputGeneratePrediction
def generateXSDataMOSFLMInputIntegration(_xsDataIntegrationInput): """ Translation from XSDataIntegrationInput to XSDataMOSFLMInputIntegration. """ EDVerbose.DEBUG( "EDHandlerXSDataMOSFLMv10.generateXSDataMOSFLMInputIntegration") EDFactoryPluginStatic.loadModule("XSDataMOSFLMv10") from XSDataMOSFLMv10 import XSDataMOSFLMBeamPosition from XSDataMOSFLMv10 import XSDataMOSFLMInputIntegration from XSDataMOSFLMv10 import XSDataMOSFLMNewmat from XSDataMOSFLMv10 import XSDataMOSFLMMissettingsAngles xsDataCrystalRefined = _xsDataIntegrationInput.getCrystalRefined() xsDataIndexingSolutionSelected = _xsDataIntegrationInput.getSelectedIndexingSolution( ) if (xsDataCrystalRefined is None): xsDataCrystalRefined = xsDataIndexingSolutionSelected.getCrystal() xsDataCollection = _xsDataIntegrationInput.getDataCollection() xsDataSubWedge = xsDataCollection.getSubWedge()[0] xsDataImageList = xsDataSubWedge.getImage() xsDataImageFirst = xsDataImageList[0] xsDataGoniostat = xsDataSubWedge.getExperimentalCondition( ).getGoniostat() xsDataCrystal = xsDataIndexingSolutionSelected.getCrystal() xsDataOrientation = xsDataIndexingSolutionSelected.getOrientation() xsDataExperimentalCondition = xsDataIndexingSolutionSelected.getExperimentalConditionRefined( ) xsDataDetector = xsDataExperimentalCondition.getDetector() xsDataBeam = xsDataExperimentalCondition.getBeam() xsDataMatrixA = xsDataOrientation.getMatrixA() xsDataMatrixU = xsDataOrientation.getMatrixU() xsDataCell = xsDataCrystal.getCell() xsDataMOSFLMInputIntegration = XSDataMOSFLMInputIntegration() xsDataMOSFLMNewmat = XSDataMOSFLMNewmat() xsDataMOSFLMNewmat.setRefinedCell(xsDataCell) xsDataMOSFLMNewmat.setAMatrix(xsDataMatrixA) xsDataMOSFLMNewmat.setUMatrix(xsDataMatrixU) xsDataMOSFLMInputIntegration.setMatrix(xsDataMOSFLMNewmat) xsDataMOSFLMMissettingsAngles = XSDataMOSFLMMissettingsAngles() xsDataMOSFLMMissettingsAngles.setPhix(XSDataAngle(0.0)) xsDataMOSFLMMissettingsAngles.setPhiy(XSDataAngle(0.0)) xsDataMOSFLMMissettingsAngles.setPhiz(XSDataAngle(0.0)) xsDataMOSFLMNewmat.setMissettingAngles(xsDataMOSFLMMissettingsAngles) xsDataMOSFLMBeamPosition = XSDataMOSFLMBeamPosition() xsDataMOSFLMBeamPosition.setX(xsDataDetector.getBeamPositionX()) xsDataMOSFLMBeamPosition.setY(xsDataDetector.getBeamPositionY()) xsDataMOSFLMInputIntegration.setBeam(xsDataMOSFLMBeamPosition) xsDataMOSFLMInputIntegration.setMosaicity(xsDataCrystal.getMosaicity()) xsDataMOSFLMInputIntegration.setSymmetry( xsDataCrystal.getSpaceGroup().getName()) strPathFirst = xsDataImageFirst.getPath().getValue() strDirectoryFirst = os.path.dirname(strPathFirst) strFilenameFirst = os.path.basename(strPathFirst) fOscillationRange = xsDataGoniostat.getOscillationWidth().getValue() xsDataMOSFLMInputIntegration.setWavelength(xsDataBeam.getWavelength()) xsDataMOSFLMInputIntegration.setDistance(xsDataDetector.getDistance()) xsDataMOSFLMInputIntegration.setDirectory( XSDataString(strDirectoryFirst)) xsDataMOSFLMInputIntegration.setOscillationWidth( XSDataAngle(fOscillationRange)) xsDataMOSFLMDetector = EDHandlerXSDataMOSFLMv10.getXSDataMOSFLMDetector( xsDataDetector) xsDataMOSFLMInputIntegration.setDetector(xsDataMOSFLMDetector) strMOSFLMTemplate = EDUtilsImage.getTemplate(strFilenameFirst, "#") xsDataMOSFLMInputIntegration.setTemplate( XSDataString(strMOSFLMTemplate)) iImageStart = None iImageEnd = None for xsDataImage in xsDataImageList: iImageNumber = xsDataImage.getNumber().getValue() if (iImageStart is None): iImageStart = iImageNumber elif (iImageStart > iImageNumber): iImageStart = iImageNumber if (iImageEnd is None): iImageEnd = iImageNumber elif (iImageEnd < iImageNumber): iImageEnd = iImageNumber xsDataMOSFLMInputIntegration.setImageStart(XSDataInteger(iImageStart)) xsDataMOSFLMInputIntegration.setImageEnd(XSDataInteger(iImageEnd)) xsDataMOSFLMInputIntegration.setRotationAxisStart( xsDataGoniostat.getRotationAxisStart()) # print xsDataMOSFLMInputIntegration.marshal() return xsDataMOSFLMInputIntegration