// ************************************************************************* /// @name Temperature access functions. /// There are several ways to get the temperature, and several modeled /// temperature values that can be retrieved. The U.S. Standard Atmosphere /// temperature either at a specified altitude, or at sea level can be /// retrieved. These two temperatures do NOT include the effects of any bias /// or delta gradient that may have been supplied by the user. The modeled /// temperature and the modeled temperature at sea level can also be /// retrieved. These two temperatures DO include the effects of an optionally /// user-supplied bias or delta gradient. // @{ /// Returns the actual modeled temperature in degrees Rankine at a specified /// altitude. /// @param altitude The altitude above sea level (ASL) in feet. /// @return Modeled temperature in degrees Rankine at the specified altitude. public override double GetTemperature(double altitude) { double GeoPotAlt = GeopotentialAltitude(altitude); double T; if (GeoPotAlt >= 0.0) { T = StdAtmosTemperatureTable.GetValue(GeoPotAlt); if (GeoPotAlt <= gradientFadeoutAltitude) { T -= temperatureDeltaGradient * GeoPotAlt; } } else { // We don't need to add TemperatureDeltaGradient*GeoPotAlt here because // the lapse rate vector already accounts for the temperature gradient. T = StdAtmosTemperatureTable.GetValue(0.0) + GeoPotAlt * LapseRates[0]; } T += temperatureBias; if (GeoPotAlt <= gradientFadeoutAltitude) { T += temperatureDeltaGradient * gradientFadeoutAltitude; } return(T); }
/// Returns the standard temperature in degrees Rankine at a specified /// altitude. /// @param altitude The altitude in feet above sea level (ASL) to get the /// temperature at. /// @return The STANDARD temperature in degrees Rankine at the specified /// altitude. public virtual double GetStdTemperature(double altitude) { double GeoPotAlt = GeopotentialAltitude(altitude); if (GeoPotAlt >= 0.0) { return(StdAtmosTemperatureTable.GetValue(GeoPotAlt)); } else { return(StdAtmosTemperatureTable.GetValue(0.0) + GeoPotAlt * LapseRates[0]); } }