示例#1
0
    def __prep_data__(self, d):
        onez = np.ones((1, 11))
        features = pd.DataFrame(onez)

        date = api.get_correct_date(d['time'])

        # use weather data to transform and insert monthly circular data
        sm, cm = h.Helpers.trans([date.month], 12, h.Helpers.transform_unit)
        features.insert(1, 'sin_month', sm)
        features.insert(2, 'cos_month', cm)

        # use weather data to transform and insert hourly data
        sh, ch = h.Helpers.trans([date.hour], 24, h.Helpers.transform_unit)
        features.insert(3, 'sin_hour', sh)
        features.insert(4, 'cos_hour', ch)

        # use either weather or parent averages to transform and insert
        if 'windBearing' in d:
            sw, cw = h.Helpers.trans(d['windBearing'], -999,
                                     h.Helpers.transformWind)
        else:
            sw, cw = DataClass.get_avg('sin_wind_dir'), DataClass.get_avg(
                'cos_wind_dir')

        features.insert(5, 'sin_wind_dir', sw)
        features.insert(6, 'cos_wind_dir', cw)

        def eval_instance(api_feature_name,
                          dad_feature_name,
                          api_data=d,
                          dad=DataClass):
            if api_feature_name in api_data:
                ready = super(WeatherInstance,
                              self).scale_new_val(dad_feature_name,
                                                  api_data[api_feature_name])
            else:
                ready = dad.get_avg(self, dad_feature_name)
            return ready

        features.insert(
            7, 'wind_speed_mph',
            eval_instance(api_feature_name='windSpeed',
                          dad_feature_name='wind_speed_mph'))
        features.insert(8, 'temperature_f',
                        eval_instance('temperature', 'temperature_f'))
        features.insert(9, 'pressure_mb',
                        eval_instance('pressure', 'pressure_mb'))
        features.insert(
            10, 'visibility_mi',
            eval_instance(api_feature_name='visibility',
                          dad_feature_name='visibility_mi'))

        return features
示例#2
0
def print_one_day_of_weather_data(year, month, day, max_rows, file_to_write):

    url = api.get_url() + ',' + year + '-' + month + '-' + day + 'T00:00:00'
    parsed_json = api.get_and_load_data(url)

    all_obs = parsed_json['hourly']['data']

    null = 'null'

    # if we reach the end of the observations
    for n in range(0, len(all_obs)):
        # or we exceed the max rows desired
        if n > max_rows:
            return 0
        else:
            b = all_obs[n]

            time = b['time']

            temperature = b.get('temperature', null)
            visibility = b.get('visibility', null)
            pressure = b.get('pressure', null)
            windSpeed = b.get('windSpeed', null)
            windBearing = b.get('windBearing', null)
            humidity = b.get('humidity', null)
            date_data = api.get_correct_date(time)
            year = date_data.year
            month = date_data.month
            day = date_data.day
            hour = date_data.hour

            params = [
                time, year, month, day, hour, temperature, windSpeed,
                windBearing, humidity, visibility, pressure
            ]

            # print params

            with open(file_to_write, 'a') as csvfile:
                w = csv.writer(csvfile, quoting=csv.QUOTE_ALL)
                w.writerow(params)

            csvfile.close()
