diff --git a/hls_vi/generate_metadata.py b/hls_vi/generate_metadata.py index e5bd61b..43bcce6 100644 --- a/hls_vi/generate_metadata.py +++ b/hls_vi/generate_metadata.py @@ -14,62 +14,6 @@ from lxml.etree import Element, ElementBase -def parse_sensing_time(sensing_time: str) -> Tuple[str, str]: - """Parse SENSING_TIME tag value into (start, end) tuple. - - Expect `sensing_time` in one of the following forms, where each `DT` is an ISO 8601 - combined date and time representation, with a `Z` suffix (and optional whitespace - surrounding `+` and `;` separators): - - - `DT` - - `DT; DT` - - `DT + DT; DT` - - `DT; DT + DT` - - `DT + DT; DT + DT` - - Sort all `DT` values in ascending order and return the min and max, respectively, - in a tuple. When only one `DT` value is specified, both values in the tuple are - the same value. - - Examples: - - >>> parse_sensing_time("2024-04-29T21:11:59.7221750Z") - ('2024-04-29T21:11:59.7221750Z', '2024-04-29T21:11:59.7221750Z') - >>> parse_sensing_time(";2024-04-29T21:11:59.7221750Z") - ('2024-04-29T21:11:59.7221750Z', '2024-04-29T21:11:59.7221750Z') - >>> parse_sensing_time("2024-04-29T21:11:59.7221750Z;") - ('2024-04-29T21:11:59.7221750Z', '2024-04-29T21:11:59.7221750Z') - >>> parse_sensing_time("2024-04-29T21:11:59.7221750Z+") - ('2024-04-29T21:11:59.7221750Z', '2024-04-29T21:11:59.7221750Z') - >>> parse_sensing_time( - ... "2024-04-29T21:12:59.7221750Z ; 2024-04-29T21:11:59.7221750Z" - ... ) - ('2024-04-29T21:11:59.7221750Z', '2024-04-29T21:12:59.7221750Z') - >>> parse_sensing_time( - ... "2024-04-29T21:12:59.7221750Z + 2024-04-29T21:11:59.7221750Z;" - ... ) - ('2024-04-29T21:11:59.7221750Z', '2024-04-29T21:12:59.7221750Z') - >>> parse_sensing_time( - ... ";2024-04-29T21:12:59.7221750Z + 2024-04-29T21:11:59.7221750Z" - ... ) - ('2024-04-29T21:11:59.7221750Z', '2024-04-29T21:12:59.7221750Z') - >>> parse_sensing_time( - ... "2024-04-29T21:10:59.7221750Z;" - ... "2024-04-29T21:12:59.7221750Z + 2024-04-29T21:11:59.7221750Z;" - ... ) - ('2024-04-29T21:10:59.7221750Z', '2024-04-29T21:12:59.7221750Z') - >>> parse_sensing_time( - ... "2024-04-29T21:12:59.7221750Z+2024-04-29T21:11:59.7221750Z;" - ... "2024-04-29T21:10:59.7221750Z + 2024-04-29T21:11:59.7221750Z;" - ... ) - ('2024-04-29T21:10:59.7221750Z', '2024-04-29T21:12:59.7221750Z') - """ - sensing_times = sorted( - t.strip() for t in re.split("[+;]", sensing_time) if t.strip() - ) - return sensing_times[0], sensing_times[-1] - - def generate_metadata(input_dir: Path, output_dir: Path) -> None: """ Create CMR XML metadata file for an HLS VI granule. @@ -89,7 +33,6 @@ def generate_metadata(input_dir: Path, output_dir: Path) -> None: with rasterio.open(next(output_dir.glob("*.tif"))) as vi_tif: tags = vi_tif.tags() - sensing_time_begin, sensing_time_end = parse_sensing_time(tags["SENSING_TIME"]) processing_time = tags["HLS_VI_PROCESSING_TIME"] granule_ur = tree.find("GranuleUR") @@ -127,9 +70,6 @@ def generate_metadata(input_dir: Path, output_dir: Path) -> None: producer_granule_id = data_granule.find("ProducerGranuleId") producer_granule_id.text = producer_granule_id.text.replace("HLS", "HLS-VI") - tree.find("Temporal/RangeDateTime/BeginningDateTime").text = sensing_time_begin - tree.find("Temporal/RangeDateTime/EndingDateTime").text = sensing_time_end - tree.find("DataFormat").text = "COG" append_fmask_online_access_urls(