0

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?

Orthophoto showing black unprocessed low areas

closed as unclear what you're asking by Andre Silva, nmtoken, whyzar, tinlyx, xunilk Dec 29 '17 at 22:30

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • What the picture is showing? Can you explain it better? – Andre Silva Dec 24 '17 at 13:25
  • Probably it is not the problem, but are you closing the point cloud twice in the loop: pointcloud = e.OpenPointCloud(file, /CLOSE_PREVIOUS) and pointcloud.Close? – Andre Silva Dec 29 '17 at 16:37
  • Thanks @AndreSilva The picture is showing that the point cloud is processing in the white middle section (you can sort of see grey tree canopies) and the black is unprocessed equiv of nodata - it was cutting off at a certain height. I will look into the point cloud close issue Thank you! – Jennifer Smits Jan 1 '18 at 22:44
0

Solved it myself. I added a Max and Min height 400-4000m and getting it to print the point cloud specs each time.

TASK.GENERAL_CLIP_MIN_HEIGHT = 400
TASK.GENERAL_CLIP_MAX_HEIGHT = 3000

Shouldn't of fixed it, but it did!

Not the answer you're looking for? Browse other questions tagged or ask your own question.