Dear all,

I recently gave a try to the Sentinel-1 SAFE driver and I came accross something that to my opinion is conceptually wrong.

A Sentinel 1 product consists in one or several tiff file along with their annotation files. Dependening on product level and acquisition mode, those tiff files correspond to different polarimetric configurations (hh and hv), and/or different swath. All those images are referenced in a single entry point, which is the manifest.safe file at product root folder.

For instance, in extra-wide swath mode, I have the following:
$ ls -1 measurement/ annotation/
annotation/:
s1a-ew-grd-hh-20160117t204113-20160117t204213-009539-00ddc4-001.xml
s1a-ew-grd-hv-20160117t204113-20160117t204213-009539-00ddc4-002.xml

measurement/:
s1a-ew-grd-hh-20160117t204113-20160117t204213-009539-00ddc4-001.tiff
s1a-ew-grd-hv-20160117t204113-20160117t204213-009539-00ddc4-002.tiff

Which means I have dual polarisation on the same swath.

In this case, if I gdalinfo manifest.safe, I get :

Driver: SAFE/Sentinel-1 SAR SAFE Product
Files: manifest.safe
measurement/s1a-ew-grd-hh-20160117t204113-20160117t204213-009539-00ddc4-001.tiff
measurement/s1a-ew-grd-hv-20160117t204113-20160117t204213-009539-00ddc4-002.tiff
[...]
Band 1 Block=16753x1 Type=UInt16, ColorInterp=Undefined
  Metadata:
    POLARISATION=HH
Band 2 Block=16753x1 Type=UInt16, ColorInterp=Undefined
  Metadata:
    POLARISATION=HV

So gdal exposes the full dataset as one image of two bands (one for each polarization channel), which is fine (but one could argue that representing this as 2 subdatasets would be better).

Now, if I consider an IW product :

$ ls -1 measurement/ annotation/

calibration/:
s1a-iw1-slc-vh-20160114t054006-20160114t054031-009486-00dc3c-001.xml
s1a-iw1-slc-vv-20160114t054006-20160114t054031-009486-00dc3c-004.xml
s1a-iw2-slc-vh-20160114t054007-20160114t054032-009486-00dc3c-002.xml
s1a-iw2-slc-vv-20160114t054007-20160114t054032-009486-00dc3c-005.xml
s1a-iw3-slc-vh-20160114t054005-20160114t054030-009486-00dc3c-003.xml
s1a-iw3-slc-vv-20160114t054005-20160114t054030-009486-00dc3c-006.xml

measurement/:
s1a-iw1-slc-vh-20160114t054006-20160114t054031-009486-00dc3c-001.tiff
s1a-iw1-slc-vv-20160114t054006-20160114t054031-009486-00dc3c-004.tiff
s1a-iw2-slc-vh-20160114t054007-20160114t054032-009486-00dc3c-002.tiff
s1a-iw2-slc-vv-20160114t054007-20160114t054032-009486-00dc3c-005.tiff
s1a-iw3-slc-vh-20160114t054005-20160114t054030-009486-00dc3c-003.tiff
s1a-iw3-slc-vv-20160114t054005-20160114t054030-009486-00dc3c-006.tiff


This time we have 3 different swath (corresponding to different ground footprints), and 2 polarisations for each swath.

In this case, if I gdalinfo manifest.safe, I get :

Driver: SAFE/Sentinel-1 SAR SAFE Product
Files: manifest.safe
measurement/s1a-iw1-slc-vh-20160114t054006-20160114t054031-009486-00dc3c-001.tiff
measurement/s1a-iw2-slc-vh-20160114t054007-20160114t054032-009486-00dc3c-002.tiff
measurement/s1a-iw3-slc-vh-20160114t054005-20160114t054030-009486-00dc3c-003.tiff
measurement/s1a-iw1-slc-vv-20160114t054006-20160114t054031-009486-00dc3c-004.tiff
measurement/s1a-iw2-slc-vv-20160114t054007-20160114t054032-009486-00dc3c-005.tiff
measurement/s1a-iw3-slc-vv-20160114t054005-20160114t054030-009486-00dc3c-006.tiff
[...]
Band 1 Block=22015x1 Type=CInt16, ColorInterp=Undefined
  Metadata:
    POLARISATION=VH
Band 2 Block=25844x1 Type=CInt16, ColorInterp=Undefined
  Metadata:
    POLARISATION=VH
Band 3 Block=24889x1 Type=CInt16, ColorInterp=Undefined
  Metadata:
    POLARISATION=VH
Band 4 Block=22015x1 Type=CInt16, ColorInterp=Undefined
  Metadata:
    POLARISATION=VV
Band 5 Block=25844x1 Type=CInt16, ColorInterp=Undefined
  Metadata:
    POLARISATION=VV
Band 6 Block=24889x1 Type=CInt16, ColorInterp=Undefined
  Metadata:
    POLARISATION=VV

This is obviously wrong, since pixels in each swath correspond to different observed ground points. In other word, there is no meaning in stacking the response of pixel (0,0) of swath one with pixel (0,0) of swath two, since they do not observe the same target landscape.

I think the best would be to report at least the different swath as subdatasets (as done in S2 driver). For the sake of simplicity, polarisations too could be exposed as subdatasets.

What do you think ?

Regards,

Julien

--
Julien MICHEL
CNES - DCT/SI/AP

_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to