Zero second bias exposures cause exception when calculating zenith scale
See title.
If the RADIANCE_SCALING_FACTOR
is 0
, the script produces an overflow error.
These files are not meant to be radiometrically scaled, but we need a better way to handle these cases.
Stack trace
C:/Users/e3613/.spyder-py3/untitled0.py --wdir C:\Users\e3613\AppData\Local\Programs\Python\Python313\Lib\site-packages\marsimage\imagebase.py:785: RuntimeWarning: divide by zero encountered in log2 return np.log2(self.baseline_exposure_factor)
OverflowError Traceback (most recent call last) File c:\users\e3613.spyder-py3\untitled0.py:12 10 img.process(crop=True, undebayer=True) 11 outname = f'{img.fname.stem}.dng' ---> 12 img.save(Path(output_dir)/outname, rawtherapee_convert=True)
File ~\AppData\Local\Programs\Python\Python313\Lib\site-packages\marsimage\imagebase.py:348, in MarsImageBase.save(self, save_path, *args, **kwargs) 339 save_tiff( 340 self.img, 341 self.whitelevel, (...) 345 **kwargs, 346 ) 347 case '.dng': --> 348 save_dng( 349 self, 350 save_path, 351 *args, 352 **kwargs, 353 ) 354 case _: 355 raise ValueError(f'Unsupported file format: {save_path.suffix}')
File ~\AppData\Local\Programs\Python\Python313\Lib\site-packages\marsimage\dng.py:218, in save_dng(marsimage, save_path, compress, pp3, rawtherapee_convert, remove_dng) 216 # set baseline exposure stops 217 logger.debug(f'Setting baseline exposure stops to {marsimage.baseline_exposure_stops}') --> 218 t.set(Tag.BaselineExposure, int(marsimage.baseline_exposure_stops * 100), 100) 220 # ensure that no additional black level correction is applied by CameraRaw 221 t.set(Tag.DefaultBlackRender, 1)
OverflowError: cannot convert float infinity to integer
%runfile C:/Users/e3613/.spyder-py3/untitled0.py --wdir C:\Users\e3613\AppData\Local\Programs\Python\Python313\Lib\site-packages\marsimage\imagebase.py:785: RuntimeWarning: divide by zero encountered in log2 return np.log2(self.baseline_exposure_factor)
OverflowError Traceback (most recent call last) File c:\users\e3613.spyder-py3\untitled0.py:12 10 img.process(crop=True, undebayer=True) 11 outname = f'{img.fname.stem}.dng' ---> 12 img.save(Path(output_dir)/outname, rawtherapee_convert=True)
File ~\AppData\Local\Programs\Python\Python313\Lib\site-packages\marsimage\imagebase.py:348, in MarsImageBase.save(self, save_path, *args, **kwargs) 339 save_tiff( 340 self.img, 341 self.whitelevel, (...) 345 **kwargs, 346 ) 347 case '.dng': --> 348 save_dng( 349 self, 350 save_path, 351 *args, 352 **kwargs, 353 ) 354 case _: 355 raise ValueError(f'Unsupported file format: {save_path.suffix}')
File ~\AppData\Local\Programs\Python\Python313\Lib\site-packages\marsimage\dng.py:218, in save_dng(marsimage, save_path, compress, pp3, rawtherapee_convert, remove_dng) 216 # set baseline exposure stops 217 logger.debug(f'Setting baseline exposure stops to {marsimage.baseline_exposure_stops}') --> 218 t.set(Tag.BaselineExposure, int(marsimage.baseline_exposure_stops * 100), 100) 220 # ensure that no additional black level correction is applied by CameraRaw 221 t.set(Tag.DefaultBlackRender, 1)
OverflowError: cannot convert float infinity to integer
Problem files: 2633ML0137920001000908C00_DRXX.IMG 2633ML0137920001000908C00_DRXX.LBL