कैसे एक एनपीएस फ़ाइल को अनाम करने के लिए?


11

कल्पना कीजिए कि आपके पास एक जीपीएस ट्रेस है जिसे आप कानूनी अर्थ में, अनाम बनाना चाहते हैं। आप यह कैसे करेंगे? क्या निकटतम x दूरी पर जाना और समय को अलग करना है? क्या इस पर अंतरराष्ट्रीय स्तर पर सहमत मानक हैं? क्या किसी ने पहले से ही ऐसा करने के लिए एक एल्गोरिथ्म लिखा है? यदि मैं ऐसा करने के लिए अपने विकसित किए गए stplanr पैकेज में कोई फ़ंक्शन करने की योजना नहीं बना रहा हूं ।

मेरे स्वयं के ' पहचान योग्य ' डेटा से Reproducible उदाहरण ( @geospacedman से भयानक रोटेशन फ़ंक्शन का उपयोग करके ) :

library(rgdal)
library(tmap)
downloader::download("https://www.openstreetmap.org/trace/1619756/data", "test.gpx")

r <-readOGR(dsn = "test.gpx", layer = "tracks")
r <- spTransform(r, CRS("+init=epsg:27700"))
rproj <- rotateProj(rs, 90) # rotate projection for plotting
r <- spTransform(r, rproj)
rs <- rgeos::gSimplify(r, 1000) # snap to nearest km
qtm(r) + qtm(rs, line.col = "red") + tm_layout(draw.frame = F) + tm_scale_bar()

लाल मार्ग

परिणाम ऊपर दिखाया गया है। संक्षेप में: क्या लाल मार्ग 'पहचानने योग्य' है और क्या इसका कोई बेहतर तरीका है?


5
मुझे लगता है कि आपको यहां "अनाम" के लिए एक अच्छी परिभाषा और गुंजाइश की आवश्यकता हो सकती है। यह डेटा के संदर्भ पर बेहद निर्भर करेगा, जैसे कि अगर शहर में, किसी ने भी एक बहुत ही सटीक मार्ग का पालन किया हो सकता है, एक दूरस्थ / प्रतिबंधित क्षेत्र में यह बहुत अधिक जानकारी देता है अगर यह शुरू होता है या समाप्त होता है या इसके माध्यम से जाता है एक विशेष रूप से जानकारीपूर्ण स्थान (जैसे किसी का घर)। और किन जानकारियों को बरकरार रखना है? यात्रा की दूरी? सापेक्ष समय या वेग? एक निशान बाहर मानचित्रण के लिए पथ? ये निर्धारित करेंगे कि क्या आप केवल (कुछ) डेटा निकाल सकते हैं, या उदाहरण के लिए निरंतर / यादृच्छिक शोर जोड़ सकते हैं।
drfrogsplat

क्या आप इसे मामलों के लिए भी उपयोग करने की योजना बना रहे हैं, आप अपने सभी मार्गों के लिए 0,0 पर शुरुआती बिंदु निर्धारित कर सकते हैं
इयान टॉर्टन

दिलचस्प सवाल और साझा साइकिल डेटा के साथ कुछ इसी तरह के मुद्दों से निपट रहा हूं। क्या आप एक GPX फ़ाइल को 'अनाम' बनाने और GPX प्रारूप में रखने की कल्पना कर रहे हैं ? क्या आप एक पंक्ति के रूप में सहेज सकते हैं (ट्रैकपॉइंट जानकारी को त्यागना)? आप वास्तव में क्या अस्पष्ट करना चाहते हैं?
सिंबांगुगु

