Even,

Thanks, I understand it better now and made some advances but I'm still facing 
some troubles.

For example, if I do this

papszWarpOptions = CSLSetNameValue(papszWarpOptions, "INIT_DEST", "300" );
psWO->papszWarpOptions = CSLDuplicate(papszWarpOptions);

than it works fine.

However, if I do (remember that I want NaNs)

papszWarpOptions = CSLSetNameValue(papszWarpOptions, "INIT_DEST", "nan" );

than I get zeros again in place of the nodata.
The link you pointed me says

"...or INIT_DEST=NO_DATA: This option forces the destination image to be initialized to the indicated value (for all bands) or indicates that it should be initialized to the NO_DATA value in padfDstNoDataReal/padfDstNoDataImag."


So I next tried

papszWarpOptions = CSLSetNameValue(papszWarpOptions, "INIT_DEST", "NO_DATA" );
...
        psWO->padfSrcNoDataReal = (double *) 
CPLMalloc(psWO->nBandCount*sizeof(double));
        psWO->padfSrcNoDataImag = (double *) 
CPLMalloc(psWO->nBandCount*sizeof(double));
        for (i = 0; i < nBands; i++) {
                psWO->padfSrcNoDataReal[i] = 500.;
                psWO->padfSrcNoDataImag[i] = 0.0;
                GDALSetRasterNoDataValue( GDALGetRasterBand(hDstDS, i+1), 
pdfDstNodata[0]);
        }

and guess what? bloody zeros again. So I'm not able to get the NaNs (tried with 500 to see if this solution works)


I tried to see what gdalwarp does ... and another problem. What is this?

