def calc_Ls(self, x_surface, geom): '''Emission of surface, as a radiance''' T = x_surface[self.surf_temp_ind] frac = x_surface[self.bb_frac_ind] emissivity = s.ones(self.nwl, dtype=float) Ls, dLs_dT = emissive_radiance(emissivity, T, self.wl) return Ls * frac
def dLs_dx(self, x_surface, geom): '''Partial derivative of surface emission with respect to state vector, calculated at x_surface.''' dLs_dx = MultiComponentSurface.dLs_dx(self, x_surface, geom) T = x_surface[self.surf_temp_ind] frac = x_surface[self.bb_frac_ind] emissivity = s.ones(self.nwl, dtype=float) Ls, dLs_dT = emissive_radiance(emissivity, T, self.wl) dLs_dx[:, self.surf_temp_ind] = dLs_dT * frac dLs_dx[:, self.bb_frac_ind] = Ls return dLs_dx
def err(z): T, bb_frac = z emissivity = s.ones(self.nwl, dtype=float) Ls_est, d = emissive_radiance(emissivity, T, self.wl) resid = Ls_est * bb_frac - Ls return sum(resid**2)