def precipv1(): precip = session.query(Measurement.date, Measurement.prcp)\ .filter(Measurement.date.between('2017-01-01', '2017-12-31'))\ .group_by(Measurement.date)\ .order_by(Measurement.date) precip_vals = {k: v for k, v in precip} return jsonify(precip_vals)
def temp_obs(): tobs = session.query(Measurement.date, Measurement.tobs)\ .filter(Measurement.date.between('2017-01-01', '2017-12-31'))\ .group_by(Measurement.date)\ .order_by(Measurement.date) vals = {k: v for k, v in tobs} return jsonify(vals)
def get_most_recent_date(): most_recent_date_query = session.query(Measurement).\ order_by(Measurement.date.desc()).limit(1) for date in most_recent_date_query: most_recent_date = date.date return dt.datetime.strptime(most_recent_date, "%Y-%m-%d")
def return_tobs(): most_recent_date = get_most_recent_date() one_year_ago = most_recent_date - dt.timedelta(days=365) recent_tobs_data = session.query(Measurement.date, Measurement.tobs).\ filter(Measurement.date >= one_year_ago).\ order_by(Measurement.date).all() return jsonify(convert_to_dict(recent_prcp_data, label='tobs'))
def stations_route(): station_list = {} station_list['data'] = [] for row in session.query(Station): station_list['data'].append( {"id": row.id, "station": row.station, "lat": row.latitude, "lng": row.longitude, "elev": row.elevation} )
def station_route(): station_list = {} station_list['data'] = [] for row in session.query(Station): station_list['data'].append({ "id": row.id, 'station': row.station, "lat": row.latitude, "lng": row.longitude, "elev": row.elevation }) return jsonify(station_list)
def start_date(start): tobs_calcs = session.query(func.avg(Measurement.tobs).label('avg_temp'), func.min(Measurement.tobs).label('min_temp'), func.max(Measurement.tobs).label('max_temp'))\ .filter(Measurement.date >= f'{start}') tobs_list = {} tobs_list['data'] = [] for row in tobs_calcs: tobs_list['data'].append({ "Avg Temp": row.avg_temp, 'Min Temp': row.min_temp, "Max Temp": row.max_temp }) return jsonify(tobs_list['data'])
def return_weather(start, end=None): if end is None: end = get_most_recent_date() weather_extremes = session.query(func.min(Measurement.tobs), func.avg(Measurement.tobs), func.max(Measurement.tobs)).\ filter(Measurement.date >= start).\ filter(Measurement.date <= end).all() data = [] for record in weather_extremes: data.append({'TMIN': record[0], 'TAVG': record[1], 'TMAX': record[2]}) return jsonify(data)
def return_station_list(): station_list = session.query(Measurement.station).distinct() return jsonify([station[0] for station in station_list])