gdalwarp -of netCDF -s_srs "+proj=latlong" -t_srs "+proj=utm +zone=29 +datum=WGS84" swath_grid.grd lixo_utm.grd
Output driver `netCDF' not recognised or does not support
direct output file creation.  The following format drivers are configured
and support direct output:
  VRT: Virtual Raster
  GTiff: GeoTIFF
  NITF: National Imagery Transmission Format
  HFA: Erdas Imagine Images (.img)
  ELAS: ELAS
  MEM: In Memory Raster
  BMP: MS Windows Device Independent Bitmap
  PCIDSK: PCIDSK Database File
  ILWIS: ILWIS Raster Map
  SGI: SGI Image File Format 1.0
  Leveller: Leveller heightfield
  Terragen: Terragen heightfield
  HDF4Image: HDF4 Dataset
  ERS: ERMapper .ers Labelled
  JP2ECW: ERMapper JPEG2000
  RMF: Raster Matrix Format
  RST: Idrisi Raster A.1
  INGR: Intergraph Raster
  GSBG: Golden Software Binary Grid (.grd)
  PNM: Portable Pixmap Format (netpbm)
  ENVI: ENVI .hdr Labelled
  EHdr: ESRI .hdr Labelled
  PAux: PCI .aux Labelled
  MFF: Vexcel MFF Raster
  MFF2: Vexcel MFF2 (HKV) Raster
  BT: VTP .bt (Binary Terrain) 1.3 Format
  IDA: Image Data and Analysis
  ADRG: ARC Digitized Raster Graphics
  SAGA: SAGA GIS Binary Grid (.sdat)

I surely have the netCDF driver. The swath_grid.grd file is in netCDF and the above command works for the default output type (GeoTiff).
Furthermore, if I ask for the drivers I have (I'm using FWTools here)

gdalwarp --formats
Supported Formats:
  VRT (rw+): Virtual Raster
  GTiff (rw+v): GeoTIFF
  NITF (rw+v): National Imagery Transmission Format
  RPFTOC (ro): Raster Product Format TOC format
  HFA (rw+v): Erdas Imagine Images (.img)
  SAR_CEOS (ro): CEOS SAR Image
  CEOS (ro): CEOS Image
  JAXAPALSAR (ro): JAXA PALSAR Product Reader (Level 1.1/1.5)
  GFF (rov): Ground-based SAR Applications Testbed File Format (.gff)
  ELAS (rw+): ELAS
  AIG (ro): Arc/Info Binary Grid
  AAIGrid (rwv): Arc/Info ASCII Grid
  SDTS (ro): SDTS Raster
  OGDI (ro): OGDI Bridge
  DTED (rwv): DTED Elevation Raster
  PNG (rwv): Portable Network Graphics
  JPEG (rwv): JPEG JFIF
  MEM (rw+): In Memory Raster
  JDEM (ro): Japanese DEM (.mem)
  GIF (rwv): Graphics Interchange Format (.gif)
  BIGGIF (rov): Graphics Interchange Format (.gif)
  ESAT (ro): Envisat Image Format
  BSB (ro): Maptech BSB Nautical Charts
  XPM (rw): X11 PixMap Format
  BMP (rw+v): MS Windows Device Independent Bitmap
  DIMAP (ro): SPOT DIMAP
  AirSAR (ro): AirSAR Polarimetric Image
  RS2 (ro): RadarSat 2 XML Product
  PCIDSK (rw+v): PCIDSK Database File
  PCRaster (rw): PCRaster Raster File
  ILWIS (rw+v): ILWIS Raster Map
  SGI (rw+): SGI Image File Format 1.0
  SRTMHGT (rwv): SRTMHGT File Format
  Leveller (rw+): Leveller heightfield
  Terragen (rw+): Terragen heightfield
  GMT (rw): GMT NetCDF Grid Format
  netCDF (rw): Network Common Data Format
  HDF4 (ro): Hierarchical Data Format Release 4
  HDF4Image (rw+): HDF4 Dataset
  ISIS3 (ro): USGS Astrogeology ISIS cube (Version 3)
  ISIS2 (ro): USGS Astrogeology ISIS cube (Version 2)
  PDS (ro): NASA Planetary Data System
  TIL (ro): EarthWatch .TIL
  ERS (rw+): ERMapper .ers Labelled
  ECW (rw): ERMapper Compressed Wavelets
  JP2ECW (rw+): ERMapper JPEG2000
  L1B (ro): NOAA Polar Orbiter Level 1b Data Set
  FIT (rw): FIT Image
  GRIB (ro): GRIdded Binary (.grb)
  MrSID (ro): Multi-resolution Seamless Image Database (MrSID)
  JP2MrSID (ro): MrSID JPEG2000
  RMF (rw+): Raster Matrix Format
  WCS (ro): OGC Web Coverage Service
  WMS (ro): OGC Web Map Service
  MSGN (ro): EUMETSAT Archive native (.nat)
  RST (rw+): Idrisi Raster A.1
  INGR (rw+): Intergraph Raster
  GSAG (rw): Golden Software ASCII Grid (.grd)
  GSBG (rw+): Golden Software Binary Grid (.grd)
  GS7BG (ro): Golden Software 7 Binary Grid (.grd)
  COSAR (ro): COSAR Annotated Binary Matrix (TerraSAR-X)
  TSX (ro): TerraSAR-X Product
  COASP (ro): DRDC COASP SAR Processor Raster
  R (rwv): R Object Data Store
  PNM (rw+): Portable Pixmap Format (netpbm)
  DOQ1 (ro): USGS DOQ (Old Style)
  DOQ2 (ro): USGS DOQ (New Style)
  ENVI (rw+v): ENVI .hdr Labelled
  EHdr (rw+v): ESRI .hdr Labelled
  GenBin (ro): Generic Binary (.hdr Labelled)
  PAux (rw+): PCI .aux Labelled
  MFF (rw+): Vexcel MFF Raster
  MFF2 (rw+): Vexcel MFF2 (HKV) Raster
  FujiBAS (ro): Fuji BAS Scanner Image
  GSC (ro): GSC Geogrid
  FAST (ro): EOSAT FAST Format
  BT (rw+): VTP .bt (Binary Terrain) 1.3 Format
  LAN (ro): Erdas .LAN/.GIS
  CPG (ro): Convair PolGASP
  IDA (rw+): Image Data and Analysis
  NDF (ro): NLAPS Data Format
  EIR (ro): Erdas Imagine Raw
  DIPEx (ro): DIPEx
  LCP (rov): FARSITE v.4 Landscape File (.lcp)
  RIK (ro): Swedish Grid RIK (.rik)
  USGSDEM (rw): USGS Optional ASCII DEM (and CDED)
  GXF (ro): GeoSoft Grid Exchange Format
  HTTP (ro): HTTP Fetching Wrapper
  BAG (ro): Bathymetry Attributed Grid
  HDF5 (ro): Hierarchical Data Format Release 5
  HDF5Image (ro): HDF5 Dataset
  NWT_GRD (ro): Northwood Numeric Grid Format .grd/.tab
  NWT_GRC (ro): Northwood Classified Grid Format .grc/.tab
  ADRG (rw+v): ARC Digitized Raster Graphics
  SRP (rov): Standard Raster Product (ASRP/USRP)
  BLX (rw): Magellan topo (.blx)
  Rasterlite (rw): Rasterlite
  WKTRaster (ro): PostGIS WKT Raster driver
  SAGA (rw+v): SAGA GIS Binary Grid (.sdat)





Joaquim,

I believe what you see is the expected behaviour.

You must keep in mind that there are 2 notions :
1) nodata value -->  setting it is no more than just setting a "tag" on the
raster band. It doesn't change the pixel values by itself as Chaintanya
explained
2) initialization of the pixel data of the target image with a given value

When you use the -dstnodata option, gdalwarp will automagically do both :
1) Set the target nodata value
2) Initialize the target image with that nodata value (remind of removing the
target file if it already exists)

If you specify nothing, then 0 is used to fill the target image but the nodata
tag is not set.

The initialization of the pixel data of the target image is in fact done
through the INIT_DEST warping option. See
http://gdal.org/structGDALWarpOptions.html#0ed77f9917bb96c7a9aabd73d4d06e08

For example, gdalwarp src.tif dst.tif -wo "INIT_DEST=255"

If you specify no INIT_DEST warping option, then gdalwarp uses the dstnodata
value if it's specified with -dstnodata and set it as the INIT_DEST value
too.

I've also tested -dstnodata nan and to my great surprise, it actually works !
However I'm not sure if all applications can deal with the "nan" string put
in the 42113 tag used by GDAL for the Nodata value in TIFF.

So maybe I've not understood what your problem is, but everything seems to
work as expected on my side.

Best regards,

Even

Le Wednesday 12 May 2010 01:37:07 Joaquim Luis, vous avez écrit :
Hi,

Before filling a ticket I would like to ask here if this gdalwarp
behavior is the intended one.
When I convert a grid from geogs to UTM the nodatavalues are filled with
zeros.
I get the expected behaviour if I use the -dstnodata with a numeric
value, but I found no way tom tell it use NaN.

Summary

This puts zeros on the nodata zone, but I don't find it correct as "0"
is not exactly a natural nodata value. For my habits NaN is the natural
no data value.

gdalwarp -s_srs "+proj=latlong" -t_srs "+proj=utm +zone=29 +datum=WGS84"
swath_grid.grd lixo_utm.tiff

Furthermore when I load the " lixo_utm.tiff" in Mirone is does not
recognize a nodata value, whilst if I do this instead

gdalwarp -s_srs "+proj=latlong" -t_srs "+proj=utm +zone=29 +datum=WGS84"
-dstnodata 1 swath_grid.grd lixo_utm.tiff

than "1" is recognized as the nodata. I have not investigated the
metadata to see why the "0" is not set to represent the nodata.

Thanks

Joaquim Luis
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev




_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to