[gdal-dev] GDAL contouring problem

Ole Nielsen ole.nielsen at aifdr.org
Tue Nov 30 23:44:09 EST 2010


Thanks for explaining the reason why the numeric value of 0.00 doesn't work as a fixed level in gdal_contour while the value of 0 does.
I understand now the reason for this.
However I would have thought one could replace the test for 'zeroness' in
(atof(argv[i+1]) != 0 || EQUAL(argv[i+1], "0"))
with a test for whether argv]i+1] is not empty and can be converted to a numeric value.
This would be a duck-typing approach and more robust in my humble opinion.

Best regards
Ole Nielsen


-----Original Message-----
From: gdal-dev-bounces at lists.osgeo.org [mailto:gdal-dev-bounces at lists.osgeo.org] On Behalf Of gdal-dev-request at lists.osgeo.org
Sent: Monday, 29 November 2010 8:41 PM
To: gdal-dev at lists.osgeo.org
Subject: gdal-dev Digest, Vol 78, Issue 64

Send gdal-dev mailing list submissions to
        gdal-dev at lists.osgeo.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.osgeo.org/mailman/listinfo/gdal-dev
or, via email, send a message with subject or body 'help' to
        gdal-dev-request at lists.osgeo.org

You can reach the person managing the list at
        gdal-dev-owner at lists.osgeo.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of gdal-dev digest..."


Today's Topics:

   1. Re: GDAL contouring problem (Frank Warmerdam)
   2. Re: GDAL contouring problem (Francis Markham)
   3. Re: Delete a sqlite database (Ludovic Granjon)
   4. Re: Error building GDAL with GEOS on Solaris (Namrata)
   5. Making non-rectangular image edges transparent
      (Just van den Broecke)
   6. geotiff conflict (Julien Malik)
   7. Re: RFC 31 - OGR 64bit Support (David Burken)


----------------------------------------------------------------------

Message: 1
Date: Sun, 28 Nov 2010 23:24:56 -0500
From: Frank Warmerdam <warmerdam at pobox.com>
Subject: Re: [gdal-dev] GDAL contouring problem
To: Ole Nielsen <ole.nielsen at aifdr.org>
Cc: "gdal-dev at lists.osgeo.org" <gdal-dev at lists.osgeo.org>,
        "adelebear at me.com" <adelebear at me.com>
Message-ID: <4CF32B18.2030208 at pobox.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Ole Nielsen wrote:
> I am posting this again without test files attached due the 50K size
> limit. Anyone who wants to see them, please contact me directly.
>
>
>
> --
>
> We have observed interesting anomaly with gdal_contour when one of the
> fixed levels is zero.
>
> If the zero contour is expressed as 0.0 (or indeed 0.0000) gdal_contour
> replies with the standard Usage message (see below). If the zero contour
> is expressed as the integer 0 (or 0.00000001) it works and produces the
> expected contours.

Ole,

The gdal_contour program has some rather hokey heuristics to try and
recognise the end of the list of contour levels.  The code looks like:

         else if( EQUAL(argv[i],"-fl") && i < argc-1 )
         {
             while( i < argc-1
                    && nFixedLevelCount
                              < (int)(sizeof(adfFixedLevels)/sizeof(double))
                    && (atof(argv[i+1]) != 0 || EQUAL(argv[i+1],"0"))
                    && !EQUAL(argv[i+1], "-3d"))
                 adfFixedLevels[nFixedLevelCount++] = atof(argv[++i]);
         }

So basically, it assumes everything is a "level" until something that
has a numeric value of 0 is encounter that isn't the specific string
"0".  So your analysis of the problem is essentially correct, but it is
more or less intentional as we try to support a list of levels with no
explicit "end of list" marker in the arguments to the command.

Best regards,
--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent



------------------------------

Message: 2
Date: Mon, 29 Nov 2010 16:48:56 +1100
From: Francis Markham <fmarkham at gmail.com>
Subject: Re: [gdal-dev] GDAL contouring problem
To: Frank Warmerdam <warmerdam at pobox.com>
Cc: "gdal-dev at lists.osgeo.org" <gdal-dev at lists.osgeo.org>,      Ole Nielsen
        <ole.nielsen at aifdr.org>, "adelebear at me.com" <adelebear at me.com>
Message-ID:
        <AANLkTi=xCXQx=Nx1hbnjqMb6WVr3VfL6AoQPQHeKx1nQ at mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

Is there any reason not to include a heuristic that uses strtod() or
similar to test for the zeroness of the last argument?

-Francis Markham

On 29 November 2010 15:24, Frank Warmerdam <warmerdam at pobox.com> wrote:
> Ole Nielsen wrote:
>>
>> I am posting this again without test files attached due the 50K size
>> limit. Anyone who wants to see them, please contact me directly.
>>
>>
>> --
>>
>> We have observed interesting anomaly with gdal_contour when one of the
>> fixed levels is zero.
>>
>> If the zero contour is expressed as 0.0 (or indeed 0.0000) gdal_contour
>> replies with the standard Usage message (see below). If the zero contour is
>> expressed as the integer 0 (or 0.00000001) it works and produces the
>> expected contours.
>
> Ole,
>
> The gdal_contour program has some rather hokey heuristics to try and
> recognise the end of the list of contour levels. ?The code looks like:
>
> ? ? ? ?else if( EQUAL(argv[i],"-fl") && i < argc-1 )
> ? ? ? ?{
> ? ? ? ? ? ?while( i < argc-1
> ? ? ? ? ? ? ? ? ? && nFixedLevelCount
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? < (int)(sizeof(adfFixedLevels)/sizeof(double))
> ? ? ? ? ? ? ? ? ? && (atof(argv[i+1]) != 0 || EQUAL(argv[i+1],"0"))
> ? ? ? ? ? ? ? ? ? && !EQUAL(argv[i+1], "-3d"))
> ? ? ? ? ? ? ? ?adfFixedLevels[nFixedLevelCount++] = atof(argv[++i]);
> ? ? ? ?}
>
> So basically, it assumes everything is a "level" until something that
> has a numeric value of 0 is encounter that isn't the specific string
> "0". ?So your analysis of the problem is essentially correct, but it is
> more or less intentional as we try to support a list of levels with no
> explicit "end of list" marker in the arguments to the command.
>
> Best regards,
> --
> ---------------------------------------+--------------------------------------
> I set the clouds in motion - turn up ? | Frank Warmerdam,
> warmerdam at pobox.com
> light and sound - activate the windows | http://pobox.com/~warmerdam
> and watch the world go round - Rush ? ?| Geospatial Programmer for Rent
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>




More information about the gdal-dev mailing list