Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. # Y1 AUTUMN 2019
  2. # Basic Course in Programming Y1
  3. # Author: Joel Lahenius
  4. # Template for exercise 8.3 Journey Analyzer
  5.  
  6. from math import pi, cos, sqrt
  7.  
  8. EARTH_RADIUS = 6371 # km
  9. EARTH_CIRCUMFERENCE = EARTH_RADIUS * 2 * pi # km
  10. DEGREE_EQUATOR = EARTH_CIRCUMFERENCE / 360 # km
  11.  
  12.  
  13. def degrees_to_radians(deg):
  14. rad = deg * (pi / 180)
  15. return rad
  16.  
  17.  
  18. def calculate_longitude_degree_length(latitude_degrees):
  19. return cos(degrees_to_radians(latitude_degrees)) * DEGREE_EQUATOR # km
  20.  
  21.  
  22. def calculate_distance(lat1, lon1, lat2, lon2):
  23. latitude_degree_length = 111.2 # km, roughly constant for our purposes
  24. longitude_degree_length = calculate_longitude_degree_length((lat1 + lat2) / 2)
  25. # km, depends on latitude due to Earth being round
  26.  
  27. # Write your distance formula here.
  28. # If you already did it in exercise 7.3 citybike stations,
  29. # You can use the same formula as there.
  30. distance = ((latitude_degree_length * (lat1 - lat2)) ** 2 + (longitude_degree_length * (lon1 - lon2)) ** 2) ** (
  31. 1 / 2)
  32.  
  33. return distance
  34.  
  35.  
  36. def find_distance(line):
  37. data = line.strip().split(";")
  38. longitude = data[0]
  39. latitude = data[1]
  40. return longitude, latitude
  41.  
  42.  
  43. def find_time(line):
  44. data = line.strip().split(";")
  45. full_time_stamp = data[3]
  46. clock_time = full_time_stamp[-9:-1]
  47. return clock_time
  48.  
  49.  
  50. def calculate_time(starting_time, ending_time):
  51. t0 = starting_time.split(":")
  52. tn = ending_time.split(":")
  53. t0 = [int(i) for i in t0]
  54. tn = [int(i) for i in tn]
  55. dseconds = tn[2] - t0[2]
  56. dminutes = tn[1] - t0[1]
  57. dhours = tn[0] - t0[0]
  58. hours2minutes = dhours * 60
  59. seconds2minutes = dseconds / 60
  60. dt = dminutes + hours2minutes + seconds2minutes
  61. return round(dt, 1)
  62.  
  63.  
  64. def main():
  65. try:
  66. filename = input("Journey file name:\n")
  67. file = open(filename, "r")
  68. file.readline()
  69. file.readline()
  70. file.readline()
  71. rivi1 = file.readline()
  72. rivi2 = file.readline()
  73. start_time = find_time(rivi1)
  74. while rivi2 != "":
  75.  
  76.  
  77.  
  78. rivi1 = rivi2
  79. rivi2 = file.readline()
  80. file.close()
  81. end_time = find_time(rivi1)
  82. time = calculate_time(start_time, end_time)
  83. print("Your journey took {} minutes.".format(time))
  84. except FileNotFoundError:
  85. print("Could not open the file {}, try again.".format(filename))
  86.  
  87.  
  88. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement