com.esri.arcgis.geodatabaseextensions
Class LasDataset

java.lang.Object
  extended by com.esri.arcgis.geodatabaseextensions.LasDataset
All Implemented Interfaces:
IDataset, IGeoDataset, IGeoDatasetSchemaEdit, ILasDataset, ILasDatasetEdit, ILasPointCloud, ILasPointEdit, com.esri.arcgis.interop.RemoteObjRef, Serializable

public class LasDataset
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IDataset, IGeoDataset, IGeoDatasetSchemaEdit, ILasDataset, ILasDatasetEdit, ILasPointEdit, ILasPointCloud

Esri LasDataset component.

Product Availability

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

See Also:
Serialized Form

Constructor Summary
LasDataset()
          Constructs a LasDataset using ArcGIS Engine.
LasDataset(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
LasDataset theLasDataset = (LasDataset) obj;
 
Method Summary
 void addFile(String fileName)
          Adds a file to the dataset.
 void addFolder(String folderName, String fileExtension, boolean bRecursive, IStringArray[] ppBadFiles)
          Adds all the files in the specified a folder, and potentially subfolders, to the dataset.
 void addSurfaceConstraint(IFeatureClass pFeatureClass, IField pHeightField, IField pTagField, int type)
          Adds surface constraint (e.g., breaklines) to the dataset.
 void alterSpatialReference(ISpatialReference spatialReference)
          Alters the spatial reference of the dataset to match the coordinate system of the input spatial reference, does not reproject the data.
 void calculateFileStatistics(ITrackCancel pTrackCancel, int index)
          Calculate statistics of the specified file.
 void calculateStatistics(ITrackCancel pTrackCancel, boolean bForce, ILongArray[] ppBadFiles)
          Calculate statistics of the entire dataset.
 boolean canCopy()
          True if this dataset can be copied.
 boolean canDelete()
          True if this dataset can be deleted.
 boolean canRename()
          True if this dataset can be renamed.
 void changeClassCode(ITrackCancel pTrackCancel, int fileIndex, ILongArray pExistingCodes, ILongArray pNewCodes, boolean bCalculateStats)
          Replace points' class code.
 IDataset copy(String copyName, IWorkspace copyWorkspace)
          Copies this dataset to a new dataset with the specified name.
 ILasSurface createDynamicSurface()
          Returns an implicit surface.
 void delete()
          Deletes this dataset.
 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).
 boolean equals(Object o)
          Compare this object with another
 double estimatePointCount(IGeometry pAOI)
          Estimate point count.
 void estimatePointSpacing(IEnvelope pAOI, double[] pMinSpacing, double[] pMaxSpacing, double[] pMeanSpacing)
          Estimate point spacing.
 void export(ITrackCancel pTrackCancel, int fileIndex, ILasPointFilter pFilter, String newFileName, ISpatialReference pNewSpatialReference, boolean bProject, boolean bDropVLRs)
          Returns an implicit surface.
 String getBrowseName()
          The browse name of the dataset.
 String getCategory()
          The category of the dataset.
