I acquire the raw JP2 imagery files from the Sentinel-2 project. Let's say I've selected a tile for a given sampling period and band (e.g. B01). Then, after using Python tools provided from here, I compare my JP2 files to the TIFF files (corresponding to the exact same spatial area corresponding to the JP2 file) provided via get calls to the Sentinel Hub AWS S3 source. These two files - regardless of sampling period, location, or (usually) band are different in the following ways: 1] array dimensions (e.g. JP2=1830x1830 vs. TIFF=10980x10980) and 2] measurement values (e.g. JP2=[[1000,1001,1023,...]] vs. TIFF=[[0.780,0.888,0.901]]).

This means two things. First, some kind of interpolation is going on from the Sentinel-2 raw data format to resample a coarser array to one comparable to more higher resolutions bands like B02, B03, etc. Also, the array value themselves corresponding to a given TIFF image have also undergone some form of normalization/standardization/regularization/equalization.

What does Sentinel Hub do - or perhaps the Python Sentinel-2 toolkit - to the images to make this large difference happen compared to the supposed raw JP2 format? That is, why the radical difference between the JP2 and TIFF files?


Disclaimer: I work at Sinergise (company running the SentinelHub services and developing Python tools you mention) You might also have some more luck getting answers on a dedicated forum.

The original (ESA-provided) Sentinel-2 JP2 files have resolution that varies from 10 m2/px to 60 m2/px (see e.g. this link), so make sure you are always comparing same bands (when comparing JP2 and TIFF), as they should be the same.

Regarding the differences in values: JP2 files (the files on Sentinel-Hub S3 bucket are the same as provided by ESA, just renamed) have so called digital number values, stored as 15bit integers. When you do a request to SentinelHub services, you can specify if you'd like to get digital numbers or (top-of-the-atmosphere) reflectance values. If you request digital numbers, the numbers should be exactly equal to the values in JP2 files (provided the request is also in the same coordinate reference system as the JP2 file you are comparing to), but if you request reflectances, your numbers will be between 0 and some small value (can be larger than 1 due to high-albedo and sun/slope angles).

Hope that helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.