Package org.esa.snap.core.datamodel
Class GcpGeoCoding
- java.lang.Object
-
- org.esa.snap.core.datamodel.AbstractGeoCoding
-
- org.esa.snap.core.datamodel.GcpGeoCoding
-
- All Implemented Interfaces:
GeoCoding
public class GcpGeoCoding extends AbstractGeoCoding
Ground control point (GCP) geo-coding.- Version:
- $Revision$ $Date$
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GcpGeoCoding.Method
Class representing the approximation methods used for the GCP geo-coding.
-
Constructor Summary
Constructors Constructor Description GcpGeoCoding(GcpGeoCoding.Method method, double[] x, double[] y, double[] lons, double[] lats, int sceneWidth, int sceneHeight, Datum datum)
Constructs a new instance of this class.GcpGeoCoding(GcpGeoCoding.Method method, Placemark[] gcps, int sceneWidth, int sceneHeight, Datum datum)
Constructs a new instance of this class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canClone()
Check if geocoding can be cloned.boolean
canGetGeoPos()
Checks whether or not this geo-coding can determine the geodetic position from a pixel position.boolean
canGetPixelPos()
Checks whether or not this geo-coding can determine the pixel position from a geodetic position.GeoCoding
clone()
Creates a shallow clone of this geocoding.void
dispose()
Releases all of the resources used by this object instance and all of its owned children.boolean
equals(Object o)
Datum
getDatum()
Gets the datum, the reference point or surface against whichGeoPos
measurements are made.GeoPos
getGeoPos(PixelPos pixelPos, GeoPos geoPos)
Returns the latitude and longitude value for a given pixel co-ordinate.GcpGeoCoding.Method
getMethod()
Returns the approximation method used for this geo-coding.GeoCoding
getOriginalGeoCoding()
PixelPos
getPixelPos(GeoPos geoPos, PixelPos pixelPos)
Returns the pixel co-ordinates as x/y for a given geographical position given as lat/lon.double
getRmseLat()
Returns the root mean square error (RMSE) of the latitude approximation.double
getRmseLon()
Returns the root mean square error (RMSE) of the longitude approximation.int
hashCode()
boolean
isCrossingMeridianAt180()
Checks whether or not the longitudes of this geo-coding cross the +/- 180 degree meridian.void
setGcps(Placemark[] gcps)
void
setOriginalGeoCoding(GeoCoding geoCoding)
boolean
transferGeoCoding(Scene sourceScene, Scene targetScene, ProductSubsetDef subsetDef)
-
Methods inherited from class org.esa.snap.core.datamodel.AbstractGeoCoding
createImageCRS, getGeoCRS, getImageCRS, getImageToMapTransform, getMapCRS, setGeoCRS, setImageCRS, setMapCRS
-
-
-
-
Constructor Detail
-
GcpGeoCoding
public GcpGeoCoding(GcpGeoCoding.Method method, Placemark[] gcps, int sceneWidth, int sceneHeight, Datum datum)
Constructs a new instance of this class.- Parameters:
method
- the approximation method.gcps
- the ground control points.sceneWidth
- the scene width.sceneHeight
- the scene height.datum
- the datum.
-
GcpGeoCoding
public GcpGeoCoding(GcpGeoCoding.Method method, double[] x, double[] y, double[] lons, double[] lats, int sceneWidth, int sceneHeight, Datum datum)
Constructs a new instance of this class.- Parameters:
method
- the approximation method.x
- the x coordinates.y
- the y coordinates.lons
- the longitudes.lats
- the latitudes.sceneWidth
- the scene width.sceneHeight
- the scene height.datum
- the datum.
-
-
Method Detail
-
transferGeoCoding
public boolean transferGeoCoding(Scene sourceScene, Scene targetScene, ProductSubsetDef subsetDef)
- Specified by:
transferGeoCoding
in classAbstractGeoCoding
- Parameters:
sourceScene
- the source scenetargetScene
- the destination scenesubsetDef
- the definition of the subset, may benull
- Returns:
- true, if the geo-coding could be transferred.
-
canClone
public boolean canClone()
Description copied from class:AbstractGeoCoding
Check if geocoding can be cloned.- Specified by:
canClone
in interfaceGeoCoding
- Overrides:
canClone
in classAbstractGeoCoding
- Returns:
- if so or not
-
clone
public GeoCoding clone()
Description copied from class:AbstractGeoCoding
Creates a shallow clone of this geocoding. Geolocation raster data is shared.- Specified by:
clone
in interfaceGeoCoding
- Overrides:
clone
in classAbstractGeoCoding
- Returns:
- the cloned geocoding
-
isCrossingMeridianAt180
public boolean isCrossingMeridianAt180()
Checks whether or not the longitudes of this geo-coding cross the +/- 180 degree meridian.- Returns:
true
, if so
-
canGetPixelPos
public boolean canGetPixelPos()
Checks whether or not this geo-coding can determine the pixel position from a geodetic position.- Returns:
true
, if so
-
canGetGeoPos
public boolean canGetGeoPos()
Checks whether or not this geo-coding can determine the geodetic position from a pixel position.- Returns:
true
, if so
-
getPixelPos
public PixelPos getPixelPos(GeoPos geoPos, PixelPos pixelPos)
Returns the pixel co-ordinates as x/y for a given geographical position given as lat/lon.- Parameters:
geoPos
- the geographical position as lat/lon in the coordinate system determined byGeoCoding.getGeoCRS()
pixelPos
- an instance ofPoint
to be used as return value. If this parameter isnull
, the method creates a new instance which it then returns.- Returns:
- the pixel co-ordinates as x/y
-
getGeoPos
public GeoPos getGeoPos(PixelPos pixelPos, GeoPos geoPos)
Returns the latitude and longitude value for a given pixel co-ordinate.- Parameters:
pixelPos
- the pixel's co-ordinates given as x,ygeoPos
- an instance ofGeoPos
to be used as return value. If this parameter isnull
, the method creates a new instance which it then returns.- Returns:
- the geographical position as lat/lon in the coordinate system determined by
GeoCoding.getGeoCRS()
-
getDatum
public Datum getDatum()
Gets the datum, the reference point or surface against whichGeoPos
measurements are made.- Returns:
- the datum
-
dispose
public void dispose()
Releases all of the resources used by this object instance and all of its owned children. Its primary use is to allow the garbage collector to perform a vanilla job.This method should be called only if it is for sure that this object instance will never be used again. The results of referencing an instance of this class after a call to
dispose()
are undefined.
-
getRmseLon
public double getRmseLon()
Returns the root mean square error (RMSE) of the longitude approximation.- Returns:
- the longitude RMSE.
-
getRmseLat
public double getRmseLat()
Returns the root mean square error (RMSE) of the latitude approximation.- Returns:
- the latitude RMSE.
-
getMethod
public GcpGeoCoding.Method getMethod()
Returns the approximation method used for this geo-coding.- Returns:
- the approximation method.
-
getOriginalGeoCoding
public GeoCoding getOriginalGeoCoding()
-
setOriginalGeoCoding
public void setOriginalGeoCoding(GeoCoding geoCoding)
-
setGcps
public void setGcps(Placemark[] gcps)
-
-