<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font face="Times New Roman, Times, serif"><br>
      <br>
      On 09/09/2011 08:11 AM, Even Rouault wrote:</font>
    <blockquote
      cite="mid:201109090811.06465.even.rouault@mines-paris.org"
      type="cite"><font face="Times New Roman, Times, serif">You might
        try latest GDAL trunk, in particular
        <a class="moz-txt-link-freetext" href="http://trac.osgeo.org/gdal/changeset/22876">http://trac.osgeo.org/gdal/changeset/22876</a> .
        It offers the option to use libarmadillo to speed-up matrix
        inversion in thinplatespline.cpp (speed-up when TPS are in the
        thousands), but perhaps as a side effect, you'd get also more
        numerical stability.</font></blockquote>
    <font face="Times New Roman, Times, serif"><br>
      I tried to compile the SVN version a few times the last couple of
      days, but it always broke down: Can someone do a "make clean" in
      their sandbox and repair the error?<br>
      <br>
      &nbsp;g++ -fPIC -L/home/a907hart/local/lib -L/usr/lib&nbsp; gdaldem.o
      commonutils.o&nbsp; -L/home/a907hart/src/gdal -lgdal&nbsp; -larmadillo
      -L/home/a907hart/local/lib -lgeos_c
      -L/home/a907hart/local/pgsql/lib -lpq -lpthread -lm -lrt -ldl&nbsp;
      -L/home/a907hart/local/lib&nbsp;&nbsp; -lcurl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -o gdaldem<br>
      gdaldem.o:(.data.rel.ro._ZTV21GDALGeneric3x3Dataset[vtable for
      GDALGeneric3x3Dataset]+0x30): undefined reference to
      `GDALDataset::CloseDependentDatasets()'<br>
      gdaldem.o:(.data.rel.ro._ZTV22GDALColorReliefDataset[vtable for
      GDALColorReliefDataset]+0x30): undefined reference to
      `GDALDataset::CloseDependentDatasets()'<br>
      <br>
      <br>
      Jan<br>
    </font><br>
    <blockquote
      cite="mid:201109090811.06465.even.rouault@mines-paris.org"
      type="cite">
      <blockquote type="cite">
        <pre wrap="">
On Thu, Sep 8, 2011 at 5:23 AM, Jan Hartmann <a class="moz-txt-link-rfc2396E" href="mailto:j.l.h.hartmann@uva.nl">&lt;j.l.h.hartmann@uva.nl&gt;</a> wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">Not sure whether this can be considered a bug, so I give it for what it
is worth.

I'm doing thin plate spline transformation from one set of projected
coordinates to another. Both sets have values between -600000 and 600000
(meters). A typical set of gcps looks like:

 -gcp 62402 -74383 181915 315371 \
 -gcp -100169 -24213 19685 366661 \
 -gcp 118323 233822 239994 623190 \
...

When transforming the the first two columns of this list with
gdaltransform -tps, using the same gcp-list, the results should be
exactly equal to the last two columns:

 (from gdal_tps.cpp:)
 * The thin plate spline transformer produces exact transformation
 * at all control points and smoothly varying transformations between
 * control points with greatest influence from local control points.
 * It is suitable for for many applications not well modelled by
polynomial * transformations.
 *


However, they aren't. With a few control points the differences are only
in millimeters, but with a few hundred gcps the differences become
meters, and above thousand points the error can get to fifty meters. The
problem gets worse when some control points are very near to other ones.
I was happy to discover that dividing all numbers by 1000 solves the
problem, but there certainly is a numerical instability in the
algorithm.

Of course, thin plate spline transformations normally use scan
coordinates as input, and these are almost always small numbers. Even
so, I can imagine problems with very large rasters and the rubber
sheeting applications I am working with.

Jan



_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="http://lists.osgeo.org/mailman/listinfo/gdal-dev">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a>
</pre>
        </blockquote>
        <pre wrap="">
_______________________________________________
gdal-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="http://lists.osgeo.org/mailman/listinfo/gdal-dev">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a>
</pre>
      </blockquote>
      <pre wrap="">
</pre>
    </blockquote>
  </body>
</html>