[gdal-dev] problem with gdalwarp in 1.7

geographika geographika at gmail.com
Sun Nov 21 07:50:59 EST 2010


On 19/11/2010 18:04, Frank Warmerdam wrote:
> geographika wrote:
>> Hi,
>>
>> I have upgraded from GDAL 1.6 (32bit Windows) to 1.7 (64 bit Windows) 
>> and the following command no longer works:
>>
>> C:\mapserver\bin\gdal\apps\gdalwarp C:\Data\Rasters\MiscSuit.tif 
>> C:\RasterClips\mytest.tif -cutline c:\RasterClips\hello.json -te 
>> 118008.672141 177232.164284 138695.761666 206164.398565 -dstnodata -9999
>>
>> I get the following message in the command prompt:
>>
>>     Creating output file that is 414P x 579L.
>>     Processing input file C:\Data\Rasters\MiscSuit.tif.
>>     for band 1, destination nodata value has been clamped to 0, the 
>> original value being out of range.
>>     ERROR 1: Failed to parse CUTLINE geometry wkt.
>>
>> The CUTLINE is valid GeoJSON (but would clearly be invalid WKT) and 
>> produces the correct results in 1.6.
>> The ogr formats lists GeoJSON as read/write.
>> I am using 64-bit builds of GDAL taken from http://vbkto.dyndns.org/sdk/
>> I have also tried using the development version of GDAL 1.8dev but 
>> get the same message. If I do not use a CUTLINE the gdalwarp 
>> completes successfully but the new image does not contain any data 
>> from my original image (all cells are NoData).
>
> Seth,
>
> Can you make the .json file available?  Does it work with OGR?  Try
> ogrinfo on it.
>
> Hmm, tracking through the code the LoadCutline() function in gdalwarp.cpp
> will read from the OGR datasource and convert the geometry to WKT 
> which is
> attached to the cutline property of the warp.  Later GDALWarpOperation::
> Initialize() turns that into a polygon object and that is where the 
> message
> is coming from.  So I am *suspecting* improper WKT of some type is 
> getting
> produced somehow.  We will really need to see the WKT that is causing the
> error to know more.
>
> If you are comfortable rebuilding things then try changing:
>
>     const char *pszCutlineWKT =
>         CSLFetchNameValue( psOptions->papszWarpOptions, "CUTLINE" );
>
>     if( pszCutlineWKT )
>     {
>
> in the file gdal/alg/gdalwarpoperation.cpp to something like:
>
>
>     const char *pszCutlineWKT =
>         CSLFetchNameValue( psOptions->papszWarpOptions, "CUTLINE" );
>
>     if( pszCutlineWKT )
>     {
>         printf( "WKT = %s\n", pszCutlineWKT );
>
>
> Best regards,

Thanks very much for your reply Frank.
I have uploaded the GeoJSON to http://geographika.co.uk/downloads/test.json
Running ogrinfo C:\test.json on the file produces the following results:

ERROR 4: GeoJSON Driver doesn't support update.
Had to open data source read-only.
INFO: Open of `C:\RasterClips\hello.json'
       using driver `GeoJSON' successful.
1: OGRGeoJSON (Polygon)

Is it possible to use the ogr2ogr to convert GeoJSON to WKT to check if 
this is successful? WKT is not in the list of formats at 
http://www.gdal.org/ogr/ogr_formats.html
Compiling a 64bit  version of GDAL is on my list of things to learn, so 
I will try your second suggestion then.

The gdalwarp with the same GeoJSON works in 1.6 but it does throw up the 
warning that:

"the source raster dataset and the input vector layer do not have the 
same SRS.  Results will be probably incorrect."

Regards,

Seth





More information about the gdal-dev mailing list