r - Import coordinates from a GPS device (text file) -


how import coordinates (name of point, latitude , longitude) text. there small example of gps output:

jb,nmteploty_a,dt08-30-2012,tm18:33:23 mo,ad0,un1,sf1.00000000,ec0,eo0.0,au0 --fast survey version 3.0.3 --crd: alphanumeric --utm wgs84 zone 34 --vybaveni: promark 100/120/200/220 --antenna type: [ash111661],ra0.0953m,shmp0.0483m,l10.0754m,l20.0719m,--at1675-539a --lokaiz. soubor: zadny --soubor separace geoidu: zadny --gps meritko: 1.00000000 --scale point not used --rtk method: rtcm v3.0, device: internet/telefon, network: ntrip skpos_cm_31 bp,pnbp0000001,la48.455805780000,ln19.473306486000,el730.2370,ag0.000,pa0.000,-- --entered hr: 2.1800, vertical ls,hr2.2554 gps,pnt1,la48.455791234500,ln19.473320912400,el742.097500,-- --gs,pn**t1**,n **5402156.4131**,e **411272.6784**,el739.8421,-- g0,08/30/2012 16:33:15,(average) - base id read @ rover: 0184 g1,bpbp0000001,pnt1,dx9.538,dy6.564,dz5.957 g2,vx0.39187600,vy0.38068900,vz0.43560000 g3,xy-0.04224522,xz-0.03550614,yz-0.01908844 --gt,pnt1,sw1703,st405195700,ew1703,et405195700 --hrms:0.879, vrms:0.660, status:float, sats:6, pdop:3.600, hdop:1.600, vdop:3.200 --dt08-30-2012 --tm18:33:24 --entered hr: 2.0300, vertical ls,hr2.1054 gps,pnt2,la48.455831723400,ln19.473281556600,el732.594500,-- --gs,pn**t2**,n **5402169.0422**,e **411264.8433**,el730.4891,-- g0,08/30/2012 16:37:17,(average) - base id read @ rover: 0184 g1,bpbp0000001,pnt2,dx-2.484,dy-6.305,dz7.055 g2,vx1.16061620,vy0.70558220,vz2.24236185 g3,xy-0.55851595,xz-1.13428888,yz0.45677565 --gt,pnt2,sw1703,st405437400,ew1703,et405437400 --hrms:1.343, vrms:1.464, status:float, sats:7, pdop:2.500, hdop:1.500, vdop:2.000 --dt08-30-2012 --tm18:37:22 gps,pnt3,la48.455826060900,ln19.473298556100,el738.839750,-- --gs,pn**t3**,n **5402167.2388**,e **411268.2855**,el736.7343,-- g0,08/30/2012 16:38:57,(average) - base id read @ rover: 0184 g1,bpbp0000001,pnt3,dx1.452,dy-1.199,dz10.600 g2,vx0.86879600,vy0.46316300,vz2.23263940 g3,xy0.01002715,xz-0.87265410,yz-0.07329004 --gt,pnt3,sw1703,st405537200,ew1703,et405537200 --hrms:1.159, vrms:1.501, status:float, sats:7, pdop:2.500, hdop:1.500, vdop:2.000 --dt08-30-2012 --tm18:39:01 

i want list of coordinates this:

t1 5402156.413 411272.6784 t2 5402169.042 411264.8433 t3 5402167.239 411268.2855 

any ideas?

far elegant solution works sample data. may not work on larger data set if sample not representative.

gpstxt <- "jb,nmteploty_a,dt08-30-2012,tm18:33:23 mo,ad0,un1,sf1.00000000,ec0,eo0.0,au0 --fast survey version 3.0.3 --crd: alphanumeric --utm wgs84 zone 34 --vybaveni: promark 100/120/200/220 --antenna type: [ash111661],ra0.0953m,shmp0.0483m,l10.0754m,l20.0719m,--at1675-539a --lokaiz. soubor: zadny --soubor separace geoidu: zadny --gps meritko: 1.00000000 --scale point not used --rtk method: rtcm v3.0, device: internet/telefon, network: ntrip skpos_cm_31 bp,pnbp0000001,la48.455805780000,ln19.473306486000,el730.2370,ag0.000,pa0.000,-- --entered hr: 2.1800, vertical ls,hr2.2554 gps,pnt1,la48.455791234500,ln19.473320912400,el742.097500,-- --gs,pnt1,n 5402156.4131,e 411272.6784,el739.8421,-- g0,08/30/2012 16:33:15,(average) - base id read @ rover: 0184 g1,bpbp0000001,pnt1,dx9.538,dy6.564,dz5.957 g2,vx0.39187600,vy0.38068900,vz0.43560000 g3,xy-0.04224522,xz-0.03550614,yz-0.01908844 --gt,pnt1,sw1703,st405195700,ew1703,et405195700 --hrms:0.879, vrms:0.660, status:float, sats:6, pdop:3.600, hdop:1.600, vdop:3.200 --dt08-30-2012 --tm18:33:24 --entered hr: 2.0300, vertical ls,hr2.1054 gps,pnt2,la48.455831723400,ln19.473281556600,el732.594500,-- --gs,pnt2,n 5402169.0422,e 411264.8433,el730.4891,-- g0,08/30/2012 16:37:17,(average) - base id read @ rover: 0184 g1,bpbp0000001,pnt2,dx-2.484,dy-6.305,dz7.055 g2,vx1.16061620,vy0.70558220,vz2.24236185 g3,xy-0.55851595,xz-1.13428888,yz0.45677565 --gt,pnt2,sw1703,st405437400,ew1703,et405437400 --hrms:1.343, vrms:1.464, status:float, sats:7, pdop:2.500, hdop:1.500, vdop:2.000 --dt08-30-2012 --tm18:37:22 gps,pnt3,la48.455826060900,ln19.473298556100,el738.839750,-- --gs,pnt3,n 5402167.2388,e 411268.2855,el736.7343,-- g0,08/30/2012 16:38:57,(average) - base id read @ rover: 0184 g1,bpbp0000001,pnt3,dx1.452,dy-1.199,dz10.600 g2,vx0.86879600,vy0.46316300,vz2.23263940 g3,xy0.01002715,xz-0.87265410,yz-0.07329004 --gt,pnt3,sw1703,st405537200,ew1703,et405537200 --hrms:1.159, vrms:1.501, status:float, sats:7, pdop:2.500, hdop:1.500, vdop:2.000 --dt08-30-2012 --tm18:39:01"  gpstxt <- gsub("gps,", "\n", gpstxt) gpsdata <- read.table(text=gsub("n |e ","",gpstxt), skip = 1, fill = t, sep = ",")[,7:8] gpsdata <- format(gpsdata, digits = 15)   # restore display of decimals have been truncated 

which gives:

            v7          v8 1 5402156.4131 411272.6784 2 5402169.0422 411264.8433 3 5402167.2388 411268.2855 

Comments