com.esri.arcgis.geodatabaseextensions
Interface ILasPointEdit

All Superinterfaces:
Serializable
All Known Implementing Classes:
LasDataset

public interface ILasPointEdit
extends Serializable

Provides access to members of LasDataset.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method Summary
 void changeClassCode(ITrackCancel pTrackCancel, int fileIndex, ILongArray pExistingCodes, ILongArray pNewCodes, boolean bCalculateStats)
          Replace points' class code.
 void editClassCode(int fileIndex, IDoubleArray pPointIDs, ILongArray pCodes, boolean[] pbHasChange)
          Set points' class code.
 void editClassCodeByClass(int fileIndex, IDoubleArray pPointIDs, int newCode, int withheldFlag, int keyPointFlag, int syntheticFlag, boolean[] pbHasChange)
          Set class code and flags (negative classCode value indicates no code change).
 void setClassCode(ITrackCancel pTrackCancel, int fileIndex, Object pAOI, double bufferDistance, IDoubleArray pZRange, ILasAttributeFilter pFilter, int newCode, boolean bCalculateStats)
          Set points' class code.
 void setClassFlag(ITrackCancel pTrackCancel, int fileIndex, Object pAOI, double bufferDistance, IDoubleArray pZRange, ILasAttributeFilter pFilter, int newFlags, boolean bClear, boolean bCalculateStats)
          Set points' classification flag.
 

Method Detail

setClassFlag

void setClassFlag(ITrackCancel pTrackCancel,
                  int fileIndex,
                  Object pAOI,
                  double bufferDistance,
                  IDoubleArray pZRange,
                  ILasAttributeFilter pFilter,
                  int newFlags,
                  boolean bClear,
                  boolean bCalculateStats)
                  throws IOException,
                         AutomationException
Set points' classification flag.

Description

SetClassFlag is used to set or clear the bit encoded class flags for points in las files (i.e., the synthetic, key-point, and witheld bits). Spatial and attribute filters determine what points get modified.

pTrackCancel references a CancelTracker that can be used to stop the process. This can be set to NULL if the ability for the user to cancel isn't required.

fileIndex is the index to the specific las file, as referenced by the las dataset, that will be modified. Valid fileIndex values range from 0 .. ILasDataset.FileCount-1.

pAOI is the area of interest. Las points coincident or intersected by this area will potentially be modified. pAOI may be an individual point, polyline, or polygon geometry as well as a feature class containing one of these geometry types. If a feature class is specified then each shape it contains will be used as a separate area of interest. Passing individual geometries is best used in conjunction with interactive tools. Passing a feature class is the most efficient method when you have many pre-existing shapes that are to be used to set class flags. Z values of inputs are ignored. The pZRange parameter can be used to specify a height constraint.

bufferDistance modifies the input pAOI geometry. Each shape will be buffered by this amount. The result is used as the AOI. Negative buffers can be used on polygons. For no buffer give a distance of 0.0.

pZRange is a DoubleArray used to specify a height range that acts as an additional constraint to the pAOI. You can either provide a NULL pointer if you're not interested in filtering by height or a DoubleArray with two values representing zmin and zmax.

pFilter is a LasAttributeFilter that adds qualitiers to control what las points get operated on. In addition to satisfying the pAOI and pZRange qualifiers, input points would also need to pass through this filter. A NULL pointer can be used if this filter isn't needed.

newFlags indicates which flags for candidate las points will be changed. All three bit fields (i.e., synthetic, model-key, withheld) can be encoded into this one value. Use the constants defined in the esriLasClassFlag enumeration in combination with a bitwise OR operator to set which flags are to be modified. Those which are not set will be left as is.

bClear is a boolean that indicates whether to set or clear (i.e., turn on or off) the flags specified by the flagsToModify parameter. When set to FALSE the flag(s) will be turned on. When set to TRUE the flag(s) will be turned off.

bCalculateStats informs the las dataset whether or not to (re)generate the las file statistics after performing the edit. If no further edits will be made to the las file, and statistics exist but will be invalidated with this call, or are desired to be made from scratch, then set this to TRUE. Otherwise, set it to FALSE to avoid an unnecessary expense.


Notes:

