|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.geodatabaseextensions.TerrainLasDataImporter
public class TerrainLasDataImporter
ESRI Terrain LAS Data Importer object.
The TerrainLasDataImporter is used to load LIDAR points from one or more LAS version 1.0 and 1.1 format files into a multipoint feature class.
Constructor Summary | |
---|---|
TerrainLasDataImporter()
Constructs a TerrainLasDataImporter using ArcGIS Engine. |
|
TerrainLasDataImporter(Object obj)
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts. TerrainLasDataImporter theTerrainLasDataImporter = (TerrainLasDataImporter) obj; |
Method Summary | |
---|---|
void |
addFile(String fileName)
Include a specific file to be loaded upon Import. |
void |
addFolder(String folderName,
String fileExtension,
boolean bRecursive)
Include a folder, and potentially subfolders, to be loaded upon import. |
void |
addProperty(int property,
String fieldName)
Used to indicate which, if any, LiDAR properties to retain and load into the target feature class in a BLOB field. |
void |
addReturnNumber(int returnNumber)
Used to indicate which points to extract from the LAS files based on their LiDAR return number. |
boolean |
equals(Object o)
Compare this object with another |
void |
esri_import(IFeatureClass pOutputFeatureClass,
double tileSize,
double zFactor,
IEnvelope pAOI,
ITrackCancel pTrackCancel,
int[] pcOutsidePoints)
Loads the specified data, based on the current properties, into the target feature class. |
static String |
getClsid()
getClsid. |
IEnvelope |
getDataExtent()
The XYZ extent of points in the LAS file. |
IEnvelope |
getDataExtent(ISpatialReference pTargetSpatialReference)
The XYZ extent of data contained in files/folders to be added. |
int |
getFileSourceID()
The LAS file's source ID. |
int |
getFlightDateJulian()
The flight date based on the Julian calendar. |
String |
getGeneratingSoftware()
The software used to create the LAS file. |
int |
getMaxShapePointCount()
The maximum number of points loaded into individual multipoint shapes. |
int |
getNumberOfPointRecords()
The number of points in the LAS file. |
int |
getNumberOfPointsByReturn(int returnNumber)
The number of points in the LAS file based on the specified LiDAR return number. |
double |
getPointCount()
The number of points in the files/folders to be added. |
int |
getPointDataFormat()
The record format for points in the LAS file |
void |
getPointInfoByClassCode(ITrackCancel pTrackCancel,
ILongArray pCodes,
IDoubleArray[] ppCounts,
IArray[] ppExtents)
Get the number of points corresponding to the specified class codes. |
ISpatialReference |
getSpatialReference()
The spatial reference of the LAS file. |
String |
getSystemID()
The hardware system used to collect the LiDAR data in the LAS file. |
void |
getVersion(int[] pMajor,
int[] pMinor)
The version of the LAS file. |
int |
getYear()
The year the data in the LAS file was collected. |
int |
hashCode()
the hashcode for this object |
void |
init(String lasFileName)
Used to set the name of the LAS file for which information is to be retrieved. |
boolean |
isStandardGpsTime()
Indicates if the GPS time is standard GPS Time. |
void |
overwriteMaxShapePointCount(int newCount)
Changes the default maximum number of points loaded into individual multipoint shapes. |
void |
setClassCodes(ILongArray pCodes)
Used to indicate which points to load based on one or more LAS classification codes. |
void |
setEmpty()
Clears all properties. |
void |
setSourceDataSpatialReference(ISpatialReference pSpatialRef)
Set source data's spatial reference. |
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 |
---|
public TerrainLasDataImporter() throws IOException, UnknownHostException
IOException
- if there are interop problems
UnknownHostException
- if there are interop problemspublic TerrainLasDataImporter(Object obj) throws IOException
TerrainLasDataImporter theTerrainLasDataImporter = (TerrainLasDataImporter) obj;
obj
to TerrainLasDataImporter
.
obj
- an object returned from ArcGIS Engine or Server
IOException
- if there are interop problemsMethod Detail |
---|
public static String getClsid()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public void setSourceDataSpatialReference(ISpatialReference pSpatialRef) throws IOException, AutomationException
setSourceDataSpatialReference
in interface ITerrainDataImporter
pSpatialRef
- A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setEmpty() throws IOException, AutomationException
SetEmpty clears all the properties but keeps the object alive. Use this when needing to clear the file or folder lists of the importer while in a loop. Keep in the mind the other properties will also need to be reset. Nevertheless, this is less expensive than instantiating the object repeatedly.
setEmpty
in interface ITerrainDataImporter
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaxShapePointCount() throws IOException, AutomationException
The importer writes out multipoint records. The MaxShapePointCount represents the largest number of points an individual multipoint record can contain. The default is 5000. Use OverwriteMaxShapePointCount to change this value.
getMaxShapePointCount
in interface ITerrainDataImporter
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void overwriteMaxShapePointCount(int newCount) throws IOException, AutomationException
This will reset the MaxShapePointCount in case you don't want to use the default of 5000.
overwriteMaxShapePointCount
in interface ITerrainDataImporter
newCount
- The newCount (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addFile(String fileName) throws IOException, AutomationException
The importer supports the input of one or more files at a time. Call AddFile, and repeat as necessary, to handle individual files. Provide the full path. Call SetEmpty to clear this list.
addFile
in interface ITerrainDataImporter
fileName
- The fileName (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addFolder(String folderName, String fileExtension, boolean bRecursive) throws IOException, AutomationException
The importer supports the input of one or more folders worth of files at a time. You can call AddFolder repeatedly. Call SetEmpty to clear this list.
fileExtension is the suffix of the file(s), excluding the dot ('.'). Only files with this suffix in the selected folder(s) will be read.
bRecursive is a boolean to indicate whether or not to recurse below the specified folders into their subfolders to look for more files.
addFolder
in interface ITerrainDataImporter
folderName
- The folderName (in)fileExtension
- The fileExtension (in)bRecursive
- The bRecursive (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnvelope getDataExtent(ISpatialReference pTargetSpatialReference) throws IOException, AutomationException
Returns the data extent of points in the files referenced by the importer. See AddFile and AddFolder.
LAS format LIDAR files contain the data extent in the header. From them, the extent can be extracted quickly. ASCII files, on the other hand, must be scanned to discover the extent. The time this will take is proportional to the amount of data to scan through.
getDataExtent
in interface ITerrainDataImporter
pTargetSpatialReference
- A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getPointCount() throws IOException, AutomationException
Returns the number of points in the files referenced by the importer. See AddFile and AddFolder.
For LAS data the desired return numbers and/or class codes, as set by ITerrainLasDataImporter, will be taken into consideration. You must include some returns via ITerrainLasDataImporter.AddReturnNumber. The LAS specification records the number of points by return in the header so getting counts by return will be fast. On the other hand, if class codes are specified (see ITerrainLasDataImporter.AddClassCodes) the files must be scanned to determine the count. The time this will take is proportional to the amount of data to scan through.
Introduced in LAS version 1.1 is a Witheld flag as a point property. GetPointCount does not take this flag into consideration when totaling points.
getPointCount
in interface ITerrainDataImporter
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void esri_import(IFeatureClass pOutputFeatureClass, double tileSize, double zFactor, IEnvelope pAOI, ITrackCancel pTrackCancel, int[] pcOutsidePoints) throws IOException, AutomationException
esri_import
in interface ITerrainDataImporter
pOutputFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)tileSize
- The tileSize (in)zFactor
- The zFactor (in)pAOI
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)pcOutsidePoints
- The pcOutsidePoints (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addProperty(int property, String fieldName) throws IOException, AutomationException
AddProperty is used to select which LIDAR attributes, if any, to import. The values will be stored in BLOBs in the output feature class. They can be retreived via the TerrainBlobReader. Call it repeatedly if more than one attribute is to be loaded.
The caller is responsible for adding the BLOB field(s) to the target feature class before calling Import. The FieldName is used to indicate which field is used to store the property.
addProperty
in interface ITerrainLasDataImporter
property
- A com.esri.arcgis.geodatabaseextensions.esriTerrainLasDataPropertyType constant (in)fieldName
- The fieldName (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addReturnNumber(int returnNumber) throws IOException, AutomationException
At least one selection for return number must be added (which may include ALL), otherwise no points will be used.
addReturnNumber
in interface ITerrainLasDataImporter
returnNumber
- A com.esri.arcgis.geodatabaseextensions.esriTerrainLasReturnType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setClassCodes(ILongArray pCodes) throws IOException, AutomationException
setClassCodes
in interface ITerrainLasDataImporter
pCodes
- A reference to a com.esri.arcgis.system.ILongArray (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void init(String lasFileName) throws IOException, AutomationException
init
in interface ITerrainLasDataInfo
lasFileName
- The lasFileName (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getVersion(int[] pMajor, int[] pMinor) throws IOException, AutomationException
getVersion
in interface ITerrainLasDataInfo
pMajor
- The pMajor (out: use single element array)pMinor
- The pMinor (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getSystemID() throws IOException, AutomationException
getSystemID
in interface ITerrainLasDataInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getGeneratingSoftware() throws IOException, AutomationException
getGeneratingSoftware
in interface ITerrainLasDataInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getFlightDateJulian() throws IOException, AutomationException
getFlightDateJulian
in interface ITerrainLasDataInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getYear() throws IOException, AutomationException
getYear
in interface ITerrainLasDataInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPointDataFormat() throws IOException, AutomationException
getPointDataFormat
in interface ITerrainLasDataInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getNumberOfPointRecords() throws IOException, AutomationException
getNumberOfPointRecords
in interface ITerrainLasDataInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getNumberOfPointsByReturn(int returnNumber) throws IOException, AutomationException
getNumberOfPointsByReturn
in interface ITerrainLasDataInfo
returnNumber
- The returnNumber (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnvelope getDataExtent() throws IOException, AutomationException
getDataExtent
in interface ITerrainLasDataInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISpatialReference getSpatialReference() throws IOException, AutomationException
getSpatialReference
in interface ITerrainLasDataInfo
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getFileSourceID() throws IOException, AutomationException
Returns the 'File Source ID' listed in the header of the LAs file.
Here's a description for 'File Source ID' as listed in the LAS 1.2 specification:
File Source ID (Flight Line Number if this file was derived from an original flight line): This field should be set to a value between 1 and 65,535, inclusive. A value of zero (0) is interpreted to mean that an ID has not been assigned. In this case, processing software is free to assign any valid number. Note that this scheme allows a LIDAR project to contain up to 65,535 unique sources. A source can be considered an original flight line or it can be the result of merge and/or extract operations.
getFileSourceID
in interface ITerrainLasDataInfo2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isStandardGpsTime() throws IOException, AutomationException
This method returns TRUE if the time contained in the LAS file represents standard GPS time and FALSE if it represents GPS week time.
isStandardGpsTime
in interface ITerrainLasDataInfo2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getPointInfoByClassCode(ITrackCancel pTrackCancel, ILongArray pCodes, IDoubleArray[] ppCounts, IArray[] ppExtents) throws IOException, AutomationException
Returns point count and extent information based on LAS class codes.
pTrackCancel is a reference to a CancelTracker to support progress reporting and the ability to halt the process. To bypass this feature pass a NULL pointer.
pCodes is a LongArray containing the LAS class codes. You can either provide an empty array, in which case all codes contained in the file will be discovered and written into the array for you, or you can specify specific codes of interest. If you specify the codes then the count and extent information will be reported only for those classes.
pCounts is an output DoubleArray containing the number of points per class. There is a one to one correspondence between the codes in the pCodes array and the counts in the pCounts array.
pExtents in an output array of envelopes. The envelopes capture the XYZ extents of the points based on class code. There is a one to one correspondence between the codes in the pCodes array and the envelopes placed in the pExtents array. If a code has been specified in the pCodes array that does not exist in the file the resulting envelope will be empty (IGeometry.IsEmpty=TRUE).
getPointInfoByClassCode
in interface ITerrainLasDataInfo2
pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)pCodes
- A reference to a com.esri.arcgis.system.ILongArray (in)ppCounts
- A reference to a com.esri.arcgis.system.IDoubleArray (out: use single element array)ppExtents
- A reference to a com.esri.arcgis.system.IArray (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |