[GRASS5] Re: GDAL, GRASS and AVHRR

Markus Neteler neteler at itc.it
Fri Oct 11 09:57:49 EDT 2002


Hi developers,

in below mail Frank and me were discussing the geocoding of AVHRR
satellite images. AVHRR data come with a nice set of GCPs.
Those are extracted to i.* GRASS format when importing an AVHRR
data set with r.in.gdal.

Unfortunately the i.rectify does not perform good rectification
for this sort of "distortion". See below for details (and my
call for help):

On Fri, Oct 11, 2002 at 09:17:39AM -0400, Frank Warmerdam wrote:
> Markus Neteler wrote:
> > In general i.rectify works well. But not for AVHRR rectifications...
> > I used the standard approach: r.in.gdal -> GCPs POINTS file -> i.rectify
> > from XY to LatLong LOCATION.
> > The problem is that neighter 2nd nor 3rd order polynoms apply to rectify
> > AVHRR data accurately.
> > 
> > Find attached two tests (2nd + 3rd order polynoms): I have extracted the
> > GCPs and just rectified them. There is a horrible overfitting at the
> > "ends" of the AVHRR image:
> >  irectify_2nd_order.gif
http://mpa.itc.it/markus/tmp/irectify_2nd_order_avhrr.png

> >  irectify_3rd_order.gif
http://mpa.itc.it/markus/tmp/irectify_3rd_order_avhrr.png

> > which results in a 20km shift (see the lake in white vector lines east
> > from the dark lake in AVHRR):
> > avhrr_geolocation.gif
http://mpa.itc.it/markus/tmp/avhrr_geolocation.png

> > That's why I was wondering to incorporate the recification into
> > GDAL itself (or write a better i.rectify).
> 
> Markus,
> 
> Ahh. We experienced this problem at PCI with some kinds of AVHRR data as
> well.  I believe our solution there was to add a "thin plate splines"
> transformation modelling in addition to the existing polynomial
> transformations.  This is a transform with as many terms as there are
> GCPs and gives increasing weight to gcps that are closer to the point
> being warped.  Almost a piecewise warp.
> 
> Implementing thin-plate splines, or some similar transformation
> mechanism is not trivial.  It also doesn't specifically belong in
> GDAL.
> 
> I would suggest that this issue be brought back to the GRASS dev list,
> and see if any of us can find a suitable source for a thin plate spline
> algorithm (or another with similar properties).  This could then
> be implemented in i.rectify or perhaps an i.rectify.tps.

So: Is there anyone willing to help with extending i.rectify to
support also splines based rectification? Could we probably use functions
from
src/libes/rst_gmsl/
?

AVHRR is a pretty interesting and huge data base as this set of satellites
was initially launched 1982. Data are available here (download):
Satellite Active Archive (SAA)
http://www.saa.noaa.gov/

Thanks in advance,

 Markus




More information about the grass-dev mailing list