[R-sig-Geo] readGDAL() and HDF5 files

Roger Bivand Roger.Bivand at nhh.no
Fri Jan 23 11:01:21 CET 2009


On Fri, 16 Jan 2009, Sebastian P. Luque wrote:

> Hi,
>
> I'm trying to use HDF5 files with this structure:

Sorry for the delay. Having now set up a reprodicable route (OSGeo4W GDAL 
and drivers, rgdal built against OSGeo4W as in a posting a couple of days 
ago), I can see the problem, but have no resolution.

Doing gdalinfo on the data itself, I see geographical coordinates, not 
projected. GDAL does not retrieve the grid metadata correctly, and assigns 
default 1x1 grid cells starting at c(0.5, 0.5). Using gdal_translate to 
convert it to a GTiff, I see that I have to set p4s to NA to read at all, 
and the problems remain. I would be interested in knowing who or what 
wrote the HDF5 file, because it doesn't seem to be what it says it is (no 
grid metadata, different CRS from your assumption), and so the data may 
actually be in the wrong order too.

Roger

PS - I can't see that you've asked on the GDAL list, hence the reply here.

>
> ---<--------------------cut here---------------start------------------->---
> $ gdalinfo conc_200901011200.hdf
> Driver: HDF5/Hierarchical Data Format Release 5
> Files: conc_200901011200.hdf
> Size is 512, 512
> Coordinate System is `'
> Subdatasets:
>  SUBDATASET_0_NAME=HDF5:"conc_200901011200.hdf"://Data/data[00]
>  SUBDATASET_0_DESC=[760x1120] //Data/data[00] (32-bit floating-point)
> Corner Coordinates:
> Upper Left  (    0.0,    0.0)
> Lower Left  (    0.0,  512.0)
> Upper Right (  512.0,    0.0)
> Lower Right (  512.0,  512.0)
> Center      (  256.0,  256.0)
> ---<--------------------cut here---------------end--------------------->---
>
> The file (467 kb placed in
> http://members.shaw.ca/sluque/conc_200901011200.hdf) is a grid of a
> single variable (ice concentration) in a well defined polar
> stereographic projection, that loads ok in R, via rgdal's readGDAL():
>
> ---<--------------------cut here---------------start------------------->---
> R> p4s <- "+proj=stere +a=6378273 +b=6356889.44891 +lat_0=90 +lat_ts=70 +lon_0=-45"
> R> ice <- readGDAL("HDF5:\"conc_200901011200.hdf\"://Data/data[00]", p4s=p4s)
> HDF5:"conc_200901011200.hdf"://Data/data[00] has GDAL driver HDF5Image
> and has 760 rows and 1120 columns
> R> summary(ice)
> Object of class SpatialGridDataFrame
> Coordinates:
>  min  max
> x   0 1120
> y   0  760
> Is projected: TRUE
> proj4string :
> [+proj=stere +a=6378273 +b=6356889.44891 +lat_0=90 +lat_ts=70 +lon_0=-45]
> Number of points: 2
> Grid attributes:
>  cellcentre.offset cellsize cells.dim
> x               0.5        1      1120
> y               0.5        1       760
> Data attributes:
>   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
> -32800     -99     -99    -117       0     100
> R> ## We are concerned only with the 0-100 range; other values are codes with
> R> ## various meanings, so we remove them
> R> ice at data[ice at data[[1]] < 0 | ice at data[[1]] > 100, ] <- NA
> R> summary(ice)
> Object of class SpatialGridDataFrame
> Coordinates:
>  min  max
> x   0 1120
> y   0  760
> Is projected: TRUE
> proj4string :
> [+proj=stere +a=6378273 +b=6356889.44891 +lat_0=90 +lat_ts=70 +lon_0=-45]
> Number of points: 2
> Grid attributes:
>  cellcentre.offset cellsize cells.dim
> x               0.5        1      1120
> y               0.5        1       760
> Data attributes:
>    Min.  1st Qu.   Median     Mean  3rd Qu.     Max.     NA's
>     0.0      0.0      0.0     23.3     36.7    100.0 478521.0
> ## but something is wrong with visualizing these data
> pdf("~/tmp/ice.pdf")
> spplot(ice)
> dev.off()
> R> sessionInfo()
> R version 2.8.1 (2008-12-22)
> x86_64-pc-linux-gnu
>
> locale:
> LC_CTYPE=en_CA.UTF-8;LC_NUMERIC=C;LC_TIME=en_CA.UTF-8;LC_COLLATE=en_CA.UTF-8;LC_MONETARY=C;LC_MESSAGES=en_CA.UTF-8;LC_PAPER=en_CA.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_CA.UTF-8;LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
> [1] rgdal_0.5-35    sp_0.9-29       slmisc_0.7.0    lattice_0.17-20
>
> loaded via a namespace (and not attached):
> [1] grid_2.8.1
> ---<--------------------cut here---------------end--------------------->---
>
> I'm not attaching the resulting file because it's too large.  However,
> the plot should look like http://members.shaw.ca/sluque/full.ps I'd
> appreciate any feedback on what the problem might be.  Thanks.
>
>
> Cheers,
>
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no




More information about the R-sig-Geo mailing list