I'd like to load a subdataset from a TIF file into my PostGIS Database.
gdalinfo gives me the following infos about the TIF-file:
Driver: GTiff/GeoTIFF Files: pathto/imagename.tif Size is 611, 1 Coordinate System is `' Metadata: TIFFTAG_IMAGEDESCRIPTION=CXmlTiff type TIFFTAG_RESOLUSTIONUNIT=2 (pixels/inch) TIFFTAG_XRESOLUTION=100 TIFFTAG_YRESOLUTION=100 ImageStructure Metadata: INTERLEAVE=BAND Subdatasets: SUBDATASET_1_NAME=GTIFF_DIR:1:pathto/imagename.tif SUBDATASET_1_DESC=Page 1 (611P x 1L x 1B) SUBDATASET_2_NAME=GTIFF_DIR:2:pathto/imagename.tif SUBDATASET_2_DESC=Page 1 (392P x 514352L x 1B) Corner Coordinates: Upper Left ( 0.0, 0.0) Lower Left ( 0.0, 1.0) Upper Right ( 611.0, 0.0) Lower Right ( 611.0, 1.0) Center ( 305.5, 0.5) Band 1 Block=611x1 Type=Byte, ColorInterp=Gray
I'd like to load the second subdataset (392x514352).
Right now, using raster2pgsql and the filename as input, only the first subdataset is loaded, the second one is ignored. There is only one band, so using the -b switch does not work. Any advice?
preguntado el 22 de mayo de 12 a las 14:05
Subdatasets are not common in rasters, and I've never seen them in TIFFs (normally, you see bands, not subdatasets). It looks like a similar bug was fixed for HDF5 files, but this probably won't help your GTiff. I'd encourage you to create a bug ticket for this feature.
Mientras tanto, gdal_translate could be used with the
-sds option to copy all subdatasets of your file to individual output files, which you could then use with raster2pgsql.
In the case of postgis rasters, subdatasets are created by the postgis system because postgis rasters are usually tiled and each tile is represented in the table by a different line, and usually a different rid. I am not sure what happened here, but I imagine you used the outofdb option to store your raster, right?
For those using gdal_translate for exporting rasters from postgis, you may use the option "mode='2'" in your postgresql connection options: the result is a simple file that merge all the lines of your rast column.
gdal_translate PG:"host='localhost' port='5432' dbname='mydb' user='me' schema='public' password='secret' table='rastertable' where='rid BETWEEN 1 and 10' mode='2'" /path/filename.tif