diff --git a/timeseriesviewer/timeseries.py b/timeseriesviewer/timeseries.py index de38fb0701df1f97700568921c437360f6271f6b..214d235c44b9f9dd3a2e17a2d3fa1ece632e0a79 100644 --- a/timeseriesviewer/timeseries.py +++ b/timeseriesviewer/timeseries.py @@ -628,20 +628,40 @@ def parseWavelength(lyr): -def parseAcquisitionDate(text): +def extractDateFromLandsatID(text): match = regLandsatSceneID.search(text) if match: id = match.group() return getDateTime64FromYYYYDOY(id[9:16]) - match = regYYYYMMDD.search(text) + return None + +def extractDateFromRapidEyeID(text): + pass + +def extractDateFromISO(text): + match = regYYYY.search(text) if match: return np.datetime64(match.group()) + return None + +def extractDateFromYYYYDOY(text): match = regYYYYDOY.search(text) if match: return getDateTime64FromYYYYDOY(match.group()) - match = regYYYY.search(text) - if match: - return np.datetime64(match.group()) + return None + +DATE_EXTRACTION_FUNCTIONS = [] +DATE_EXTRACTION_FUNCTIONS.append(extractDateFromISO) +DATE_EXTRACTION_FUNCTIONS.append(extractDateFromLandsatID) +DATE_EXTRACTION_FUNCTIONS.append(extractDateFromRapidEyeID) +DATE_EXTRACTION_FUNCTIONS.append(extractDateFromYYYYDOY) + +def parseAcquisitionDate(text): + + for func in DATE_EXTRACTION_FUNCTIONS: + v = func(text) + if isinstance(v, np.datetime64): + return v return None