diff --git a/ale/base/type_sensor.py b/ale/base/type_sensor.py index b49079088e25f50837690ef3e3a71c9062430908..433c078169e791708398731b93918198a880d5e7 100644 --- a/ale/base/type_sensor.py +++ b/ale/base/type_sensor.py @@ -128,6 +128,16 @@ class PushFrame(): def num_frames(self): return int(self.image_lines // self.framelet_height) + @property + def num_lines_overlap(self): + """ + Returns + ------- + : int + For PushFrame sensors, returns how many many lines of a framelet + overlap with neighboring framelets. + """ + return 0 @property def ephemeris_stop_time(self): diff --git a/ale/drivers/lro_drivers.py b/ale/drivers/lro_drivers.py index a4a991248b4c21dadc474d94a70bd0ae1dfbde7b..fdcc774a9019bcb7b75a7bbd1ef353e81e3e96b9 100644 --- a/ale/drivers/lro_drivers.py +++ b/ale/drivers/lro_drivers.py @@ -1188,6 +1188,19 @@ class LroLrocWacIsisLabelNaifSpiceDriver(PushFrame, IsisLabel, NaifSpice, Radial elif self.instrument_id == "LRO_LROCWAC_VIS": return 14 + @property + def num_lines_overlap(self): + """ + Returns + ------- + : int + How many many lines of a framelet overlap with neighboring framelets. + """ + try: + return self.label['IsisCube']['Instrument']['NumLinesOverlap'] + except: + # May be missing, and then the default is 0 + return 0 @property def filter_number(self): diff --git a/ale/formatters/formatter.py b/ale/formatters/formatter.py index ba62ea298ac44388f0e17ffed156f3124edcbb35..ee40cf0bd389111aaed8a55722fa8a30f643ca3a 100644 --- a/ale/formatters/formatter.py +++ b/ale/formatters/formatter.py @@ -65,6 +65,7 @@ def to_isd(driver): meta_data['framelet_order_reversed'] = driver.framelet_order_reversed meta_data['framelets_flipped'] = driver.framelets_flipped meta_data['framelet_height'] = driver.framelet_height + meta_data['num_lines_overlap'] = driver.num_lines_overlap # SAR sensor model specifics if isinstance(driver, Radar):