diff --git a/README.md b/README.md
index b3e35c5..025a8b8 100644
--- a/README.md
+++ b/README.md
@@ -70,24 +70,26 @@ where the dictionary's key is the band name (`B01`, `B12`, `VV`, ...).
Example Input
```
-
-└── S1A_IW_GRDH_1SDV_20170613T165043_33UUP_65_63
- ├── S1A_IW_GRDH_1SDV_20170613T165043_33UUP_65_63_VH.tif
- └── S1A_IW_GRDH_1SDV_20170613T165043_33UUP_65_63_VV.tif
-
-└── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B01.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B02.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B03.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B04.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B05.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B06.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B07.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B08.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B09.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B8A.tiff
- ├── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B11.tiff
- └── S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23_B12.tiff
+├──
+│ └── S1A_IW_GRDH_1SDV_20170613T165043
+│ └── S1A_IW_GRDH_1SDV_20170613T165043_33UUP_70_48
+│ ├── S1A_IW_GRDH_1SDV_20170613T165043_33UUP_70_48_VH.tif
+│ └── S1A_IW_GRDH_1SDV_20170613T165043_33UUP_70_48_VV.tif
+└──
+ └── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP
+ └── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B01.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B02.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B03.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B04.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B05.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B06.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B07.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B08.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B09.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B8A.tif
+ ├── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B11.tif
+ └── S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43_B12.tif
```
@@ -96,12 +98,12 @@ where the dictionary's key is the band name (`B01`, `B12`, `VV`, ...).
LMDB Result
```
-'S1A_IW_GRDH_1SDV_20170613T165043_33UUP_65_63':
+'S1A_IW_GRDH_1SDV_20170613T165043_33UUP_70_48':
{
'VH': <120x120 float32 safetensors image data>
'VV': <120x120 float32 safetensors image data>
},
-'S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23':
+'S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP':
{
'B01': <120x120 uint16 safetensors image data>,
'B02': <120x120 uint16 safetensors image data>,
@@ -138,7 +140,7 @@ env = lmdb.open(str(encoded_path), readonly=True)
with env.begin() as txn:
# string encoding is required to map the string to an LMDB key
- safetensor_dict = load(txn.get("S2A_MSIL2A_20180526T100031_N9999_R122_T34WFU_14_23".encode()))
+ safetensor_dict = load(txn.get("S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP".encode()))
rgb_bands = ["B04", "B03", "B02"]
rgb_tensor = np.stack([safetensor_dict[b] for b in rgb_bands])
diff --git a/flake.nix b/flake.nix
index 0a02491..8beb7d7 100644
--- a/flake.nix
+++ b/flake.nix
@@ -144,6 +144,7 @@
})
pkgs.poetry
pkgs.quarto
+ pkgs.gdal
]
++ self.checks.${system}.pre-commit-check.enabledPackages;
})
diff --git a/integration_tests/BigEarthNet_LMDB/data.mdb b/integration_tests/BigEarthNet_LMDB/data.mdb
index fe4fe5c..d5c6257 100644
Binary files a/integration_tests/BigEarthNet_LMDB/data.mdb and b/integration_tests/BigEarthNet_LMDB/data.mdb differ
diff --git a/integration_tests/BigEarthNet_LMDB/lock.mdb b/integration_tests/BigEarthNet_LMDB/lock.mdb
index a728385..0a35576 100644
Binary files a/integration_tests/BigEarthNet_LMDB/lock.mdb and b/integration_tests/BigEarthNet_LMDB/lock.mdb differ
diff --git a/integration_tests/test_python_integration.py b/integration_tests/test_python_integration.py
index b22346b..d8c0225 100644
--- a/integration_tests/test_python_integration.py
+++ b/integration_tests/test_python_integration.py
@@ -13,7 +13,6 @@
import pytest
import subprocess
import hashlib
-from rico_hdl.rico_hdl import EUROSAT_MS_BANDS
def read_single_band_raster(path):
@@ -138,7 +137,7 @@ def encoded_eurosat_ms_path(eurosat_ms_root, tmpdir_factory) -> Path:
return Path(tmp_path)
-def test_bigearthnet_integration(
+def test_reproducibility_and_data_consistency(
s1_root, s2_root, encoded_bigearthnet_s1_s2_path, bigearthnet_lmdb_ref_path
):
s1_data = {file: read_single_band_raster(file) for file in s1_root.glob("**/*.tif")}
@@ -175,123 +174,163 @@ def test_bigearthnet_integration(
), "The newly generated LMDB file has a different hash compared to the reference one!"
-def read_all_hyspecnet_bands(path):
- """
- Given a path to a GeoTIFF return all bands as a dictionary,
- where the key is the unformatted band index (starting from 1)
- as a string and the value the array data
- """
- with rasterio.open(path) as r:
- return {f"B{i}": r.read(i) for i in range(1, r.count + 1)}
+def test_bigearthnet_integration(
+ s1_root, s2_root, encoded_bigearthnet_s1_s2_path, bigearthnet_lmdb_ref_path
+):
+ env = lmdb.open(str(encoded_bigearthnet_s1_s2_path), readonly=True)
+
+ with env.begin(write=False) as txn:
+ cur = txn.cursor()
+ decoded_lmdb_data = {k.decode("utf-8"): load(v) for (k, v) in cur}
+
+ assert decoded_lmdb_data.keys() == set(
+ [
+ "S1A_IW_GRDH_1SDV_20170613T165043_33UUP_70_48",
+ "S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43",
+ ]
+ )
+
+ sample_s1_safetensors_dict = decoded_lmdb_data.get(
+ "S1A_IW_GRDH_1SDV_20170613T165043_33UUP_70_48"
+ )
+ sample_s2_safetensors_dict = decoded_lmdb_data.get(
+ "S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_75_43"
+ )
+ safetensors_s1_keys = sample_s1_safetensors_dict.keys()
+ safetensors_s2_keys = sample_s2_safetensors_dict.keys()
+ assert (
+ set(
+ [
+ "B01",
+ "B02",
+ "B03",
+ "B04",
+ "B05",
+ "B06",
+ "B07",
+ "B08",
+ "B8A",
+ "B09",
+ "B11",
+ "B12",
+ ]
+ )
+ == safetensors_s2_keys
+ )
+ assert (
+ set(
+ [
+ "VV",
+ "VH",
+ ]
+ )
+ == safetensors_s1_keys
+ )
+
+ assert all(arr.shape == (120, 120) for arr in sample_s1_safetensors_dict.values())
+ assert all(arr.dtype == "float32" for arr in sample_s1_safetensors_dict.values())
+
+ assert all(arr.dtype == "uint16" for arr in sample_s2_safetensors_dict.values())
+ assert all(
+ sample_s2_safetensors_dict[key].shape == (120, 120)
+ for key in ["B02", "B03", "B04", "B08"]
+ )
+ assert all(
+ sample_s2_safetensors_dict[key].shape == (60, 60)
+ for key in ["B05", "B06", "B07", "B8A", "B11", "B12"]
+ )
+ assert all(
+ sample_s2_safetensors_dict[key].shape == (20, 20) for key in ["B01", "B09"]
+ )
def test_hyspecnet_integration(hyspecnet_root, encoded_hyspecnet_path):
- source_file_data = {
- file: read_all_hyspecnet_bands(file)
- for file in hyspecnet_root.glob("**/*SPECTRAL_IMAGE.TIF")
- }
- assert len(source_file_data) > 0
-
- # code to create the directory
- # ./result/bin/encoder --hyspecnet-11k hyspec_artifacts/
env = lmdb.open(str(encoded_hyspecnet_path), readonly=True)
with env.begin(write=False) as txn:
cur = txn.cursor()
decoded_lmdb_data = {k.decode("utf-8"): load(v) for (k, v) in cur}
- # The encoded data is nested inside of another safetensor dictionary,
- # where the inner keys are derived from the band number as a string
- decoded_dicts = [d for d in decoded_lmdb_data.values()]
+ lmdb_keys = decoded_lmdb_data.keys()
- # Simply check if the data remains identical, as this is the only _true_ thing I care about from the Python viewpoint
- # Here I iterate over all file name and raster data as dictionaries pairs
- # and then for each raster data dictionary iterate over all key-value pairs, where the key is the band name
- # in the same style as the LMDB file and check if the LMDB file contained a matching array from
- # a safetensors dictionary accessed via the shared band name as key.
- for source_file, source_data_dict in source_file_data.items():
- for source_key, source_data in source_data_dict.items():
- assert any(
- np.array_equal(source_data, decoded_dict[source_key])
- for decoded_dict in decoded_dicts
- ), f"Couldn't find data in the LMDB database that matches the data from: {source_file}:{source_key}"
-
-
-def read_all_uc_merced_bands(path):
- """
- Given a path to a UC Merced TIFF file return all bands as a dictionary,
- where the keys are the color value
- """
- with rasterio.open(path) as r:
- return {key: r.read(i) for i, key in enumerate(["Red", "Green", "Blue"], 1)}
+ # only have two samples
+ assert len(lmdb_keys) == 2
+
+ assert (
+ "ENMAP01-____L2A-DT0000004950_20221103T162438Z_001_V010110_20221118T145147Z-Y01460273_X03110438"
+ in lmdb_keys
+ )
+ assert (
+ "ENMAP01-____L2A-DT0000004950_20221103T162438Z_001_V010110_20221118T145147Z-Y01460273_X04390566"
+ in lmdb_keys
+ )
+
+ sample_safetensors_dict = decoded_lmdb_data.get(
+ "ENMAP01-____L2A-DT0000004950_20221103T162438Z_001_V010110_20221118T145147Z-Y01460273_X03110438"
+ )
+ safetensors_keys = sample_safetensors_dict.keys()
+ assert "B1" in safetensors_keys
+ assert "B100" in safetensors_keys
+ assert "B224" in safetensors_keys
+
+ assert "B0" not in safetensors_keys
+ assert "B01" not in safetensors_keys
+ assert "B225" not in safetensors_keys
+
+ assert all(arr.shape == (128, 128) for arr in sample_safetensors_dict.values())
+ assert all(arr.dtype == "int16" for arr in sample_safetensors_dict.values())
@pytest.mark.filterwarnings("ignore:Dataset has no geotransform")
def test_uc_merced_integration(uc_merced_root, encoded_uc_merced_path):
- source_file_data = {
- file: read_all_uc_merced_bands(file) for file in uc_merced_root.glob("**/*.tif")
- }
- assert len(source_file_data) > 0
-
- # code to create the directory
- # ./result/bin/encoder --hyspecnet-11k hyspec_artifacts/
env = lmdb.open(str(encoded_uc_merced_path), readonly=True)
with env.begin(write=False) as txn:
cur = txn.cursor()
decoded_lmdb_data = {k.decode("utf-8"): load(v) for (k, v) in cur}
- # The encoded data is nested inside of another safetensor dictionary,
- # where the inner keys are derived from color mapping
- decoded_dicts = [d for d in decoded_lmdb_data.values()]
+ lmdb_keys = decoded_lmdb_data.keys()
+ assert lmdb_keys == set(["airplane00", "airplane42", "forest10", "forest99"])
- # Simply check if the data remains identical, as this is the only _true_ thing I care about from the Python viewpoint
- # Here I iterate over all file name and raster data as dictionaries pairs
- # and then for each raster data dictionary iterate over all key-value pairs, where the key is the band name
- # in the same style as the LMDB file and check if the LMDB file contained a matching array from
- # a safetensors dictionary accessed via the shared band name as key.
- for source_file, source_data_dict in source_file_data.items():
- for source_key, source_data in source_data_dict.items():
- assert any(
- np.array_equal(source_data, decoded_dict[source_key])
- for decoded_dict in decoded_dicts
- ), f"Couldn't find data in the LMDB database that matches the data from: {source_file}:{source_key}"
-
-
-def read_all_eurosat_ms_bands(path):
- """
- Given a path to a TIFF file return all bands as a dictionary,
- where the keys are the EuroSAT MS band value
- """
- with rasterio.open(path) as r:
- return {key: r.read(i) for i, key in enumerate(EUROSAT_MS_BANDS, start=1)}
+ sample_safetensors_dict = decoded_lmdb_data.get("airplane00")
+ safetensors_keys = sample_safetensors_dict.keys()
+ assert set(["Red", "Green", "Blue"]) == safetensors_keys
+ assert all(arr.shape == (256, 256) for arr in sample_safetensors_dict.values())
+ assert all(arr.dtype == "uint8" for arr in sample_safetensors_dict.values())
-def test_eurosat_integration(eurosat_ms_root, encoded_eurosat_ms_path):
- source_file_data = {
- file: read_all_eurosat_ms_bands(file)
- for file in eurosat_ms_root.glob("**/*.tif")
- }
- assert len(source_file_data) > 0
+def test_eurosat_integration(eurosat_ms_root, encoded_eurosat_ms_path):
env = lmdb.open(str(encoded_eurosat_ms_path), readonly=True)
with env.begin(write=False) as txn:
cur = txn.cursor()
decoded_lmdb_data = {k.decode("utf-8"): load(v) for (k, v) in cur}
- # The encoded data is nested inside of another safetensor dictionary,
- # where the inner keys are derived from color mapping
- decoded_dicts = [d for d in decoded_lmdb_data.values()]
+ decoded_lmdb_data.keys() == set(["AnnualCrop_1", "Pasture_300", "SeaLake_3000"])
- # Simply check if the data remains identical, as this is the only _true_ thing I care about from the Python viewpoint
- # Here I iterate over all file name and raster data as dictionaries pairs
- # and then for each raster data dictionary iterate over all key-value pairs, where the key is the band name
- # in the same style as the LMDB file and check if the LMDB file contained a matching array from
- # a safetensors dictionary accessed via the shared band name as key.
- for source_file, source_data_dict in source_file_data.items():
- for source_key, source_data in source_data_dict.items():
- assert any(
- np.array_equal(source_data, decoded_dict[source_key])
- for decoded_dict in decoded_dicts
- ), f"Couldn't find data in the LMDB database that matches the data from: {source_file}:{source_key}"
+ sample_safetensors_dict = decoded_lmdb_data.get("AnnualCrop_1")
+ safetensors_keys = sample_safetensors_dict.keys()
+ assert (
+ set(
+ [
+ "B01",
+ "B02",
+ "B03",
+ "B04",
+ "B05",
+ "B06",
+ "B07",
+ "B08",
+ "B09",
+ "B10",
+ "B11",
+ "B12",
+ "B08A",
+ ]
+ )
+ == safetensors_keys
+ )
+
+ assert all(arr.shape == (64, 64) for arr in sample_safetensors_dict.values())
+ assert all(arr.dtype == "uint16" for arr in sample_safetensors_dict.values())
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83_VH.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83_VH.tif
deleted file mode 100644
index 625af50..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83_VH.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83_VV.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83_VV.tif
deleted file mode 100644
index fb2603e..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_83_83_VV.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36_VH.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36_VH.tif
deleted file mode 100644
index 0185a0f..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36_VH.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36_VV.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36_VV.tif
deleted file mode 100644
index 36d4ae7..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S1/S1A_IW_GRDH_1SDV_20170613T165043/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36/S1A_IW_GRDH_1SDV_20170613T165043_33UUP_89_36_VV.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B01.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B01.tif
deleted file mode 100644
index 16bc393..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B01.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B02.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B02.tif
deleted file mode 100644
index 6aecb72..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B02.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B03.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B03.tif
deleted file mode 100644
index 20c4651..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B03.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B04.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B04.tif
deleted file mode 100644
index 9591bdc..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B04.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B05.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B05.tif
deleted file mode 100644
index bf28761..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B05.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B06.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B06.tif
deleted file mode 100644
index 64eba55..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B06.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B07.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B07.tif
deleted file mode 100644
index e68a9a3..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B07.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B08.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B08.tif
deleted file mode 100644
index 759ecc3..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B08.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B09.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B09.tif
deleted file mode 100644
index 0f72a5c..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B09.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B11.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B11.tif
deleted file mode 100644
index e7f42c5..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B11.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B12.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B12.tif
deleted file mode 100644
index 3427f23..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B12.tif and /dev/null differ
diff --git a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B8A.tif b/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B8A.tif
deleted file mode 100644
index 549dbe3..0000000
Binary files a/integration_tests/tiffs/BigEarthNet/BigEarthNet-S2/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18/S2A_MSIL2A_20170613T101031_N9999_R022_T33UUP_89_18_B8A.tif and /dev/null differ
diff --git a/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457/VH.tif b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457/VH.tif
new file mode 100644
index 0000000..b56a608
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457/VH.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457/VV.tif b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457/VV.tif
new file mode 100644
index 0000000..100f330
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457/VV.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457/metadata.json b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457/metadata.json
new file mode 100644
index 0000000..dc98830
--- /dev/null
+++ b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457/metadata.json
@@ -0,0 +1 @@
+{"GRD_Post_Processing_facility_country": "Germany", "GRD_Post_Processing_facility_name": "Copernicus S1 Core Ground Segment - DPA", "GRD_Post_Processing_facility_org": "ESA", "GRD_Post_Processing_facility_site": "DLR-Oberpfaffenhofen", "GRD_Post_Processing_software_name": "Sentinel-1 IPF", "GRD_Post_Processing_software_version": "003.20", "GRD_Post_Processing_start": 1591515136232, "GRD_Post_Processing_stop": 1591515805000, "S1TBX_Calibration_vers": "7.0.2", "S1TBX_SAR_Processing_vers": "7.0.2", "SLC_Processing_facility_country": "Germany", "SLC_Processing_facility_name": "Copernicus S1 Core Ground Segment - DPA", "SLC_Processing_facility_org": "ESA", "SLC_Processing_facility_site": "DLR-Oberpfaffenhofen", "SLC_Processing_software_name": "Sentinel-1 IPF", "SLC_Processing_software_version": "003.20", "SLC_Processing_start": 1591515262000, "SLC_Processing_stop": 1591515588000, "SNAP_Graph_Processing_Framework_GPF_vers": "7.0.3", "cycleNumber": 202, "familyName": "SENTINEL-1", "instrument": "Synthetic Aperture Radar", "instrumentConfigurationID": 6, "instrumentMode": "IW", "instrumentSwath": "IW", "missionDataTakeID": 249786, "nssdcIdentifier": "2014-016A", "orbitNumber_start": 32904, "orbitNumber_stop": 32904, "orbitProperties_ascendingNodeTime": 1591489636263, "orbitProperties_pass": "DESCENDING", "phaseIdentifier": 1, "platform_number": "A", "productClass": "S", "productClassDescription": "SAR Standard L1 Product", "productComposition": "Slice", "productTimelinessCategory": "Fast-24h", "productType": "GRD", "relativeOrbitNumber_start": 107, "relativeOrbitNumber_stop": 107, "resolution": "H", "resolution_meters": 10, "segmentStartTime": 1591491826734, "sliceNumber": 11, "sliceProductFlag": "true", "startTimeANX": 2444172, "stopTimeANX": 2469170, "system:asset_size": 4068315129, "system:band_names": ["VV", "VH", "angle"], "system:bands": {"VV": {"data_type": {"type": "PixelType", "precision": "double"}, "dimensions": [28796, 21782], "crs": "EPSG:32643", "crs_transform": [10, 0, 158264.4428845317, 0, -10, 3560206.2252167463]}, "VH": {"data_type": {"type": "PixelType", "precision": "double"}, "dimensions": [28796, 21782], "crs": "EPSG:32643", "crs_transform": [10, 0, 158264.4428845317, 0, -10, 3560206.2252167463]}, "angle": {"data_type": {"type": "PixelType", "precision": "float"}, "dimensions": [21, 10], "crs": "EPSG:32643", "crs_transform": [-12649.568506065058, -4004.0974110317184, 445997.78946215136, 2497.228151544463, -20014.136037246324, 3509351.2937052143]}}, "system:footprint": {"type": "LinearRing", "coordinates": [[74.09944366808917, 30.322941105920485], [74.11179673580456, 30.37799552291308], [74.14121108030363, 30.509195100457447], [74.16920220381431, 30.633901024968573], [74.1918409406636, 30.734743011525897], [74.26580047664909, 31.063259348915857], [74.37671941065409, 31.55430939246343], [74.4111095681767, 31.72167258547177], [73.11483574249691, 31.92723377904315], [72.46694291921783, 32.02465147462241], [71.79330395372021, 32.1221767847333], [71.77892267611422, 32.05015830297902], [71.68045385507203, 31.550154047055074], [71.61975493537936, 31.239760484381762], [71.55935699012439, 30.929354427853166], [71.49891656908433, 30.617200319148733], [72.86781294238061, 30.409808056714127], [74.0749770135709, 30.21425555873582], [74.09944366808917, 30.322941105920485]]}, "system:id": "COPERNICUS/S1_GRD/S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457", "system:index": "S1A_IW_GRDH_1SDV_20200607T010800_20200607T010825_032904_03CFBA_D457", "system:time_end": 1591492080000, "system:time_start": 1591492080000, "system:version": 1640963949863000.0, "totalSlices": 18, "transmitterReceiverPolarisation": ["VV", "VH"]}
\ No newline at end of file
diff --git a/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C/VH.tif b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C/VH.tif
new file mode 100644
index 0000000..b8beaad
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C/VH.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C/VV.tif b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C/VV.tif
new file mode 100644
index 0000000..8574fd6
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C/VV.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C/metadata.json b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C/metadata.json
new file mode 100644
index 0000000..ad62a07
--- /dev/null
+++ b/integration_tests/tiffs/SSL4EO/s1/0000200/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C/metadata.json
@@ -0,0 +1 @@
+{"GRD_Post_Processing_facility_country": "Germany", "GRD_Post_Processing_facility_name": "Copernicus S1 Core Ground Segment - DPA", "GRD_Post_Processing_facility_org": "ESA", "GRD_Post_Processing_facility_site": "DLR-Oberpfaffenhofen", "GRD_Post_Processing_software_name": "Sentinel-1 IPF", "GRD_Post_Processing_software_version": "003.31", "GRD_Post_Processing_start": 1599147761966, "GRD_Post_Processing_stop": 1599148410000, "S1TBX_Calibration_vers": "7.0.2", "S1TBX_SAR_Processing_vers": "7.0.2", "SLC_Processing_facility_country": "Germany", "SLC_Processing_facility_name": "Copernicus S1 Core Ground Segment - DPA", "SLC_Processing_facility_org": "ESA", "SLC_Processing_facility_site": "DLR-Oberpfaffenhofen", "SLC_Processing_software_name": "Sentinel-1 IPF", "SLC_Processing_software_version": "003.31", "SLC_Processing_start": 1599147878000, "SLC_Processing_stop": 1599148197000, "SNAP_Graph_Processing_Framework_GPF_vers": "7.0.3", "cycleNumber": 209, "familyName": "SENTINEL-1", "instrument": "Synthetic Aperture Radar", "instrumentConfigurationID": 6, "instrumentMode": "IW", "instrumentSwath": "IW", "missionDataTakeID": 260341, "nssdcIdentifier": "2014-016A", "orbitNumber_start": 34195, "orbitNumber_stop": 34195, "orbitProperties_ascendingNodeTime": 1599138263020, "orbitProperties_pass": "ASCENDING", "phaseIdentifier": 1, "platform_number": "A", "productClass": "S", "productClassDescription": "SAR Standard L1 Product", "productComposition": "Slice", "productTimelinessCategory": "Fast-24h", "productType": "GRD", "relativeOrbitNumber_start": 173, "relativeOrbitNumber_stop": 173, "resolution": "H", "resolution_meters": 10, "segmentStartTime": 1599138704228, "sliceNumber": 2, "sliceProductFlag": "true", "startTimeANX": 469909, "stopTimeANX": 494908.2, "system:asset_size": 4062077935, "system:band_names": ["VV", "VH", "angle"], "system:bands": {"VV": {"data_type": {"type": "PixelType", "precision": "double"}, "dimensions": [28719, 21834], "crs": "EPSG:32643", "crs_transform": [10, 0, 127263.30939878873, 0, -10, 3436577.4078424796]}, "VH": {"data_type": {"type": "PixelType", "precision": "double"}, "dimensions": [28719, 21834], "crs": "EPSG:32643", "crs_transform": [10, 0, 127263.30939878873, 0, -10, 3436577.4078424796]}, "angle": {"data_type": {"type": "PixelType", "precision": "float"}, "dimensions": [21, 10], "crs": "EPSG:32643", "crs_transform": [12692.016046236618, -3307.2289515693556, 160063.30687889102, 2056.0711497454904, 20176.867781277746, 3222940.7806488853]}}, "system:footprint": {"type": "LinearRing", "coordinates": [[74.05013687612535, 29.49372691767182], [74.05860495748783, 29.49502357612972], [73.91541207020634, 30.234962346548432], [73.7707003738601, 30.970484027031464], [73.76482780578046, 31.00000669335961], [73.76273193164036, 30.999986610301576], [73.38782941175653, 30.945055447627904], [72.88909591623742, 30.870198363681062], [72.31452148998069, 30.781432252845047], [71.90239468588709, 30.716093868123718], [71.27863690794213, 30.614550252395148], [71.17525710596954, 30.597405302154524], [71.22680816776051, 30.36539846864763], [71.27751012345296, 30.135826910949667], [71.32792002819365, 29.90620965710632], [71.37864338718825, 29.67378488459068], [71.41603066678533, 29.50544799812182], [71.4853109724639, 29.19401923067886], [71.50440818516215, 29.108377388086254], [71.5086329901203, 29.08957410604093], [72.76515504100163, 29.295771572226364], [74.05013687612535, 29.49372691767182]]}, "system:id": "COPERNICUS/S1_GRD/S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C", "system:index": "S1A_IW_GRDH_1SDV_20200903T131212_20200903T131237_034195_03F8F5_AC1C", "system:time_end": 1599138732000, "system:time_start": 1599138732000, "system:version": 1640963949863000.0, "totalSlices": 12, "transmitterReceiverPolarisation": ["VV", "VH"]}
\ No newline at end of file
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B1.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B1.tif
new file mode 100644
index 0000000..c199d11
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B1.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B11.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B11.tif
new file mode 100644
index 0000000..f30370e
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B11.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B12.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B12.tif
new file mode 100644
index 0000000..140abfc
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B12.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B2.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B2.tif
new file mode 100644
index 0000000..c8065f2
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B2.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B3.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B3.tif
new file mode 100644
index 0000000..796a24d
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B3.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B4.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B4.tif
new file mode 100644
index 0000000..f52dc3e
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B4.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B5.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B5.tif
new file mode 100644
index 0000000..4e891f0
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B5.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B6.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B6.tif
new file mode 100644
index 0000000..b30c29c
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B6.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B7.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B7.tif
new file mode 100644
index 0000000..fdd026c
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B7.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B8.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B8.tif
new file mode 100644
index 0000000..f9d8427
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B8.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B8A.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B8A.tif
new file mode 100644
index 0000000..a0a94fe
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B8A.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B9.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B9.tif
new file mode 100644
index 0000000..d707eb1
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/B9.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/metadata.json b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/metadata.json
new file mode 100644
index 0000000..e4d1b3b
--- /dev/null
+++ b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200604T054639_20200604T054831_T43RCP/metadata.json
@@ -0,0 +1 @@
+{"AOT_RETRIEVAL_ACCURACY": 0, "CLOUDY_PIXEL_PERCENTAGE": 4.184628, "CLOUD_COVERAGE_ASSESSMENT": 4.184628, "CLOUD_SHADOW_PERCENTAGE": 0.047319, "DARK_FEATURES_PERCENTAGE": 0.091297, "DATASTRIP_ID": "S2B_OPER_MSI_L2A_DS_EPAE_20200604T094332_S20200604T054831_N02.14", "DATATAKE_IDENTIFIER": "GS2B_20200604T054639_016948_N02.14", "DATATAKE_TYPE": "INS-NOBS", "DEGRADED_MSI_DATA_PERCENTAGE": 0, "FORMAT_CORRECTNESS": "PASSED", "GENERAL_QUALITY": "PASSED", "GENERATION_TIME": 1591263812000, "GEOMETRIC_QUALITY": "PASSED", "GRANULE_ID": "L2A_T43RCP_A016948_20200604T054831", "HIGH_PROBA_CLOUDS_PERCENTAGE": 0.483241, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B1": 283.304762261342, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B10": 283.065359550202, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B11": 283.146360263154, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B12": 283.242530656292, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B2": 283.128288493188, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B3": 283.145777297102, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B4": 283.168635276442, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B5": 283.198288777673, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B6": 283.23238899133, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B7": 283.257003785843, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B8": 283.142043939085, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A": 283.314657926166, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B9": 283.349640354311, "MEAN_INCIDENCE_ZENITH_ANGLE_B1": 8.17278633650241, "MEAN_INCIDENCE_ZENITH_ANGLE_B10": 8.0148502704489, "MEAN_INCIDENCE_ZENITH_ANGLE_B11": 8.08135954908641, "MEAN_INCIDENCE_ZENITH_ANGLE_B12": 8.14687398097959, "MEAN_INCIDENCE_ZENITH_ANGLE_B2": 7.96652764047993, "MEAN_INCIDENCE_ZENITH_ANGLE_B3": 7.99843826225655, "MEAN_INCIDENCE_ZENITH_ANGLE_B4": 8.02944058793442, "MEAN_INCIDENCE_ZENITH_ANGLE_B5": 8.06001834956803, "MEAN_INCIDENCE_ZENITH_ANGLE_B6": 8.0851807745603, "MEAN_INCIDENCE_ZENITH_ANGLE_B7": 8.1129912507173, "MEAN_INCIDENCE_ZENITH_ANGLE_B8": 7.97881519047167, "MEAN_INCIDENCE_ZENITH_ANGLE_B8A": 8.13949663689649, "MEAN_INCIDENCE_ZENITH_ANGLE_B9": 8.20903301492254, "MEAN_SOLAR_AZIMUTH_ANGLE": 114.737658555307, "MEAN_SOLAR_ZENITH_ANGLE": 16.2120467978756, "MEDIUM_PROBA_CLOUDS_PERCENTAGE": 1.9525, "MGRS_TILE": "43RCP", "NODATA_PIXEL_PERCENTAGE": 12.388814, "NOT_VEGETATED_PERCENTAGE": 68.061817, "PROCESSING_BASELINE": "02.14", "PRODUCT_ID": "S2B_MSIL2A_20200604T054639_N0214_R048_T43RCP_20200604T094332", "RADIATIVE_TRANSFER_ACCURACY": 0, "RADIOMETRIC_QUALITY": "PASSED", "REFLECTANCE_CONVERSION_CORRECTION": 0.972677384432858, "SATURATED_DEFECTIVE_PIXEL_PERCENTAGE": 0, "SENSING_ORBIT_DIRECTION": "DESCENDING", "SENSING_ORBIT_NUMBER": 48, "SENSOR_QUALITY": "PASSED", "SNOW_ICE_PERCENTAGE": 0, "SOLAR_IRRADIANCE_B1": 1874.3, "SOLAR_IRRADIANCE_B10": 365.41, "SOLAR_IRRADIANCE_B11": 247.08, "SOLAR_IRRADIANCE_B12": 87.75, "SOLAR_IRRADIANCE_B2": 1959.75, "SOLAR_IRRADIANCE_B3": 1824.93, "SOLAR_IRRADIANCE_B4": 1512.79, "SOLAR_IRRADIANCE_B5": 1425.78, "SOLAR_IRRADIANCE_B6": 1291.13, "SOLAR_IRRADIANCE_B7": 1175.57, "SOLAR_IRRADIANCE_B8": 1041.28, "SOLAR_IRRADIANCE_B8A": 953.93, "SOLAR_IRRADIANCE_B9": 817.58, "SPACECRAFT_NAME": "Sentinel-2B", "THIN_CIRRUS_PERCENTAGE": 1.748888, "UNCLASSIFIED_PERCENTAGE": 7.957881, "VEGETATION_PERCENTAGE": 19.573621, "WATER_PERCENTAGE": 0.083435, "WATER_VAPOUR_RETRIEVAL_ACCURACY": 0, "system:asset_size": 1582774589, "system:band_names": ["B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B8A", "B9", "B11", "B12", "AOT", "WVP", "SCL", "TCI_R", "TCI_G", "TCI_B", "MSK_CLDPRB", "MSK_SNWPRB", "QA10", "QA20", "QA60"], "system:bands": {"B11": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "TCI_B": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B12": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "AOT": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "QA10": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B8A": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "QA20": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 4294967295}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "MSK_CLDPRB": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B1": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "QA60": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "B2": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "WVP": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B3": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B4": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "TCI_R": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B5": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B6": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B7": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B8": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B9": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "MSK_SNWPRB": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "SCL": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "TCI_G": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}}, "system:footprint": {"type": "LinearRing", "coordinates": [[73.7831403193333, 29.737090991726753], [73.78318960072373, 29.73710395553357], [73.792804535062, 29.763743138958812], [73.8095643467408, 29.815875307350698], [74.03543204684742, 30.597367049287296], [74.05467928277731, 30.677636372158954], [74.05587983398004, 30.6830616893076], [74.0576548752937, 30.6939090927478], [74.05799388997926, 30.702038933553432], [74.05772542123408, 30.729649473637277], [74.05764358076966, 30.729738874020356], [72.91139471150142, 30.716353622327702], [72.91129151741421, 30.716282436615717], [72.92183330704454, 30.22126525858613], [72.93211590293261, 29.72622780674982], [72.93219791030333, 29.72613906192144], [73.77835188752138, 29.736655669613505], [73.78310782412932, 29.737060790742348], [73.7831403193333, 29.737090991726753]]}, "system:id": "COPERNICUS/S2_SR/20200604T054639_20200604T054831_T43RCP", "system:index": "20200604T054639_20200604T054831_T43RCP", "system:time_end": 1591250441044, "system:time_start": 1591250441044, "system:version": 1592156497623477}
\ No newline at end of file
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B1.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B1.tif
new file mode 100644
index 0000000..45f8fa3
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B1.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B11.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B11.tif
new file mode 100644
index 0000000..dafc2c1
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B11.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B12.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B12.tif
new file mode 100644
index 0000000..43fdc52
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B12.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B2.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B2.tif
new file mode 100644
index 0000000..8be7509
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B2.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B3.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B3.tif
new file mode 100644
index 0000000..a1b7949
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B3.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B4.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B4.tif
new file mode 100644
index 0000000..c67a605
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B4.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B5.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B5.tif
new file mode 100644
index 0000000..82aae53
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B5.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B6.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B6.tif
new file mode 100644
index 0000000..58c3e9e
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B6.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B7.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B7.tif
new file mode 100644
index 0000000..925a9e7
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B7.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B8.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B8.tif
new file mode 100644
index 0000000..8cd2af0
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B8.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B8A.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B8A.tif
new file mode 100644
index 0000000..a0b16c6
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B8A.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B9.tif b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B9.tif
new file mode 100644
index 0000000..f043d1c
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/B9.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/metadata.json b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/metadata.json
new file mode 100644
index 0000000..7af3d66
--- /dev/null
+++ b/integration_tests/tiffs/SSL4EO/s2a/0000200/20200813T054639_20200813T054952_T43RCP/metadata.json
@@ -0,0 +1 @@
+{"AOT_RETRIEVAL_ACCURACY": 0, "CLOUDY_PIXEL_PERCENTAGE": 1.948562, "CLOUD_COVERAGE_ASSESSMENT": 1.948562, "CLOUD_SHADOW_PERCENTAGE": 0.001542, "DARK_FEATURES_PERCENTAGE": 0.024602, "DATASTRIP_ID": "S2B_OPER_MSI_L2A_DS_VGS1_20200813T083230_S20200813T054952_N02.14", "DATATAKE_IDENTIFIER": "GS2B_20200813T054639_017949_N02.14", "DATATAKE_TYPE": "INS-NOBS", "DEGRADED_MSI_DATA_PERCENTAGE": 0, "FORMAT_CORRECTNESS": "PASSED", "GENERAL_QUALITY": "PASSED", "GENERATION_TIME": 1597307550000, "GEOMETRIC_QUALITY": "PASSED", "GRANULE_ID": "L2A_T43RCP_A017949_20200813T054952", "HIGH_PROBA_CLOUDS_PERCENTAGE": 0.055235, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B1": 283.265246767311, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B10": 283.05717213931, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B11": 283.131787824987, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B12": 283.205355398433, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B2": 283.116939342832, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B3": 283.128102064859, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B4": 283.160173721938, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B5": 283.156441529253, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B6": 283.202635671059, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B7": 283.224090492898, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B8": 283.127483484413, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A": 283.278512740616, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B9": 283.306942532814, "MEAN_INCIDENCE_ZENITH_ANGLE_B1": 8.15065088154641, "MEAN_INCIDENCE_ZENITH_ANGLE_B10": 7.99551910836516, "MEAN_INCIDENCE_ZENITH_ANGLE_B11": 8.05495241276049, "MEAN_INCIDENCE_ZENITH_ANGLE_B12": 8.12460641879372, "MEAN_INCIDENCE_ZENITH_ANGLE_B2": 7.94340157602892, "MEAN_INCIDENCE_ZENITH_ANGLE_B3": 7.97539430414224, "MEAN_INCIDENCE_ZENITH_ANGLE_B4": 8.01017444948975, "MEAN_INCIDENCE_ZENITH_ANGLE_B5": 8.02926029684036, "MEAN_INCIDENCE_ZENITH_ANGLE_B6": 8.06257789888876, "MEAN_INCIDENCE_ZENITH_ANGLE_B7": 8.09054039012309, "MEAN_INCIDENCE_ZENITH_ANGLE_B8": 7.95576314516298, "MEAN_INCIDENCE_ZENITH_ANGLE_B8A": 8.11718282373492, "MEAN_INCIDENCE_ZENITH_ANGLE_B9": 8.18708482174386, "MEAN_SOLAR_AZIMUTH_ANGLE": 130.416728948948, "MEAN_SOLAR_ZENITH_ANGLE": 22.5191722338873, "MEDIUM_PROBA_CLOUDS_PERCENTAGE": 1.705544, "MGRS_TILE": "43RCP", "NODATA_PIXEL_PERCENTAGE": 12.018175, "NOT_VEGETATED_PERCENTAGE": 36.778858, "PROCESSING_BASELINE": "02.14", "PRODUCT_ID": "S2B_MSIL2A_20200813T054639_N0214_R048_T43RCP_20200813T083230", "RADIATIVE_TRANSFER_ACCURACY": 0, "RADIOMETRIC_QUALITY": "PASSED", "REFLECTANCE_CONVERSION_CORRECTION": 0.973294804560324, "SATURATED_DEFECTIVE_PIXEL_PERCENTAGE": 0, "SENSING_ORBIT_DIRECTION": "DESCENDING", "SENSING_ORBIT_NUMBER": 48, "SENSOR_QUALITY": "PASSED", "SNOW_ICE_PERCENTAGE": 0, "SOLAR_IRRADIANCE_B1": 1874.3, "SOLAR_IRRADIANCE_B10": 365.41, "SOLAR_IRRADIANCE_B11": 247.08, "SOLAR_IRRADIANCE_B12": 87.75, "SOLAR_IRRADIANCE_B2": 1959.75, "SOLAR_IRRADIANCE_B3": 1824.93, "SOLAR_IRRADIANCE_B4": 1512.79, "SOLAR_IRRADIANCE_B5": 1425.78, "SOLAR_IRRADIANCE_B6": 1291.13, "SOLAR_IRRADIANCE_B7": 1175.57, "SOLAR_IRRADIANCE_B8": 1041.28, "SOLAR_IRRADIANCE_B8A": 953.93, "SOLAR_IRRADIANCE_B9": 817.58, "SPACECRAFT_NAME": "Sentinel-2B", "THIN_CIRRUS_PERCENTAGE": 0.187783, "UNCLASSIFIED_PERCENTAGE": 10.333271, "VEGETATION_PERCENTAGE": 50.820172, "WATER_PERCENTAGE": 0.092994, "WATER_VAPOUR_RETRIEVAL_ACCURACY": 0, "system:asset_size": 1616861148, "system:band_names": ["B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B8A", "B9", "B11", "B12", "AOT", "WVP", "SCL", "TCI_R", "TCI_G", "TCI_B", "MSK_CLDPRB", "MSK_SNWPRB", "QA10", "QA20", "QA60"], "system:bands": {"B11": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "TCI_B": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B12": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "AOT": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "QA10": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B8A": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "QA20": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 4294967295}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "MSK_CLDPRB": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B1": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "QA60": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "B2": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "WVP": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B3": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B4": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "TCI_R": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B5": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B6": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B7": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B8": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B9": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "MSK_SNWPRB": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "SCL": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "TCI_G": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 255}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}}, "system:footprint": {"type": "LinearRing", "coordinates": [[74.05768248412737, 30.729690632651725], [74.05764358076966, 30.729738874020356], [72.91139471150142, 30.716353622327702], [72.91134721518908, 30.71631632861604], [72.91129151741421, 30.716282436615717], [72.92183330704454, 30.22126525858613], [72.93211590293261, 29.72622780674982], [72.93215888921726, 29.72618695317758], [72.93219791030333, 29.72613906192144], [73.78290441480404, 29.736697591631508], [73.78559593606681, 29.737084322230956], [73.78561586381693, 29.73710547057132], [73.78564728143695, 29.737105365608365], [73.78566451624354, 29.737122222685088], [73.79300281789214, 29.746399469993445], [73.79301323020371, 29.74642234782668], [73.91632832012183, 30.16222625226002], [74.04063066463735, 30.577916404131777], [74.05795991682686, 30.662510737988654], [74.05812530058532, 30.68850666396771], [74.05772542123408, 30.729649473637277], [74.05768248412737, 30.729690632651725]]}, "system:id": "COPERNICUS/S2_SR/20200813T054639_20200813T054952_T43RCP", "system:index": "20200813T054639_20200813T054952_T43RCP", "system:time_end": 1597298442610, "system:time_start": 1597298442610, "system:version": 1597511198942586}
\ No newline at end of file
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B1.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B1.tif
new file mode 100644
index 0000000..bf941e3
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B1.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B10.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B10.tif
new file mode 100644
index 0000000..e5dc101
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B10.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B11.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B11.tif
new file mode 100644
index 0000000..828349f
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B11.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B12.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B12.tif
new file mode 100644
index 0000000..84f743e
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B12.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B2.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B2.tif
new file mode 100644
index 0000000..7f1a751
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B2.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B3.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B3.tif
new file mode 100644
index 0000000..2752e5d
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B3.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B4.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B4.tif
new file mode 100644
index 0000000..c843ef9
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B4.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B5.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B5.tif
new file mode 100644
index 0000000..7660b0b
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B5.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B6.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B6.tif
new file mode 100644
index 0000000..e315e63
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B6.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B7.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B7.tif
new file mode 100644
index 0000000..7f5b94d
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B7.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B8.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B8.tif
new file mode 100644
index 0000000..f64eee0
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B8.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B8A.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B8A.tif
new file mode 100644
index 0000000..78685c9
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B8A.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B9.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B9.tif
new file mode 100644
index 0000000..58af5a1
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/B9.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/metadata.json b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/metadata.json
new file mode 100644
index 0000000..0cb2305
--- /dev/null
+++ b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200604T054639_20200604T054831_T43RCP/metadata.json
@@ -0,0 +1 @@
+{"CLOUDY_PIXEL_PERCENTAGE": 0.8438, "CLOUD_COVERAGE_ASSESSMENT": 0.8438, "DATASTRIP_ID": "S2B_OPER_MSI_L1C_DS_EPAE_20200604T083537_S20200604T054831_N02.09", "DATATAKE_IDENTIFIER": "GS2B_20200604T054639_016948_N02.09", "DATATAKE_TYPE": "INS-NOBS", "DEGRADED_MSI_DATA_PERCENTAGE": 0, "FORMAT_CORRECTNESS": "PASSED", "GENERAL_QUALITY": "PASSED", "GENERATION_TIME": 1591259737000, "GEOMETRIC_QUALITY": "PASSED", "GRANULE_ID": "L1C_T43RCP_A016948_20200604T054831", "MEAN_INCIDENCE_AZIMUTH_ANGLE_B1": 283.304762261342, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B10": 283.065359550202, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B11": 283.146360263154, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B12": 283.242530656292, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B2": 283.128288493188, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B3": 283.145777297102, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B4": 283.168635276442, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B5": 283.198288777673, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B6": 283.23238899133, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B7": 283.257003785843, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B8": 283.142043939085, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A": 283.314657926166, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B9": 283.349640354311, "MEAN_INCIDENCE_ZENITH_ANGLE_B1": 8.17278633650241, "MEAN_INCIDENCE_ZENITH_ANGLE_B10": 8.0148502704489, "MEAN_INCIDENCE_ZENITH_ANGLE_B11": 8.08135954908641, "MEAN_INCIDENCE_ZENITH_ANGLE_B12": 8.14687398097959, "MEAN_INCIDENCE_ZENITH_ANGLE_B2": 7.96652764047993, "MEAN_INCIDENCE_ZENITH_ANGLE_B3": 7.99843826225655, "MEAN_INCIDENCE_ZENITH_ANGLE_B4": 8.02944058793442, "MEAN_INCIDENCE_ZENITH_ANGLE_B5": 8.06001834956803, "MEAN_INCIDENCE_ZENITH_ANGLE_B6": 8.0851807745603, "MEAN_INCIDENCE_ZENITH_ANGLE_B7": 8.1129912507173, "MEAN_INCIDENCE_ZENITH_ANGLE_B8": 7.97881519047167, "MEAN_INCIDENCE_ZENITH_ANGLE_B8A": 8.13949663689649, "MEAN_INCIDENCE_ZENITH_ANGLE_B9": 8.20903301492254, "MEAN_SOLAR_AZIMUTH_ANGLE": 114.737658555307, "MEAN_SOLAR_ZENITH_ANGLE": 16.2120467978756, "MGRS_TILE": "43RCP", "PROCESSING_BASELINE": "02.09", "PRODUCT_ID": "S2B_MSIL1C_20200604T054639_N0209_R048_T43RCP_20200604T083537", "RADIOMETRIC_QUALITY": "PASSED", "REFLECTANCE_CONVERSION_CORRECTION": 0.972677384432858, "SENSING_ORBIT_DIRECTION": "DESCENDING", "SENSING_ORBIT_NUMBER": 48, "SENSOR_QUALITY": "PASSED", "SOLAR_IRRADIANCE_B1": 1874.3, "SOLAR_IRRADIANCE_B10": 365.41, "SOLAR_IRRADIANCE_B11": 247.08, "SOLAR_IRRADIANCE_B12": 87.75, "SOLAR_IRRADIANCE_B2": 1959.75, "SOLAR_IRRADIANCE_B3": 1824.93, "SOLAR_IRRADIANCE_B4": 1512.79, "SOLAR_IRRADIANCE_B5": 1425.78, "SOLAR_IRRADIANCE_B6": 1291.13, "SOLAR_IRRADIANCE_B7": 1175.57, "SOLAR_IRRADIANCE_B8": 1041.28, "SOLAR_IRRADIANCE_B8A": 953.93, "SOLAR_IRRADIANCE_B9": 817.58, "SPACECRAFT_NAME": "Sentinel-2B", "system:asset_size": 1154796545, "system:band_names": ["B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B8A", "B9", "B10", "B11", "B12", "QA10", "QA20", "QA60"], "system:bands": {"B10": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "B11": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B12": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "QA10": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B8A": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "QA20": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 4294967295}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B1": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "QA60": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "B2": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B3": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B4": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B5": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B6": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B7": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B8": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B9": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}}, "system:footprint": {"type": "LinearRing", "coordinates": [[72.93211590293261, 29.72622780674982], [72.93219791030333, 29.72613906192144], [73.78089284160725, 29.736679128790332], [73.78112641458102, 29.737097852640574], [73.78132982571833, 29.73764980802131], [73.78371401141405, 29.745796038085718], [73.79324454495041, 29.77891108429378], [73.91105870285601, 30.188171028177276], [73.93208608422293, 30.260893120491936], [73.95675526793259, 30.346092905351075], [74.02555967004314, 30.583215573305942], [74.0479586373359, 30.66025870024961], [74.05644142722468, 30.689555769591145], [74.05805878854372, 30.695353352321423], [74.05772542123408, 30.729649473637277], [74.05764358076966, 30.729738874020356], [72.91129007540044, 30.716351917412954], [72.92183330704454, 30.22126525858613], [72.93211590293261, 29.72622780674982]]}, "system:id": "COPERNICUS/S2/20200604T054639_20200604T054831_T43RCP", "system:index": "20200604T054639_20200604T054831_T43RCP", "system:time_end": 1591250441044, "system:time_start": 1591250441044, "system:version": 1591295894268507}
\ No newline at end of file
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B1.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B1.tif
new file mode 100644
index 0000000..6dc1e4d
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B1.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B10.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B10.tif
new file mode 100644
index 0000000..0178937
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B10.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B11.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B11.tif
new file mode 100644
index 0000000..cd8c363
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B11.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B12.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B12.tif
new file mode 100644
index 0000000..931601f
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B12.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B2.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B2.tif
new file mode 100644
index 0000000..648a391
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B2.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B3.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B3.tif
new file mode 100644
index 0000000..92d5a71
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B3.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B4.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B4.tif
new file mode 100644
index 0000000..6c857bd
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B4.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B5.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B5.tif
new file mode 100644
index 0000000..2acba0e
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B5.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B6.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B6.tif
new file mode 100644
index 0000000..873d832
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B6.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B7.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B7.tif
new file mode 100644
index 0000000..68629f8
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B7.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B8.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B8.tif
new file mode 100644
index 0000000..4a9431d
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B8.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B8A.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B8A.tif
new file mode 100644
index 0000000..0c02061
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B8A.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B9.tif b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B9.tif
new file mode 100644
index 0000000..73bb22c
Binary files /dev/null and b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/B9.tif differ
diff --git a/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/metadata.json b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/metadata.json
new file mode 100644
index 0000000..e9688da
--- /dev/null
+++ b/integration_tests/tiffs/SSL4EO/s2c/0000200/20200823T054639_20200823T055618_T43RCP/metadata.json
@@ -0,0 +1 @@
+{"CLOUDY_PIXEL_PERCENTAGE": 9.9194, "CLOUD_COVERAGE_ASSESSMENT": 9.9194, "DATASTRIP_ID": "S2B_OPER_MSI_L1C_DS_VGS1_20200823T074854_S20200823T055618_N02.09", "DATATAKE_IDENTIFIER": "GS2B_20200823T054639_018092_N02.09", "DATATAKE_TYPE": "INS-NOBS", "DEGRADED_MSI_DATA_PERCENTAGE": 0, "FORMAT_CORRECTNESS": "PASSED", "GENERAL_QUALITY": "PASSED", "GENERATION_TIME": 1598168934000, "GEOMETRIC_QUALITY": "PASSED", "GRANULE_ID": "L1C_T43RCP_A018092_20200823T055618", "MEAN_INCIDENCE_AZIMUTH_ANGLE_B1": 283.257020369483, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B10": 283.025777407531, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B11": 283.109332002097, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B12": 283.203561278165, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B2": 283.102469027509, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B3": 283.110241399535, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B4": 283.152186626877, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B5": 283.164379457402, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B6": 283.194993925224, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B7": 283.216173319468, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B8": 283.109624554824, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B8A": 283.276481843331, "MEAN_INCIDENCE_AZIMUTH_ANGLE_B9": 283.273410453828, "MEAN_INCIDENCE_ZENITH_ANGLE_B1": 8.16299977835365, "MEAN_INCIDENCE_ZENITH_ANGLE_B10": 8.00851666845529, "MEAN_INCIDENCE_ZENITH_ANGLE_B11": 8.07135212470899, "MEAN_INCIDENCE_ZENITH_ANGLE_B12": 8.1404508451693, "MEAN_INCIDENCE_ZENITH_ANGLE_B2": 7.96087678893633, "MEAN_INCIDENCE_ZENITH_ANGLE_B3": 7.98461809352465, "MEAN_INCIDENCE_ZENITH_ANGLE_B4": 8.02734329846602, "MEAN_INCIDENCE_ZENITH_ANGLE_B5": 8.0499505073827, "MEAN_INCIDENCE_ZENITH_ANGLE_B6": 8.07517748595252, "MEAN_INCIDENCE_ZENITH_ANGLE_B7": 8.10305697432866, "MEAN_INCIDENCE_ZENITH_ANGLE_B8": 7.97320427867225, "MEAN_INCIDENCE_ZENITH_ANGLE_B8A": 8.13305610825895, "MEAN_INCIDENCE_ZENITH_ANGLE_B9": 8.19579593822757, "MEAN_SOLAR_AZIMUTH_ANGLE": 136.674959916913, "MEAN_SOLAR_ZENITH_ANGLE": 24.6544657860765, "MGRS_TILE": "43RCP", "PROCESSING_BASELINE": "02.09", "PRODUCT_ID": "S2B_MSIL1C_20200823T054639_N0209_R048_T43RCP_20200823T074854", "RADIOMETRIC_QUALITY": "PASSED", "REFLECTANCE_CONVERSION_CORRECTION": 0.976881292463678, "SENSING_ORBIT_DIRECTION": "DESCENDING", "SENSING_ORBIT_NUMBER": 48, "SENSOR_QUALITY": "PASSED", "SOLAR_IRRADIANCE_B1": 1874.3, "SOLAR_IRRADIANCE_B10": 365.41, "SOLAR_IRRADIANCE_B11": 247.08, "SOLAR_IRRADIANCE_B12": 87.75, "SOLAR_IRRADIANCE_B2": 1959.75, "SOLAR_IRRADIANCE_B3": 1824.93, "SOLAR_IRRADIANCE_B4": 1512.79, "SOLAR_IRRADIANCE_B5": 1425.78, "SOLAR_IRRADIANCE_B6": 1291.13, "SOLAR_IRRADIANCE_B7": 1175.57, "SOLAR_IRRADIANCE_B8": 1041.28, "SOLAR_IRRADIANCE_B8A": 953.93, "SOLAR_IRRADIANCE_B9": 817.58, "SPACECRAFT_NAME": "Sentinel-2B", "system:asset_size": 1259271690, "system:band_names": ["B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B8A", "B9", "B10", "B11", "B12", "QA10", "QA20", "QA60"], "system:bands": {"B10": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "B11": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B12": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "QA10": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B8A": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "QA20": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 4294967295}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B1": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "QA60": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}, "B2": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B3": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B4": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B5": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B6": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B7": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [5490, 5490], "crs": "EPSG:32643", "crs_transform": [20, 0, 300000, 0, -20, 3400020]}, "B8": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [10980, 10980], "crs": "EPSG:32643", "crs_transform": [10, 0, 300000, 0, -10, 3400020]}, "B9": {"data_type": {"type": "PixelType", "precision": "int", "min": 0, "max": 65535}, "dimensions": [1830, 1830], "crs": "EPSG:32643", "crs_transform": [60, 0, 300000, 0, -60, 3400020]}}, "system:footprint": {"type": "LinearRing", "coordinates": [[74.05768248412737, 30.729690632651725], [74.05764358076966, 30.729738874020356], [72.91139471150142, 30.716353622327702], [72.91134721518908, 30.71631632861604], [72.91129151741421, 30.716282436615717], [72.92183330704454, 30.22126525858613], [72.93211590293261, 29.72622780674982], [72.93215888921726, 29.72618695317758], [72.93219791030333, 29.72613906192144], [73.78373043849831, 29.73670522306403], [73.78683459455229, 29.73709547818547], [73.7868653836318, 29.737127012058547], [73.78691035542747, 29.73714081004009], [73.78691996018091, 29.73716169690427], [73.86466893637812, 29.993950467723245], [74.02092395279485, 30.546366663024155], [74.05479545680916, 30.66572712903607], [74.05755752723118, 30.682354420578697], [74.0581481584918, 30.686155122066182], [74.05772542123408, 30.729649473637277], [74.05768248412737, 30.729690632651725]]}, "system:id": "COPERNICUS/S2/20200823T054639_20200823T055618_T43RCP", "system:index": "20200823T054639_20200823T055618_T43RCP", "system:time_end": 1598162442657, "system:time_start": 1598162442657, "system:version": 1598205566886374}
\ No newline at end of file