def ProcessFile(inputfname, lasversion, minimumpointsdensity, displayheader, cellsize, maxpercentcellsbelowdensity, activevalidations, deletefiles, validatefilespath, csvresults, verbose): Validate.version = lasversion Validate.minimumpointsdensity = minimumpointsdensity Validate.displayheader = displayheader Validate.cellsize = cellsize Validate.maxpercentcellsbelowdensity = maxpercentcellsbelowdensity Validate.validatefilespath = validatefilespath Validate.deletefiles = deletefiles Validate.csvresults = csvresults Validate.activevalidations = activevalidations Validate.verbose = verbose start = time.time() failCount = 0 if (Validate.displayheader): lidarutils.displayInfo(inputfname) parameters = valParameters() try: validate = Validate(inputfname, parameters) if 1 in validate.activevalidations: failCount += validate.CheckLiDARFileSignature() if 2 in validate.activevalidations: failCount += validate.CheckFileVersion() if 3 in validate.activevalidations: failCount += validate.CheckNumberofReturns() if 4 in validate.activevalidations: failCount += validate.CheckReturnNumbers() if 5 in validate.activevalidations: failCount += validate.CheckMinMaxValues() if (6 in validate.activevalidations) or ( 7 in validate.activevalidations): validate.CreateShpFileLAS() catalogOk = validate.RunCatalog() if catalogOk: validate.CalcShapeFileArea() if 6 in validate.activevalidations: failCount += validate.CheckGlobalPointsDensity() if 7 in validate.activevalidations: if catalogOk: failCount += validate.CheckMaxCellsBelowDensity() if 8 in validate.activevalidations: failCount += validate.CheckXtYtZt() except: if 'validate' in locals(): validate.TestFail('Exception: {0}'.format(traceback.format_exc())) else: print("Error {0} opening file {1}".format(traceback.format_exc(), inputfname)) os._exit(0) failcount += 1 if Validate.verbose > 0: if failCount == 0: print('All validations passed successfully.') else: print('{0} validation(s) failed.'.format(failCount)) print(validate.errorMessages) print('File: {0},'.format(inputfname)), print('{0} (elapsed time: {1:.2f}s)'.format( 'ok' if failCount == 0 else 'failed: ' + validate.errorMessages.strip(), time.time() - start)) validate.Close()