gps 파일을 익명화하는 방법?


11

법적 의미에서 익명으로 만들려는 GPS 추적이 있다고 가정하십시오. 어떻게 하시겠습니까? 가장 가까운 x 거리로 스냅하고 시간을 충분히 제거합니까? 이것에 대해 국제적으로 합의 된 표준이 있습니까? 이 작업을 수행하는 알고리즘을 이미 작성한 사람이 있습니까? 그렇지 않으면 진화하는 stplanr 패키지 에서이 기능을 수행 할 계획 입니다.

내 ' 식별 가능 '데이터 에서 재현 가능한 예제 ( @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 4

당신은 무엇을 위해 그것을 사용할 계획입니까, 모든 경로에 대해 시작 지점을 0,0으로 설정할 수 있습니다
Ian Turton

흥미로운 질문이며 공유 사이클링 데이터와 유사한 문제를 처리하고 있습니다. GPX 파일을 '익명'으로 상상 하고 GPX 형식으로 유지하고 있습니까? 선으로 저장할 수 있습니까 (트랙 포인트 정보 무시)? 정말로 무엇을 가리고 싶습니까?
Simbamangu

동료들과의 토론을 통해 첫 x 미터와 마지막 x 미터를 'k anonymous'en.wikipedia.org/ wiki/ K- anonymity로 간주되는 거리까지 자르는 아이디어가 생겼습니다 . @drfrogsplat에 대한 답변으로, 나는 ICO의 익명성에 대한 정의를 모호합니다. 상황은 이것이 개인 데이터를 구성 할 것입니다 "(그러나 어느 것입니까?) : ico.org.uk/media/1061/anonymisation-code.pdf
RobinLovelace

1
일련 의 GPS 포인트에 대한 K 익명 성은 무엇입니까 ? 첫 번째 / 마지막 미터를 '초핑'한다는 것은 무슨 의미입니까-포인트 세트를 트리밍 (짧게)하거나 트랙 포인트의 정확도를 낮추는 것을 의미합니까?
Simbamangu

답변:


5

로컬 사이클링 그룹과 협력하여 GPX 파일을 두 가지 기준 (주로 보안을 위해)으로 익명화하고 있습니다. 나는 익명의 데이터에 대한 표준적인 방법을 본 적이 없지만 이것은 도로와 속도 정보를 따라 정확성을 유지하면서 회원의 두 가지 관심사를 충족시킵니다.

  • 개인의 '개인'영역을 제거하는 개인 위치
  • 이동 데이터를 사용하여 개별 움직임을 식별 할 수 없도록 타임 스탬프를 숨기십시오.

GPSBabel은 명령 행에서 두 가지를 모두 수행 할 수 있습니다. 예를 들어 GPX 파일의 시간을 +123450 초만큼 이동하고 탄자니아 북부의 랜드 마크에서 0.5km 떨어진 모든 트랙 포인트를 제거합니다.

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 자리 = ~ 110m 정확도 .

나는 보통 R에서 GPSBabel을 호출하여 임의의 타임 시프트 +/- 2 주를 포함하여 필터가 적용된 새로운 GPX 파일을 작성합니다. 이것은 bash 또는 python 스크립트로 더 좋지만 다른 많은 작업은 R에 있으며 게으르다.

# 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

운이 나쁘다, 이것은 매우 어렵다! 당신이 그것에 대해 진지한 경우 아마도 당신이 추구하는 것이기 때문에 차등 개인 정보 보호에 대해 읽어야합니다.

이 문제를 생각할 때는 긴 외딴 길 끝에 사는 은밀한 사람의 경우를 고려해야합니다. 당신은 정말로 당신이 그들의 GPS 좌표에 대해 무언가를 할 수 있다고 생각하고 그 특정 사람에 대해 아무것도 밝히지 않습니다. 여기에있는 부가 정보는 한 사람 만이 그곳에 살고 있다는 것을 쉽게 발견 할 수 있다는 것입니다.

사용자 ID를 제거하고 데이터 포인트에 시간을 추가하고 노이즈를 추가하는 것이 좋습니다. 그러나 문제는 모든 데이터 포인트가 서로 밀접하게 연관되어 있기 때문에 각 포인트에 임의의 노이즈를 추가하면 노이즈가 취소되고 누군가가 가능성있는 궤적을 도출 할 수 있다는 것입니다. 예를 들어 궤적을 일정하게 유지함으로써 잡음이이 공격에 내성이 있어야합니다. 그러나 궤적은 도로 등을 기반으로 한 가능성있는 경로와 쉽게 일치 할 수 있습니다.

당신이 끝내게 될 데이터가 여전히 당신이 그것으로하고 싶은 일을 할 수 있는지 확실하지 않지만 적어도 열정적 인 분야입니다.

추신 : 법적으로 수용 가능한지 잘 모르겠습니다. 차등 개인 정보 보호에 대한 수학적 정의가 가장 강력하면서도 목표와 국가에 따라 달라집니다.


0

특정 최소 및 최대 오프셋 사이의 임의의 거리만큼 각 점의 X 및 Y 좌표를 조정하십시오. 또한 오프셋 방향 (플러스 또는 마이너스)을 임의로 선택합니다. 랜덤 화에 일부 점이 좌표 쌍의 한 부분 또는 두 부분 모두에 조정되지 않을 수 있음을 포함합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.