5

I am trying to use model builder to create a number of DEMs from LiDAR point clouds. To do so, I need to filter the point clouds for ground points only and then convert the points to raster. In the past, I have used the tool "LAS Dataset to Raster" but I am unable to set the filters through this tool. (I would have to go into the properties of each layer individually and set the filter which is not an option for the number of files I have). In searching other questions, I saw that the tool "Make LAS Dataset Layer" allows me to set the filters and combined with "LAS Dataset to Raster" I can set the filters and create the DEM through model builder (see this question and answer: How to specify LAS dataset filters in ArcMap ModelBuilder?).

My lingering issue is that I cannot get any of the iterators to work with lasd files. And when I try to connect the iterator to "Make LAS Dataset Layer", my only option is as a precondition. How do I connect this process to an iterator with lasd files?

Screenshot of model

Andre Silva
10.5k12 gold badges57 silver badges109 bronze badges
asked Nov 30, 2017 at 1:07
6
  • Sounds like a bug. How are you at python? It's very easy to iterate in python this could be a good place to start if you're not proficient already. If your LAS are ASPRS compliant classified your 'ground' should be class 2 and 8 (possibly 9). 2 is ground, 8 is model key (ground) and 9 is water. How do you have so many lasd files? you've got more than one las file per lasd haven't you? Commented Nov 30, 2017 at 1:11
  • I know you said you tried all the iterators, but have you tried 'Iterate Multivalue'? Try this. If that doesn't work try adding all the LAS files into the model(if feasible) and connect them all to the 'Iterate Multivalue' iterator. If it's not feasible to add all LAS files into the model, use 'Collect Values' (model only tool) to collect the values from the LIDAR workspace to pass into the multivalue iterator. I haven't tested this. Commented Nov 30, 2017 at 6:04
  • @jbalk I got this method to work for one file at a time. How do I change the output names of the individual files? Usually I use %Name% but there isn't a name variable created in Iterate Multivalue. So it is just overwriting to the same raster file for each lasd. Commented Dec 8, 2017 at 20:50
  • @MichaelStimson I only have one las file per lasd. I have about 600 lasd files. I don't know python, but I will investigate it if I can't get these other methods to work. Commented Dec 8, 2017 at 20:51
  • @jbalk I actually answered my own question by using the Parce Path and creating a Name parameter. But I still have one issue with this method- The model keeps running continuously. It runs through all the files and then starts over again at the beginning again. Any thoughts on why? Commented Dec 8, 2017 at 21:33

3 Answers 3

4

I was able to get this to work and wanted to post my final solution. I used @jbalk 's answer with a Parse Path. I used Iterate Multivalue (input the lasd files). I connected the Value output to Make LAS Dataset Layer where I set the filter to 2, 8, and 9.

I also added the tool "Parse Path" to get the file name to use in the name outputs for both Make LAS Dataset Layer and LAS Dataset to Raster. The parse path name must be set as a precondition to Make LAS Dataset Layer. I attached a screenshot so it's clear.

Final Model Screenshot

Andre Silva
10.5k12 gold badges57 silver badges109 bronze badges
answered Dec 8, 2017 at 22:41
1

It's an issue with the iterator and I have come across this problem before, fortunately it can be easily fixed as shown below:

Model

The trick is to use the model only tool Calculate Value to "convert" the output of the iterator to a LAS dataset. All I did is shown below then it can be connected to the Make LAS Dataset Layer tool.

Calculate Value Tool

answered Nov 30, 2017 at 12:09
2
  • I'm not able to get this work. I think I might be misunderstanding what you are suggesting. Do I connect the File iterator file to the Calculate value? It is only letting me connect it as a precondition. Commented Dec 8, 2017 at 20:56
  • No you do not, look at the calculate value tool it is referencing the output of the iterator using in-line substitution, if you do not know what that is refer to the help file. Commented Dec 8, 2017 at 23:19
0

I have this same issue and have duplicated the model and it runs fine except for it just overwrites the output raster. I imagine this is just something in the Parse Path but I don't quite have it. Any suggestions?

update - never mind. I just had to put % around 'Name' in the Las Dataset to Raster.

answered Nov 20, 2024 at 18:51
1
  • 2
    As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center. Commented Nov 20, 2024 at 19:27

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.