Jimm-When I run mcc-lidar on a single tile, it works fine with small s and t parameters. When I increase these values above s=1.7 and t>0.9, the program stops running. There is no error message. It just stops, but it stops pretty consistently on the 3rd interation.
thank you,
Zack
I found the same silent error and MCC candidate 3 crashed with some parameters, as for example -s 2.5 -t 0.8. The las tile is attached in a zip form.
Thanks,
Eder.
Below is the program output for the silent crash that Eder reported (he sent it in an attachment called "mcc.txt" on 11 January 2011):
Linda T. has also observed that the crashes occur at start of pass 1 for various domains. Modified the ticket's title to reflect this, in order to make it easier for other users to find this ticket if they encounter the same problem.
At the start of pass 1, there is a re-allocation of some data structures. Therefore, a possible cause of the crash is something with the system's memory management routines.
Linda T. figured out a workaround for this bug: subdivide the input tile into smaller tiles (for example, into 4 "quarter" tiles). This can be done with BCAL LIDAR tools.
If you do not have access to IDL or ENVi for use of BCAL LiDAR Tools, another option which she's used but not quite as easy is LASTools. The readme files are usually very helpful.
Linda encountered the crash with release candidate 4 (1.0rc4) and a small tile she created for crash testing:
Several days later, she discovered that the same set of parameters (-s 0.8 -t 0.07) and the input tile no longer crashed 1.0rc4!
Possible explanation for this change -- some software (e.g., Windows) on her computer had an automatic update which changed a shared system component that relates to this problem.
(notes from work done back on June 30)
Linda reported a silent crash by MCC-LIDAR 1.0rc4 on Windows 7 with a full-size tile:
She provided a copy of the tile to me:
I was able to reproduce the same crash with 1.0rc4 on Windows XP; however, the same command line ran successfully with 1.0rc4 on OS X (10.4).
I can reproduce this bug with the current version of trunk (rev. 187).
After poking around it looks like a bug in the way regions are created by DisjointRegions::subdivide. Specifically, when you have the combination of dense data, large scale values, and a small area that function may create a region that is larger than the raster it is trying to interpolate. This leads to errors when other parts of the code attempt to iterate over the cells in the region/raster cells. With a debug build the asserts in GridBase::getCell will typically be triggered.
I'm attaching a patch that fixes this issue by setting the maximum region size to the size of the raster.
This patch solves the problem for my test data sets, however, I don't have access to the other files mentioned in this report to test them.
The patch needs further testing.
Thanks for the patch! I tested it with other datasets, and the crashing seems to disappear. Committed in revision r192.
Related
Commit: [r192]