com.esri.arcgis.datasourcesraster
Interface IFrameXform

All Superinterfaces:
IGeodataXform, Serializable
All Known Implementing Classes:
FrameXform

public interface IFrameXform
extends IGeodataXform, Serializable

Provides access to members that control a standard frame camera transform.

Remarks

Use this interface to set and query parameters associated with a standard frame camera. Many of the parameters are required, and there are multiple ways to set some of these. See the documentation for each parameter for more details.

The required parameters are:

Interior orientation

Principal point

Focal length

Perspective center

Perspective matrix or perspective angles

Average Z or a DEM

Konrady coefficients if radial distortion correction is needed

Product Availability

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


Method Summary
 double getAverageZ()
          The average Z in meters.
 void getDistortionTable(IDoubleArray[] ppDistanceInMillimeters, IDoubleArray[] ppDistortionInMicrons)
          The distortion tables.
 double getEarthRadius()
          The earth radius in meters.
 double getFocalLength()
          The focal length in micron.
 IGeodataXform getInteriorOrientation()
          The interior orientation as an affine transformation.
 Object getKonradyParameters()
          The Konrady adjustment parameters.
 int getKonradyType()
          The Konrady calculation method.
 IGeodataXform getLSR()
          The LSR-To-USR conversion.
 IPoint getPerspectiveCenter()
          The sensor position.
 Object getPerspectiveMatrix()
          The specified sensor orientation as an orthogonal rotation matrix.
 int getPerspectivePolarity()
          The sensor polarity.
 IPoint getPrincipalPoint()
          The film principal point.
 IDoubleArray getResiduals()
          The residuals for distortion table points.
 boolean isApplyCurvatureAndRefraction()
          Indicates if the adjustment of earth curvature and refraction is applied.
 boolean isEnableKonrady()
          Indicates if the Konrady adjustment to be applied.
 void putDistortionTable(IDoubleArray pDistanceInMillimeters, IDoubleArray pDistortionInMicrons)
          The distortion tables to calculate Konrady coefficients and residuals.
 void putInteriorOrientationParameters(int direction, Object parameters)
          Puts the interior orientation parameters.
 void putPerspectiveAngles(double omega, double phi, double kappa, boolean clockwise)
          Puts the sensor exterior orientation as a set of rotation angles in degrees.
 void queryKonradyParameters(double[] pK)
          Queries the Konrady adjustment parameterrs.
 void queryPerspectiveAngles(double[] pOmega, double[] pPhi, double[] pKappa, boolean[] pClockwise)
          Queries the sensor exterior orientation as a set of rotation angles in degrees.
 void queryPerspectiveMatrix(double[] pMatrix)
          Queries the perspective matrix.
 void setApplyCurvatureAndRefraction(boolean pApplyCurvatureAndRefraction)
          Indicates if the adjustment of earth curvature and refraction is applied.
 void setAverageZ(double averageZ)
          The average Z in meters.
 void setEarthRadius(double radius)
          The earth radius in meters.
 void setEnableKonrady(boolean pK)
          Indicates if the Konrady adjustment to be applied.
 void setFocalLength(double length)
          The focal length in micron.
 void setInteriorOrientationByRef(IGeodataXform ppAffine)
          The interior orientation as an affine transformation.
 void setKonradyParameters(Object pK)
          The Konrady adjustment parameters.
 void setKonradyType(int pType)
          The Konrady calculation method.
 void setLSRByRef(IGeodataXform ppLSR)
          The LSR-To-USR conversion.
 void setPerspectiveCenterByRef(IPoint sp)
          The sensor position.
 void setPerspectiveMatrix(Object pMatrix)
          The specified sensor orientation as an orthogonal rotation matrix.
 void setPerspectivePolarity(int polarity)
          The sensor polarity.
 void setPrincipalPointByRef(IPoint pp)
          The film principal point.
 
Methods inherited from interface com.esri.arcgis.geodatabase.IGeodataXform
getDomains, getSpatialReference, isIdentity, setSpatialReferenceByRef, transform, transformCellsize, transformExtent, transformPoints
 