सहकर्मियों के साथ चर्चा ने पहले और आखिरी एक्स मीटर को बस कुछ दूरी तक काट देने के विचार को जन्म दिया है जिसे 'k' गुमनाम ' en.wikipedia.org/wiki/K-anonymity ' माना जाता है । @Drfrogsplat के जवाब में मेरा मतलब है कि ICO गुमनामी का बचाव, जो अस्पष्ट है: "स्थानिक जानकारी से निपटने के लिए कोई सरल नियम नहीं है - जैसे कि पोस्टकोड, जीपीएस डेटा या मानचित्र संदर्भ - डेटा संरक्षण अधिनियम 1998 (डीपीए) के तहत। कुछ में। परिस्थितियाँ यह व्यक्तिगत डेटा का गठन करेंगी "(लेकिन कौन सा?): ico.org.uk/media/1061/anonymisation-code.pdf
रोबिनवेल्वेस

1
K अनाम क्या है GPS बिंदुओं के अनुक्रम के लिए ? पहले / अंतिम मीटरों को 'काट' देने से आपका क्या मतलब है - आप बिंदुओं के सेट को छोटा कर रहे हैं (छोटा), या ट्रैकपॉइंट की सटीकता कम कर रहे हैं?
सिंबांगुगु

जवाबों:


5

मैं दो मानदंडों (मुख्य रूप से सुरक्षा के लिए) पर GPX फ़ाइलों को अनाम करने के लिए हमारे स्थानीय साइक्लिंग समूह के साथ काम कर रहा हूं। मैं कभी भी अज्ञात डेटा के मानक तरीके के पार नहीं आया हूँ, लेकिन यह हमारे सदस्यों की दो चिंताओं को संतुष्ट करता है, जबकि सड़कों और गति की जानकारी के साथ सटीकता को संरक्षित करता है:

  • व्यक्तिगत स्थान, व्यक्तियों के लिए 'निजी' क्षेत्रों को हटाना;
  • टाइमस्टैम्प का अवलोकन करना ताकि व्यक्तिगत आंदोलनों की पहचान करने के लिए यात्रा डेटा का उपयोग नहीं किया जा सके।

GPSBabel इन दोनों को कमांड लाइन से कर सकता है - उदाहरण के लिए, GPX फ़ाइल में समय को +123450 सेकंड तक स्थानांतरित करने के लिए, और उत्तरी तंजानिया में एक मील के पत्थर से 0.5 किमी दूर सभी ट्रैकपॉइंट को हटा दें:

gpsbabel -t -i gpx -f infile.gpx \
  -x transform,wpt=trk,del -x track,move=123450s \
  -x radius,distance=0.5K,lat=-3.368,lon=36.624,nosort,exclude \
  -x transform,trk=wpt,del \
  -o gpx -F infile_rand.gpx
  • -t: प्रक्रिया केवल पटरियों;
  • -i, -f: इनपुट फ़ाइल प्रकार (gpx) और फ़ाइल नाम;
  • -x: दो अनुक्रमिक (-x) एक बिंदु के आसपास टाइमशिफ्ट (चाल) और हटाने (त्रिज्या, बहिष्कृत) के लिए फ़िल्टर तर्क;
  • -o, -F: आउटपुट फ़ाइल प्रकार और फ़ाइल नाम।

यह कमांड कई फिल्टर को एक साथ जोड़ देता है - पहले ट्रैकपॉइंट को वेपॉइंट में बदल देता है, फिर फ़िल्टरिंग, फिर वापस ट्रैकप्वाइंट में बदल देता है।

ध्यान दें कि लैंडमार्क / गोपनीयता क्षेत्र के आसपास दशमलव स्थानों को कम करना बहुत महत्वपूर्ण है क्योंकि यह गोपनीयता क्षेत्र के सटीक केंद्र को अस्पष्ट करता है। 3 दशमलव स्थान = ~ 110 मी सटीकता इस मामले में।

मैं आमतौर पर R से GPSBabel कॉल करता हूं, एक नए GPX फ़ाइल को फ़िल्टर के साथ लागू करता है, जिसमें एक यादृच्छिक टाइमशिफ्ट +/- 2 सप्ताह शामिल है। यह बैश या पाइथॉन स्क्रिप्ट के रूप में बेहतर होगा लेकिन मेरे द्वारा किए जाने वाले बहुत सारे काम आर और मैं आलसी हैं ...

