def doSuccessExecThumbnail(self, _edPlugin=None):
     EDVerbose.DEBUG(
         "EDPluginControlPyarchThumbnailGeneratorv1_0.doSuccessExecThumbnail"
     )
     self.retrieveSuccessMessages(
         _edPlugin,
         "EDPluginControlPyarchThumbnailGeneratorv1_0.doSuccessExecThumbnail"
     )
     # Retrieve the output path
     self.xsDataFilePathToThumbnail = self.edPluginExecThumbnail.getDataOutput(
     ).getThumbnailPath()
     # Run the plugin again, this time with the first thumbnail as input
     self.edPluginExecThumbnail2 = self.loadPlugin(
         self.strExecThumbnailPluginName)
     xsDataInputExecThumbnail = XSDataInputExecThumbnail()
     xsDataInputExecThumbnail.setInputImagePath(
         self.edPluginExecThumbnail.getDataOutput().getThumbnailPath())
     xsDataInputExecThumbnail.setThumbHeight(XSDataInteger(256))
     xsDataInputExecThumbnail.setThumbWidth(XSDataInteger(256))
     xsDataInputExecThumbnail.setKeepRatio(XSDataBoolean(False))
     xsDataInputExecThumbnail.setOutputPath(
         XSDataFile(
             XSDataString(self.strOutputPathWithoutExtension +
                          ".thumb.jpeg")))
     self.edPluginExecThumbnail2.setDataInput(xsDataInputExecThumbnail)
     self.edPluginExecThumbnail2.connectSUCCESS(
         self.doSuccessExecThumbnail2)
     self.edPluginExecThumbnail2.connectFAILURE(
         self.doFailureExecThumbnail2)
     self.edPluginExecThumbnail2.executeSynchronous()
 def doSuccessExecThumbnail(self, _edPlugin=None):
     EDVerbose.DEBUG("EDPluginControlPyarchThumbnailGeneratorv1_0.doSuccessExecThumbnail")
     self.retrieveSuccessMessages(_edPlugin, "EDPluginControlPyarchThumbnailGeneratorv1_0.doSuccessExecThumbnail")
     # Retrieve the output path
     self.__xsDataFilePathToThumbnail = self.__edPluginExecThumbnail.getDataOutput().getThumbnailPath()
     # Run the plugin again, this time with the first thumbnail as input
     self.__edPluginExecThumbnail2 = self.loadPlugin(self.__strExecThumbnailPluginName)
     xsDataInputExecThumbnail = XSDataInputExecThumbnail()
     xsDataInputExecThumbnail.setInputImagePath(self.__edPluginExecThumbnail.getDataOutput().getThumbnailPath())
     xsDataInputExecThumbnail.setThumbHeight(XSDataInteger(256))
     xsDataInputExecThumbnail.setThumbWidth(XSDataInteger(256))
     xsDataInputExecThumbnail.setKeepRatio(XSDataBoolean(False))
     xsDataInputExecThumbnail.setOutputPath(XSDataFile(XSDataString(self.strOutputPathWithoutExtension + ".thumb.jpeg")))
     self.__edPluginExecThumbnail2.setDataInput(xsDataInputExecThumbnail)
     self.__edPluginExecThumbnail2.connectSUCCESS(self.doSuccessExecThumbnail2)
     self.__edPluginExecThumbnail2.connectFAILURE(self.doFailureExecThumbnail2)
     self.__edPluginExecThumbnail2.executeSynchronous()