This method edits the las files containing the points. There is no support for undo. Consider the need to backup your las files before calling ILasPointEdit methods.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
fileIndex - The fileIndex (in)
pAOI - A reference to another Object (IUnknown) (in)
bufferDistance - The bufferDistance (in)
pZRange - A reference to a com.esri.arcgis.system.IDoubleArray (in)
pFilter - A reference to a com.esri.arcgis.geodatabaseextensions.ILasAttributeFilter (in)
newFlags - The newFlags (in)
bClear - The bClear (in)
bCalculateStats - The bCalculateStats (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setClassCode

void setClassCode(ITrackCancel pTrackCancel,
                  int fileIndex,
                  Object pAOI,
                  double bufferDistance,
                  IDoubleArray pZRange,
                  ILasAttributeFilter pFilter,
                  int newCode,
                  boolean bCalculateStats)
                  throws IOException,
                         AutomationException
Set points' class code.

Description

SetClassCode is used to set/change class codes for points in las files. Spatial and attribute filters determine what points get modified.

pTrackCancel references a CancelTracker that can be used to stop the process. This can be set to NULL if the ability for the user to cancel isn't required.

fileIndex is the index to the specific las file, as referenced by the las dataset, that will be modified. Valid fileIndex values range from 0 .. ILasDataset.FileCount-1.

pAOI is the area of interest. Las points coincident or intersected by this area will potentially be modified. pAOI may be an individual point, polyline, or polygon geometry as well as a feature class containing one of these geometry types. If a feature class is specified then each shape it contains will be used as a separate area of interest. Passing individual geometries is best used in conjunction with interactive tools. Passing a feature class is the most efficient method when you have many pre-existing shapes such as a collection of water bodies or breaklines that are being used to code the points. Z values of inputs are ignored. The pZRange parameter can be used to specify a height constraint.

bufferDistance modifies the input pAOI geometry. Each shape will be buffered by this amount. The result is used as the AOI. Negative buffers can be used on polygons. For no buffer give a distance of 0.0.

pZRange is a DoubleArray used to specify a height range that acts as an additional constraint to the pAOI. You can either provide a NULL pointer if you're not interested in filtering by height or a DoubleArray with two values representing zmin and zmax.

pFilter is a LasAttributeFilter that adds qualitiers to control what las points get operated on. In addition to satisfying the pAOI and pZRange qualifiers, input points would also need to pass through this filter. A NULL pointer can be used if this filter isn't needed.

newCode is written out as the new classification value for las points that satisfy the criteria set up by the other parmeters of this method.

bCalculateStats informs the las dataset whether or not to (re)generate the las file statistics after performing the edit. If no further edits will be made to the las file, and statistics exist but will be invalidated with this call, or are desired to be made from scratch, then set this to TRUE. Otherwise, set it to FALSE to avoid an unnecessary expense.


Notes:

This method edits the las files containing the points. There is no support for undo. Consider the need to backup your las files before calling ILasPointEdit methods.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
fileIndex - The fileIndex (in)
pAOI - A reference to another Object (IUnknown) (in)
bufferDistance - The bufferDistance (in)
pZRange - A reference to a com.esri.arcgis.system.IDoubleArray (in)
pFilter - A reference to a com.esri.arcgis.geodatabaseextensions.ILasAttributeFilter (in)
newCode - The newCode (in)
bCalculateStats - The bCalculateStats (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

changeClassCode

void changeClassCode(ITrackCancel pTrackCancel,
                     int fileIndex,
                     ILongArray pExistingCodes,
                     ILongArray pNewCodes,
                     boolean bCalculateStats)
                     throws IOException,
                            AutomationException
Replace points' class code.

Description

ChangeClassCode is used to change the class codes for points in las files. Consider using this method to update the classification of points in LAS files generated prior to the introduction of standardized class codes in the LAS 1.1 specifications.

pTrackCancel references a CancelTracker that can be used to stop the process. This can be set to NULL if the ability for the user to cancel isn't required.

fileIndex is the index to the specific las file, as referenced by the las dataset, that will be modified. Valid fileIndex values range from 0 .. ILasDataset.FileCount-1.

pExistingCodes is the array of input class codes that need to be modified.

pNewCodes is the array of new class codes that the points will be updated to. The array lengths of pExistingCodes and pNewCodes should be the same. There is a one to one relation between the two array elements. Points with a class code value that is present in the first index location of pExistingCodes will be updated to have a new class code value that is present in the first index location of the pNewCodes array.

bCalculateStats informs the las dataset whether or not to (re)generate the las file statistics after performing the edit. If no further edits will be made to the las file, and statistics exist but will be invalidated with this call, or are desired to be made from scratch, then set this to TRUE. Otherwise, set it to FALSE to avoid an unnecessary expense.


Notes:

This method edits the las files containing the points. There is no support for undo. Consider the need to backup your las files before calling ILasPointEdit methods.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
fileIndex - The fileIndex (in)
pExistingCodes - A reference to a com.esri.arcgis.system.ILongArray (in)
pNewCodes - A reference to a com.esri.arcgis.system.ILongArray (in)
bCalculateStats - The bCalculateStats (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

editClassCodeByClass

void editClassCodeByClass(int fileIndex,
                          IDoubleArray pPointIDs,
                          int newCode,
                          int withheldFlag,
                          int keyPointFlag,
                          int syntheticFlag,
                          boolean[] pbHasChange)
                          throws IOException,
                                 AutomationException
Set class code and flags (negative classCode value indicates no code change).

Description

EditClassCodeByClass is used to change the class code and the bit encoded class flags for points in las files.

fileIndex is the index to the specific las file, as referenced by the las dataset, that will be modified. Valid fileIndex values range from 0 .. ILasDataset.FileCount-1.

pPointIDs is the array of point indices for which the class codes and/or class flags need to be changed.

newCode is the new class code to be assigned to the input points. Set this to -1 if you only want to leave the class code unchanged and wish to just work with the class flags of the input points.

withheldFlag indicates whether to set, clear or leave unchanged the withheld class flag of the input points.

keyPointFlag indicates whether to set, clear or leave unchanged the key point class flag of the input points.

syntheticFlag indicates whether to set, clear or leave unchanged the synthetic class flag of the input points.

pBHasChange indicates whether atleast one change has been made to the input set of points. If all the input points already has the same class code as newCode or the combination of flags specified by the input arguments, no edits will be made to the points and pBHasChange will be false.


Notes:

This method edits the las files containing the points. There is no support for undo. Consider the need to backup your las files before calling ILasPointEdit methods.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
fileIndex - The fileIndex (in)
pPointIDs - A reference to a com.esri.arcgis.system.IDoubleArray (in)
newCode - The newCode (in)
withheldFlag - A com.esri.arcgis.geodatabaseextensions.esriLasClassFlagEditType constant (in)
keyPointFlag - A com.esri.arcgis.geodatabaseextensions.esriLasClassFlagEditType constant (in)
syntheticFlag - A com.esri.arcgis.geodatabaseextensions.esriLasClassFlagEditType constant (in)
pbHasChange - The pbHasChange (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

editClassCode

void editClassCode(int fileIndex,
                   IDoubleArray pPointIDs,
                   ILongArray pCodes,
                   boolean[] pbHasChange)
                   throws IOException,
                          AutomationException
Set points' class code.

Description

EditClassCode is used to change the class code for a set of points in the las dataset. Consider using this method when you are editing the class codes of a handful of points.

fileIndex is the index to the specific las file, as referenced by the las dataset, that will be modified. Valid fileIndex values range from 0 .. ILasDataset.FileCount-1.

pPointIDs is the array of point indices for which the class codes and/or class flags need to be changed.

pCodes is the array of new class codes that the points will be updated to. The array lengths of pPointIDs and pCodes should be the same. There is a one to one relation between the two array elements. The first point in the pPointIDs array will be assigned with the class code value at the first index location of the pCodes array.

pBHasChange indicates whether atleast one change has been made to the input set of points. If all the input points already has the same class codes as specified by the input pCodes arguments, no edits will be made to the points and pBHasChange will be false.


Notes:

This method edits the las files containing the points. There is no support for undo. Consider the need to backup your las files before calling ILasPointEdit methods.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
fileIndex - The fileIndex (in)
pPointIDs - A reference to a com.esri.arcgis.system.IDoubleArray (in)
pCodes - A reference to a com.esri.arcgis.system.ILongArray (in)
pbHasChange - The pbHasChange (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.