https://github.com/yubars/mbb
Raw File
Tip revision: cd5de904332d33adabbc4793a87af7406ff26250 authored by yubars on 27 May 2014, 20:18:40 UTC
Create speed.py
Tip revision: cd5de90
combine.py
#!/usr/bin/python

import sys
import os
import csv
from math import radians, cos, sin, asin, sqrt
def usage():
        print >> sys.stderr, '\n' + str(THISFILENAME)+" [gps file] [ppp file] [new file]" + '\n'
        sys.exit(0)



def haversine(lon1, lat1, lon2, lat2, t1, t2):
    # convert decimal degrees to radians 
    lon1,lat1,lon2,lat2 = map(radians, [float(lon1), float(lat1), float(lon2), float(lat2)])

    # haversine formula 
    dlon = lon2 - lon1 
    dlat = lat2 - lat1 
    a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
    c = 2 * asin(sqrt(a)) 

    # 6371 km is the radius of the Earth
    kmh = (6367.0 * c * 3600.0) / (float(t2) - float(t1))
    return kmh 

#CLIENT:
if __name__ == '__main__':

        #SIGINT 
        #signal.signal(signal.SIGINT, signal_handler)
        if( len(sys.argv) < 4 ):
                usage()
        elif( len(sys.argv) == 4 ):
                        fileg = sys.argv[1]
                        filep = sys.argv[2]
			newfile = sys.argv[3]
			datag = []
			datap = []
			data = []
			data1 = []
			data10 = []
			data25 = []
			data40 = []
			datarest = []
			datafile1 = open(fileg, 'r')
			readerg = csv.reader(datafile1)
			for row in readerg:
    				datag.append(row)
			heading1 = datag.pop(0)

			datafile2 = open(filep, 'r')
			readerp = csv.reader(datafile2)
			for row1 in readerp:
    				datap.append(row1)
			heading2 = datap.pop(0)
			for d in datag:
				if(d[1] != 'nan'):
					data.append(d)
		
			for d1 in data:
				i1 = data.index(d1)
				#if(i < c):
				for d2 in datap:
					i2 = datap.index(d2)
					#print i2
					if(data[i1][0] == datap[i2][0]):
						#print 'kera'
						data1.append(data[i1]+datap[i2])
						print data[i1]+datap[i2]
						break
						
			for d3 in data1:
				del d3[4]
				d3[3] = int(round(float(d3[3]) * 3.6))
				speed = d3[3]
				if(speed < 10):
                                	data10.append(d3)
                                elif(speed >= 10 and speed < 25):
                                        data25.append(d3)
                                elif(speed >= 25 and speed < 40):
                                        data40.append(d3)
                                else:
                                        datarest.append(d3)

			#print data1
			with open(newfile + ".csv", "a") as f:
				w = csv.writer(f)
    				w.writerows(data1)

			
			with open(newfile + "speed10.csv", "a") as f10:
				w10 = csv.writer(f10)
    				w10.writerows(data10)
			with open(newfile + "speed25.csv", "a") as f25:
				w25 = csv.writer(f25)
    				w25.writerows(data25)
			with open(newfile + "speed40.csv", "a") as f40:
				w40 = csv.writer(f40)
    				w40.writerows(data40)
			with open(newfile + "speedg40.csv", "a") as frest:
				wrest = csv.writer(frest)
    				wrest.writerows(datarest)
		
        else:
                usage()
back to top