From ea10bf9382c55c29b9b3e3db4c8aa2e58ac58e89 Mon Sep 17 00:00:00 2001 From: Fabian Schindler Date: Tue, 22 Aug 2017 15:31:24 +0200 Subject: [PATCH] Adding method to get the internal path to the TCI file. --- s2reader/s2reader.py | 19 +++++++++++++++++++ tests/test_s2reader.py | 2 ++ 2 files changed, 21 insertions(+) diff --git a/s2reader/s2reader.py b/s2reader/s2reader.py index c6d3953..4ae99b4 100644 --- a/s2reader/s2reader.py +++ b/s2reader/s2reader.py @@ -285,6 +285,25 @@ def pvi_path(self): """Determine the PreView Image (PVI) path inside the SAFE pkg.""" return _pvi_path(self) + @cached_property + def tci_path(self): + """Return the path to the granules TrueColorImage.""" + tci_paths = [ + path for path in self.dataset._product_metadata.xpath( + ".//Granule[@granuleIdentifier='%s']/IMAGE_FILE/text()" + % self.granule_identifier + ) if path.endswith('TCI') + ] + try: + tci_path = tci_paths[0] + except IndexError: + return None + + return os.path.join( + self.dataset._zip_root if self.dataset.is_zip else self.dataset.path, + tci_path + ) + '.jp2' + @cached_property def cloud_percent(self): """Return percentage of cloud coverage.""" diff --git a/tests/test_s2reader.py b/tests/test_s2reader.py index 11a0266..7c03b61 100755 --- a/tests/test_s2reader.py +++ b/tests/test_s2reader.py @@ -80,6 +80,8 @@ def _test_attributes(test_data, safe_path): assert isinstance(granule.metadata_path, str) if granule.pvi_path: assert isinstance(granule.pvi_path, str) + if granule.tci_path: + assert isinstance(granule.tci_path, str) assert isinstance(granule.cloud_percent, float) assert granule.footprint.is_valid assert granule.cloudmask.is_valid