Example #1
0
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()