From 70420310427cbcdd34776e6d016a677c62e64e3a Mon Sep 17 00:00:00 2001 From: zxdawn Date: Wed, 21 Jun 2023 11:59:44 +0200 Subject: [PATCH] support smile correction --- enpt/model/metadata/metadata_sensorgeo.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/enpt/model/metadata/metadata_sensorgeo.py b/enpt/model/metadata/metadata_sensorgeo.py index 515956e5..b2953302 100644 --- a/enpt/model/metadata/metadata_sensorgeo.py +++ b/enpt/model/metadata/metadata_sensorgeo.py @@ -172,10 +172,12 @@ def get_filename(matching_exp: str): # read the band related information: wavelength, fwhm self.nwvl = int(xml.find("product/image/%s/channels" % lbl).text) - # FIXME hardcoded - DLR does not provide any smile information - # => smile coefficients are set to zero until we have valid ones + # read smile coefficients self.nsmile_coef = 5 self.smile_coef = np.zeros((self.nwvl, self.nsmile_coef), dtype=float) + for bindex, bID in enumerate(xml.findall("product/smileCorrection/%s/bandID" % lbl.upper())): + tmp = OrderedDict([(ele.tag.lower(), float(ele.text)) for ele in bID.findall('./')]) + self.smile_coef[bindex, :] = np.array([v for k, v in tmp.items() if k.startswith('coeff')]) startband = 0 if self.detector_name == 'VNIR' else int(xml.find("product/image/vnir/channels").text) subset = slice(startband, startband + self.nwvl)