Source code for taurex.data.profiles.temperature.temparray
"""Temperature profile loaded from array."""importtypingastimportnumpyasnpimportnumpy.typingasnptfromscipy.interpolateimportinterp1dfromtaurex.outputimportOutputGroupfrom.tprofileimportTemperatureProfile
[docs]classTemperatureArray(TemperatureProfile):"""Temperature profile loaded from array."""def__init__(self,tp_array:t.Optional[npt.ArrayLike]=None,p_points:t.Optional[npt.ArrayLike]=None,reverse:t.Optional[bool]=False,):"""Initialize the temperature profile. Parameters ---------- tp_array: Temperature profile array, by default None p_points: Pressure profile array, by default None reverse : t.Optional[bool], optional Reverse the temperature profile, by default False """super().__init__(self.__class__.__name__)self._tp_profile=np.array(tp_array)ifreverse:self._tp_profile=self._tp_profile[::-1]ifp_pointsisnotNone:self._p_profile=np.array(p_points)ifreverse:self._p_profile=self._p_profile[::-1]self._func=interp1d(np.log10(self._p_profile),self._tp_profile,bounds_error=False,fill_value=(self._tp_profile[-1],self._tp_profile[0]),)else:self._p_profile=None@propertydefprofile(self)->npt.NDArray[np.float64]:"""Returns temperature profile. Returns ------- t_profile: temperature profile """ifself._p_profileisNone:ifself._tp_profile.shape[0]==self.nlayers:returnself._tp_profileinterp_temp=np.linspace(1.0,0.0,self._tp_profile.shape[0])interp_array=np.linspace(1.0,0.0,self.nlayers)returnnp.interp(interp_array[::-1],interp_temp[::-1],self._tp_profile[::-1])else:interp_array=np.log10(self.pressure_profile)returnself._func(interp_array)
[docs]defwrite(self,output:OutputGroup)->OutputGroup:"""Write temperature profile to output."""temperature=super().write(output)temperature.write_scalar("tp_array",self._tp_profile)returntemperature
[docs]@classmethoddefinput_keywords(cls)->t.Tuple[str,...]:"""Return all input keywords."""return("array","fromarray",)