added METAR
This commit is contained in:
@@ -82,7 +82,7 @@ import mpld3
|
||||
from mpld3 import plugins
|
||||
import stravalib
|
||||
from stravalib.exc import ActivityUploadFailed,TimeoutExceeded
|
||||
from weather import get_wind_data,get_airport_code
|
||||
from weather import get_wind_data,get_airport_code,get_metar_data
|
||||
|
||||
from oauth2_provider.models import Application,Grant,AccessToken
|
||||
|
||||
@@ -2495,7 +2495,72 @@ def workout_downloadwind_view(request,id=0,
|
||||
|
||||
|
||||
|
||||
return response
|
||||
|
||||
# Get weather for given location and date/time
|
||||
@user_passes_test(ispromember,login_url="/",redirect_field_name=None)
|
||||
def workout_downloadmetar_view(request,id=0,
|
||||
airportcode=None,
|
||||
message="",successmessage=""):
|
||||
try:
|
||||
row = Workout.objects.get(id=id)
|
||||
except Workout.DoesNotExist:
|
||||
raise Http404("Workout doesn't exist")
|
||||
|
||||
f1 = row.csvfilename
|
||||
if (checkworkoutuser(request.user,row)==False):
|
||||
message = "You are not allowed to edit this workout"
|
||||
url = reverse(workouts_view,args=[str(message)])
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# create bearing
|
||||
rowdata = rdata(f1)
|
||||
if rowdata == 0:
|
||||
return HttpResponse("Error: CSV Data File Not Found")
|
||||
|
||||
try:
|
||||
bearing = rowdata.df.ix[:,'bearing'].values
|
||||
except KeyError:
|
||||
rowdata.add_bearing()
|
||||
rowdata.write_csv(f1,gzip=True)
|
||||
|
||||
# get wind
|
||||
try:
|
||||
avglat = rowdata.df[' latitude'].mean()
|
||||
avglon = rowdata.df[' longitude'].mean()
|
||||
airportcode = get_airport_code(avglat,avglon)[0]
|
||||
avgtime = int(rowdata.df['TimeStamp (sec)'].mean()-rowdata.df.ix[0,'TimeStamp (sec)'])
|
||||
startdatetime = dateutil.parser.parse("{}, {}".format(row.date,
|
||||
row.starttime))
|
||||
|
||||
starttimeunix = int(mktime(startdatetime.timetuple()))
|
||||
avgtime = starttimeunix+avgtime
|
||||
winddata = get_metar_data(airportcode,avgtime)
|
||||
windspeed = winddata[0]
|
||||
windbearing = winddata[1]
|
||||
message = winddata[2]
|
||||
row.notes += "\n"+message
|
||||
row.save()
|
||||
rowdata.add_wind(windspeed,windbearing)
|
||||
rowdata.write_csv(f1,gzip=True)
|
||||
|
||||
kwargs = {'successmessage':str(message),
|
||||
'id':str(id)}
|
||||
|
||||
url = reverse(workout_wind_view,kwargs=kwargs)
|
||||
response = HttpResponseRedirect(url)
|
||||
except KeyError:
|
||||
message = "No latitude/longitude data"
|
||||
kwargs = {'message':str(message),
|
||||
'id':str(id)}
|
||||
url = reverse(workout_wind_view,kwargs=kwargs)
|
||||
response = HttpResponseRedirect(url)
|
||||
|
||||
|
||||
|
||||
return response
|
||||
|
||||
|
||||
# Show form to update wind data
|
||||
@user_passes_test(ispromember,login_url="/",redirect_field_name=None)
|
||||
|
||||
Reference in New Issue
Block a user