def get_hourly_weather(self):
        weatherdata = []
        if self.id:
            url = URL_HOURLY_CITY_ID % self.id
        else:
            url = URL_HOURLY_CITY_LL % (self.latitude, self.longitude)
        print('OWMWeatherService Current Weather url:%s' % (url))
        parsed_json = read_json_from_url(url)
        if parsed_json is None:
            return weatherdata
        for contador, data in enumerate(parsed_json['list']):
            condition = CONDITION[data['weather'][0]['id']]
            temperature = cf.fa2f(data['main']['temp'])
            cloudiness = data['clouds']['all']
            # pressure = data['main']['pressure']
            humidity = data['main']['humidity']
            velocity = data['wind']['speed'] if 'wind' in data.keys() and\
                'speed' in data['wind'].keys() else 0.0
            t1 = cf.fa2f(data['main']['temp_min'])
            t2 = cf.fa2f(data['main']['temp_max'])
            direction = data['wind']['deg'] if 'wind' in data.keys() and\
                'deg' in data['wind'].keys() else 0.0
            if t1 < t2:
                temp_min = str(t1)
                temp_max = str(t2)
            else:
                temp_min = str(t2)
                temp_max = str(t1)
            wind_direction = weatherservice.degToCompass2(direction)

            wdd = {}
            wdd['datetime'] = datetime.fromtimestamp(data['dt'])
            wdd['condition'] = condition
            wdd['condition_text'] = weatherservice.get_condition(
                condition, 'text')
            wdd['condition_image'] = weatherservice.get_condition(
                condition, 'image')
            wdd['condition_icon'] = weatherservice.get_condition(
                condition, 'icon-light')
            wdd['temperature'] = cf.change_temperature(
                temperature, self.units.temperature).split(' ')[0]
            wdd['low'] = cf.change_temperature(temp_min,
                                               self.units.temperature)
            wdd['high'] = cf.change_temperature(temp_max,
                                                self.units.temperature)
            wdd['cloudiness'] = '%s' % (cloudiness)
            wdd['avehumidity'] = '%s' % (humidity)
            wdd['avewind'] = weatherservice.get_wind_condition2(
                velocity, wind_direction[0], self.units.wind)
            wdd['wind_icon'] = wind_direction[2]
            weatherdata.append(wdd)
        return weatherdata
