code: def first_solar_spectral_loss(self, pw, airmass_absolute):
  
          
  
          if 'first_solar_spectral_coefficients' in \
                  self.module_parameters.keys():
              coefficients = \
                     self.module_parameters['first_solar_spectral_coefficients']
              module_type = None
          else:
              module_type = self._infer_cell_type()
              coefficients = None
  
          return atmosphere.first_solar_spectral_correction(pw,
                                                            airmass_absolute,
                                                            module_type,
                                                            coefficients)
docs: Use the :py:func:`first_solar_spectral_correction` function to
          calculate the spectral loss modifier. The model coefficients are
          specific to the module's cell type, and are determined by searching
          for one of the following keys in self.module_parameters (in order):
              'first_solar_spectral_coefficients' (user-supplied coefficients)
              'Technology' - a string describing the cell type, can be read from
              the CEC module parameter database
              'Material' - a string describing the cell type, can be read from
              the Sandia module database.
  
          Parameters
          ----------
          pw : array-like
              atmospheric precipitable water (cm).
  
          airmass_absolute : array-like
              absolute (pressure corrected) airmass.
  
          Returns
          -------
          modifier: array-like
              spectral mismatch factor (unitless) which can be multiplied
              with broadband irradiance reaching a module's cells to estimate
              effective irradiance, i.e., the irradiance that is converted to
              electrical current.