static String getClsid()
          getClsid.
 IEnvelope getExtent()
          The extent of the GeoDataset.
 ILasFile getFile(int index)
          Returns the LAS file specified by the index.
 int getFileCount()
          The number of LAS files contained in the dataset.
 IName getFullName()
          The associated name object.
 IArray getLasPointInfo(ITrackCancel pTrackCancel, IGeometry pLocation, double pointID)
          Returns an array of ILasPointInfo(the 1-based pointID is optional).
 IEnumLasPoint getLasPoints(ITrackCancel pTrackCancel, ILasPointFilter pFilter, double thinningFactor, double zFactor)
          getLasPoints
 IEnumLasPoint getLasPointsByBudget(ITrackCancel pTrackCancel, ILasPointFilter pFilter, double maxPointCount, double zFactor)
          getLasPointsByBudget
 String getName()
          The name of the Dataset.
 double getPointCount()
          The number of points in the dataset.
 IPropertySet getPropertySet()
          The set of properties for the dataset.
 double getSizeInBytes()
          The size of all the LAS files in bytes.
 ISpatialReference getSpatialReference()
          The spatial reference of the GeoDataset.
 ILasStatistics getStatistics()
          Get statistics.
 IEnumDataset getSubsets()
          Datasets contained within this dataset.
 void getSurfaceConstraint(int index, IFeatureClass[] ppClass, IField[] ppHeightField, IField[] ppTagField, int[] pType)
          Gets surface constraint specified by the index.
 int getSurfaceConstraintCount()
          The number of surface constraints contained in the dataset.
 void getSurfaceConstraintID(int index, IUID[] ppGuid)
          Gets surface constraint specified by the index.
 void getSurfaceConstraintIndexFromID(IUID pGuid, int[] pIndex)
          Gets surface constraint's index identified by the ID.
 void getSurfaceConstraintName(int index, IFeatureClassName[] ppName, String[] pHeightField, String[] pTagField, int[] pType)
          Gets surface constraint specified by the index.
 int getType()
          The type of the Dataset.
 IWorkspace getWorkspace()
          The workspace containing this dataset.
 int hashCode()
          the hashcode for this object
 void init(String name)
          Opens the specified dataset.
 boolean isCanAlterSpatialReference()
          Indicates if the spatial reference of the dataset can be altered.
 boolean isDirty()
          Indicates if the dataset has been changed since last save.
 boolean isHasStatistics()
          Indicates if statistics is available.
 boolean isNeedsUpdateStatistics()
          Indicates if update is necessary.
 boolean isUsesRelativePath()
          Indicates if the dataset is saved with relative path.
 void lasPointStatsAsRaster(ITrackCancel pTrackCancel, ILasPointFilter pFilter, IRasterDataset pDataset, int type, int attribute)
          Export to Raster.
 void queryLasPointInfo(int fileIndex, double pointID, ILasPointInfo pInfo)
          Query point information associated with the 1-based point ID.
 void removeFile(int index)
          Removes the specified file from the dataset.
 void removeFileByName(String fileName)
          Removes the specified file from the dataset.
 void removeSurfaceConstraint(IFeatureClass pFeatureClass)
          Removes the specified surface constraint from the dataset.
 void removeSurfaceConstraintByID(IUID pGuid)
          Removes the specified surface constraint from the dataset.
 void rename(String name)
          Renames this Dataset.
 void save()
          Saves the changes.
 void saveAs(String name, boolean bOverWrite)
          Saves the dataset to disk using the specified name.
 void setBrowseName(String name)
          The browse name of the dataset.
 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.
 void setEmpty()
          Empty the object.
 void setSpatialReference(ISpatialReference pSpatialReference)
          Sets spatial reference.
 void setUsesRelativePath(boolean rhs1)
          Indicates if the dataset is saved with relative path.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef
getJintegraDispatch, release
 

Constructor Detail

LasDataset

public LasDataset()
           throws IOException,
                  UnknownHostException
Constructs a LasDataset using ArcGIS Engine.

Throws:
IOException - if there are interop problems
UnknownHostException - if there are interop problems

LasDataset

public LasDataset(Object obj)
           throws IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
LasDataset theLasDataset = (LasDataset) obj;

Construct a LasDataset using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to LasDataset.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

getName

public String getName()
               throws IOException,
                      AutomationException
The name of the Dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getName in interface IDataset
Specified by:
getName in interface ILasDataset
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFullName

public IName getFullName()
                  throws IOException,
                         AutomationException
The associated name object.

Remarks

The FullName property returns a Name object for the dataset. The Name object can be persisted and provides a way to get back to the dataset in a future session of the application, via the Open method on the Name object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getFullName in interface IDataset
Returns:
A reference to a com.esri.arcgis.system.IName
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getBrowseName

public String getBrowseName()
                     throws IOException,
                            AutomationException
The browse name of the dataset.

Remarks

BrowseName returns file names without their extension. For example, States.shp would appear as States.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getBrowseName in interface IDataset
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setBrowseName

public void setBrowseName(String name)
                   throws IOException,
                          AutomationException