Ejemplo n.º 2
0
 def get_weather(self):
     weather_data = self.get_default_values()
     if self.latlontrouble:
         temp = self.url2
         self.url2 = self.url1
         self.url1 = temp
         self.latlontrouble = False
     for i in range(0, 6):
         if i < 3:
             URL = self.url1
             self.latlontrouble = False
         else:
             URL = self.url2
             self.latlontrouble = True
         try:
             #
             xml_response = download_xml(URL)
             root = etree.fromstring(xml_response).xpath('/xml_api_reply/weather/current_conditions')
             if len(root) == 0:
                 raise Exception('Root 0')
             temperature = get_data(root[0], 'temp_f')
             velocity = get_data(root[0], 'wind_condition')
             velocity = cf.s2f(velocity.split(' ')[3])
             humidity = weatherservice.get_humidity(get_data(root[0], 'humidity'))
             condition = get_data(root[0], 'condition').lower()
             weather_data['current_conditions']['condition'] = condition
             weather_data['current_conditions']['condition_text'] = weatherservice.get_condition(condition, 'text')
             if weatherservice.is_day_now(weather_data['current_conditions']['sunrise_time'], weather_data['current_conditions']['sunset_time']):
                 weather_data['current_conditions']['condition_image'] = weatherservice.get_condition(condition, 'image')
                 weather_data['current_conditions']['condition_icon_dark'] = weatherservice.get_condition(condition, 'icon-dark')
                 weather_data['current_conditions']['condition_icon_light'] = weatherservice.get_condition(condition, 'icon-light')
             else:
                 weather_data['current_conditions']['condition_image'] = weatherservice.get_condition(condition, 'image-night')
                 weather_data['current_conditions']['condition_icon_dark'] = weatherservice.get_condition(condition, 'icon-night-dark')
                 weather_data['current_conditions']['condition_icon_light'] = weatherservice.get_condition(condition, 'icon-night-light')
             weather_data['current_conditions']['temperature'] = cf.change_temperature(temperature, self.units.temperature)
             weather_data['current_conditions']['pressure'] = None
             weather_data['current_conditions']['humidity'] = '%s %%' % (humidity)
             weather_data['current_conditions']['dew_point'] = weatherservice.get_dew_point(humidity, temperature, self.units.temperature)
             wind = get_data(root[0], 'wind_condition')
             wind_direction = wind.split(' ')[1]
             wind_direction = wind_direction.lower()
             wind_velocity = wind.split(' ')
             weather_data['current_conditions']['wind_condition'] = weatherservice.get_wind_condition(wind_velocity, wind_direction, self.units.wind)
             #
             weather_data['current_conditions']['heat_index'] = weatherservice.get_heat_index(temperature, humidity)
             weather_data['current_conditions']['windchill'] = weatherservice.get_wind_chill(temperature, wind_velocity)
             #
             weather_data['current_conditions']['feels_like'] = weatherservice.get_feels_like(temperature, humidity, velocity, self.units.temperature)
             #
             weather_data['current_conditions']['visibility'] = None
             weather_data['current_conditions']['solarradiation'] = None
             weather_data['current_conditions']['UV'] = None
             weather_data['current_conditions']['precip_1hr'] = None
             weather_data['current_conditions']['precip_today'] = None
             #
             root = etree.fromstring(xml_response).xpath('/xml_api_reply/weather/forecast_conditions')
             for i, el in enumerate(root):
                 weather_data['forecasts'][i]['low'] = cf.change_temperature(get_data(el, 'low'), self.units.temperature)
                 weather_data['forecasts'][i]['high'] = cf.change_temperature(get_data(el, 'high'), self.units.temperature)
                 #
                 weather_data['forecasts'][i]['qpf_allday'] = None
                 weather_data['forecasts'][i]['qpf_day'] = None
                 weather_data['forecasts'][i]['qpf_night'] = None
                 weather_data['forecasts'][i]['snow_allday'] = None
                 weather_data['forecasts'][i]['snow_day'] = None
                 weather_data['forecasts'][i]['snow_night'] = None
                 weather_data['forecasts'][i]['maxwind'] = None
                 weather_data['forecasts'][i]['avewind'] = None
                 weather_data['forecasts'][i]['avehumidity'] = None
                 weather_data['forecasts'][i]['maxhumidity'] = None
                 weather_data['forecasts'][i]['minhumidity'] = None
                 #
                 condition = get_data(el, 'condition').lower()
                 weather_data['forecasts'][i]['condition'] = condition
                 weather_data['forecasts'][i]['condition_text'] = weatherservice.get_condition(condition, 'text')
                 weather_data['forecasts'][i]['condition_image'] = weatherservice.get_condition(condition, 'image')
                 weather_data['forecasts'][i]['condition_icon'] = weatherservice.get_condition(condition, 'icon-light')
             #
             root = etree.fromstring(xml_response).xpath('/xml_api_reply/weather/forecast_information')
             weather_data['forecast_information']['city'] = get_data(root[0], 'city')
             weather_data['forecast_information']['postal_code'] = get_data(root[0], 'postal_code')
             weather_data['forecast_information']['latitude_e6'] = get_data(root[0], 'latitude_e6')
             weather_data['forecast_information']['longitude_e6'] = get_data(root[0], 'longitude_e6')
             weather_data['forecast_information']['forecast_date'] = get_data(root[0], 'forecast_date')
             weather_data['forecast_information']['current_date_time'] = get_data(root[0], 'current_date_time')
             weather_data['forecast_information']['unit_system'] = get_data(root[0], 'unit_system')
             return weather_data
         except Exception as e:
             time.sleep(1)
             if i > 3:
                 print(e)
     return weather_data
