I have an IDL-ENVI code to batch PointCloudFeatureExtraction for lidar tiles across a large area, however, when run, the output results in lower areas of each tile as "unprocessed".
So my question is whether people have had this issue before or if you can see an issue in my code? The Point Cloud Feature Extraction works fine within ENVI+Lidar.
e = ENVI(/HEADLESS) search_dir = 'E:\FilteredLidar4ppm\' filelist = file_search(search_dir + '*.las') task = ENVITask('PointCloudFeatureExtraction') TASK.DEM_GENERATE = 1 TASK.DEM_FILTER_LOWER_POINTS = 10 TASK.DSM_GENERATE = 1 TASK.ORTHOPHOTO_GENERATE = 1 TASK.TREES_GENERATE = 1 TASK.TREES_MAX_HEIGHT = 6500 TASK.TREES_MIN_HEIGHT = 300 TASK.TREES_MAX_RADIUS = 2000 TASK.TREES_MIN_RADIUS = 200 foreach file, filelist, index do begin ; Open a las file pointcloud = e.OpenPointCloud(file, /CLOSE_PREVIOUS) ; Define inputs Task.INPUT_POINT_CLOUD = pointcloud Result = task.Validate(VALIDATION_EXCEPTION=msg) print, 'Executing Point Cloud Feature Extraction Task' Task.Execute pointcloud.Close endforeach END
I have tried:
- Adding TASK.GENERAL_CLIP_MIN_HEIGHT = 0 to try and stop it being cut off - doesn't work.
- the code on single file and it works fine, so perhaps there is something wrong with my looping foreach? Could settings from the previous loop not be removed?