Lectura de datos de GPS archivo.csv
2.- Se tiene un archivo (nalca_3.csv) el cual tiene 'n' registros:
Se pide:
a) Cuente el Total de Apariciones de: $GPRMC, $GPGSV y $ GPGLL
b) Suma Total de Numeros Enteros y Flotantes solo para $GPRMC
c) Suma Total de Numeros Enteros y Flotantes solo para $GPGSV
d) Suma Total de Numeros Enteros y Flotantes solo para $GPGLL
e) Promedios de b, c y d
Archivo .csv
Codigo Fuente:
import csv
##----------------Metodos-------------
def tipoInt(n):
try:
int(n)
return True
except ValueError:
return False
def tipoFloat(n):
try:
float(n)
return True
except ValueError:
return False
##-----------Fin Metodos--------------
##-------------------------MAIN--------------------------
##variables
GPRMC = 0
GPGSV = 0
GPGLL = 0
nameGP = ["sumInt"," sumFlo"]
sumas = [0, 0.00, 0, 0.00, 0, 0.00,'','','']
##se abre el archivo .csv
f = open('nalca_3.csv')
##lee el archivo
lns = csv.reader(f)
##recorre linea a linea
for line in lns:
##recorre cada palabra
for lenline in line:
##identificador $GPRMC,$GPGSV,$GPGLL
identificador = line[0]
if identificador =='$GPRMC':
GPRMC+=1
sumas[6] = "GPRMC:"
if (tipoInt(lenline)):
sumas[0] += int(lenline)
elif(tipoFloat(lenline)):
sumas[1] += float(lenline)
elif identificador =='$GPGSV':
GPGSV+=1
sumas[7] = "GPCSV:"
if (tipoInt(lenline)):
sumas[2] += int(lenline)
elif(tipoFloat(lenline)):
sumas[3] += float(lenline)
elif identificador =='$GPGLL':
sumas[8] = "GPGLL:"
GPGLL+=1
if (tipoInt(lenline)):
sumas[4] += int(lenline)
elif(tipoFloat(lenline)):
sumas[5] += float(lenline)
print sumas[6],GPRMC,sumas[8],GPGLL, sumas[8],GPGSV
print nameGP[0],sumas[6],sumas[0], nameGP[1],sumas[6],sumas[1]
print nameGP[0],sumas[7],sumas[2], nameGP[1],sumas[7],sumas[3]
print nameGP[0],sumas[8],sumas[4], nameGP[1],sumas[8],sumas[5]
RMC = (sumas[0] + sumas[1] )/2
GSV = (sumas[2] + sumas[3])/2
GLL = (sumas[4] + sumas[5])/2
print "promedio int GPRMC: ",RMC
print "promedio int GPGSV: ",GSV
print "promedio int GPGLL: ",GLL
Se pide:
a) Cuente el Total de Apariciones de: $GPRMC, $GPGSV y $ GPGLL
b) Suma Total de Numeros Enteros y Flotantes solo para $GPRMC
c) Suma Total de Numeros Enteros y Flotantes solo para $GPGSV
d) Suma Total de Numeros Enteros y Flotantes solo para $GPGLL
e) Promedios de b, c y d
Archivo .csv
Codigo Fuente:
import csv
##----------------Metodos-------------
def tipoInt(n):
try:
int(n)
return True
except ValueError:
return False
def tipoFloat(n):
try:
float(n)
return True
except ValueError:
return False
##-----------Fin Metodos--------------
##-------------------------MAIN--------------------------
##variables
GPRMC = 0
GPGSV = 0
GPGLL = 0
nameGP = ["sumInt"," sumFlo"]
sumas = [0, 0.00, 0, 0.00, 0, 0.00,'','','']
##se abre el archivo .csv
f = open('nalca_3.csv')
##lee el archivo
lns = csv.reader(f)
##recorre linea a linea
for line in lns:
##recorre cada palabra
for lenline in line:
##identificador $GPRMC,$GPGSV,$GPGLL
identificador = line[0]
if identificador =='$GPRMC':
GPRMC+=1
sumas[6] = "GPRMC:"
if (tipoInt(lenline)):
sumas[0] += int(lenline)
elif(tipoFloat(lenline)):
sumas[1] += float(lenline)
elif identificador =='$GPGSV':
GPGSV+=1
sumas[7] = "GPCSV:"
if (tipoInt(lenline)):
sumas[2] += int(lenline)
elif(tipoFloat(lenline)):
sumas[3] += float(lenline)
elif identificador =='$GPGLL':
sumas[8] = "GPGLL:"
GPGLL+=1
if (tipoInt(lenline)):
sumas[4] += int(lenline)
elif(tipoFloat(lenline)):
sumas[5] += float(lenline)
print sumas[6],GPRMC,sumas[8],GPGLL, sumas[8],GPGSV
print nameGP[0],sumas[6],sumas[0], nameGP[1],sumas[6],sumas[1]
print nameGP[0],sumas[7],sumas[2], nameGP[1],sumas[7],sumas[3]
print nameGP[0],sumas[8],sumas[4], nameGP[1],sumas[8],sumas[5]
RMC = (sumas[0] + sumas[1] )/2
GSV = (sumas[2] + sumas[3])/2
GLL = (sumas[4] + sumas[5])/2
print "promedio int GPRMC: ",RMC
print "promedio int GPGSV: ",GSV
print "promedio int GPGLL: ",GLL
graxias men
ResponderBorrar