/** \file Declaration of the Meteo class to hold weather information \author Alexander Schulz \version $Id: Meteo.h 23491 2013-04-23 18:56:33Z schulz-a $ \date April 10 2013 \brief Holds weather information from CDAS >= v5r0. Information is gathered from daily monitoring data. First 3 fields consist of data at GPS time of an event. Last 3 fields are average daily values if enough points (150) were available (see also GAP-2012-077). */ #ifndef _sevt_Meteo_h_ #define _sevt_Meteo_h_ #include #include namespace sevt { /** \class Meteo Meteo.h sevt/Meteo.h \brief Weather data from monitoring information Quantities in this class are normally filled by Reading the CDAS Event and using CDAS algorithms. Other classes do not have write access \ingroup sevt */ class Meteo { public: enum MeteoSite { eCLF, eLosLeones, eLosMorados, eLomaAmarilla, eCoihueco, eBLS }; const std::vector& GetPressures() const { return fPressure; } const std::vector& GetTemperatures() const { return fTemperature; } const std::vector& GetHumidities() const { return fHumidity; } const std::vector& GetDayPressures() const { return fDayPressure; } const std::vector& GetDayTemperatures() const { return fDayTemperature; } const std::vector& GetDayHumidities() const { return fDayHumidity; } float GetPressure(const MeteoSite site) const { return fPressure.at(site); } float GetTemperature(const MeteoSite site) const { return fTemperature.at(site); } float GetHumidity(const MeteoSite site) const { return fHumidity.at(site); } float GetDayPressure(const MeteoSite site) const { return fDayPressure.at(site); } float GetDayTemperature(const MeteoSite site) const { return fDayTemperature.at(site); } float GetDayHumidity(const MeteoSite site) const { return fDayHumidity.at(site); } void SetPressures(const std::vector& pressure) { fPressure = pressure; } void SetTemperatures(const std::vector& temperature) { fTemperature = temperature; } void SetHumidities(const std::vector& humidity) { fHumidity = humidity; } void SetDayPressures(const std::vector& daypressure) { fDayPressure = daypressure; } void SetDayTemperatures(const std::vector& daytemperature) { fDayTemperature = daytemperature; } void SetDayHumidities(const std::vector& dayhumidity) { fDayHumidity = dayhumidity; } // overloading functions to be able to deal with arrays in cdas more fluently void SetPressures(const float* const pressure, const unsigned int size) { fPressure.assign(pressure, pressure + size); } void SetTemperatures(const float* const temperature, const unsigned int size) { fTemperature.assign(temperature, temperature + size); } void SetHumidities(const float* const humidity, const unsigned int size) { fHumidity.assign(humidity, humidity + size); } void SetDayPressures(const float* const daypressure, const unsigned int size) { fDayPressure.assign(daypressure, daypressure + size); } void SetDayTemperatures(const float* const daytemperature, const unsigned int size) { fDayTemperature.assign(daytemperature, daytemperature + size); } void SetDayHumidities(const float* const dayhumidity, const unsigned int size) { fDayHumidity.assign(dayhumidity, dayhumidity + size); } void SetPressure(const MeteoSite site, const float pressure) { fPressure.at(site) = pressure; } void SetTemperature(const MeteoSite site, const float temperature) { fTemperature.at(site) = temperature; } void SetHumidity(const MeteoSite site, const float humidity) { fHumidity.at(site) = humidity; } void SetDayPressure(const MeteoSite site, const float daypressure) { fDayPressure.at(site) = daypressure; } void SetDayTemperature(const MeteoSite site, const float daytemperature) { fDayTemperature.at(site) = daytemperature; } void SetDayHumidity(const MeteoSite site, const float dayhumidity) { fDayHumidity.at(site) = dayhumidity; } private: Meteo(): fPressure(6, 0), fTemperature(6, 0), fHumidity(6, 0), fDayPressure(6, 0), fDayTemperature(6, 0), fDayHumidity(6, 0) { } ~Meteo() { } std::vector fPressure; std::vector fTemperature; std::vector fHumidity; std::vector fDayPressure; std::vector fDayTemperature; std::vector fDayHumidity; friend class SEvent; friend class utl::LameShadowPtr; }; } #endif // Configure (x)emacs for this file ... // Local Variables: // mode: c++ // compile-command: "make -C .. -k" // End: