Input validation

Input validation#

import sasktran2 as sk

By default, input parameters to SASKTRAN2 are validated at runtime, which can help to catch common mistakes. For example, let’s try to setup a calculation where the geometry object does not contain an ascending altitude grid,

import sasktran2 as sk
import numpy as np

config = sk.Config()

model_geometry = sk.Geometry1D(cos_sza=0.6,
                                solar_azimuth=0,
                                earth_radius_m=6372000,
                                altitude_grid_m=[0, 1000, 500, 2000],
                                interpolation_method=sk.InterpolationMethod.LinearInterpolation,
                                geometry_type=sk.GeometryType.Spherical)
[2025-03-24 13:56:15.049] [critical] Invalid altitude grid: must be strictly increasing
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Cell In[2], line 6
      2 import numpy as np
      4 config = sk.Config()
----> 6 model_geometry = sk.Geometry1D(cos_sza=0.6,
      7                                 solar_azimuth=0,
      8                                 earth_radius_m=6372000,
      9                                 altitude_grid_m=[0, 1000, 500, 2000],
     10                                 interpolation_method=sk.InterpolationMethod.LinearInterpolation,
     11                                 geometry_type=sk.GeometryType.Spherical)

RuntimeError: Invalid input. Check log for more information

Input validation can cause a slight runtime performance overhead. In cases where you are confident that the input parameters are valid, the expensive components of input validation can be disabled by setting

config.input_validation_mode = sk.InputValidationMode.Disabled