|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IFrameXform
Provides access to members that control a standard frame camera transform.
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
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 |
---|
IGeodataXform getInteriorOrientation() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setInteriorOrientationByRef(IGeodataXform ppAffine) throws IOException, AutomationException
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.
ppAffine
- A reference to a com.esri.arcgis.geodatabase.IGeodataXform (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean isEnableKonrady() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setEnableKonrady(boolean pK) throws IOException, AutomationException
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.
pK
- The pK (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.Object getKonradyParameters() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setKonradyParameters(Object pK) throws IOException, AutomationException
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.
pK
- A Variant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.int getKonradyType() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setKonradyType(int pType) throws IOException, AutomationException
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.
pType
- A com.esri.arcgis.datasourcesraster.esriRasterKonradyType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void queryKonradyParameters(double[] pK) throws IOException, AutomationException
pK
- The pK (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.boolean isApplyCurvatureAndRefraction() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setApplyCurvatureAndRefraction(boolean pApplyCurvatureAndRefraction) throws IOException, AutomationException
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.
pApplyCurvatureAndRefraction
- The pApplyCurvatureAndRefraction (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.double getEarthRadius() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setEarthRadius(double radius) throws IOException, AutomationException
radius
- The radius (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.double getAverageZ() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setAverageZ(double averageZ) throws IOException, AutomationException
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.
averageZ
- The averageZ (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPoint getPrincipalPoint() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setPrincipalPointByRef(IPoint pp) throws IOException, AutomationException
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.
pp
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.Object getPerspectiveMatrix() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setPerspectiveMatrix(Object pMatrix) throws IOException, AutomationException
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.
pMatrix
- A Variant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void queryPerspectiveMatrix(double[] pMatrix) throws IOException, AutomationException
pMatrix
- The pMatrix (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IPoint getPerspectiveCenter() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setPerspectiveCenterByRef(IPoint sp) throws IOException, AutomationException
The perspective center is the location of the aircraft when the exposure was taken, expressed in the spatial reference system associated with the project.
sp
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.int getPerspectivePolarity() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setPerspectivePolarity(int polarity) throws IOException, AutomationException
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.
polarity
- The polarity (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.double getFocalLength() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setFocalLength(double length) throws IOException, AutomationException
length
- The length (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void putInteriorOrientationParameters(int direction, Object parameters) throws IOException, AutomationException
See putref_InteriorOrientation for more details.
direction
- A com.esri.arcgis.geometry.esriTransformDirection constant (in)parameters
- A Variant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void putPerspectiveAngles(double omega, double phi, double kappa, boolean clockwise) throws IOException, AutomationException
An alternative to put_PerspectiveMatrix( ) for establishing the rotation matrix.
omega
- The omega (in)phi
- The phi (in)kappa
- The kappa (in)clockwise
- The clockwise (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void queryPerspectiveAngles(double[] pOmega, double[] pPhi, double[] pKappa, boolean[] pClockwise) throws IOException, AutomationException
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void setLSRByRef(IGeodataXform ppLSR) throws IOException, AutomationException
ppLSR
- A reference to a com.esri.arcgis.geodatabase.IGeodataXform (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IGeodataXform getLSR() throws IOException, AutomationException
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void putDistortionTable(IDoubleArray pDistanceInMillimeters, IDoubleArray pDistortionInMicrons) throws IOException, AutomationException
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.
pDistanceInMillimeters
- A reference to a com.esri.arcgis.system.IDoubleArray (in)pDistortionInMicrons
- A reference to a com.esri.arcgis.system.IDoubleArray (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.void getDistortionTable(IDoubleArray[] ppDistanceInMillimeters, IDoubleArray[] ppDistortionInMicrons) throws IOException, AutomationException
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)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IDoubleArray getResiduals() throws IOException, AutomationException
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.
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 |