# [Gdal-dev] Understanding GEOS projected space

Bas Retsios retsios at itc.nl
Mon Nov 19 09:33:58 EST 2007

```Enrico Zini wrote:

>On Mon, Nov 19, 2007 at 12:21:40PM +0100, Bas Retsios wrote:
>
>>Note that due to the large area covered by this projection (an entire
>>earth's hemisphere), the "meters" are only correct near the nadir-point.
>>As an example, a box with bounds (xMin=-3500000, xMax=3500000,
>>yMin=-3500000, yMax=3500000) would roughly include the Arfican continent
>>and a great part of the atlantic ocean.
>>
>>
>
>So we're talking about a virtual kind of metre that is 1 metre long at
>the nadir point but gets smaller as we move further from it.
>
>The implementation I had (which followed directly from Eumetsat
>documentation) used to work with the scaling function defined at section
>"4.4.4 Scaling Function"[1],
>
>Switching to proj I need to use ColumnDirGridStep and
>LineDirGridStep[2], which I didn't see mentioned in Eumetsat's
>documentation about georeferencing.  I hope that it's just the same
>quantity scaled differently, and that the precision of georeferentiation
>that I get in the end is the same.
>
>Now, I need to handle some NetCDF based formats that store this
>georeferentiation information in terms of CFAC and LFAC, and moving to
>GDAL I'd need to rebuild ColumnDirGridStep and LineDirGridStep out of
>those.
>
>Is there a formula (it should be nothing more than a simple scaling
>constant, if I get it right) that allows me to convert back and forth
>from ColumnDirGridStep to CFAC (likewise for line)?
>
>
>Ciao,
>
>Enrico
>
>
>[1]
>4.4.4 Scaling Function
>
>  The scaling function provides a linear relation between the
>  intermediate coordinates (x,y) and the image coordinates (c,l).
>
>  The definition is as follows:
>
>    c = COFF + nint(x * 2^-16 * CFAC)
>    l = LOFF + nint(y * 2^-16 * LFAC)
>
>  Herein, "nint" denotes a nearest integer rounding of the real
>  argument. COFF, CFAC, LOFF, LFAC are the (integer) scaling
>  coefficients provided with the image navigation record. Each of the
>  coefficients may have an integer value between -231 and +231-1.
>[2]
>  LineDirGridStep gives the grid step size in km SSP in the line
>  direction. Default value is 3km for VIS and IR, and 1km for HRV. The
>  on-ground grid step size of 3 km at the SSP represents an instrument
>  scan step of 251.53 microrad divided by 3.
>
>  ColumnDirGridStep gives the grid step size in km SSP in the column
>  direction. Default value as for `LineDirGridStep'.
>
>
The x and y as mentioned in formula [1] (4.4.4), the so-called
"intermediate coordinates" are the scan-angle of the satellite. There is
a linear relationship between the c and l (column and line of a pixel in
an MSG-image), and the angle at which this was "seen" from the satellite.

Since c and l also have a linear relationship with X and Y (meters, in
GEOS projection), you must be right when you say that there is also a
linear relationship (scaling + offset) between (x,y) and (X,Y).

Calculate the relationship, given the following:

The ColumnDirGridStep and LineDirGridStep values found in the header
files of the MSG images are 3004.03165817 m for bands 1-11, and
1000.134348869 m for HRV band 12. Thus not exactly 3km / 1km, but
slightly more. These values have never changed, since our institute
installed a receiver for MSG images in 2004.

For bands 1-11, COFF=1856 and CFAC=-13642337, and for band 12, COFF =
5566 and CFAC=-40927014. These values have also remained the same for
all images up to now.

c = COFF + x * CFAC / 65536
c = X / ColumnDirGridStep

Best regards,

--
Ir. V. (Bas) Retsios
Software Developer
Geo-information Processing Department
International Institute for Geo-information Science and Earth Observation (ITC)
P.O. Box 6,  7500 AA Enschede, The Netherlands
Phone +31 (0)53 4874 573, telefax +31 (0)53 4874 335
E-mail retsios at itc.nl, Internet http://www.itc.nl

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20071119/dacb54a8/attachment.html
```