Method Detail

getInteriorOrientation

IGeodataXform getInteriorOrientation()
                                     throws IOException,
                                            AutomationException
The interior orientation as an affine transformation.

Product Availability

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

Returns:
A reference to a com.esri.arcgis.geodatabase.IGeodataXform
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setInteriorOrientationByRef

void setInteriorOrientationByRef(IGeodataXform ppAffine)
                                 throws IOException,
                                        AutomationException
The interior orientation as an affine transformation.

Remarks

Interior orientation establishes the relationship between image space (columns and rows) and film plane coordinates, typically measured in microns from the center of the image, as an affine transformation. This information is typically found in the aerial photography project file, where information for each frame is stored.

There are two ways to provide the affine coefficients: as a forward transformation (pixel space to film plane space) or reverse (film plane to pixels). Provide the coefficients and the direction when setting this parameter.

Product Availability

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

Parameters:
ppAffine - A reference to a com.esri.arcgis.geodatabase.IGeodataXform (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEnableKonrady

boolean isEnableKonrady()
                        throws IOException,
                               AutomationException
Indicates if the Konrady adjustment to be applied.

Product Availability

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

Returns:
The pK
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setEnableKonrady

void setEnableKonrady(boolean pK)
                      throws IOException,
                             AutomationException
Indicates if the Konrady adjustment to be applied.

Remarks

This parameter controls whether radial distortion correction is performed or not. If the corrections were applied during post-processing of the images, set this value to false. Otherwise, provide the Konrady coefficients. Be sure to set the correct Konrady type (ESRI or USGS) that corresponds to the coefficients.

Product Availability

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

Parameters:
pK - The pK (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getKonradyParameters

Object getKonradyParameters()
                            throws IOException,
                                   AutomationException
The Konrady adjustment parameters.

Product Availability

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

Returns:
A Variant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setKonradyParameters

void setKonradyParameters(Object pK)
                          throws IOException,
                                 AutomationException
The Konrady adjustment parameters.

Remarks

Konrady coefficients are used to correct radial distortions in standard frame cameras. Three double precision values are stored and used when displaying the imagery. See the ESRIRasterKonradyType enumeration values to see how these coefficients are applied.

Product Availability

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

Parameters:
pK - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getKonradyType

int getKonradyType()
                   throws IOException,
                          AutomationException
The Konrady calculation method.

Product Availability

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

Returns:
A com.esri.arcgis.datasourcesraster.esriRasterKonradyType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setKonradyType

void setKonradyType(int pType)
                    throws IOException,
                           AutomationException
The Konrady calculation method.

Description

ArcMap supports two conventions used for correcting radial distortions in standard frame cameras. They are represented by the enumeration values ESRIRasterKonradyESRI and ESRIRasterKonradyUSGS.

Both use a power series to calculate the percent error. The ESRI method uses second and fourth powers, while the USGS method uses third and fifth powers. See the enumeration ESRIRasterKonradyType for more information.

Product Availability

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

Parameters:
pType - A com.esri.arcgis.datasourcesraster.esriRasterKonradyType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryKonradyParameters

void queryKonradyParameters(double[] pK)
                            throws IOException,
                                   AutomationException
Queries the Konrady adjustment parameterrs.

Product Availability

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

Parameters:
pK - The pK (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isApplyCurvatureAndRefraction

boolean isApplyCurvatureAndRefraction()
                                      throws IOException,
                                             AutomationException
Indicates if the adjustment of earth curvature and refraction is applied.

Product Availability

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

Returns:
The pApplyCurvatureAndRefraction
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setApplyCurvatureAndRefraction

void setApplyCurvatureAndRefraction(boolean pApplyCurvatureAndRefraction)
                                    throws IOException,
                                           AutomationException
Indicates if the adjustment of earth curvature and refraction is applied.

Remarks

Optional parameter indicating whether the earth curvature and atmospheric distortion correction should be applied. By default it is not. It is primarily used for high altitude aerial photography, as the effect is minimal in most aerial surveys.

Product Availability

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

Parameters:
pApplyCurvatureAndRefraction - The pApplyCurvatureAndRefraction (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getEarthRadius

double getEarthRadius()
                      throws IOException,
                             AutomationException
The earth radius in meters.

Product Availability

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

Returns:
The radius
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setEarthRadius

void setEarthRadius(double radius)
                    throws IOException,
                           AutomationException
The earth radius in meters.

Product Availability

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

Parameters:
radius - The radius (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAverageZ

double getAverageZ()
                   throws IOException,
                          AutomationException
The average Z in meters.

Product Availability

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

Returns:
The averageZ
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setAverageZ

void setAverageZ(double averageZ)
                 throws IOException,
                        AutomationException
The average Z in meters.

Remarks

When performing ortho-rectification, a source of elevation data is required. This is often a digital elevation model (DEM) dataset. If a DEM is not available, the average elevation in the area of interest must be set for best results.

Product Availability

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

Parameters:
averageZ - The averageZ (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPrincipalPoint

IPoint getPrincipalPoint()
                         throws IOException,
                                AutomationException
The film principal point.

Product Availability

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

Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setPrincipalPointByRef

void setPrincipalPointByRef(IPoint pp)
                            throws IOException,
                                   AutomationException
The film principal point.

Remarks

The principal point is the difference in locations between the center of the film plane (0,0 from the interior orientation) and the true optical center of the lens system. This information is found in the camera calibration report.

Product Availability

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

Parameters:
pp - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPerspectiveMatrix

Object getPerspectiveMatrix()
                            throws IOException,
                                   AutomationException
The specified sensor orientation as an orthogonal rotation matrix.

Product Availability

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

Returns:
A Variant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setPerspectiveMatrix

void setPerspectiveMatrix(Object pMatrix)
                          throws IOException,
                                 AutomationException
The specified sensor orientation as an orthogonal rotation matrix.

Remarks

The perspective matrix is a 3x3 rotation matrix that adjusts the imagery based on the three perspective angles associated with an image frame. The three angles represent the roll, pitch and yaw of the aircraft (omega, phi, kappa) when the exposure was taken.

There are two ways to set the perspective matrix: put_PerspectiveMatrix( ) and PutPerspectiveAngles( ). Both methods populate the 3x3 rotation matrix. The choice of which to use is largely based on what information is available in the aerial photography project file.

Product Availability

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

Parameters:
pMatrix - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryPerspectiveMatrix

void queryPerspectiveMatrix(double[] pMatrix)
                            throws IOException,
                                   AutomationException
Queries the perspective matrix.

Product Availability

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

Parameters:
pMatrix - The pMatrix (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPerspectiveCenter

IPoint getPerspectiveCenter()
                            throws IOException,
                                   AutomationException
The sensor position.

Product Availability

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

Returns:
A reference to a com.esri.arcgis.geometry.IPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setPerspectiveCenterByRef

void setPerspectiveCenterByRef(IPoint sp)
                               throws IOException,
                                      AutomationException
The sensor position.

Remarks

The perspective center is the location of the aircraft when the exposure was taken, expressed in the spatial reference system associated with the project.

Product Availability

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

Parameters:
sp - A reference to a com.esri.arcgis.geometry.IPoint (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getPerspectivePolarity

int getPerspectivePolarity()
                           throws IOException,
                                  AutomationException
The sensor polarity.

Product Availability

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

Returns:
The polarity
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setPerspectivePolarity

void setPerspectivePolarity(int polarity)
                            throws IOException,
                                   AutomationException
The sensor polarity.

Remarks

An optional parameter that defines the direction of the Z axis. The default value is -1, and should only be changed for sensor that use that convention.

Product Availability

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

Parameters:
polarity - The polarity (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFocalLength

double getFocalLength()
                      throws IOException,
                             AutomationException
The focal length in micron.

Product Availability

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

Returns:
The length
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setFocalLength

void setFocalLength(double length)
                    throws IOException,
                           AutomationException
The focal length in micron.

Product Availability

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

Parameters:
length - The length (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

putInteriorOrientationParameters

void putInteriorOrientationParameters(int direction,
                                      Object parameters)
                                      throws IOException,
                                             AutomationException
Puts the interior orientation parameters.

Remarks

See putref_InteriorOrientation for more details.

Product Availability

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

Parameters:
direction - A com.esri.arcgis.geometry.esriTransformDirection constant (in)
parameters - A Variant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

putPerspectiveAngles

void putPerspectiveAngles(double omega,
                          double phi,
                          double kappa,
                          boolean clockwise)
                          throws IOException,
                                 AutomationException
Puts the sensor exterior orientation as a set of rotation angles in degrees.

Remarks

An alternative to put_PerspectiveMatrix( ) for establishing the rotation matrix.

Product Availability

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

Parameters:
omega - The omega (in)
phi - The phi (in)
kappa - The kappa (in)
clockwise - The clockwise (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryPerspectiveAngles

void queryPerspectiveAngles(double[] pOmega,
                            double[] pPhi,
                            double[] pKappa,
                            boolean[] pClockwise)
                            throws IOException,
                                   AutomationException
Queries the sensor exterior orientation as a set of rotation angles in degrees.

Product Availability

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

Parameters:
pOmega - The pOmega (out: use single element array)
pPhi - The pPhi (out: use single element array)
pKappa - The pKappa (out: use single element array)
pClockwise - The pClockwise (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setLSRByRef

void setLSRByRef(IGeodataXform ppLSR)
                 throws IOException,
                        AutomationException
The LSR-To-USR conversion.

Product Availability

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

Parameters:
ppLSR - A reference to a com.esri.arcgis.geodatabase.IGeodataXform (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getLSR

IGeodataXform getLSR()
                     throws IOException,
                            AutomationException
The LSR-To-USR conversion.

Product Availability

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

Returns:
A reference to a com.esri.arcgis.geodatabase.IGeodataXform
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

putDistortionTable

void putDistortionTable(IDoubleArray pDistanceInMillimeters,
                        IDoubleArray pDistortionInMicrons)
                        throws IOException,
                               AutomationException
The distortion tables to calculate Konrady coefficients and residuals.

Remarks

An alternative to put_KonradyParameters, this method allows the use of the distortion tables contained in the camera calibration report to calculate the Konrady coefficients. It is critical to ensure that the units are correct for the two arrays that are passed in. The first array is the radial distance in mm, while the second array is the distortion errors in microns. Either ESRI or USGS conventions can be used to calculate the coefficients. See the ESRIRasterKonradyType enumeration for more details.

Product Availability

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

Parameters:
pDistanceInMillimeters - A reference to a com.esri.arcgis.system.IDoubleArray (in)
pDistortionInMicrons - A reference to a com.esri.arcgis.system.IDoubleArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDistortionTable

void getDistortionTable(IDoubleArray[] ppDistanceInMillimeters,
                        IDoubleArray[] ppDistortionInMicrons)
                        throws IOException,
                               AutomationException
The distortion tables.

Product Availability

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

Parameters:
ppDistanceInMillimeters - A reference to a com.esri.arcgis.system.IDoubleArray (out: use single element array)
ppDistortionInMicrons - A reference to a com.esri.arcgis.system.IDoubleArray (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getResiduals

IDoubleArray getResiduals()
                          throws IOException,
                                 AutomationException
The residuals for distortion table points.

Remarks

After using the distortion table to calculate the Konrady coefficients, it is important to check the residuals to detect if any anomalies, for instance an error when inputing the data values. Under normal circumstances, the residuals should be just a few microns. Larger residuals could indicate a problem with the data points.

Product Availability

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

Returns:
A reference to a com.esri.arcgis.system.IDoubleArray
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.