Menu

#36 mcc-lidar crashes (silently at pass 1) with larger scale and threshold parameters

2.0
closed
1.0rc2 (1)
fixed
program
major
2.0
defect
2013-01-09
2010-12-09
Zack Holden
No

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

1 Attachments

Related

Wiki: Version

Discussion

  • Eder Moreira

    Eder Moreira - 2011-01-25

    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.

     
  • Jimm Domingo

    Jimm Domingo - 2011-05-13
    • summary changed from mcc-lidar crashes with larger scale and threshold parameters to mcc-lidar crashes (silently at pass 1) with larger scale and threshold parameters

    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):

    C:\Users\Jory\My Documents>mcc-lidar -s 2.5 -t .8 e:\USFS_0001.las e:\mcc_0001.las 
    Reading 759,600 points from 'e:/USFS_0001.las' ...
      min X Y : 228550.07 187136.85
      max X Y : 228926.01 187431.27
    Searching for points with the same x,y coordinates...
      621 points classified as non-ground
    Identified 7 sets of unclassified duplicate points
    Scale domain: 1 (cell resolution: 1.25)
    SD 1 - Pass 1
      Interpolating 758,972 points:
        Sorting points into regions...
        Computing splines for regions and cell heights for raster surface:
          0%....10....20....30....40....50....60....70....80....90....100%
      Averaging raster surface...
      Identifying non-ground points:
        373,864 points (49%) classified as non-ground
    SD 1 - Pass 2
      Interpolating 385,108 points:
        Sorting points into regions...
        Computing splines for regions and cell heights for raster surface:
          0%....10....20....30....40....50....60....70....80....90....100%
      Averaging raster surface...
      Identifying non-ground points:
        103,064 points (27%) classified as non-ground
    SD 1 - Pass 3
      Interpolating 282,044 points:
        Sorting points into regions...
        Computing splines for regions and cell heights for raster surface:
          0%....10....20....30....40....50....60....70....80....90....100%
      Averaging raster surface...
      Identifying non-ground points:
        33,806 points (12%) classified as non-ground
    SD 1 - Pass 4
      Interpolating 248,238 points:
        Sorting points into regions...
        Computing splines for regions and cell heights for raster surface:
          0%....10....20....30....40....50....60....70....80....90....100%
      Averaging raster surface...
      Identifying non-ground points:
        12,564 points (5.1%) classified as non-ground
    SD 1 - Pass 5
      Interpolating 235,674 points:
        Sorting points into regions...
        Computing splines for regions and cell heights for raster surface:
          0%....10....20....30....40....50....60....70....80....90....100%
      Averaging raster surface...
      Identifying non-ground points:
        5,120 points (2.2%) classified as non-ground
    SD 1 - Pass 6
      Interpolating 230,554 points:
        Sorting points into regions...
        Computing splines for regions and cell heights for raster surface:
          0%....10....20....30....40....50....60....70....80....90....100%
      Averaging raster surface...
      Identifying non-ground points:
        2,372 points (1%) classified as non-ground
    SD 1 - Pass 7
      Interpolating 228,182 points:
        Sorting points into regions...
        Computing splines for regions and cell heights for raster surface:
          0%....10....20....30....40....50....60....70....80....90....100%
      Averaging raster surface...
      Identifying non-ground points:
        1,455 points (0.64%) classified as non-ground
    Scale domain: 2 (cell resolution: 2.5)
    SD 2 - Pass 1
      Interpolating 226,727 points:
        Sorting points into regions...
        Computing splines for regions and cell heights for raster surface:
          0%
    

    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.

     
  • Jimm Domingo

    Jimm Domingo - 2011-06-30

    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.

     
  • Jimm Domingo

    Jimm Domingo - 2011-07-01
    • keywords 1.0rc2 added
    • version changed from 1.0rc2 to 1.0rc4

    Linda encountered the crash with release candidate 4 (1.0rc4) and a small tile she created for crash testing:

    Folder: moscowMtn_bin130
    File:  Tile_1.las
    Only 1/2 a million points
    Parameters 0.8 and 0.07 would not run
    

    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.

     
  • Jimm Domingo

    Jimm Domingo - 2011-07-27

    (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:

    mcc-lidar -s 0.8 -t 0.07 moscowMTN\bin_130.las output-file.las
    Reading 7,348,343 points from 'moscowMTN\bin_130.las' ...
      min X Y : 510700 5182550
      max X Y : 511449.99 5183299.99
    Searching for points with the same x,y coordinates...
      5,062 points classified as non-ground
    Identified 166 sets of unclassified duplicate points
    Scale domain: 1 (cell resolution: 0.4)
    SD 1 - Pass 1
      Interpolating 7,343,115 points:
        Sorting points into regions...
    

    She provided a copy of the tile to me:

    name: BIN_130.las
    size: 205,753,833 bytes
    MD5:  09d4d54e8b6b2284c6e2b2544082928c
    

    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).

     
  • jedfrechette

    jedfrechette - 2012-06-14

    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.

     
  • jedfrechette

    jedfrechette - 2012-06-14
     
  • Rupesh Shrestha

    Rupesh Shrestha - 2013-01-08
    • version changed from 1.0rc4 to 2.0
     
  • Rupesh Shrestha

    Rupesh Shrestha - 2013-01-08
    • owner set to rupeshs
    • status changed from new to assigned

    The patch needs further testing.

     
  • Rupesh Shrestha

    Rupesh Shrestha - 2013-01-08
    • status changed from assigned to closed
    • resolution set to fixed

    Thanks for the patch! I tested it with other datasets, and the crashing seems to disappear. Committed in revision r192.

     

    Related

    Commit: [r192]

  • Rupesh Shrestha

    Rupesh Shrestha - 2013-01-09
    • version changed from 2.0 to 2.1
    • milestone set to 2.0
     
  • Rupesh Shrestha

    Rupesh Shrestha - 2013-01-09
    • version changed from 2.1 to 2.0
     

Log in to post a comment.