[gdal-dev] HDF-EOS AIRS CO2 images without georeference using
gdal_translate
David Ortiz
dvdov at yahoo.com
Wed Jan 25 23:04:42 EST 2012
Hi Everyone, greetings.
I am working with AIRS images, specifically CO2 products (AIRX2STC,AIRX2SPC) and i am trying to convert a couple of subdataset from .hdf files to other format as GTiff or .img so that can be handled on some open source GIS but using gdal_translate there are problems, mainly a lack of georeference in processed images.
The file is AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf downloadable from
ttp://mirador.gsfc.nasa.gov/cgi-bin/mirador/homepageAlt.pl?keyword=AIRX2SPC for 2008-03-12 date.A special feature of this kind of files is geolocations fields "latitude" and "longitude" have some values =-9999 where respective pixel doesn't have information about co2 amounts.
* When I do gdalinfo I get :
gdalinfo /home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf
Size is 512, 512
Coordinate System is `'
Metadata:
...
...
GROUP = SPATIALDOMAINCONTAINER
GROUP = HORIZONTALSPATIALDOMAINCONTAINER
GROUP = BOUNDINGRECTANGLE
OBJECT = EASTBOUNDINGCOORDINATE
NUM_VAL = 1
VALUE = -133.537399291992
END_OBJECT = EASTBOUNDINGCOORDINATE
OBJECT = WESTBOUNDINGCOORDINATE
NUM_VAL = 1
VALUE = -157.941314697266
END_OBJECT = WESTBOUNDINGCOORDINATE
OBJECT = SOUTHBOUNDINGCOORDINATE
NUM_VAL = 1
VALUE = 22.2317676544189
END_OBJECT = SOUTHBOUNDINGCOORDINATE
OBJECT = NORTHBOUNDINGCOORDINATE
NUM_VAL = 1
VALUE = 45.889762878418
END_OBJECT = NORTHBOUNDINGCOORDINATE
END_GROUP = BOUNDINGRECTANGLE
...
...
HDFEOSVersion=HDFEOS_V2.12
ProductGenerationHostInformation=alpha.jpl.nasa.gov Linux 2.6.9-78.0.22.ELsmp #1_SMP_Thu_Apr_30_19:17:40_EDT_2009 x86_64
VersionRetrieval=5.2.2.0
Subdatasets:
...
SUBDATASET_8_NAME=HDF4_EOS:EOS_SWATH:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":CO2:CO2ret
SUBDATASET_8_DESC=[22x15] CO2ret CO2 (32-bit floating-point)
...
SUBDATASET_11_DESC=[22x15x100] AvgKern CO2 (32-bit floating-point)
SUBDATASET_12_NAME=HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":0
...
SUBDATASET_19_NAME=HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":7
SUBDATASET_19_DESC=[22x15] CO2ret (32-bit floating-point)
... SUBDATASET_23_NAME=HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":11
SUBDATASET_23_DESC=[22x15] Latitude (32-bit floating-point)
SUBDATASET_24_NAME=HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":12
SUBDATASET_24_DESC=[22x15] Longitude (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)
* I need "CO2ret" subdataset. Using gdalinfo:
root at debian:/home/david# gdalinfo HDF4_EOS:EOS_SWATH:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":CO2:CO2ret
Driver: HDF4Image/HDF4 Dataset
Files: /home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf
Size is 15, 22
Coordinate System is `'
GCP[ 0]: Id=, Info=
(0.5,0.5) -> (-9999,-9999,0)
GCP[ 3]: Id=, Info=
(3.5,0.5) -> (-145.229995727539,23.3500003814697,0)
GCP[ 4]: Id=, Info=
(4.5,0.5) -> (-9999,-9999,0)
...
...
GCP[329]: Id=, Info=
(14.5,21.5) -> (-9999,-9999,0)
...
...
Geolocation:
LINE_OFFSET=0
LINE_STEP=1
PIXEL_OFFSET=0
PIXEL_STEP=1
X_BAND=1
X_DATASET=HDF4_EOS:EOS_SWATH_GEOL:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":CO2:Longitude
Y_BAND=1
Y_DATASET=HDF4_EOS:EOS_SWATH_GEOL:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":CO2:Latitude
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 22.0)
Upper Right ( 15.0, 0.0)
Lower Right ( 15.0, 22.0)
Center ( 7.5, 11.0)
Band 1 Block=15x22 Type=Float32, ColorInterp=Gray
NoData Value=-9999
* I tried create an .img file but the image doesn't spatial reference:
rgdal_translate -of HFA HDF4_EOS:EOS_SWATH:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":CO2:CO2ret /home/david/Descargas/pruebas/CO2_sup_img_EOS.img
* with Geotiff format there is not georeference and all pixels have value =0 :
gdal_translate -of GTiff HDF4_EOS:EOS_SWATH:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":CO2:CO2ret /home/david/Descargas/pruebas/CO2_sup_Gtiff_EOS_traslate.tif
Input file size is 15, 22
0Warning 1: Lost metadata writing to GeoTIFF ... too large to fit in tag.
Warning 1: Lost metadata writing to GeoTIFF ... too large to fit in tag.
...10...20...30...40...50...60...70...80...90...100 - done.
* I tried with gdalwarp but the file doesn't have geographical reference and co2 info:
gdalwarp HDF4_EOS:EOS_SWATH:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":CO2:CO2ret /home/david/Descargas/pruebas/CO2_sup_Gtiff_EOS_warp.tif
Creating output file that is 141P x 144L.
Processing input file HDF4_EOS:EOS_SWATH:/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf:CO2:CO2ret.
Using internal nodata values (eg. -9999) for image HDF4_EOS:EOS_SWATH:/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf:CO2:CO2ret.
0...10...20...30...40...50...60...70...80...90...100 - done.
* SO, i did the same with subdataset name HDF4_SDS:UNKNOWN :
gdalinfo HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":7
Driver: HDF4Image/HDF4 Dataset
Files: /home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf
Size is 15, 22
Coordinate System is `'
...
...
Geolocation:
LINE_OFFSET=0
LINE_STEP=1
PIXEL_OFFSET=0
PIXEL_STEP=1
SRS=GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]]
X_BAND=1
X_DATASET=HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":12
Y_BAND=1
Y_DATASET=HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":11
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 22.0)
Upper Right ( 15.0, 0.0)
Lower Right ( 15.0, 22.0)
Center ( 7.5, 11.0)
Band 1 Block=15x22 Type=Float32, ColorInterp=Gray
gdal_translate -of HFA HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":7 /home/david/Descargas/pruebas/CO2_sup_img_UNKNOWN_traslate.img
gdal_translate -of GTiff HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":7 /home/david/Descargas/pruebas/CO2_sup_Gtiff_UNKNOWN_traslate.tif
Input file size is 15, 22
0Warning 1: Lost metadata writing to GeoTIFF ... too large to fit in tag.
Warning 1: Lost metadata writing to GeoTIFF ... too large to fit in tag.
...10...20...30...40...50...60...70...80...90...100 - done.
gdalwarp HDF4_SDS:UNKNOWN:"/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf":7 /home/david/Descargas/pruebas/CO2_sup_Gtiff_UNKNOWN_warp.tif
Creating output file that is 70P x 72L.
Processing input file HDF4_SDS:UNKNOWN:/home/david/Descargas/pruebas/AIRS.2008.03.12.228.L2.CO2_Sup.v5.4.11.0.CO2.T09254115637.hdf:7.
ERROR 1: Too many points (441 out of 441) failed to transform,
unable to compute output bounds.
0...10...20...30...40...50...60...70...80...90...100 - done
* but none of images have geographical reference. When i use HEGTool with AIRS radiances (AIRIBRAD products), for example, the Geotiff have WGS84 coordinates.The problem is HEG doesn't support CO2 products.
1. How can i generate images with spatial reference?
2. Should i replace -9999 values from latitude and longitude fields with other value? How can i do this?
The gdal version is 1.9 built from source with hdf4 support:
./configure --with-hdf4=/home/david/Descargas/gdal_grass_R/hdf-4.2.6-linux --without-grass --without-libgrass
make
make install
I really appreciate your help and advice
Best Regards
David A. Ortiz V.
UD - ICG
Bogota D.C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20120125/3f9fa8dd/attachment-0001.html
More information about the gdal-dev
mailing list