Ejemplo n.º 3
0
 def _get_weather(self):
     weather_data = self.get_default_values()
     print('-------------------------------------------------------')
     print('-------------------------------------------------------')
     print('Underground Weather Service url: %s' % URL %
           (self.key, self.latitude, self.longitude))
     print('-------------------------------------------------------')
     print('-------------------------------------------------------')
     parsed_json = read_json_from_url(
         URL % (self.key, self.latitude, self.longitude))
     if parsed_json is None:
         return weather_data
     weather_data['update_time'] = time.time()
     weather_data['ok'] = True
     condition = gvfco('weather', parsed_json).lower()
     #
     weather_data['current_conditions']['condition_text'] =\
         weatherservice.get_condition(condition, 'text')
     if weather_data['current_conditions']['isday']:
         weather_data['current_conditions']['condition_image'] =\
             weatherservice.get_condition(condition, 'image')
         weather_data['current_conditions']['condition_icon_dark'] =\
             weatherservice.get_condition(condition, 'icon-dark')
         weather_data['current_conditions']['condition_icon_light'] =\
             weatherservice.get_condition(condition, 'icon-light')
     else:
         weather_data['current_conditions']['condition_image'] =\
             weatherservice.get_condition(condition, 'image-night')
         weather_data['current_conditions']['condition_icon_dark'] =\
             weatherservice.get_condition(condition, 'icon-night-dark')
         weather_data['current_conditions']['condition_icon_light'] =\
             weatherservice.get_condition(condition, 'icon-night-light')
     temperature = cf.s2f(gvfco('temp_f', parsed_json))
     weather_data['current_conditions']['temperature'] =\
         cf.change_temperature(
             temperature, self.units.temperature)
     pressure = cf.s2f(gvfco('pressure_mb', parsed_json))
     weather_data['current_conditions']['pressure'] =\
         weatherservice.change_pressure(pressure, self.units.pressure)
     humidity = cf.s2f(gvfco('relative_humidity', parsed_json)[:-1])
     weather_data['current_conditions']['humidity'] = str(
         int(humidity)) + ' %'
     weather_data['current_conditions']['dew_point'] =\
         weatherservice.get_dew_point(
             humidity, temperature, self.units.temperature)
     wind_velocity = cf.s2f(gvfco('wind_mph', parsed_json))
     wind_direction = gvfco('wind_dir', parsed_json)
     weather_data['current_conditions']['wind_condition'] =\
         weatherservice.get_wind_condition(
             wind_velocity, wind_direction, self.units.wind)
     weather_data['current_conditions']['wind_icon'] =\
         weatherservice.get_wind_icon(wind_direction)
     #
     weather_data['current_conditions']['heat_index'] =\
         weatherservice.get_heat_index(temperature, humidity)
     weather_data['current_conditions']['windchill'] =\
         weatherservice.get_wind_chill(temperature, wind_velocity)
     #
     weather_data['current_conditions']['feels_like'] =\
         weatherservice.get_feels_like(
             temperature, humidity, wind_velocity, self.units.temperature)
     #
     weather_data['current_conditions']['visibility'] =\
         weatherservice.change_distance(
             gvfco('visibility_mi', parsed_json), self.units.visibility)
     weather_data['current_conditions']['solarradiation'] = gvfco(
         'solarradiation', parsed_json)
     weather_data['current_conditions']['UV'] = gvfco('UV', parsed_json)
     weather_data['current_conditions']['precip_1hr'] =\
         weatherservice.change_longitude(
             gvfco('precip_1hr_in', parsed_json), self.units.rain)
     weather_data['current_conditions']['precip_today'] =\
         weatherservice.change_longitude(
             gvfco('precip_today_in', parsed_json), self.units.rain)
     for i in range(0, 4):
         weather_data['forecasts'][i]['low'] =\
             cf.change_temperature(
                 gvff('low', i, parsed_json)['fahrenheit'],
                 self.units.temperature)
         weather_data['forecasts'][i]['high'] =\
             cf.change_temperature(
                 gvff('high', i, parsed_json)['fahrenheit'],
                 self.units.temperature)
         #
         weather_data['forecasts'][i]['qpf_allday'] =\
             weatherservice.change_longitude(
                 gvff('qpf_allday', i, parsed_json)['in'], self.units.rain)
         weather_data['forecasts'][i]['qpf_day'] =\
             weatherservice.change_longitude(
                 gvff('qpf_day', i, parsed_json)['in'], self.units.rain)
         weather_data['forecasts'][i]['qpf_night'] =\
             weatherservice.change_longitude(
                 gvff('qpf_night', i, parsed_json)['in'], self.units.rain)
         weather_data['forecasts'][i]['snow_allday'] =\
             weatherservice.change_longitude(
                 gvff('snow_allday', i, parsed_json)['in'], self.units.snow)
         weather_data['forecasts'][i]['snow_day'] =\
             weatherservice.change_longitude(
                 gvff('snow_day', i, parsed_json)['in'], self.units.snow)
         weather_data['forecasts'][i]['snow_night'] =\
             weatherservice.change_longitude(
                 gvff('snow_night', i, parsed_json)['in'], self.units.snow)
         wind = gvff('maxwind', i, parsed_json)
         weather_data['forecasts'][i]['maxwind'] =\
             weatherservice.get_wind_condition(
                 wind['mph'], wind['dir'], self.units.wind)
         wind = gvff('avewind', i, parsed_json)
         weather_data['forecasts'][i]['avewind'] =\
             weatherservice.get_wind_condition(
                 wind['mph'], wind['dir'], self.units.wind)
         weather_data['forecasts'][i]['avehumidity'] = '%s %%' % gvff(
             'avehumidity', i, parsed_json)
         weather_data['forecasts'][i]['maxhumidity'] = '%s %%' % gvff(
             'maxhumidity', i, parsed_json)
         weather_data['forecasts'][i]['minhumidity'] = '%s %%' % gvff(
             'minhumidity', i, parsed_json)
         #
         condition = gvff('conditions', i, parsed_json).lower()
         weather_data['forecasts'][i]['condition'] = condition
         weather_data['forecasts'][i]['condition_text'] =\
             weatherservice.get_condition(condition, 'text')
         weather_data['forecasts'][i]['condition_image'] =\
             weatherservice.get_condition(condition, 'image')
         weather_data['forecasts'][i]['condition_icon'] =\
             weatherservice.get_condition(condition, 'icon-light')
     weather_data['forecast_information']['city'] =\
         gvfi('city', parsed_json)
     weather_data['forecast_information']['postal_code'] =\
         gvfi('zip', parsed_json)
     weather_data['forecast_information']['latitude_e6'] =\
         gvfi('latitude', parsed_json)
     weather_data['forecast_information']['longitude_e6'] =\
         gvfi('longitude', parsed_json)
     return weather_data
    def get_weather(self):
        weather_data = self.get_default_values()
        if self.id is None:
            self.id = find_city(self.longitude, self.latitude)
            print('****', self.id)
        if self.id is not None:
            url = URL_CURRENT_CITY_ID % self.id
        else:
            url = URL_CURRENT_CITY_LL % (self.latitude, self.longitude)
        print('-------------------------------------------------------')
        print('OpenWeatherMap Weather Service url:%s' % (url))
        print('-------------------------------------------------------')
        parsed_json = read_json_from_url(url)
        if parsed_json is None or\
                'weather' not in parsed_json.keys() or\
                'main' not in parsed_json.keys() or\
                'wind' not in parsed_json.keys() or\
                'clouds' not in parsed_json.keys():
            return weather_data
        weather_data['update_time'] = time.time()
        weather_data['ok'] = True
        if parsed_json['weather'][0]['id'] not in CONDITION.keys():
            condition = 'not available'
        else:
            condition = CONDITION[parsed_json['weather'][0]['id']]
        temperature = cf.fa2f(parsed_json['main']['temp'])
        pressure = parsed_json['main']['pressure'] if 'pressure' in\
            parsed_json['main'] else 0
        humidity = parsed_json['main']['humidity'] if 'humidity' in\
            parsed_json['main'] else 0
        velocity = parsed_json['wind']['speed'] if 'speed' in\
            parsed_json['wind'] else 0
        cloudiness = parsed_json['clouds']['all']
        if 'deg' in parsed_json['wind'].keys():
            direction = parsed_json['wind']['deg']
        else:
            direction = 0
        wind_direction = weatherservice.degToCompass2(direction)
        weather_data['current_conditions']['condition'] = condition
        weather_data['current_conditions']['condition_text'] =\
            weatherservice.get_condition(condition, 'text')
        if weather_data['current_conditions']['isday']:
            weather_data['current_conditions']['condition_image'] =\
                weatherservice.get_condition(condition, 'image')
            weather_data['current_conditions']['condition_icon_dark'] =\
                weatherservice.get_condition(condition, 'icon-dark')
            weather_data['current_conditions']['condition_icon_light'] =\
                weatherservice.get_condition(condition, 'icon-light')
        else:
            weather_data['current_conditions']['condition_image'] =\
                weatherservice.get_condition(condition, 'image-night')
            weather_data['current_conditions']['condition_icon_dark'] =\
                weatherservice.get_condition(condition, 'icon-night-dark')
            weather_data['current_conditions']['condition_icon_light'] =\
                weatherservice.get_condition(condition, 'icon-night-light')
        weather_data['current_conditions']['temperature'] =\
            cf.change_temperature(
                temperature, self.units.temperature)
        weather_data['current_conditions']['pressure'] =\
            weatherservice.change_pressure(
                pressure, self.units.pressure)
        weather_data['current_conditions']['humidity'] = '%s %%' % (humidity)
        weather_data['current_conditions']['dew_point'] =\
            weatherservice.get_dew_point(
                humidity, temperature, self.units.temperature)
        weather_data['current_conditions']['wind_condition'] =\
            weatherservice.get_wind_condition2(
                velocity, wind_direction[0], self.units.wind)
        weather_data['current_conditions']['wind_icon'] = wind_direction[2]
        weather_data['current_conditions']['heat_index'] =\
            weatherservice.get_heat_index(temperature, humidity)
        weather_data['current_conditions']['windchill'] =\
            weatherservice.get_wind_chill(temperature, velocity)
        weather_data['current_conditions']['feels_like'] =\
            weatherservice.get_feels_like(
                temperature, humidity, velocity, self.units.temperature)
        weather_data['current_conditions']['visibility'] = None
        weather_data['current_conditions']['cloudiness'] = \
            '%s %%' % (cloudiness)
        weather_data['current_conditions']['solarradiation'] = None
        weather_data['current_conditions']['UV'] = None
        weather_data['current_conditions']['precip_1hr'] = None
        weather_data['current_conditions']['precip_today'] = None
        #

        # try:
        if self.id:
            url = URL_FORECAST_CITY_ID % self.id
        else:
            url = URL_FORECAST_CITY_LL % (self.latitude, self.longitude)
        parsed_json = read_json_from_url(url)
        if parsed_json is None:
            return weather_data
        for contador, data in enumerate(parsed_json['list']):
            condition = CONDITION[data['weather'][0]['id']]
            temperature = cf.fa2f(data['temp']['day'])
            cloudiness = data['clouds'] if 'clouds' in data.keys() else 0
            pressure = data['pressure'] if 'pressure' in data.keys() else 0
            humidity = data['humidity'] if 'humidity' in data.keys() else 0
            velocity = data['speed'] if 'speed' in data.keys() else 0
            t1 = cf.fa2f(data['temp']['min'])
            t2 = cf.fa2f(data['temp']['max'])
            direction = data['deg']
            if t1 < t2:
                temp_min = str(t1)
                temp_max = str(t2)
            else:
                temp_min = str(t2)
                temp_max = str(t1)
            wind_direction = weatherservice.degToCompass2(direction)
            weather_data['forecasts'][contador]['condition'] = condition
            weather_data['forecasts'][contador]['condition_text'] =\
                weatherservice.get_condition(condition, 'text')
            weather_data['forecasts'][contador]['condition_image'] =\
                weatherservice.get_condition(condition, 'image')
            weather_data['forecasts'][contador]['condition_icon'] =\
                weatherservice.get_condition(condition, 'icon-light')
            weather_data['forecasts'][contador]['low'] =\
                cf.change_temperature(
                    temp_min, self.units.temperature)
            weather_data['forecasts'][contador]['high'] =\
                cf.change_temperature(
                    temp_max, self.units.temperature)
            weather_data['forecasts'][contador]['cloudiness'] =\
                '%s %%' % (cloudiness)
            weather_data['forecasts'][contador]['avehumidity'] =\
                '%s %%' % (humidity)
            weather_data['forecasts'][contador]['avewind'] =\
                weatherservice.get_wind_condition2(
                    velocity, wind_direction[0], self.units.wind)
            weather_data['forecasts'][contador]['wind_icon'] =\
                wind_direction[2]
            weather_data['forecasts'][contador]['qpf_allday'] = None
            weather_data['forecasts'][contador]['qpf_day'] = None
            weather_data['forecasts'][contador]['qpf_night'] = None
            weather_data['forecasts'][contador]['snow_allday'] = None
            weather_data['forecasts'][contador]['snow_day'] = None
            weather_data['forecasts'][contador]['snow_night'] = None
            weather_data['forecasts'][contador]['maxwind'] = None
            weather_data['forecasts'][contador]['maxhumidity'] = None
            weather_data['forecasts'][contador]['minhumidity'] = None
        # except Exception as e:
        # print(e)
        return weather_data
 def get_weather(self):
     weather_data = self.get_default_values()
     print('-------------------------------------------------------')
     print('-------------------------------------------------------')
     print('WorldWeatherOnline Weather Service url: %s' %
           (URL % (self.latitude, self.longitude, self.key)))
     print('-------------------------------------------------------')
     print('-------------------------------------------------------')
     try:
         parsed_json = read_json_from_url(
             URL % (self.latitude, self.longitude, self.key))
         if parsed_json is None or\
                 'data' not in parsed_json.keys() or\
                 parsed_json['data'] is None or\
                 'current_condition' not in parsed_json['data'].keys() or\
                 'weather' not in parsed_json['data'].keys():
             return weather_data
         weather_data['update_time'] = time.time()
         weather_data['ok'] = True
         number_condition = gvfco('weatherCode', parsed_json)
         condition = get_condition(number_condition)
         print('*******************')
         print('********11***********')
         print('*******************')
         #
         weather_data['current_conditions']['condition_text'] =\
             weatherservice.get_condition_wwa(condition, 'text')
         if weather_data['current_conditions']['isday']:
             weather_data['current_conditions']['condition_image'] =\
                 weatherservice.get_condition_wwa(condition, 'image')
             weather_data['current_conditions']['condition_icon_dark'] =\
                 weatherservice.get_condition_wwa(condition, 'icon-dark')
             weather_data['current_conditions']['condition_icon_light'] =\
                 weatherservice.get_condition_wwa(condition, 'icon-light')
         else:
             weather_data['current_conditions']['condition_image'] =\
                 weatherservice.get_condition_wwa(condition, 'image-night')
             weather_data['current_conditions']['condition_icon_dark'] =\
                 weatherservice.get_condition_wwa(
                     condition, 'icon-night-dark')
             weather_data['current_conditions']['condition_icon_light'] =\
                 weatherservice.get_condition_wwa(
                     condition, 'icon-night-light')
         temperature = cf.s2f(gvfco('temp_F', parsed_json))
         weather_data['current_conditions']['temperature'] =\
             cf.change_temperature(
                 temperature, self.units.temperature)
         pressure = cf.s2f(gvfco('pressure', parsed_json))
         weather_data['current_conditions']['pressure'] =\
             weatherservice.change_pressure(pressure, self.units.pressure)
         humidity = cf.s2f(gvfco('humidity', parsed_json))
         weather_data['current_conditions']['humidity'] = '%s %%' % (
             int(humidity))
         weather_data['current_conditions']['dew_point'] =\
             weatherservice.get_dew_point(
                 humidity, temperature, self.units.temperature)
         wind_velocity = cf.s2f(gvfco('windspeedMiles', parsed_json))
         wind_direction = weatherservice.degToCompass2(
             gvfco('winddirDegree', parsed_json))
         weather_data['current_conditions']['wind_condition'] =\
             weatherservice.get_wind_condition2(
                 wind_velocity, wind_direction[0], self.units.wind)
         weather_data['current_conditions']['wind_icon'] = wind_direction[2]
         #
         weather_data['current_conditions']['heat_index'] =\
             weatherservice.get_heat_index(temperature, humidity)
         weather_data['current_conditions']['windchill'] =\
             weatherservice.get_wind_chill(temperature, wind_velocity)
         #
         weather_data['current_conditions']['feels_like'] =\
             weatherservice.get_feels_like(
                 temperature, humidity, wind_velocity,
                 self.units.temperature)
         #
         weather_data['current_conditions']['visibility'] =\
             weatherservice.change_distance(
                 gvfco('visibility', parsed_json), self.units.visibility)
         weather_data['current_conditions']['solarradiation'] = None
         weather_data['current_conditions']['UV'] = None
         weather_data['current_conditions']['precip_1hr'] = None
         weather_data['current_conditions']['precip_today'] =\
             weatherservice.change_longitude(
                 cf.s2f(
                     gvfco('precipMM', parsed_json)) / 25.4,
                 self.units.rain)
         for i in range(0, 5):
             t1 = cf.s2f(gvff('tempMinF', i, parsed_json))
             t2 = cf.s2f(gvff('tempMaxF', i, parsed_json))
             if t1 < t2:
                 tmin = str(t1)
                 tmax = str(t2)
             else:
                 tmin = str(t2)
                 tmax = str(t1)
             weather_data['forecasts'][i]['low'] =\
                 cf.change_temperature(
                     tmin, self.units.temperature)
             weather_data['forecasts'][i]['high'] =\
                 cf.change_temperature(
                     tmax, self.units.temperature)
             #
             weather_data['forecasts'][i]['qpf_allday'] =\
                 weatherservice.change_longitude(
                     cf.s2f(
                         gvff('precipMM', i, parsed_json)) / 25.4,
                     self.units.rain)
             weather_data['forecasts'][i]['qpf_day'] = None
             weather_data['forecasts'][i]['qpf_night'] = None
             weather_data['forecasts'][i]['snow_allday'] = None
             weather_data['forecasts'][i]['snow_day'] = None
             weather_data['forecasts'][i]['snow_night'] = None
             weather_data['forecasts'][i]['maxwind'] = None
             winddir = gvff('winddirDegree', i, parsed_json)
             winsped = gvff('windspeedMiles', i, parsed_json)
             wind_direction = weatherservice.degToCompass2(winddir)
             weather_data['forecasts'][i]['avewind'] =\
                 weatherservice.get_wind_condition2(
                     winsped, wind_direction[0], self.units.wind)
             weather_data['forecasts'][i]['wind_icon'] = wind_direction[2]
             weather_data['forecasts'][i]['avehumidity'] = None
             weather_data['forecasts'][i]['maxhumidity'] = None
             weather_data['forecasts'][i]['minhumidity'] = None
             #
             number_condition = gvff('weatherCode', i, parsed_json).lower()
             condition = get_condition(number_condition)
             weather_data['forecasts'][i]['condition'] = condition
             weather_data['forecasts'][i]['condition_text'] =\
                 weatherservice.get_condition_wwa(condition, 'text')
             weather_data['forecasts'][i]['condition_image'] =\
                 weatherservice.get_condition_wwa(condition, 'image')
             weather_data['forecasts'][i]['condition_icon'] =\
                 weatherservice.get_condition_wwa(condition, 'icon-light')
         weather_data['forecast_information']['city'] = None
         weather_data['forecast_information']['postal_code'] = None
         weather_data['forecast_information']['latitude_e6'] = None
         weather_data['forecast_information']['longitude_e6'] = None
     except Exception as e:
         print(e)
         weather_data['ok'] = False
     return weather_data