# Get the correct location for GPSBabel:
GB <- Sys.which("gpsbabel")

# Set up the filters
shift <- round((runif(1, 0, 2600000) - 1300000), 0) # +/- 2 weeks in secs
filter <- " -x transform,wpt=trk,del"
filter <- paste(" -x track,move=", shift, "s", sep = "")
filter <- paste(filter, " -x radius,distance=", dist, "K,", "lat=", lat, ",long=", lon, sep = "")
filter <- paste(filter, " -x transform,wpt=trk,del", sep="")

# Pass the complete command to the system
system(paste(GB, " -t -i gpx -f ", gpx_file, filter, " -o gpx -F ", 
           gsub(".gpx", replacement = "_rand.gpx", x = gpx_file, fixed = T),
           sep = ""), intern = TRUE)

1

आप भाग्य से बाहर हैं, यह करना बहुत कठिन है! यदि आप इसके बारे में गंभीर हैं, तो आपको अंतर गोपनीयता के बारे में पढ़ना चाहिए क्योंकि संभवतः यही आप के बाद हैं।

जब आप इस समस्या के बारे में सोचते हैं, तो आपको लंबे पृथक सड़क के अंत में रहने वाले एक वैरागी व्यक्ति के मामले पर विचार करना चाहिए। क्या आप वास्तव में सोचते हैं कि आप उनके जीपीएस समन्वय के बारे में कुछ कर सकते हैं और उस विशेष व्यक्ति के बारे में कुछ भी नहीं बता सकते हैं। यहां पक्ष की जानकारी यह है कि यह आसानी से पता लगाया जा सकता है कि केवल एक व्यक्ति वहां रहता है।

उपयोगकर्ता आईडी को अलग करना, डेटा बिंदुओं के लिए समय और शोर जोड़ना शुरू करने के लिए एक अच्छी जगह है। लेकिन समस्या यह है कि सभी डेटा पॉइंट्स बहुत अधिक सहसंबद्ध हैं इसलिए यदि आप प्रत्येक बिंदु पर यादृच्छिक शोर जोड़ते हैं तो शोर रद्द हो जाएगा और कोई व्यक्ति संभावित प्रक्षेपवक्रों को प्राप्त करने में सक्षम होगा। इसलिए शोर इस हमले के लिए प्रतिरोधी होगा, उदाहरण के लिए इसे एक प्रक्षेपवक्र पर स्थिर बनाकर। लेकिन फिर, सड़कों आदि के आधार पर संभावित मार्गों के साथ प्रक्षेपवक्र का आसानी से मिलान किया जा सकता है।

मुझे यकीन नहीं है कि यदि आप जिस डेटा को समाप्त करेंगे, वह अभी भी आपके लिए जो भी करना चाहते हैं उसके लिए काम करने योग्य होगा, लेकिन कम से कम यह एक भावुक क्षेत्र है।

पुनश्च: मुझे कानूनी रूप से स्वीकार्य के बारे में पता नहीं है, मैं उम्मीद करूंगा कि यह एक लक्ष्यीकरण और देश विशेष हो, जबकि अंतर गोपनीयता की गणितीय परिभाषा सबसे मजबूत है जो आप प्राप्त कर सकते हैं।


0

एक निश्चित न्यूनतम और अधिकतम ऑफसेट के बीच यादृच्छिक दूरी से प्रत्येक बिंदु के एक्स और वाई समन्वय का समायोजन करें। ऑफसेट (प्लस या माइनस) की दिशा को एक यादृच्छिक चयन भी बनाते हैं। यादृच्छिकता में शामिल करें कि कुछ बिंदुओं में एक समन्वय जोड़ी के एक या दोनों भागों के लिए कोई समायोजन नहीं हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.