SAS Mapping functionality to measure and present the Veracity of Location Data

Preview:

Citation preview

SAS Mapping functionality to measure and present the Veracity of Location Data

2

University of Derby, UKr.j.self@derby.ac.uk

http://computing.derby.ac.uk/wordpress/people-2/richard-j-self/

Richard J Self, Senior Lecturer in Analytics and Governance

Vishal Patel, Final Year Student, University of Derby

Daniel Corah, Final Year Student, University of Derby,

Viktor Horecny , Final Year Student, University of Derby

3

Objectives SAS – Exploring Mapping Functionality to Visualise

Veracity of Location Data

Lessons Learned about Location Data Veracity and SAS Visualisations

4

Context Smart Device Locations Services is seen as reliable

May not be true, consequences are many Retail LBS based marketing Social network apps Photo locations in social media and Google Maps Forensics Criminal Justice system

Research Question is To what extent is A-GPS reliable and in what circumstances?

5

Triggers to Research Project

6

Final Year Student Project 12 students researching

3 are co-authors, contributing valuable analyses

7 students contributed data to this presentation (2460 data points) Daniel Corah Vishal Patel Amna Almutawa Ishwa Khadka Victor Horecny Shehzaad kashmiri Farondeep Bains

7

Critical Questions Levels of accuracy in different conditions

Indoors / outdoors Rural / residential / urban Weather conditions Stability of indicated location Differences between devices (make / model / operating system)

8

V Patel – Key Insight – Models Varyphone N Mean Std Dev Std Err

Nexus 54 41.5629 24.1146 3.2816

iPhone 58 85.5101 113.8 14.9403

Diff (1-2) -43.9472 83.5987 15.8088

Method Variances DF t Value Pr > |t|Pooled Equal 110 -2.78 0.0064SatterthwaiteUnequal 62.476 -2.87 0.0055

Proc Univariate – Histogram issues

9

D Corah – Key Insight – Stone Built Houses

Proc SGPLOT

10

V Horecny – Key Insight – Chipsets

HTC-M8 (blue) modern chipsetHTC-Desire S (Pink) early version chipsetUses XL/JMP®

11

Other Insights

Cloud conditions affect accuracy

Accuracy variable with time

12

Overall Accuracy of LBS

85% <+ 25 metres

2364 out of 2420 <= 500 m

13

Accuracy Variable with Time

• Start-up of LS max error 360m

• Uses Annotate coding and macros

14

Accuracy Variable with Time

15

Consolidated Data – 2420 pointsRed = > 300m

16

Annotate for Time Based Accuracy Challenges

Auto-scaling and boundaries Data System ANNOMAC coding for labels

17

Raw DataLat_True_Deg

Long_True_Deg Lat_Xif_Deg Long_Xif_Deg Loc_Ind Image_Path Date_Time_Stamp Phone_type

53.962118 -1.308214 53.960864 -1.308306Open IMG_0464.JPG 06/09/2014 07:24:24 iPhone 5C

53.962118 -1.308214 53.958194 -1.311589Open IMG_0466.JPG 17/08/2014 13:56:51 iPhone 5C

53.962118 -1.308214 53.960864 -1.308306Open IMG_0465.JPG 17/08/2014 13:52:47 iPhone 5C

52.911537 -1.484403 52.909194 -1.486745circuit 1 IMG_01102.jpg 23/03/2015 08:25:46 iPhone 5C

52.911537 -1.484403 52.909194 -1.486742circuit 1 IMG_01103.jpg 23/03/2015 08:25:47 iPhone 5C

52.911537 -1.484403 52.909194 -1.486742circuit 1 IMG_01104.jpg 23/03/2015 08:25:48 iPhone 5C

52.911537 -1.484403 52.909194 -1.486742circuit 1 IMG_01105.jpg 23/03/2015 08:25:49 iPhone 5C

52.911537 -1.484403 52.909194 -1.486742circuit 1 IMG_01106.jpg 23/03/2015 08:25:50 iPhone 5C

52.911537 -1.484403 52.909194 -1.486742circuit 1 IMG_01107.jpg 23/03/2015 08:25:51 iPhone 5C

52.911537 -1.484403 52.909194 -1.486742circuit 1 IMG_01108.jpg 23/03/2015 08:25:52 iPhone 5C

52.911537 -1.484403 52.909194 -1.486742circuit 1 IMG_01109.jpg 23/03/2015 08:25:53 iPhone 5C

Lat_True_Deg and Long_True_Deg found through Google MapsLat_Xif_Deg, Long_Xif_Deg and Date_Time_Stamp read from images using IrfanView

18

Boundaries proc means data=work_derby min max noprint; output out=means_derby; var x y; run; /* deduce and output corner coordinates (in Lat (Y) / Long Degrees (X)) and output using symput

*/ data _null_; set means_derby; if _stat_ = 'MIN' then do; call symput('min_x', x); call symput('min_y',y); end; if _stat_ = 'MAX' then do; call symput('max_x', x); call symput('max_y',y); end; run;

19

Auto-Scaling xsys = '1'; /* using Frame area*/

ysys = '1';

hsys = '3';

dotsize=0.5; /*basic size of plotted error dot % of frame */

/* plot data in centered 90% of Frame Area */

/* min_x etc set from previous section */

x=(90-(x - symget('min_x'))*90 / (symget('max_x') - symget('min_x')))+5;

y=(y - symget('min_y'))*90 / (symget('max_y') - symget('min_y'))+5;

20

Dot Generation – using annomac macros if error < 1 then do; dotsize=dotsize*1; /* small dot for high accuracy */ %slice(x,y,0,360,dotsize,darkgreen,solid,3); /* different colors for different errors */ end; else if error>=1 and error < 10 then do; dotsize=dotsize*1.5; %slice(x,y,0,360,dotsize,mediumgreen,solid,3); end; else if error >= 10 and error < 100 then do; dotsize=dotsize*2; %slice(x,y,0,360,dotsize,mediumyellow,solid,3); end; else if error >= 100 and error < 200 then do; dotsize=dotsize*2.5; /* large dot for big error */ %slice(x,y,0,360,dotsize,darkyellow,solid,3); end;

21

Adding Sequence Labels length color $64 number $4 posn 8. ; retain posn; if _n_ = 1 then posn = 0; . . posn = posn + 1; if posn = 10 then posn = 1; /* similar to using the MOD( ) function base 9 */ if posn=1 then do; %label(x,y,number,white,0,0,3,times new roman,1); /* Position cannot be added from a variable

*/ end; /* in the label macro (last macro parameter)

*/ else if posn=2 then do; %label(x,y,number,white,0,0,3,times new roman,2); end; /* etc. */

22

Final Output – Using Proc GANNO goptions reset=all border cback=black ctitle=white; proc ganno annotate=workanno; /* from previous Data Step */ run;

23

Conclusions Mapping relies on using Annotate

Can be displayed in Proc GMAP or GANNO

GANNO allows simple scaling.

24

Session ID #3202

Recommended