import math
import csv
import numpy
from math import radians, sin, cos, acos
class venue:
venueGeoLat = []
venueGeoLon = []
venueName = []
def __init__(self,name,latitude,longitude):
self.name = name
self.latitude = latitude
self.longitude = longitude
with open('venueData.csv') as csvDataFile:
csvReader = csv.reader(csvDataFile)
for row in csvReader:
venueGeoLat.append(row[1])
venueGeoLon.append(row[2])
venueName.append(row[0])
class masterTrainer:
distanceFromVenues = []
nearestVenues = []
latitude = None
longitude = None
def __init__(self,name,location,subject,latitude,longitude):
self.name = name
self.location = location
self.subject = subject
self.latitude = latitude
self.longitude = longitude
i = 1
j = 1
while i < 2:
while j < len(venue.venueGeoLat):
masterTrainer.distanceFromVenues.append(masterTrainer.distanceCalculator(float(masterTrainer.latitude),float(masterTrainer.longitude),float(venue.venueGeoLat[j]),float(venue.venueGeoLon[j])))
j = j + 1
i = i + 1
MAX = 100000
firstmin = MAX
secmin = MAX
thirdmin = MAX
k = 0
l = 0
m = 0
for i in range(0, len(distanceFromVenues)):
if distanceFromVenues[i] < firstmin:
thirdmin = secmin
secmin = firstmin
firstmin = distanceFromVenues[i]
k = i
elif distanceFromVenues[i] < secmin:
thirdmin = secmin
secmin = distanceFromVenues[i]
l = i
elif distanceFromVenues[i] < thirdmin:
thirdmin = distanceFromVenues[i]
m = i
nearestVenues.append(venue.venueName[k+1])
nearestVenues.append(venue.venueName[l+1])
nearestVenues.append(venue.venueName[m+1])
def distanceCalculator(latitude1,longitude1,latitude2,longitude2):
slat = radians(latitude1)
slon = radians(longitude1)
elat = radians(latitude2)
elon = radians(longitude2)
dist = 6371.01 * acos(sin(slat)*sin(elat) + cos(slat)*cos(elat)*cos(slon - elon))
return dist
masters = []
with open('mtData.csv') as csvDataFile:
csvReader = csv.reader(csvDataFile)
for row in csvReader:
masters.append(masterTrainer(row[0],row[1],row[4],row[2],row[3]))
print(masters[1].nearestVenues)
What I have tried:
When I tried to compile this code then I got attribute error saying
AttributeError: type object 'masterTrainer' has no attribute 'latitude'