This might be tricky, because JPEG2000 itself has a concept of a image space origin which is not necessarily (0,0) with the (XOSiz, YOSiz) fields of the SIZ marker, although most of the time it is 0,0.   I don't remember how the GDAL JPEG2000 drivers behave regarding that, if they ignore it (that is the GDAL 0,0 pixel is the one at (XOSiz,YOSiz)), of if the first valid pixel in GDAL image space is actually (XOSiz, YOSiz) and you have padding pixels between 0 and XOSiz/YOSiz.

You can get the XOSiz, YOSiz value with the https://github.com/OSGeo/gdal/blob/master/swig/python/gdal-utils/osgeo_utils/samples/dump_jp2.py script

Depending on how drivers behave, the combination of this JPEG2000 imaging (XOSiz, YOSiz) concept with the gml:low shift from GMLJP2 might actually cancel and lead to the right result...

In any case data producers are calling for troubles by using any of those mechanisms...

Le 29/03/2024 à 09:45, Philippe Ghesquiere via gdal-dev a écrit :
Hi all,

I have some questions about GMLJP2 parameters concerning location.

*1) Description
*Some JP2K images have a pixel origin different than (0 ; 0) (DIMAP products for example).

In such cases, the GML header looks like like:
<gml:GridEnvelope>
*<gml:low>7 7</gml:low>  <========== Different than "0 0"*
    <gml:high>1000 1000</gml:high>
</gml:GridEnvelope>

This origin coordinate should be taken into account for pixel location (See OGC 05-047r3  p93):
<element name="startPoint" type="gml:integerList" minOccurs="0">
    <annotation>
        <documentation>
             Index position of the first grid post, which
             shall lie somwhere in the GridEnvelope. If absent, the startPoint is equal
             to the value of gridEnvelope::low from the grid definition.
        </documentation>
    </annotation>
</element>

It seems that this offset is not taken into account by GDAL location function.

*2) How to reproduce*
2.1) Data creation
Reference (no offset) image:
gdal_create -of JP2OpenJPEG -co GMLJP2=YES -outsize 100 100 -bands 3 -burn 0 -burn 255 -burn 0 -a_srs epsg:32632 -a_ullr 500000 500100 500100 500000 Offset_0.jp2

Image with offset:
sed s/"<gml:low>0 0"/"<gml:low>7 7"/g Offset_0.jp2 > Offset_7.jp2

2.2) Location test
echo "0 0" | gdaltransform Offset_0.jp2 Offset_7.jp2
0 0 0

*3) Question:*
Shouldn't we have a 7 pixels offset between the 2 images

Cheers
Philippe


The information in this e-mail is confidential. The contents may not be disclosed or used by anyone other than the addressee. Access to this e-mail by anyone else is unauthorised. If you are not the intended recipient, please notify Airbus immediately and delete this e-mail. Airbus cannot accept any responsibility for the accuracy or completeness of this e-mail as it has been sent over public networks. If you have any concerns over the content of this message or its Accuracy or Integrity, please contact Airbus immediately. All outgoing e-mails from Airbus are checked using regularly updated virus scanning software but you should take whatever measures you deem to be appropriate to ensure that this message and any attachments are virus free.

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

--
http://www.spatialys.com
My software is free, but my time generally not.
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to