Class MeteosatSG
- All Implemented Interfaces:
Serializable,MathTransform,MathTransform2D
Conversion 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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThe 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_CHECKSFields inherited from class Formattable
SINGLE_LINE -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedMeteosatSG(ParameterValueGroup parameters) Constructs a Meteosat Second Generation imagery projection. -
Method Summary
Modifier and TypeMethodDescriptionReturns the parameter descriptors for this map projection.protected doublegetToleranceForAssertions(double longitude, double latitude) Maximal error (in metres) tolerated for assertions, if enabled.protected Point2DinverseTransformNormalized(double x, double y, Point2D ptDst) Transforms the specified (column,row) coordinates (units in "normalized" pixels) and stores the result inptDst.protected Point2DtransformNormalized(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, transformMethods inherited from class AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getName, isIdentity, needCopy, normalizeAngle, rollLongitude, transform, transform, transformMethods inherited from class Formattable
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKTMethods inherited from interface MathTransform
derivative, isIdentity, toWKT, transform, transform, transformMethods inherited from interface MathTransform2D
createTransformedShape, derivative
-
Constructor Details
-
MeteosatSG
Constructs a Meteosat Second Generation imagery projection.- Parameters:
parameters- The group of parameter values.- Throws:
ParameterNotFoundException- if a required parameter was not found.
-
-
Method Details
-
transformNormalized
Transforms the specified (λ,φ) coordinates (units in radians) and stores the result inptDst(pixel coordinates).- Specified by:
transformNormalizedin 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:
inverseTransformNormalizedin 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,yand 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:MapProjectionMaximal 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 anProjectionExceptionwill be thrown. Subclasses should override this method if they need to relax the tolerance level.- Overrides:
getToleranceForAssertionsin classMapProjection- Parameters:
longitude- The longitude in decimal degrees.latitude- The latitude in decimal degrees.- Returns:
- The tolerance level for assertions, in meters.
-
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:
getParameterDescriptorsin classMapProjection- Returns:
- The parameter descriptors for this math transform, or
null. - See Also:
-