def print_one_day_of_weather_data(year, month, day, max_rows, file_to_write):

    url = api.get_url() + ',' + year + '-' + month + '-' + day + 'T00:00:00'
    parsed_json = api.get_and_load_data(url)

    all_obs = parsed_json['hourly']['data']

    null = 'null'

    # if we reach the end of the observations
    for n in range(0, len(all_obs)):
        # or we exceed the max rows desired
        if n > max_rows:
            return 0
        else:
            b = all_obs[n]

            time = b['time']

            temperature = b.get('temperature', null)
            visibility = b.get('visibility', null)
            pressure = b.get('pressure', null)
            windSpeed = b.get('windSpeed', null)
            windBearing = b.get('windBearing', null)
            humidity = b.get('humidity', null)
            date_data = api.get_correct_date(time)
            year = date_data.year
            month = date_data.month
            day = date_data.day
            hour = date_data.hour


            params = [time, year, month, day, hour, temperature, windSpeed, windBearing, humidity, visibility, pressure]

            # print params

            with open(file_to_write, 'a') as csvfile:
                w = csv.writer(csvfile, quoting=csv.QUOTE_ALL)
                w.writerow(params)

            csvfile.close()
	def __prep_data__(self, d):
		onez = np.ones((1, 11))
		features = pd.DataFrame(onez)

		date = api.get_correct_date(d['time'])

		# use weather data to transform and insert monthly circular data
		sm, cm = h.Helpers.trans([date.month], 12, h.Helpers.transform_unit)
		features.insert(1, 'sin_month', sm)
		features.insert(2, 'cos_month', cm)

		# use weather data to transform and insert hourly data
		sh, ch = h.Helpers.trans([date.hour], 24, h.Helpers.transform_unit)
		features.insert(3, 'sin_hour', sh)
		features.insert(4, 'cos_hour', ch)

		# use either weather or parent averages to transform and insert
		if 'windBearing' in d:
			sw, cw = h.Helpers.trans(d['windBearing'], -999, h.Helpers.transformWind)
		else:
			sw, cw = DataClass.get_avg('sin_wind_dir'), DataClass.get_avg('cos_wind_dir')

		features.insert(5, 'sin_wind_dir', sw)
		features.insert(6, 'cos_wind_dir', cw)

		def eval_instance(api_feature_name, dad_feature_name, api_data=d, dad=DataClass):
			if api_feature_name in api_data:
				ready = super(WeatherInstance, self).scale_new_val(dad_feature_name, api_data[api_feature_name])
			else:
				ready = dad.get_avg(self, dad_feature_name)
			return ready

		features.insert(7, 'wind_speed_mph', eval_instance(api_feature_name='windSpeed', dad_feature_name='wind_speed_mph'))
		features.insert(8, 'temperature_f', eval_instance('temperature', 'temperature_f'))
		features.insert(9, 'pressure_mb', eval_instance('pressure', 'pressure_mb'))
		features.insert(10, 'visibility_mi', eval_instance(api_feature_name='visibility', dad_feature_name='visibility_mi'))

		return features 
import sys
from api import api
api = api()
sys.path.insert(0, '../data_tools/weather_instance')
from weather_instance import *

parsed_json = api.get_and_load_data(api.get_url())

c = parsed_json['currently']
date = api.get_correct_date(c['time'])

def now_weather_readable():
	first_line = c['summary'] + "\n\n" 
	h = "Relative humidity: " + str(c.get('humidity', 'NaN')) + "\n"
	a = "Air pressure (mb): " + str(c.get('pressure', 'NaN')) + "\n" 
	t = "Temperature (F): " + str(c.get('temperature', 'NaN')) + "\n"
	wd = "Wind Direction (deg): " + str(c.get('windBearing', 'NaN')) + "\n"
	ws = "Wind Speed (mph): " + str(c.get('windSpeed', 'NaN')) + "\n"
	return first_line + h + a + t + wd + ws

def raw_on():
	x = WeatherInstance(weather_d=c, path_and_name_to_parent='../Data/wp_remove_null_2014.csv')
	return x.get_features()




import sys
from api import api
api = api()
sys.path.insert(0, '../data_tools/weather_instance')
from weather_instance import *

parsed_json = api.get_and_load_data(api.get_url())

c = parsed_json['currently']
date = api.get_correct_date(c['time'])


def now_weather_readable():
    # print(c)
    first_line = c['summary'] + "\n\n"
    h = "Relative humidity: " + str(c.get('humidity', 'NaN')) + "\n"
    a = "Air pressure (mb): " + str(c.get('pressure', 'NaN')) + "\n"
    t = "Temperature (F): " + str(c.get('temperature', 'NaN')) + "\n"
    wd = "Wind Direction (deg): " + str(c.get('windBearing', 'NaN')) + "\n"
    ws = "Wind Speed (mph): " + str(c.get('windSpeed', 'NaN')) + "\n"
    vi = "visibility: " + str(c.get('visibility', 'NaN')) + "\n"
    return first_line + h + a + t + wd + ws + vi


def raw_on():
    x = WeatherInstance(
        weather_d=c, path_and_name_to_parent='../Data/wp_remove_null_2014.csv')
    return x.get_features()