Saturday, 5 October 2019

python - FUSION's PolyClipData creates corrupt LAS file?


I am trying to learn LASPY and am following a tutorial. I got an error when starting up using:


import laspy
infile = laspy.file.File("./laspytest/data/simple.las", mode="r")


where I got a storage error:


LaspyException: Error mapping file: [Error 8] Not enough storage is available to process this command

To try and get around this I tried FUSION's polyclipdata routine to parse the LAS file into 4 parcels:


command = 'polyclipdata /multifile ' + temp + '\\pointfile2.shp ' + temp + '\\pointfile3.shp {}'.format(in_las_file)
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
(stdoutdata, stderrdata) = process.communicate()
if stderrdata:
print stderrdata


When I try and work with LASPY again, I get the following error:


ValueError: buffer size must be a multiple of element size

I thought that this was a LASPY error and created a question to resolve it, however, after testing "clean" data, LASPY was determined to not be the problem (laspy ValueError: buffer size must be a multiple of element size). I am using Python 2.7.


Why is FUSION's polyclipdata not producing a usable product?


I started looking into R's lidr package and ran the readLAS command. I got the following messages:


ERROR: 'end-of-file' after 8196120 of 8196121 points
Warning messages:
1: Invalid file: header states the file contains 8196121 points but 8196120 were found. Header has been updated.

2: Invalid file: header states the file contains 7570432 1st returns but 1028359 were found. Header has been updated.
3: Invalid file: header states the file contains 482368 2nd returns but 979894 were found. Header has been updated.
4: Invalid file: header states the file contains 114533 3rd returns but 936803 were found. Header has been updated.
5: Invalid file: header states the file contains 25014 4th returns but 997835 were found. Header has been updated.
6: Invalid file: header states the file contains 3477 5th returns but 1053020 were found. Header has been updated.
7: 7369979 points below 0 found.
8: Dataset is invalid: 1049976 points with a return number of 0 found.

It looks as though the datasets created by FUSION messed up the header?




No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...