The browse name of the dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setBrowseName in interface IDataset
Parameters:
name - The name (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getType

public int getType()
            throws IOException,
                   AutomationException
The type of the Dataset.

Remarks

The Type property returns the an esriDatasetType value indicating the dataset type, such as esriDTTable or esriDTFeatureClass.

Example:


// Assume we have a reference to an IfeatureClass (pFeatureClass) IDataset pDataset = null;
pDataset = new IDatasetProxy(pFeatureClass);
System.out.println(pDataset.getName() + " " + pDataset.getType());
if(pFeatureClass != null){
pDataset = pFeatureClass.getFeatureDataset();
System.out.println(pDataset.getName() + " " + pDataset.getType());
}
pDataset = new IDatasetProxy(pDataset.getWorkspace());
System.out.println(pDataset.getName() + " " +
pDataset.getType());

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getType in interface IDataset
Returns:
A com.esri.arcgis.geodatabase.esriDatasetType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCategory

public String getCategory()
                   throws IOException,
                          AutomationException
The category of the dataset.

Remarks

IDataset::Category returns a description of the category of the dataset. The description returned from the Category property is the same value that is displayed in the Type column within the Contents tab in ArcCatalog. The value will contain a description of the dataset such as "Topology" prefixed with a description of the type of workspace containing the dataset such as "File Geodatabase".

The description returned from IDataset::Category may change between releases of ArcGIS. In addition to this, returned strings are localized, meaning that code relying on a specific string being provided may fail when deployed with a different version of ArcGIS than it was developed with, or when deployed to a client using a different language than it was developed with.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getCategory in interface IDataset
Returns:
The category
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSubsets

public IEnumDataset getSubsets()
                        throws IOException,
                               AutomationException
Datasets contained within this dataset.

Description

The Subsets property returns other Dataset objects contained in this dataset.

Remarks

IDataset::Subsets is not supported for Graph objects such as a Geometric Network. To return the feature classes contained in a Geometric Network, use the IFeatureClassContainer interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSubsets in interface IDataset
Returns:
A reference to a com.esri.arcgis.geodatabase.IEnumDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getWorkspace

public IWorkspace getWorkspace()
                        throws IOException,
                               AutomationException
The workspace containing this dataset.

Description

The Workspace property returns the containing workspace for this dataset.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getWorkspace in interface IDataset
Returns:
A reference to a com.esri.arcgis.geodatabase.IWorkspace
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPropertySet

public IPropertySet getPropertySet()
                            throws IOException,
                                   AutomationException
The set of properties for the dataset.

Description

The PropertySet property is used to return any additional intrinsic properties (but not metadata properties) that may apply to the dataset. One use of this property is to distinguish between the types of File Geodatabase datafile formats. If called on a Feature Class or Table in a File Geodatabase the Datafile Format property can either be esriFGDBStandardDatafile or esriFGDBCompressedDatafile.

Most datasets do not implement this property and will either raise an error or return a null value if it's called. There are a handful of exceptions that will return property sets; these include the datasets from file geodatabases (as mentioned above) and coverages.

Remarks

Examples of intrinsic properties for which explicit methods exist include the SpatialReference and the Extent methods available on the IGeoDataset interface. In most cases this PropertySet will be empty.

IDataset::PropertySet is not supported for Graph objects such as a Geometric Network.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getPropertySet in interface IDataset
Returns:
A reference to a com.esri.arcgis.system.IPropertySet
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canCopy

public boolean canCopy()
                throws IOException,
                       AutomationException
True if this dataset can be copied.

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

The CanCopy method is supported by:

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canCopy in interface IDataset
Returns:
The canCopy
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

copy

public IDataset copy(String copyName,
                     IWorkspace copyWorkspace)
              throws IOException,
                     AutomationException
Copies this dataset to a new dataset with the specified name.

Remarks

IDataset::Copy should only be used with datasets from file-based data sources, such as shapefiles and coverages.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
copy in interface IDataset
Parameters:
copyName - The copyName (in)
copyWorkspace - A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
Returns:
A reference to a com.esri.arcgis.geodatabase.IDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canDelete

public boolean canDelete()
                  throws IOException,
                         AutomationException
True if this dataset can be deleted.

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canDelete in interface IDataset
Returns:
The canDelete
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

delete

public void delete()
            throws IOException,
                   AutomationException
Deletes this dataset.

Remarks

Certain feature classes, such as network and topology feature classes, cannot be deleted until their containing objects are deleted.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
delete in interface IDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

canRename

public boolean canRename()
                  throws IOException,
                         AutomationException
True if this dataset can be renamed.

Remarks

The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete or rename a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
canRename in interface IDataset
Returns:
The canRename
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

rename

public void rename(String name)
            throws IOException,
                   AutomationException
Renames this Dataset.

Remarks

IDataset::Rename does not support the renaming of Graph objects such as a Geometric Network. In addition, certain feature classes, such as network feature classes, cannot be renamed.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
rename in interface IDataset
Parameters:
name - The name (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSpatialReference

public ISpatialReference getSpatialReference()
                                      throws IOException,
                                             AutomationException
The spatial reference of the GeoDataset.

Remarks

This property is read only. For layers, when the first layer is added to ArcMap, its spatial reference is read by this property, and the map is set to this spatial reference.

Instances of the esriCarto.GroupLayer class will return null for this property, as a group layer can contain multiple datasets with different spatial references.

Modifications to a spatial reference returned by this property will not be persisted. To modify the spatial reference of a dataset, the IGeoDatasetSchemaEdit and IGeoDatasetSchemaEdit2 interfaces should be used.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSpatialReference in interface IGeoDataset
Specified by:
getSpatialReference in interface ILasDataset
Returns:
A reference to a com.esri.arcgis.geometry.ISpatialReference
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getExtent

public IEnvelope getExtent()
                    throws IOException,
                           AutomationException
The extent of the GeoDataset.

Remarks

The IGeoDataset::Extent property returns an envelope representing the maximum extent of data which has been stored in the dataset.

Consider the following scenario. A new feature class has features added to it. The IGeoDataset::Extent is then requested and an envelope is returned. The extents of the envelope returned are represented by the red box in the image below.

The red box represents the IGeoDataset extent

If a portion of the features were then deleted and the extent is again requested an envelope with the exact same extents as during the first request would be returned (see image below). This is because the deletion of features does not shrink the extent. However all additions of features outside the red box would increase the envelope returned to encompass the newly added features.

The red box represents the IGeoDataset extent after some of the features have been deleted

If you would like to update the IGeoDataset::Extent property to reflect the current features in your dataset please see IFeatureClassManage::UpdateExtent (also see IFeatureClassLoad). In the image below the extent has been updated and a new envelope is being returned.

The red box represents the IGeoDataset extent after it has been updated

ESRI's GroupLayer implements this property differently from most other layer coclasses. When you instantiate a new GroupLayer, this property will return a valid envelope with zero height and width. With most other newly instantiated layers (for example FeatureLayer, RasterLayer, TinLayer), this property initally returns Nothing.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getExtent in interface IGeoDataset
Specified by:
getExtent in interface ILasDataset
Returns:
A reference to a com.esri.arcgis.geometry.IEnvelope
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isCanAlterSpatialReference

public boolean isCanAlterSpatialReference()
                                   throws IOException,
                                          AutomationException
Indicates if the spatial reference of the dataset can be altered.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isCanAlterSpatialReference in interface IGeoDatasetSchemaEdit
Returns:
The canAlter
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

alterSpatialReference

public void alterSpatialReference(ISpatialReference spatialReference)
                           throws IOException,
                                  AutomationException
Alters the spatial reference of the dataset to match the coordinate system of the input spatial reference, does not reproject the data.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
alterSpatialReference in interface IGeoDatasetSchemaEdit
Parameters:
spatialReference - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setEmpty

public void setEmpty()
              throws IOException,
                     AutomationException
Empty the object.

Description

Brings the LasDataset object to the state that exists immediately after it is co-created (i.e., with 'New'). It references no LasDataset on disk, has no las files, surface constraints etc.

Product Availability

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

Specified by:
setEmpty in interface ILasDataset
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

init

public void init(String name)
          throws IOException,
                 AutomationException
Opens the specified dataset.

Description

Initializes the object by pointing to a las dataset on disk at the specified location.

Product Availability

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

Specified by:
init in interface ILasDataset
Parameters:
name - The name (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

saveAs

public void saveAs(String name,
                   boolean bOverWrite)
            throws IOException,
                   AutomationException
Saves the dataset to disk using the specified name.

Description

The interface pointer will reference the newly saved las dataset after the call is made.
Name is the full path (including the name) of the location to which the las dataset is to be saved.
bOverWrite, if set to True, the output las dataset will be replaced if it already exists.

Product Availability

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

Specified by:
saveAs in interface ILasDataset
Parameters:
name - The name (in)
bOverWrite - The bOverWrite (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isUsesRelativePath

public boolean isUsesRelativePath()
                           throws IOException,
                                  AutomationException
Indicates if the dataset is saved with relative path.

Description

Indicates whether the las files in the las dataset are stored using relative paths.

Product Availability

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

Specified by:
isUsesRelativePath in interface ILasDataset
Returns:
The pbUsesRelativePath
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public boolean isDirty()
                throws IOException,
                       AutomationException
Indicates if the dataset has been changed since last save.

Description

Indicates whether the las dataset has been changed since the last time it was saved. Changes to the las dataset's schema (adding or removing files, computing statistics etc.) result in the las dataset becoming dirty. When a las dataset is dirty, consider using ILasDatasetEdit.Save after all the edits to avoid losing the changes.

Product Availability

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

Specified by:
isDirty in interface ILasDataset
Returns:
The pbIsDirty
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFileCount

public int getFileCount()
                 throws IOException,
                        AutomationException
The number of LAS files contained in the dataset.

Description

The total number of LAS files referenced by the las dataset.

Product Availability

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

Specified by:
getFileCount in interface ILasDataset
Returns:
The pcFiles
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFile

public ILasFile getFile(int index)
                 throws IOException,
                        AutomationException
Returns the LAS file specified by the index.

Product Availability

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

Specified by:
getFile in interface ILasDataset
Parameters:
index - The index (in)
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.ILasFile
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSurfaceConstraintCount

public int getSurfaceConstraintCount()
                              throws IOException,
                                     AutomationException
The number of surface constraints contained in the dataset.

Description

The total number of surface constraints referenced by the las dataset.

Product Availability

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

Specified by:
getSurfaceConstraintCount in interface ILasDataset
Returns:
The pcConstraints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSurfaceConstraint

public void getSurfaceConstraint(int index,
                                 IFeatureClass[] ppClass,
                                 IField[] ppHeightField,
                                 IField[] ppTagField,
                                 int[] pType)
                          throws IOException,
                                 AutomationException
Gets surface constraint specified by the index.

Description

Returns the surface constraint specified by the index.
index is the input index.
ppClass is the feature class specified by the index.
ppHeightField is the field being used as the source of height value.
ppTagField is the field being used as the source of tag values.
pType indicates how the surface constraint is incorporated into the triangulation.

Product Availability

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

Specified by:
getSurfaceConstraint in interface ILasDataset
Parameters:
index - The index (in)
ppClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (out: use single element array)
ppHeightField - A reference to a com.esri.arcgis.geodatabase.IField (out: use single element array)
ppTagField - A reference to a com.esri.arcgis.geodatabase.IField (out: use single element array)
pType - A com.esri.arcgis.geodatabase.esriTinSurfaceType constant (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSurfaceConstraintName

public void getSurfaceConstraintName(int index,
                                     IFeatureClassName[] ppName,
                                     String[] pHeightField,
                                     String[] pTagField,
                                     int[] pType)
                              throws IOException,
                                     AutomationException
Gets surface constraint specified by the index.

Description

Returns the feature class name object of the surface constraint specified by the index.
index is the input index.
ppName is the feature class name of surface constraint specified by the index.
ppHeightField is the name of the field being used as the source of height value.
ppTagField is the name of the field being used as the source of tag values.
pType indicates how the surface constraint is incorporated into the triangulation.

Product Availability

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

Specified by:
getSurfaceConstraintName in interface ILasDataset
Parameters:
index - The index (in)
ppName - A reference to a com.esri.arcgis.geodatabase.IFeatureClassName (out: use single element array)
pHeightField - The pHeightField (out: use single element array)
pTagField - The pTagField (out: use single element array)
pType - A com.esri.arcgis.geodatabase.esriTinSurfaceType constant (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSurfaceConstraintID

public void getSurfaceConstraintID(int index,
                                   IUID[] ppGuid)
                            throws IOException,
                                   AutomationException
Gets surface constraint specified by the index.

Description

Returns the UID of the surface constraint specified by the index.
index is the input index.
ppGuid is the UID of the surface constraint.

Product Availability

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

Specified by:
getSurfaceConstraintID in interface ILasDataset
Parameters:
index - The index (in)
ppGuid - A reference to a com.esri.arcgis.system.IUID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSurfaceConstraintIndexFromID

public void getSurfaceConstraintIndexFromID(IUID pGuid,
                                            int[] pIndex)
                                     throws IOException,
                                            AutomationException
Gets surface constraint's index identified by the ID.

Description

Returns the index of the surface constraint specified by the input UID.
pGuid is the input UID of the surface constraint.
index is the index of the surface constraint.

Product Availability

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

Specified by:
getSurfaceConstraintIndexFromID in interface ILasDataset
Parameters:
pGuid - A reference to a com.esri.arcgis.system.IUID (in)
pIndex - The pIndex (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPointCount

public double getPointCount()
                     throws IOException,
                            AutomationException
The number of points in the dataset.

Description

Returns the number of points in the las dataset. This count includes the points that are flagged as 'withheld' (if any).

Product Availability

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

Specified by:
getPointCount in interface ILasDataset
Returns:
The pCount
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSizeInBytes

public double getSizeInBytes()
                      throws IOException,
                             AutomationException
The size of all the LAS files in bytes.

Description

Represents the cumulative size in bytes of all the las files participating in the las dataset.

Product Availability

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

Specified by:
getSizeInBytes in interface ILasDataset
Returns:
The pcBytes
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isHasStatistics

public boolean isHasStatistics()
                        throws IOException,
                               AutomationException
Indicates if statistics is available.

Description

Indicates if statistics are available for the las dataset. Use this property in conjunction with ILasDataset.NeedsUpdateStatistics to know whether the statistics available with the las dataset are up-to-date or not.

Product Availability

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

Specified by:
isHasStatistics in interface ILasDataset
Returns:
The pbHasStats
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isNeedsUpdateStatistics

public boolean isNeedsUpdateStatistics()
                                throws IOException,
                                       AutomationException
Indicates if update is necessary.

Description

An update to statistics may be necessary if the class code values of points have been modified in the LAS files or if LAS files are added or removed from the las dataset.

Product Availability

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

Specified by:
isNeedsUpdateStatistics in interface ILasDataset
Returns:
The pbNeedsUpdate
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getStatistics

public ILasStatistics getStatistics()
                             throws IOException,
                                    AutomationException
Get statistics.

Description

Returns the LasStatistics object.

Product Availability

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

Specified by:
getStatistics in interface ILasDataset
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.ILasStatistics
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createDynamicSurface

public ILasSurface createDynamicSurface()
                                 throws IOException,
                                        AutomationException
Returns an implicit surface.

Description

Returns an implicit surface from which TINs and rasters are derived.

Product Availability

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

Specified by:
createDynamicSurface in interface ILasDataset
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.ILasSurface
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

export

public void export(ITrackCancel pTrackCancel,
                   int fileIndex,
                   ILasPointFilter pFilter,
                   String newFileName,
                   ISpatialReference pNewSpatialReference,
                   boolean bProject,
                   boolean bDropVLRs)
            throws IOException,
                   AutomationException
Returns an implicit surface.

Description

Export allows you to create a new LAS file with a subset of points that match a desired criteria. This method can also be used to rectify geo referencing errors in LAS files.
pTrackCancel is a reference to a cancel tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.
FileIndex is the input index of the LAS file.
pFilter is point filter that allows you to select the desired points. If set to NULL, all the points in the input LAS file will be written to the output file.
newFileName is the name of the output LAS file.
pNewSpatialReference is the new spatial reference object.
bProject indicates whether the input point records are to be projected to the new spatial reference.
bDropVLRs indicates if the variable length records are written to the output las file or whether they are to be ignored.

Product Availability

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

Specified by:
export in interface ILasDataset
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
fileIndex - The fileIndex (in)
pFilter - A reference to a com.esri.arcgis.geodatabaseextensions.ILasPointFilter (in)
newFileName - The newFileName (in)
pNewSpatialReference - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
bProject - The bProject (in)
bDropVLRs - The bDropVLRs (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

save

public void save()
          throws IOException,
                 AutomationException
Saves the changes.

Description

Save will persist all edits to the current LasDataset. If you want to preserve the original LasDataset, use ILasDataset.SaveAs.

Product Availability

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

Specified by:
save in interface ILasDatasetEdit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setUsesRelativePath

public void setUsesRelativePath(boolean rhs1)
                         throws IOException,
                                AutomationException
Indicates if the dataset is saved with relative path.

Description

If set to true, all the las files and surface constraints referenced by the las dataset will be stored using relative paths.

Product Availability

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

Specified by:
setUsesRelativePath in interface ILasDatasetEdit
Parameters:
rhs1 - The rhs1 (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setSpatialReference

public void setSpatialReference(ISpatialReference pSpatialReference)
                         throws IOException,
                                AutomationException
Sets spatial reference.

Description

Assign a spatial reference to the las dataset.

Product Availability

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

Specified by:
setSpatialReference in interface ILasDatasetEdit
Parameters:
pSpatialReference - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addFile

public void addFile(String fileName)
             throws IOException,
                    AutomationException
Adds a file to the dataset.

Description

The file name must be the full path of the LAS file location on disk.

Product Availability

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

Specified by:
addFile in interface ILasDatasetEdit
Parameters:
fileName - The fileName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addFolder

public void addFolder(String folderName,
                      String fileExtension,
                      boolean bRecursive,
                      IStringArray[] ppBadFiles)
               throws IOException,
                      AutomationException
Adds all the files in the specified a folder, and potentially subfolders, to the dataset.

Description

Use this method to add multiple LAS files at once.

folderName is the full path of the folder.

fileExtension is used to add files of a certain type. Use the extension ‘las’ to add LAS files. This is case-insensitive.

bRecursive, if set to True, would also include LAS files in sub folders.

ppBadFiles is a string array that is populated with the names of the las files that could not be added to the las dataset. That includes files that are corrupt or invalid.

Product Availability

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

Specified by:
addFolder in interface ILasDatasetEdit
Parameters:
folderName - The folderName (in)
fileExtension - The fileExtension (in)
bRecursive - The bRecursive (in)
ppBadFiles - A reference to a com.esri.arcgis.system.IStringArray (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removeFile

public void removeFile(int index)
                throws IOException,
                       AutomationException
Removes the specified file from the dataset.

Description

Removes the reference to the LAS file at the specified index. Valid Index values range from 0 .. ILasDataset.FileCount-1.

Product Availability

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

Specified by:
removeFile in interface ILasDatasetEdit
Parameters:
index - The index (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removeFileByName

public void removeFileByName(String fileName)
                      throws IOException,
                             AutomationException
Removes the specified file from the dataset.

Description

The fileName string must be a full path or the relative path of the LAS file.

Product Availability

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

Specified by:
removeFileByName in interface ILasDatasetEdit
Parameters:
fileName - The fileName (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addSurfaceConstraint

public void addSurfaceConstraint(IFeatureClass pFeatureClass,
                                 IField pHeightField,
                                 IField pTagField,
                                 int type)
                          throws IOException,
                                 AutomationException
Adds surface constraint (e.g., breaklines) to the dataset.

Description

This method allows the addition of feature classes as surface constraints. Breaklines and clip polygons can be added in the form of line and polygon feature classes.

pFeatureClass is the feature class to be added.

pHeightField is the field that indicates where the heights for the features come from. If the shape geometry is 3D, and that's what you want to use, pass the Shape field of the feature class. Otherwise, a numeric field can be used. If the heights for the features should be interpolated from the existing state of the surface, pass a NULL pointer ('Nothing' in VB) to indicate the features do not have Z values of their own.

pTagField is a numeric field used to assign tags to corresponding elements in the TIN. Tag values are signed long integers that are assigned to nodes, edges, or triangles. They have user defined meaning (e.g. node accuracy, land cover, etc.). If no tag values are to be used pass a NULL pointer ('Nothing' in VB).

Type indicates how the surface constraint is incorporated into the triangulation.

Product Availability

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

Specified by:
addSurfaceConstraint in interface ILasDatasetEdit
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
pHeightField - A reference to a com.esri.arcgis.geodatabase.IField (in)
pTagField - A reference to a com.esri.arcgis.geodatabase.IField (in)
type - A com.esri.arcgis.geodatabase.esriTinSurfaceType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removeSurfaceConstraint

public void removeSurfaceConstraint(IFeatureClass pFeatureClass)
                             throws IOException,
                                    AutomationException
Removes the specified surface constraint from the dataset.

Description

Removes the surface constraint specified by the input feature class.

pFeatureClass is the input surface constraint to be removed. If the feature class is not available on disk anymore, consider using ILasDatasetEdit.RemoveSurfaceConstraintByID to remove the surface constraint from the las dataset.

Product Availability

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

Specified by:
removeSurfaceConstraint in interface ILasDatasetEdit
Parameters:
pFeatureClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removeSurfaceConstraintByID

public void removeSurfaceConstraintByID(IUID pGuid)
                                 throws IOException,
                                        AutomationException
Removes the specified surface constraint from the dataset.

Description

Removes the surface constraint specified by the input UID.

pGuid is the UID of the input surface constraint to be removed. This method is handy when the feature class is not available on disk anymore.

Product Availability

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

Specified by:
removeSurfaceConstraintByID in interface ILasDatasetEdit
Parameters:
pGuid - A reference to a com.esri.arcgis.system.IUID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

calculateStatistics

public void calculateStatistics(ITrackCancel pTrackCancel,
                                boolean bForce,
                                ILongArray[] ppBadFiles)
                         throws IOException,
                                AutomationException
Calculate statistics of the entire dataset.

Description

Computes the statistics for the las dataset.

pTrackCancel is a reference to a Cancel Tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.

bForce, if set to false, statistics are computed only for the las files that have outdated or no statistics. Setting it true forces a re-compute of the statistics for all the las files.
ppBadFiles is the list of files for which the statistics computation has failed.

Product Availability

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

Specified by:
calculateStatistics in interface ILasDatasetEdit
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
bForce - The bForce (in)
ppBadFiles - A reference to a com.esri.arcgis.system.ILongArray (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

calculateFileStatistics

public void calculateFileStatistics(ITrackCancel pTrackCancel,
                                    int index)
                             throws IOException,
                                    AutomationException
Calculate statistics of the specified file.

Description

Computes the statistics for the las file referenced by the specified index.

pTrackCancel is a reference to a Cancel Tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.

index is the input index of the LAS file for which statistics need to be computed.

Product Availability

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

Specified by:
calculateFileStatistics in interface ILasDatasetEdit
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
index - The index (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setClassFlag

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

Specified by:
setClassFlag in interface ILasPointEdit
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

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

Specified by:
setClassCode in interface ILasPointEdit
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

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

Specified by:
changeClassCode in interface ILasPointEdit
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

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

Specified by:
editClassCodeByClass in interface ILasPointEdit
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

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

Specified by:
editClassCode in interface ILasPointEdit
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.

estimatePointCount

public double estimatePointCount(IGeometry pAOI)
                          throws IOException,
                                 AutomationException
Estimate point count.

Description

Returns an estimate of the number of points within the specified area of interest.

pAOI is the input geometry representing the area of interest. Valid geometries are Polygon, Envelope and a GeometryBag with polygons or envelopes. The Z range information, if set on the input geometry, is ignored.

Product Availability

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

Specified by:
estimatePointCount in interface ILasPointCloud
Parameters:
pAOI - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Returns:
The pcPoints
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

estimatePointSpacing

public void estimatePointSpacing(IEnvelope pAOI,
                                 double[] pMinSpacing,
                                 double[] pMaxSpacing,
                                 double[] pMeanSpacing)
                          throws IOException,
                                 AutomationException
Estimate point spacing.

Description

Returns min, max, and mean point spacing estimates based on the LAS files whose extents intersect the passed envelope. If only one file is within the extent then min, max, and mean will be the same. If multiple files are intersected the min is set to the file with the smallest spacing, max to the one with the largest, and mean is based on estimating the total points within the envelope.

Point spacing estimates at this level (i.e., the dataset) are based on estimates made per LAS file. They'll be more reliable if statistics for the LAS dataset have been calculated (see ILasDatasetEdit.CalculateStatistics and ILasFile.HasStatistics).

Product Availability

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

Specified by:
estimatePointSpacing in interface ILasPointCloud
Parameters:
pAOI - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
pMinSpacing - The pMinSpacing (out: use single element array)
pMaxSpacing - The pMaxSpacing (out: use single element array)
pMeanSpacing - The pMeanSpacing (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLasPoints

public IEnumLasPoint getLasPoints(ITrackCancel pTrackCancel,
                                  ILasPointFilter pFilter,
                                  double thinningFactor,
                                  double zFactor)
                           throws IOException,
                                  AutomationException
getLasPoints

Description

Returns a Las point enumerator to retrieve points from a LAS dataset.

pTrackCancel is a reference to a Cancel Tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.
pFilter references a ILasPointFilter that defines the selection criteria for what points to read from the las files.

thinningFactor is a double with a valid range: >0 and <=1.0. Multiplied by 100, it represents the percentage of points to retrieve from within the area of interest defined by pFilter.

zFactor is used to convert the vertical units of the retrieved points (e.g., to convert feet to meters). The output point z values are multipled by the zFactor.

Product Availability

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

Specified by:
getLasPoints in interface ILasPointCloud
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
pFilter - A reference to a com.esri.arcgis.geodatabaseextensions.ILasPointFilter (in)
thinningFactor - The thinningFactor (in)
zFactor - The zFactor (in)
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.IEnumLasPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLasPointsByBudget

public IEnumLasPoint getLasPointsByBudget(ITrackCancel pTrackCancel,
                                          ILasPointFilter pFilter,
                                          double maxPointCount,
                                          double zFactor)
                                   throws IOException,
                                          AutomationException
getLasPointsByBudget

Description

Returns a Las point enumerator to retrieve points from a LAS dataset with a constraint on the upper limit of the number of points.

pTrackCancel is a reference to a Cancel Tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.

pFilter references a ILasPointFilter that defines the selection criteria for what points to read from the las files.

maxPointCount is the maximum number of points that is desired.

zFactor is used to convert the vertical units of the retrieved points (e.g., to convert feet to meters). The output point z values are multipled by the zFactor.

Product Availability

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

Specified by:
getLasPointsByBudget in interface ILasPointCloud
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
pFilter - A reference to a com.esri.arcgis.geodatabaseextensions.ILasPointFilter (in)
maxPointCount - The maxPointCount (in)
zFactor - The zFactor (in)
Returns:
A reference to a com.esri.arcgis.geodatabaseextensions.IEnumLasPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLasPointInfo

public IArray getLasPointInfo(ITrackCancel pTrackCancel,
                              IGeometry pLocation,
                              double pointID)
                       throws IOException,
                              AutomationException
Returns an array of ILasPointInfo(the 1-based pointID is optional).

Description

Returns an array of point info objects located near the input geometry.

pTrackCancel is a reference to a Cancel Tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.

pLocation is the input geometry. Valid geometries are Point, Envelope. The z information on the input geometry is honored. If extent is z-aware, its z-range is honored.

pointID is optional. If provided, point info object(s) of the point(s) with the input pointID that satisfy the location's extent are returned.

Product Availability

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

Specified by:
getLasPointInfo in interface ILasPointCloud
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
pLocation - A reference to a com.esri.arcgis.geometry.IGeometry (in)
pointID - The pointID (in)
Returns:
A reference to a com.esri.arcgis.system.IArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryLasPointInfo

public void queryLasPointInfo(int fileIndex,
                              double pointID,
                              ILasPointInfo pInfo)
                       throws IOException,
                              AutomationException
Query point information associated with the 1-based point ID.

Description

Queries the point information for the specified point in a specified file.

FileIndex is the input file index (0-based).

PointID is the input point id (1-based).

pInfo is ILasPointInfo object representing the point information. This object needs to be pre-initialized.

Product Availability

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

Specified by:
queryLasPointInfo in interface ILasPointCloud
Parameters:
fileIndex - The fileIndex (in)
pointID - The pointID (in)
pInfo - A reference to a com.esri.arcgis.geodatabaseextensions.ILasPointInfo (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

lasPointStatsAsRaster

public void lasPointStatsAsRaster(ITrackCancel pTrackCancel,
                                  ILasPointFilter pFilter,
                                  IRasterDataset pDataset,
                                  int type,
                                  int attribute)
                           throws IOException,
                                  AutomationException
Export to Raster.

Description

Populates the input raster dataset with values that reflect statistical information about measurements from LAS files referenced by a las dataset.

pTrackCancel is a reference to a Cancel Tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.

pFilter is a reference to an ILasPointFilter. If set, only points that match the criteria set on the filter are considered while computing statistics.

pDataset is the raster dataset to which the point statistics information will be written to. The raster must already exist.

Type is the statistic type computed about the points in each cell of the raster dataset.

Attribute is the point attribute using which the statistics are computed on a cell by cell basis.

Product Availability

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

Specified by:
lasPointStatsAsRaster in interface ILasPointCloud
Parameters:
pTrackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
pFilter - A reference to a com.esri.arcgis.geodatabaseextensions.ILasPointFilter (in)
pDataset - A reference to a com.esri.arcgis.geodatabase.IRasterDataset (in)
type - A com.esri.arcgis.geodatabaseextensions.esriLasPointStatsType constant (in)
attribute - A com.esri.arcgis.geodatabaseextensions.esriLasAttributeType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.