def functionXMLout(_strXMLin, _strXMLout): """ This is an example of XMLout function ... it prints only the name of the file created @param _srXMLin: The XML string used to launch the job @type _strXMLin: python string with the input XML @param _strXMLout: The XML string retrieved job @type _strXMLout: python string with the output XML @return: None """ xsDataInputGridScreening = XSDataInputGridScreening.parseString(_strXMLin) strImagePath = xsDataInputGridScreening.getImageFile().getPath().getValue() EDVerbose.screen("Successful processing of image %s" % strImagePath) strResultText = "%40s " % os.path.basename(strImagePath) xsDataResultGridScreening = XSDataResultGridScreening.parseString(_strXMLout) fileNameParameters = xsDataResultGridScreening.getFileNameParameters() if fileNameParameters is None: strResultText += "%6s%10s%10s%6s" % ("NA", "NA", "NA","NA") else: strResultText += "%6s%10s%10s%6s" % ( fileNameParameters.getScanId1().getValue(), fileNameParameters.getMotorPosition1().getValue(), fileNameParameters.getMotorPosition2().getValue(), fileNameParameters.getScanId2().getValue(), ) imageQualityIndicators = xsDataResultGridScreening.getImageQualityIndicators() if imageQualityIndicators is None: strResultText += "%6s%6s%6s%6s%10s" % ("NA", "NA", "NA","NA", "NA") else: strMethod1Res = "%6s" % "NA" if imageQualityIndicators.getMethod1Res(): strMethod1Res = "%6.1f" % imageQualityIndicators.getMethod1Res().getValue() strMethod2Res = "%6s" % "NA" if imageQualityIndicators.getMethod2Res(): strMethod2Res = "%6.1f" % imageQualityIndicators.getMethod2Res().getValue() strSpotTotal = "%6s" % "NA" if imageQualityIndicators.getSpotTotal(): strSpotTotal = "%6d" % imageQualityIndicators.getSpotTotal().getValue() strGoodBraggCandidates = "%6s" % "NA" if imageQualityIndicators.getGoodBraggCandidates(): strGoodBraggCandidates = "%6d" % imageQualityIndicators.getGoodBraggCandidates().getValue() strTotalIntegratedSignal = "%10s" % "NA" if imageQualityIndicators.getTotalIntegratedSignal(): strTotalIntegratedSignal = "%10.0f" % imageQualityIndicators.getTotalIntegratedSignal().getValue() strResultText += strMethod1Res + strMethod2Res + strSpotTotal + strGoodBraggCandidates + strTotalIntegratedSignal if xsDataResultGridScreening.getMosaicity() is None: strResultText += "%6s" % "NA" else: strResultText += "%6.1f" % xsDataResultGridScreening.getMosaicity().getValue() if xsDataResultGridScreening.getRankingResolution() is None: strResultText += "%6s" % "NA" else: strResultText += "%6.1f" % xsDataResultGridScreening.getRankingResolution().getValue() strResultText += " " + xsDataResultGridScreening.getComment().getValue() writeToResultFile(strResultText)
def finallyProcess(self, _edObject=None): EDPluginControl.finallyProcess(self) self.DEBUG("EDPluginControlGridScreeningv1_0.finallyProcess") # Synchronise if necessary if self.edPluginISPyBStoreImageQualityIndicators is not None: self.edPluginISPyBStoreImageQualityIndicators.synchronize() # Build up the output object strComment = "" xsDataResultGridScreening = XSDataResultGridScreening() if self.xsDataGridScreeningFileNameParameters is not None: xsDataResultGridScreening.setFileNameParameters(self.xsDataGridScreeningFileNameParameters) if self.xsDataImageQualityIndicators is None: strComment = "No image quality indicators" else: xsDataResultGridScreening.setImageQualityIndicators(self.xsDataImageQualityIndicators) if self.xsDataImageQualityIndicators.getIceRings() is not None: if self.xsDataImageQualityIndicators.getIceRings().getValue() > 1: strComment = "Ice rings detected" if self.xsDataIndexingResult is None: if strComment == "": strComment = "No indexing result" else: strComment += ", no indexing result" else: xsDataSelectedSolution = self.xsDataIndexingResult.getSelectedSolution() xsDataResultGridScreening.setMosaicity(xsDataSelectedSolution.getCrystal().getMosaicity()) if self.xsDataStrategyResult is None: if strComment == "": strComment = "No strategy result" else: strComment += ", no strategy result" else: xsDataCollectionPlan = self.xsDataStrategyResult.getCollectionPlan()[0] xsDataStrategySummary = xsDataCollectionPlan.getStrategySummary() xsDataResultGridScreening.setRankingResolution(xsDataStrategySummary.getRankingResolution()) xsDataResultGridScreening.setResultIntegration(self.xsDataGridScreeningResultIntegration) xsDataResultGridScreening.setComment(XSDataString(strComment)) if self.iImageQualityIndicatorsId is not None: xsDataResultGridScreening.setImageQualityIndicatorsId(XSDataInteger(self.iImageQualityIndicatorsId)) # print xsDataResultGridScreening.marshal() self.setDataOutput(xsDataResultGridScreening)
def finallyProcess(self, _edObject=None): EDPluginControl.finallyProcess(self) self.DEBUG("EDPluginControlGridScreeningv1_0.finallyProcess") # Synchronise if necessary if self.edPluginISPyBStoreImageQualityIndicators is not None: self.edPluginISPyBStoreImageQualityIndicators.synchronize() # Build up the output object strComment = "" xsDataResultGridScreening = XSDataResultGridScreening() if self.xsDataGridScreeningFileNameParameters is not None: xsDataResultGridScreening.setFileNameParameters( self.xsDataGridScreeningFileNameParameters) if self.xsDataImageQualityIndicators is None: strComment = "No image quality indicators" else: xsDataResultGridScreening.setImageQualityIndicators( self.xsDataImageQualityIndicators) if self.xsDataImageQualityIndicators.getIceRings().getValue() > 1: strComment = "Ice rings detected" if self.xsDataIndexingResult is None: if strComment == "": strComment = "No indexing result" else: strComment += ", no indexing result" else: xsDataSelectedSolution = self.xsDataIndexingResult.getSelectedSolution( ) xsDataResultGridScreening.setMosaicity( xsDataSelectedSolution.getCrystal().getMosaicity()) if self.xsDataStrategyResult is None: if strComment == "": strComment = "No strategy result" else: strComment += ", no strategy result" else: xsDataCollectionPlan = self.xsDataStrategyResult.getCollectionPlan( )[0] xsDataStrategySummary = xsDataCollectionPlan.getStrategySummary( ) xsDataResultGridScreening.setRankingResolution( xsDataStrategySummary.getRankingResolution()) xsDataResultGridScreening.setResultIntegration( self.xsDataGridScreeningResultIntegration) xsDataResultGridScreening.setComment(XSDataString(strComment)) if self.iImageQualityIndicatorsId is not None: xsDataResultGridScreening.setImageQualityIndicatorsId( XSDataInteger(self.iImageQualityIndicatorsId)) #print xsDataResultGridScreening.marshal() self.setDataOutput(xsDataResultGridScreening)