def addPrepFiles(projectID, master_directory):

    sdirs = os.listdir(master_directory + projectID)

    if 'PrepFiles' not in sdirs:
        if 'Frames' in sdirs:
            print('Adding prep files for: ' + projectID)
            try:
                logObj = LP(master_directory + projectID + '/Logfile.txt')
            except UnboundLocalError:
                print('Cant read logfile for: ' + projectID)
                return False
            try:
                subprocess.run(
                    ['mkdir', master_directory + projectID + '/PrepFiles'])
                subprocess.run([
                    'cp', master_directory + projectID + '/' +
                    logObj.frames[0].npy_file,
                    master_directory + projectID + '/PrepFiles/FirstDepth.npy'
                ])
                subprocess.run([
                    'cp', master_directory + projectID + '/' +
                    logObj.frames[-1].npy_file,
                    master_directory + projectID + '/PrepFiles/LastDepth.npy'
                ])
                subprocess.run([
                    'cp', master_directory + projectID + '/' +
                    logObj.movies[0].pic_file,
                    master_directory + projectID + '/PrepFiles/PiCameraRGB.jpg'
                ])

                depthObj = [
                    x for x in logObj.frames if x.time > logObj.movies[0].time
                ][0]
                subprocess.run([
                    'cp',
                    master_directory + projectID + '/' + depthObj.pic_file,
                    master_directory + projectID + '/PrepFiles/DepthRGB.jpg'
                ])
            except:
                print('Error fixing: ' + projectID)
                subprocess.run(
                    ['rm', '-rf', master_directory + projectID + '/PrepFiles'])
            return True
    return False
Beispiel #2
0
	def returnVideoObject(self, index):
		from Modules.DataObjects.LogParser import LogParser as LP

		self._downloadFile(self.logfile)
		self.lp = LP(self.localLogfile)
		videoObj = self.lp.movies[index]
		videoObj.localVideoFile = self.localMasterDir + videoObj.mp4_file
		videoObj.localHMMFile = self.localTroubleshootingDir + videoObj.baseName + '.hmm'
		videoObj.localRawCoordsFile = self.localTroubleshootingDir + videoObj.baseName + '_rawCoords.npy'
		videoObj.localLabeledCoordsFile = self.localTroubleshootingDir + videoObj.baseName + '_labeledCoords.npy'
		videoObj.localLabeledClustersFile = self.localTroubleshootingDir + videoObj.baseName + '_labeledClusters.csv'
		videoObj.localAllClipsPrefix = self.localAllClipsDir + self.lp.projectID + '_' + videoObj.baseName
		videoObj.localManualLabelClipsPrefix = self.localManualLabelClipsDir + self.lp.projectID + '_' + videoObj.baseName
		videoObj.localIntensityFile = self.localFiguresDir + videoObj.baseName + '_intensity.pdf'
		videoObj.localTempDir = self.localTempDir + videoObj.baseName + '/'
		videoObj.nManualLabelClips = int(self.nManualLabelClips/len(self.lp.movies))
		videoObj.nManualLabelFrames = int(self.nManualLabelFrames/len(self.lp.movies))
		
		self._createDirectory(videoObj.localTempDir)

		return videoObj
    def __init__(self, projFileManager, index, workers):
        self.projFileManager = projFileManager
        self.lp = LP(self.projFileManager.localLogfile)

        self.videoObj = self.projFileManager.returnVideoObject(index)
        self.videofile = self.videoObj.localVideoFile
        self.workers = workers

        self.lightsOnTime = self.videoObj.startTime.replace(
            hour=self.projFileManager.lightsOnTime,
            minute=0,
            second=0,
            microsecond=0)
        self.lightsOffTime = self.videoObj.startTime.replace(
            hour=self.projFileManager.lightsOffTime,
            minute=0,
            second=0,
            microsecond=0)

        self.HMMsecs = int((min(self.videoObj.endTime, self.lightsOffTime) -
                            self.videoObj.startTime).total_seconds() - 1)
Beispiel #4
0
	def validateInputData(self):
		assert os.path.exists(self.projFileManager.localLogfile)
		self.lp = LP(self.projFileManager.localLogfile)

		for video in self.lp.movies:
			try:
				assert os.path.exists(self.projFileManager.localMasterDir + video.h264_file)
			except AssertionError:
				assert os.path.exists(self.projFileManager.localMasterDir + video.mp4_file)
		assert os.path.exists(self.projFileManager.localTroubleshootingDir)
		assert os.path.exists(self.projFileManager.localAnalysisDir)
		assert os.path.exists(self.projFileManager.localTempDir)
		assert os.path.exists(self.projFileManager.localAllClipsDir)
		assert os.path.exists(self.projFileManager.localManualLabelClipsDir)
		assert os.path.exists(self.projFileManager.localManualLabelFramesDir)


		self.uploads = [(self.projFileManager.localTroubleshootingDir, self.projFileManager.cloudTroubleshootingDir, '0'), 
						(self.projFileManager.localAnalysisDir, self.projFileManager.cloudAnalysisDir, '0'),
						(self.projFileManager.localAllClipsDir, self.projFileManager.cloudMasterDir, '1'),
						(self.projFileManager.localManualLabelClipsDir, self.projFileManager.cloudMasterDir, '1'),
						(self.projFileManager.localManualLabelFramesDir, self.projFileManager.cloudMasterDir, '1')
						]
 def __init__(self, projFileManager):
     self.__version__ = '1.0.0'
     self.projFileManager = projFileManager
     self.lp = LP(projFileManager.localLogfile)
 def __init__(self, fileManager):
     self.fileManager = fileManager
     self.lp = LP(self.fileManager.localLogfile)
     self._loadData()
     self.goodPixels = (self.tray_r[2] - self.tray_r[0]) * (self.tray_r[3] -
                                                            self.tray_r[1])