Problem:
While attempting to populate LAS Working Segments the process errors with an exception. In the system message column of the Checklist Step History you note the following exception:
System.ArgumentException: Source array was not long enough. Check srcIndex and length, and the array’s lower bounds.
at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
at NIIRS10.LASLib.LASStructArray1.NIIRS10.LASLib.ILASArray0.CopyPoint(Int32 index, ILASArray0 ila, Int32 srcIndex) in N:\GeoCue 2017.1\iDEMS\iDEMSShared\LASLib\LASstructures.cs:line 2212
at NIIRS10.LASLib.LASTiler.copyPtsToTileBuf(UInt32 nPtsToRead, TLDEntry[] aTLD) in N:\GeoCue 2017.1\iDEMS\iDEMSShared\LASLib\Tiler.cs:line 646
at NIIRS10.LASLib.LASTiler.populateTiles(UInt32 nFirstNdx, UInt32 nLastNdx, TLDEntry[] TLD) in N:\GeoCue 2017.1\iDEMS\iDEMSShared\LASLib\Tiler.cs:line 611
at NIIRS10.LASLib.LASTiler.Tile(UInt64& ulNumPoints, Double& dMaxDensity, UInt32[]& auiIHist) in N:\GeoCue 2017.1\iDEMS\iDEMSShared\LASLib\Tiler.cs:line 434
at NIIRS10.ArbWrkSegSup.Populate.FinishDestEntity(Int32 nEntityID, Boolean bPopulated) in N:\GeoCue 20
Probable Resolution #1:
The following code snippets, when copied and pasted into text documents and saved as “Large_32K_TilerBuffer.reg” and “DefaultTileBuffer.reg”, respectively, and then merged into the registry, will modify the memory buffer size used when populating working segments.
- Merge the “Large_32K_TilerBuffer.reg” file into the registry on the machine(s) you wish to use for population. You will need to grant local administrative rights in order for the merge to succeed.
- About a minute after importing (letting it get into effect) please run your population again.
- After that merge the “DefaultTilerBuffer.reg” file to restore to the original state.
Large_32K_TileBuffer.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\GeoCue\LASTiler] "PointIOBufSizePoints"=dword:00008000
DefaultTileBuffer.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\GeoCue\LASTiler] "PointIOBufSizePoints"=-
Probable Resolution#2
If the 32k buffer size doesn’t work try one of the following instead. Different data may require different buffer sizes to be used. Note: This is a temporary fix as we investigate the root cause.
Large_16K_TileBuffer.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\GeoCue\LASTiler] "PointIOBufSizePoints"=dword:00004000
Large_64K_TileBuffer.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\GeoCue\LASTiler] "PointIOBufSizePoints"=dword:00010000