コード例 #1
0
ファイル: edna_FullFieldXAS.py プロジェクト: edna-site/edna
 def uploadReferenceFrame(self, entry):
     paths = entry.split(":")
     if len(paths) == 1 and os.path.isfile(paths[0]):
         obj = fabio.open(paths[0]).data
         EDVerbose.WARNING("Got reference frame %s via fabio" % entry)
         EDPluginControlAlignStackv1_0.addFrame(-1, obj)
         EDPluginAccumulatorv1_0.addItem(XSDataString("raw -001"))
         self.updateAttrRefImage(obj)
     elif len(paths) == 2 and os.path.isfile(paths[0]):
         hdf = h5py.File(paths[0])
         if paths[1] in hdf:
             obj = hdf[paths[1]]
             if obj.__class__.__name__ == "Group":
                 if self.REFERENCE_FRAME_NAME in obj:
                     data = obj[self.REFERENCE_FRAME_NAME][:]
                     EDPluginControlAlignStackv1_0.addFrame(-1, data)
                     EDPluginAccumulatorv1_0.addItem("raw -001")
                     self.updateAttrRefImage(data)
                 else:
                     EDVerbose.ERROR(
                         "HDF5: No '%s' in group %s from %s" % (self.REFERENCE_FRAME_NAME, paths[1], paths[0])
                     )
             elif obj.__class__.__name__ == "Dataset":
                 data = obj[:]
                 EDPluginControlAlignStackv1_0.addFrame(-1, data)
                 EDPluginAccumulatorv1_0.addItem(XSDataString("raw -001"))
                 self.updateAttrRefImage(data)
         else:
             EDVerbose.ERROR("HDF5: No such internal path %s in %s" % (paths[1], paths[0]))
     else:
         EDVerbose.ERROR("No such entry %s" % entry)
コード例 #2
0
 def uploadReferenceFrame(self, entry):
     paths = entry.split(":")
     if len(paths) == 1 and os.path.isfile(paths[0]):
         obj = fabio.open(paths[0]).data
         EDVerbose.WARNING("Got reference frame %s via fabio" % entry)
         EDPluginControlAlignStackv1_0.addFrame(-1, obj)
         EDPluginAccumulatorv1_0.addItem(XSDataString("raw -001"))
         self.updateAttrRefImage(obj)
     elif len(paths) == 2 and os.path.isfile(paths[0]):
         hdf = h5py.File(paths[0])
         if paths[1] in hdf:
             obj = hdf[paths[1]]
             if obj.__class__.__name__ == "Group":
                 if self.REFERENCE_FRAME_NAME in obj:
                     data = obj[self.REFERENCE_FRAME_NAME][:]
                     EDPluginControlAlignStackv1_0.addFrame(-1, data)
                     EDPluginAccumulatorv1_0.addItem("raw -001")
                     self.updateAttrRefImage(data)
                 else:
                     EDVerbose.ERROR("HDF5: No '%s' in group %s from %s" % (self.REFERENCE_FRAME_NAME, paths[1], paths[0]))
             elif obj.__class__.__name__ == "Dataset":
                 data = obj[:]
                 EDPluginControlAlignStackv1_0.addFrame(-1, data)
                 EDPluginAccumulatorv1_0.addItem(XSDataString("raw -001"))
                 self.updateAttrRefImage(data)
         else:
             EDVerbose.ERROR("HDF5: No such internal path %s in %s" % (paths[1], paths[0]))
     else:
         EDVerbose.ERROR("No such entry %s" % entry)
コード例 #3
0
ファイル: edna_FullFieldXAS.py プロジェクト: edna-site/edna
    else:
        ffx = FullFieldXas()
        if os.path.isfile(".XSDataInputFullFieldXAS.xml"):
            ffx.load(".XSDataInputFullFieldXAS.xml")

        ffx.dontAlign = dontAlign
        if dontAlign:
            print ("*" * 80)
            print ("*" + "Skipping image alignement part".center(78) + "*")
            print ("*" * 80)
        ffx.setup(_listInput=paths, _mode=mode)
    if not isinstance(ffx.reference, int):
        ffx.uploadReferenceFrame(ffx.reference)
    ffx.save(".XSDataInputFullFieldXAS.xml")
    ffx.dump("analysis-%s.json" % time.strftime("%Y%m%d-%Hh%Mm%Ss"))
    edna = EDParallelExecute(
        ffx.pluginName, ffx.makeXML, _functXMLerr=ffx.error, _bVerbose=True, _bDebug=debug, _iNbThreads=iNbCPU
    )
    edna.runEDNA(ffx.listInput, ffx.strMode, ffx.bNewerOnly)
    EDVerbose.WARNING("Back to main !")
    EDJob.synchronizeAll()
    ffx.updateAttrRefImage()
    EDPluginControlAlignStackv1_0.showData()
    if keepShare:
        EDShare.close()
    elif (ffx.getNrErrors() == 0) and (not EDVerbose.isVerboseDebug()):
        EDVerbose.WARNING("All processing finished successfully: Remove EDShare's big HDF5 file")
        EDShare.close(remove=True)
    else:
        EDShare.close()
コード例 #4
0
            mode = "dirwatch"
        elif i.lower().find("-all") in [0, 1]:
            newerOnly = False
        elif i.lower().find("-debug") in [0, 1]:
            debug = True
        elif i.lower().find("-ncpu") in [0, 1]:
            iNbCPU = int(i.split("=", 1)[1])
        elif os.path.exists(i):
            paths.append(os.path.abspath(i))

    if len(paths) == 0:
        if mode == "OffLine":
            print "This is the HDF5 3D image stacker application of EDNA with image alignment, \nplease give a path to process offline or the option:\n\
            --online to process online incoming data in the given directory.\n\
            --all to process all existing files (unless they will be excluded)\n\
            --debug to turn on debugging mod in EDNA"

            sys.exit()
        else:
            paths = [os.getcwd()]
    edna = EDParallelExecute(EDNAPluginName,
                             fileName2xml,
                             _functXMLerr=XMLerr,
                             _bVerbose=True,
                             _bDebug=debug,
                             _iNbThreads=iNbCPU)
    edna.runEDNA(paths, mode, newerOnly)
    EDVerbose.screen("Back in main")
    EDPluginControlAlignStackv1_0.showData()
#    EDPluginHDF5StackImagesv10.closeAll()