Table of Contents

all data

summitlogs.zip

dark heart of codeness .walk (Tue 3rd August)

Plot of spatial co-ordinates (GPS), and wide-band signal intensity from Ryan Jordan's excursion during Wilfried's Dark Heart of Codeness walk. Image created using Python and gnuplot.

The same using google maps with thanks to http://www.gpsvisualizer.com/

And using viking with the gpx file (converted by http://www.gpsvisualizer.com/)

And logged (Martin Howse excursion) on Garmin GPS.

dark heart of codeness finale (Friday 6th August)

Measurement of white noise generator intensity in the dark heart (point hill) - Tuesday 3rd (6PM) until Friday 6th (2PM) = 68 hours.

Tyburn self-execution (Thursday 5th)

Plot of spatial co-ordinates (GPS), wide-band signal intensity and GSR (Galvanic Skin Response) of xname during the self-execution walk in Tyburn. Image created using Python and gnuplot.

Another dark heart (same data set) in Connaught Square (colour as signal intensity).

And from Viking render.

And with GSR colourised!

And from Viking render.

Plot of spatial co-ordinates (GPS), and wide-band signal intensity from mini-scry GPS device.

As above.

And from Viking render.

And from Garmin GPS.

SPACE magnetic field (Wednesday 4th -> Sunday 8th)

Sampling from FGM-3 magnet sensor (but results are not as expected - sensor and measurement must be re-tested)!

Underwater scry Friday 6th

And river walk Garmin GPS

executed/scryed site of cross bone Saturday 7th

Garmin GPS only.

code/HOWTO/notes

Notes: Still not sure about EW orientation and meter marking!

Code

With credits to: Beginning-Python-Visualization: http://github.com/freephys/Beginning-Python-Visualization

gps.py
from pylab import *
import csv, os, Gnuplot, Gnuplot.funcutils
 
g = Gnuplot.Gnuplot(debug=1)
NMI = 1852.0
D2R = pi/180.0
 
#data = sys.argv[1]
#title = sys.argv[2]
 
def read_csv_file(filename):
    data = []
    for row in csv.reader(open(filename)):
        data.append(row)
    return data
 
def process_gps_data(data):
    latitude    = []
    longitude   = []
    intensity   = []
    gsr         = []
    for row in data:
        latitude.append(float(row[0][0:2]) + \
                            float(row[0][2:])/60.0)
        longitude.append((float(row[1][0:3]) + \
                              float(row[1][3:])/60.0))
        intensity.append(float(row[2]))
        #        gsr.append(float(row[3]))
 
#    return (array(latitude), array(longitude), \
#                array(intensity), array(gsr))
 
    return (array(latitude), array(longitude), \
                array(intensity))
 
y=read_csv_file('/root/projects/summit/logfiles/riverwalk_short')
#(lat, long, intensity, gsr) = process_gps_data(y)
(lat, long, intensity) = process_gps_data(y)
# translate spherical coordinates to Cartesian
py = (lat-min(lat))*NMI*60.0
px = (long-min(long))*NMI*60.0*cos(D2R*lat)
newgsr=((gsr-min(gsr))*10.0)+500
#pack px, py, intensity and gsr into newy
newy=[]
for x,yz,z,zz in zip(px,py,intensity,newgsr):
    newy.append((x,yz,z,zz))
 
g('set parametric')
g('set style data line')
g('set surface')
g('unset key')
g('unset contour')
g('set dgrid3d 40,40,10')
g('set xlabel "metres EW"') 
g('set ylabel "metres SN"') 
g('set label "signal intensity"at -100,0,1000') 
g('set view 60,20')
g.title("underwater friday 6th")
g('set term png size 1200,800')
g('set output "/root/projects/summit/logfiles/images/river2.png"')
 
#g.splot(Gnuplot.Data(newy, using=(1,2,3), with='lines'),Gnuplot.Data(newy, using=(1,2,4), with='lines'))
g.splot(Gnuplot.Data(newy, using=(1,2,3), with='lines'))

And Emacs Lisp to convert from scrying logfile (stripped down NMEA) to decimal (fixed 15.03.2011):

nmeatodec.el
(defun nmeatodec()
  (interactive)
  (goto-char (point-min))
  (while
      (re-search-forward "^[0-9]" nil t)
    ;; find lat, insert dec point, divide 60, insert
    (forward-char 1)
    (insert ".")
    ;; remove next .
    (re-search-forward "\\." nil t)
    (delete-char -1)
    ;; grab region and /60.
    (setq pnt (- (point) 2))
    (re-search-forward "," nil t)
    (setq decstring (buffer-substring pnt (- (match-end 0) 1)))
    (setq dec (/ (string-to-number decstring) 60))
    ;; kill and insert
    (kill-region pnt (- (match-end 0) 1))
    (goto-char pnt)
    (insert (number-to-string dec))
    (re-search-forward "," nil t)
    (forward-char 3)
    (insert ".")
    ;; remove next .
    (re-search-forward "\\." nil t)
    (delete-char -1)  
    ;; same again
    (setq pnt (- (point) 2))
    (re-search-forward "," nil t)
    (setq decstring (buffer-substring pnt (- (match-end 0) 1)))
    (setq dec (/ (string-to-number decstring) 60.0)) ;; now get rid of .
        (kill-region pnt (- (match-end 0) 1))
    (goto-char pnt)
    (insert (number-to-string dec))
    (re-search-backward "\\." nil t)
    (delete-char 1)  
    (forward-line 1)
    (beginning-of-line)))

which we can use with:

gpsbabel -t -i unicsv -f testlog -o gpx -F test.gpx

and then import into, say, viking…