public async Task <UtilTemperatureCurrent> GetCurrentWeather(double latitude, double longitude)
        {
            double siteElevation   = (await client.GetAltitude(latitude, longitude)).Altitude;
            double temperatureSite = this.weatherCurrent.Temperature;
            double elevationBetweenWeatherStationAndSite = siteElevation - sitePosition.Altitude;

            if (elevationBetweenWeatherStationAndSite >= 100.0 || elevationBetweenWeatherStationAndSite <= -100.0)
            {
                temperatureSite = ConvertTemperature(this.weatherCurrent.Temperature, elevationBetweenWeatherStationAndSite);
            }
            return(new UtilTemperatureCurrent(temperatureSite));
        }
Beispiel #2
0
        private async Task <double> EstimateWeatherByAltitudeDiff(double deviceTemperature, IStationPosition forecastStation, IStationPosition expectedStation)
        {
            logger.Info($"Altitude on station ({forecastStation.Latitude} ; {forecastStation.Longitude}) :");
            forecastStation.Altitude = (await client.GetAltitude(forecastStation.Latitude, forecastStation.Longitude)).Altitude;
            logger.Info($"{forecastStation.Altitude}");

            double elevationBetweenWeatherStationAndSite = forecastStation.Altitude - expectedStation.Altitude;
            double estimateTemperature = deviceTemperature;

            // Only if altitude diff is greater than 100
            if (Math.Abs(elevationBetweenWeatherStationAndSite) >= 100.0)
            {
                estimateTemperature = ConvertTemperature(estimateTemperature, elevationBetweenWeatherStationAndSite);
            }

            return(estimateTemperature);
        }