Example #3
0
 def preProcess(self, _edObject=None):
     EDPluginControl.preProcess(self)
     EDVerbose.DEBUG("EDPluginControlPyarchThumbnailGeneratorv1_0.preProcess")
     # Check that the input image exists and is of the expected type
     strPathToDiffractionImage = self.getDataInput().getDiffractionImage().getPath().getValue()
     strImageFileNameExtension = os.path.splitext(strPathToDiffractionImage)[1]
     if not strImageFileNameExtension in [".img", ".marccd", ".mccd", ".cbf"]:
         print strImageFileNameExtension
         EDVerbose.error("Unknown image file name extension for pyarch thumbnail generator: %s" % strPathToDiffractionImage)
         self.setFailure()
     else:
         # Load the waitFile plugin
         xsDataInputWaitFile = XSDataInputWaitFile()
         xsDataInputWaitFile.setExpectedSize(XSDataInteger(self.__iExpectedSize))
         xsDataInputWaitFile.setExpectedFile(self.getDataInput().getDiffractionImage())
         if self.getDataInput().getWaitForFileTimeOut():
             xsDataInputWaitFile.setTimeOut(self.getDataInput().getWaitForFileTimeOut())
         self.__edPluginWaitFile = EDPluginWaitFile()
         self.__edPluginWaitFile.setDataInput(xsDataInputWaitFile)
         # Load the execution plugin
         self.__edPluginExecThumbnail = self.loadPlugin(self.__strExecThumbnailPluginName)
         xsDataInputExecThumbnail = XSDataInputExecThumbnail()
         xsDataInputExecThumbnail.setInputImagePath(self.getDataInput().getDiffractionImage())
         xsDataInputExecThumbnail.setLevelsInvert(XSDataBoolean(True))
         xsDataInputExecThumbnail.setLevelsMin(XSDataDoubleWithUnit(0.0))
         xsDataDoubleWithUnitLevelsMax = XSDataDoubleWithUnit(99.95)
         xsDataDoubleWithUnitLevelsMax.setUnit(XSDataString("%"))
         xsDataInputExecThumbnail.setLevelsMax(xsDataDoubleWithUnitLevelsMax)
         xsDataInputExecThumbnail.setFilterDilatation([XSDataInteger(4)])
         xsDataInputExecThumbnail.setLevelsColorize(XSDataBoolean(False))
         xsDataInputExecThumbnail.setThumbHeight(XSDataInteger(1024))
         xsDataInputExecThumbnail.setThumbWidth(XSDataInteger(1024))
         xsDataInputExecThumbnail.setKeepRatio(XSDataBoolean(False))
         # Output path
         strImageNameWithoutExt = os.path.basename(os.path.splitext(strPathToDiffractionImage)[0])
         strImageDirname = os.path.dirname(strPathToDiffractionImage)
         if self.getDataInput().getForcedOutputDirectory():
             strForcedOutputDirectory = self.getDataInput().getForcedOutputDirectory().getPath().getValue()
             if not os.access(strForcedOutputDirectory, os.W_OK):
                 EDVerbose.error("Cannot write to forced output directory : %s" % strForcedOutputDirectory)
                 self.setFailure()
             else:
                 self.strOutputPathWithoutExtension = os.path.join(strForcedOutputDirectory, strImageNameWithoutExt)
         else:
             # Try to store in the ESRF pyarch directory
             strOutputDirname = EDHandlerESRFPyarchv1_0.createPyarchFilePath(strImageDirname)
             # Check that output pyarch path exists and is writeable:
             bIsOk = False
             if strOutputDirname:
                 if not os.path.exists(strOutputDirname):
                     # Try to create the directory
                     try:
                         os.makedirs(strOutputDirname)
                         bIsOk = True
                     except BaseException, e:
                         EDVerbose.WARNING("Couldn't create the directory %s" % strOutputDirname)
                 elif os.access(strOutputDirname, os.W_OK):
                     bIsOk = True
             if not bIsOk:
                 EDVerbose.warning("Cannot write to pyarch directory: %s" % strOutputDirname)
                 strOutputDirname = tempfile.mkdtemp("", "EDPluginPyarchThumbnailv10_", "/tmp")
                 EDVerbose.warning("Writing thumbnail images to: %s" % strOutputDirname)
             self.strOutputPathWithoutExtension = os.path.join(strOutputDirname, strImageNameWithoutExt)
         self.strOutputPath = os.path.join(self.strOutputPathWithoutExtension + ".jpeg")
         xsDataInputExecThumbnail.setOutputPath(XSDataFile(XSDataString(self.strOutputPath)))
         self.__edPluginExecThumbnail.setDataInput(xsDataInputExecThumbnail)