Class MeteosatSG
- Object
-
- Formattable
-
- AbstractMathTransform
-
- MapProjection
-
- MeteosatSG
-
- All Implemented Interfaces:
Serializable
,MathTransform
,MathTransform2D
public class MeteosatSG extends MapProjection
Meteosat Second Generation imagery projectionConversion of image coordinates (pixel column and row) into the corresponding geographical coordinates (Latitude and Longitude) of all MSG Satellites (Meteosat-8, Meteosat-9 and Meteosat-10) Level 1.5 VIS/IR data.
Code based on reference software provided by EUMETSAT "MSG_navigation" v1.02 (see link below).
Please be aware, that the program assumes the MSG image is ordered in the operational scanning direction which means from south to north and from east to west. With that the VIS/IR channels contains of 3712 x 3712 pixels, start to count on the most southern line and the most eastern column with pixel number 1,1.
Conversion from native MSG files (delivered by EumetCAST) to geotiff format could be done with Meteosatlib package.
To extract the European area using "products" utility:
examples/products -a 1572,1024,90,560 -t 201505080600 --products=Vis006
Coordinates above are calculated from the upper left corner. Therefore, it is necessary to change it according to the EUMETCAST specification.gdal_translate -a_ullr 2140.5 3622.5 1116.5 3062.5 file_in.tif file_out.tif
Additional examples could be find in the "MeteosatSG.txt" file in tests directory.
References: [1] LRIT/HRIT Global Specification (CGMS 03, Issue 2.6, 12.08.1999) for the parameters used in the program. [2] MSG Ground Segment LRIT/HRIT Mission Specific Implementation, EUMETSAT Document, (EUM/MSG/SPE/057, Issue 6, 21. June 2006). [3] MSG Level 1.5 Image Data Format Description (EUM/MSG/ICD/105, Issue v6, 23. February 2010).
- Since:
- 14.0
- Author:
- Maciej Filocha (ICM)
- See Also:
- Navigation Software for Meteosat-9 (MSG) - Level 1.5 VIS/IR/HRV data, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MeteosatSG.Provider
The math transform provider for an Meteosat Second Generation image projection.-
Nested classes/interfaces inherited from class MapProjection
MapProjection.AbstractProvider
-
-
Field Summary
-
Fields inherited from class MapProjection
centralMeridian, en0, en1, en2, en3, en4, excentricity, excentricitySquared, falseEasting, falseNorthing, globalScale, invertible, isSpherical, latitudeOfOrigin, LOGGER, scaleFactor, semiMajor, semiMinor, SKIP_SANITY_CHECKS
-
Fields inherited from class Formattable
SINGLE_LINE
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
MeteosatSG(ParameterValueGroup parameters)
Constructs a Meteosat Second Generation imagery projection.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ParameterDescriptorGroup
getParameterDescriptors()
Returns the parameter descriptors for this map projection.protected double
getToleranceForAssertions(double longitude, double latitude)
Maximal error (in metres) tolerated for assertions, if enabled.protected Point2D
inverseTransformNormalized(double x, double y, Point2D ptDst)
Transforms the specified (column,row) coordinates (units in "normalized" pixels) and stores the result inptDst
.protected Point2D
transformNormalized(double x, double y, Point2D ptDst)
Transforms the specified (λ,φ) coordinates (units in radians) and stores the result inptDst
(pixel coordinates).-
Methods inherited from class MapProjection
checkReciprocal, equals, getParameterValues, getSourceDimensions, getTargetDimensions, hashCode, inv_mlfn, inverse, mlfn, orthodromicDistance, resetWarnings, transform, transform, transform
-
Methods inherited from class AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getName, isIdentity, needCopy, normalizeAngle, rollLongitude, transform, transform, transform
-
Methods inherited from class Formattable
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
-
Methods inherited from interface MathTransform
derivative, isIdentity, toWKT, transform, transform, transform
-
Methods inherited from interface MathTransform2D
createTransformedShape, derivative
-
-
-
-
Constructor Detail
-
MeteosatSG
protected MeteosatSG(ParameterValueGroup parameters) throws ParameterNotFoundException
Constructs a Meteosat Second Generation imagery projection.- Parameters:
parameters
- The group of parameter values.- Throws:
ParameterNotFoundException
- if a required parameter was not found.
-
-
Method Detail
-
transformNormalized
protected Point2D transformNormalized(double x, double y, Point2D ptDst) throws ProjectionException
Transforms the specified (λ,φ) coordinates (units in radians) and stores the result inptDst
(pixel coordinates).- Specified by:
transformNormalized
in classMapProjection
- Parameters:
x
- The longitude of the coordinate, in radians.y
- The latitude of the coordinate, in radians.ptDst
- the specified coordinate point that stores the result of transformingptSrc
, ornull
. Ordinates will be in a dimensionless unit, as a linear distance on a unit sphere or ellipse.- Returns:
- the coordinate point after transforming (
lambda
,phi
) and storing the result inptDst
. - Throws:
ProjectionException
- if the point can't be transformed.
-
inverseTransformNormalized
protected Point2D inverseTransformNormalized(double x, double y, Point2D ptDst) throws ProjectionException
Transforms the specified (column,row) coordinates (units in "normalized" pixels) and stores the result inptDst
.- Specified by:
inverseTransformNormalized
in classMapProjection
- Parameters:
x
- The easting of the coordinate, linear distance on a unit sphere or ellipse.y
- The northing of the coordinate, linear distance on a unit sphere or ellipse.ptDst
- the specified coordinate point that stores the result of transformingptSrc
, ornull
. Ordinates will be in radians.- Returns:
- the coordinate point after transforming
x
,y
and storing the result inptDst
. - Throws:
ProjectionException
- if the point can't be transformed.
-
getToleranceForAssertions
protected double getToleranceForAssertions(double longitude, double latitude)
Description copied from class:MapProjection
Maximal error (in metres) tolerated for assertions, if enabled. When assertions are enabled, every direct projection is followed by an inverse projection, and the result is compared to the original coordinate. If a distance greater than the tolerance level is found, then anProjectionException
will be thrown. Subclasses should override this method if they need to relax the tolerance level.- Overrides:
getToleranceForAssertions
in classMapProjection
- Parameters:
longitude
- The longitude in decimal degrees.latitude
- The latitude in decimal degrees.- Returns:
- The tolerance level for assertions, in meters.
-
getParameterDescriptors
public ParameterDescriptorGroup getParameterDescriptors()
Returns the parameter descriptors for this map projection. This is used for a providing a default implementation ofMapProjection.getParameterValues()
, as well as arguments checking.- Specified by:
getParameterDescriptors
in classMapProjection
- Returns:
- The parameter descriptors for this math transform, or
null
. - See Also:
OperationMethod.getParameters()
-
-