def myDist(vecA, vecB): distSpotA = latlonDist._dist( (vecA.item(0,0),vecA.item(0,1)) ,(vecA.item(0,3), vecA.item(0,4)) ) distSpotB = latlonDist._dist( (vecB.item(0,0),vecB.item(0,1)) ,(vecB.item(0,3), vecB.item(0,4)) ) # print distSpotB # print distSpotA distSpotAB = abs(distSpotA - distSpotB) distAB = latlonDist._dist( (vecA.item(0,3),vecA.item(0,4)) ,(vecB.item(0,3),vecB.item(0,4)) ) diffNotesAB = abs( vecA.item(0,2)-vecB.item(0,2) ) dist = distSpotAB+distAB+diffNotesAB return dist
def myDist(vecA, vecB): distSpotA = latlonDist._dist((vecA.item(0, 0), vecA.item(0, 1)), (vecA.item(0, 3), vecA.item(0, 4))) distSpotB = latlonDist._dist((vecB.item(0, 0), vecB.item(0, 1)), (vecB.item(0, 3), vecB.item(0, 4))) # print distSpotB # print distSpotA distSpotAB = abs(distSpotA - distSpotB) distAB = latlonDist._dist((vecA.item(0, 3), vecA.item(0, 4)), (vecB.item(0, 3), vecB.item(0, 4))) diffNotesAB = abs(vecA.item(0, 2) - vecB.item(0, 2)) dist = distSpotAB + distAB + diffNotesAB return dist
def genAll(): clusterLabels = csv.reader(open("clustersLabels.csv","r")) touristInfo = csv.reader(open("touristInfo.csv","r")) dictAll = {} touristDict = {} for row in touristInfo: touristDict[row[0]] = [row[1],row[2],row[3]] count = 0 for row in clusterLabels: if row[0] in touristDict: for item in touristDict[row[0]]: row.append(item) dictAll[count] = row count+=1 for key, value in dictAll.iteritems(): temp = [] spot = (float(value[1]),float(value[2])) residence = (float(value[-2]), float(value[-1])) dist = latlonDist._dist(residence,spot) temp.append(value[0]) #uid temp.append(value[3]) #clusterLabel temp.append(value[5]) #noteNumber temp.append(dist) #distResidenceSpot temp.append(value[4]) #publicationDate dictAll[key] = temp return dictAll
def convertGeoCode(filename,destname): geocodeBuffer = genGeoCodeDict() writeRows = [] with open(filename) as rawCSV: rawContent = csv.reader(rawCSV) for row in rawContent: if row[1] != 'null' and row[1] in geocodeBuffer: distance = latlonDist._dist(geocodeBuffer[row[1]],geocodeBuffer[destname]) writeRows.append((0,row[2],distance,0)) print '%d tours are found' % len(writeRows) with open('data/'+filename,'wb') as destCSV: writer = csv.writer(destCSV) for row in writeRows: writer.writerow(row)
def _dist(p,q): assert type(p) is np.matrix, 'p is not matrix!' assert type(q) is np.matrix, 'q is not matrix!' spot1 = (p.item(0,1), p.item(0,0)) spot2 = (q.item(0,1), q.item(0,0)) return latlonDist._dist(spot1,spot2)
def getDistance(p, q): assert type(p) is np.ndarray, 'p is not matrix!' assert type(q) is np.ndarray, 'q is not matrix!' pointA = (p[1], p[0]) pointB = (q[1], q[0]) return latlonDist._dist(pointA, pointB)
def distSpotTourist(dataSet): n = shape(dataSet)[0] # get row number of dataSet for i in range(n): dataSet[i,1] = latlonDist._dist( (dataSet[i,0],dataSet[i,1]), (dataSet[i,3],dataSet[i,4]) ) return dataSet[:,1:3]
def distSpotTourist(dataSet): n = shape(dataSet)[0] # get row number of dataSet for i in range(n): dataSet[i, 1] = latlonDist._dist((dataSet[i, 0], dataSet[i, 1]), (dataSet[i, 3], dataSet[i, 4])) return dataSet[:, 1:3]
def _dist(p, q): assert type(p) is np.matrix, 'p is not matrix!' assert type(q) is np.matrix, 'q is not matrix!' spot1 = (p.item(0, 1), p.item(0, 0)) spot2 = (q.item(0, 1), q.item(0, 0)) return latlonDist._dist(spot1, spot2)