Add dew point to CTemperatureLayer

refs #579
This commit is contained in:
Roland Winklmeier
2016-02-28 13:34:21 +01:00
parent af28db9e97
commit af3b8f7f0c
3 changed files with 18 additions and 4 deletions

View File

@@ -23,8 +23,11 @@ namespace BlackMisc
namespace Weather
{
CTemperatureLayer::CTemperatureLayer(const CAltitude &level, const CTemperature &value, double relativeHumidity) :
m_level(level), m_temperature(value), m_relativeHumidity(relativeHumidity)
CTemperatureLayer::CTemperatureLayer(const CAltitude &level,
const CTemperature &value,
const CTemperature &dewPoint,
double relativeHumidity) :
m_level(level), m_temperature(value), m_dewPoint(dewPoint), m_relativeHumidity(relativeHumidity)
{ }
CVariant CTemperatureLayer::propertyByIndex(const BlackMisc::CPropertyIndex &index) const

View File

@@ -42,7 +42,10 @@ namespace BlackMisc
CTemperatureLayer() = default;
//! Constructor
CTemperatureLayer(const BlackMisc::Aviation::CAltitude &level, const PhysicalQuantities::CTemperature &value, double relativeHumidity);
CTemperatureLayer(const BlackMisc::Aviation::CAltitude &level,
const PhysicalQuantities::CTemperature &temperature,
const PhysicalQuantities::CTemperature &dewPoint,
double relativeHumidity);
//! Set level
void setLevel(const BlackMisc::Aviation::CAltitude &level) { m_level = level; }
@@ -56,6 +59,12 @@ namespace BlackMisc
//! Get temperature
PhysicalQuantities::CTemperature getTemperature() const { return m_temperature; }
//! Set dew point
void setDewPoint(const PhysicalQuantities::CTemperature &value) { m_dewPoint = value; }
//! Get dew point
PhysicalQuantities::CTemperature getDewPoint() const { return m_dewPoint; }
//! Set relative humidity
void setRelativeHumidity(double value) { m_relativeHumidity = value; }
@@ -75,6 +84,7 @@ namespace BlackMisc
BLACK_ENABLE_TUPLE_CONVERSION(CTemperatureLayer)
BlackMisc::Aviation::CAltitude m_level;
PhysicalQuantities::CTemperature m_temperature;
PhysicalQuantities::CTemperature m_dewPoint;
double m_relativeHumidity = 0;
};
} // namespace
@@ -84,6 +94,7 @@ Q_DECLARE_METATYPE(BlackMisc::Weather::CTemperatureLayer)
BLACK_DECLARE_TUPLE_CONVERSION(BlackMisc::Weather::CTemperatureLayer, (
attr(o.m_level),
attr(o.m_temperature),
attr(o.m_dewPoint),
attr(o.m_relativeHumidity)
))

View File

@@ -246,7 +246,7 @@ namespace BlackWxPlugin
GfsIsobaricLayer isobaricLayer = isobaricLayerIt.value();
CAltitude level(isobaricLayerIt.key(), CAltitude::MeanSeaLevel, CLengthUnit::ft());
CTemperatureLayer temperature(level, CTemperature(isobaricLayer.temperature, CTemperatureUnit::K()), isobaricLayer.relativeHumidity);
CTemperatureLayer temperature(level, CTemperature(isobaricLayer.temperature, CTemperatureUnit::K()), {}, isobaricLayer.relativeHumidity);
temperatureLayers.insert(temperature);
double windDirection = -1 * CMathUtils::rad2deg(std::atan2(-isobaricLayer.windU, isobaricLayer.windV));