Làm thế nào để ẩn danh một tập tin gps?


11

Hãy tưởng tượng bạn có một dấu vết GPS mà bạn muốn ẩn danh, theo nghĩa hợp pháp. Bạn sẽ làm điều này như thế nào? Là chụp đến khoảng cách x gần nhất và tước hết thời gian? Có tiêu chuẩn quốc tế đồng ý về điều này? Có ai đã viết một thuật toán để làm điều này? Nếu không, tôi dự định thực hiện một chức năng trong gói stplanr đang phát triển của mình để làm điều này.

Ví dụ sinh sản (sử dụng chức năng xoay tuyệt vời từ @geospacesman) từ dữ liệu ' Nhận dạng ' của riêng tôi :

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()

tuyến đường màu đỏ

Kết quả được hiển thị ở trên. Tóm lại: tuyến đường màu đỏ là "nhận dạng" và có cách nào tốt hơn không?


5
Tôi nghĩ rằng bạn có thể cần một định nghĩa và phạm vi tốt cho "ẩn danh" ở đây. Điều này sẽ phụ thuộc rất nhiều vào bối cảnh của dữ liệu, ví dụ nếu ở trong thành phố, bất kỳ ai cũng có thể đi theo một tuyến đường rất chính xác, trong một khu vực xa xôi / bị hạn chế, nó sẽ cung cấp thêm nhiều thông tin nếu nó bắt đầu / kết thúc tại hoặc đi qua một vị trí đặc biệt nhiều thông tin (ví dụ nhà của ai đó). Và những thông tin nào cần được giữ lại? quãng đường đi được? thời gian tương đối hay vận tốc? đường dẫn để vạch ra một dấu vết? Những thứ này sẽ xác định xem bạn có thể chỉ cần loại bỏ (một số) dữ liệu hay thêm nhiễu không đổi / ngẫu nhiên chẳng hạn.
drfrogsplat

Bạn dự định sử dụng nó cho vấn đề gì nữa, bạn chỉ có thể đặt điểm bắt đầu là 0,0 cho tất cả các tuyến đường của mình
Ian Turton

Câu hỏi thú vị và đang xử lý một số vấn đề tương tự với dữ liệu đi xe đạp được chia sẻ. Bạn có đang tưởng tượng 'ẩn danh' một tệp GPX và giữ nó ở định dạng GPX không? Bạn có thể lưu dưới dạng một dòng (loại bỏ thông tin theo dõi)? Những gì bạn thực sự muốn tối nghĩa?
Simbamangu

Thảo luận với các đồng nghiệp đã dẫn đến ý tưởng chỉ cần cắt x mét đầu tiên và cuối cùng đến một khoảng cách được coi là 'k nặc danh' en.wikipedia.org/wiki/K-anonymousity . Trả lời @drfrogsplat, ý tôi là sự ẩn danh của ICO, điều này rất mơ hồ: "Không có quy tắc đơn giản nào để xử lý thông tin không gian - như mã bưu điện, dữ liệu GPS hoặc tham chiếu bản đồ - theo Đạo luật Bảo vệ Dữ liệu 1998 (DPA). trường hợp này sẽ tạo thành dữ liệu cá nhân "(nhưng đó là gì?): ico.org.uk/media/1061/anonymousisation-code.pdf
RobinLigsace

1
K ẩn danh là gì cho một chuỗi các điểm GPS? Ý bạn là gì khi 'chặt' các mét đầu tiên / cuối cùng - bạn có nghĩa là cắt bớt tập hợp các điểm (ngắn hơn) hoặc giảm độ chính xác của các điểm theo dõi?
Simbamangu

Câu trả lời:


5

Tôi đang làm việc với nhóm đi xe đạp địa phương của chúng tôi để ẩn danh các tệp GPX theo hai tiêu chí (chủ yếu để bảo mật). Tôi chưa bao giờ bắt gặp một cách ẩn danh dữ liệu tiêu chuẩn nhưng điều này thỏa mãn hai mối quan tâm của các thành viên của chúng tôi, trong khi vẫn giữ được độ chính xác dọc theo đường và thông tin tốc độ:

  • Địa điểm cá nhân, xóa khu vực 'riêng tư' cho cá nhân;
  • Che dấu thời gian để dữ liệu du lịch không thể được sử dụng để xác định các chuyển động riêng lẻ.

GPSBabel có thể thực hiện cả hai điều này từ dòng lệnh - ví dụ: để thay đổi thời gian trong tệp GPX thêm +123450 giây và xóa tất cả các điểm theo dõi cách điểm mốc 0,5 km ở phía bắc Tanzania:

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: chỉ theo dõi quá trình;
  • -i, -f: loại tệp đầu vào (gpx) và tên tệp;
  • -x: hai đối số bộ lọc tuần tự (-x) cho timeshift (di chuyển) và loại bỏ (bán kính, loại trừ) xung quanh một điểm;
  • -o, -F: loại tệp đầu ra và tên tệp.

Lệnh này kết hợp một số bộ lọc - đầu tiên chuyển đổi các điểm theo dõi thành các điểm mốc, sau đó lọc, sau đó chuyển đổi trở lại các điểm theo dõi.

Lưu ý rằng việc giảm các vị trí thập phân xung quanh mốc / vùng riêng tư là RẤT quan trọng vì nó che khuất trung tâm chính xác của vùng riêng tư. 3 chữ số thập phân = ~ 110m chính xác trong trường hợp này.

Tôi thường gọi GPSBabel từ R, viết tệp GPX mới với các bộ lọc được áp dụng, bao gồm cả thời gian ngẫu nhiên +/- 2 tuần. Điều này sẽ tốt hơn khi là một kịch bản bash hoặc python nhưng rất nhiều công việc khác tôi làm là trong R và tôi lười biếng ...

# 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)

0

thực hiện điều chỉnh tọa độ X và Y của mỗi điểm bằng một khoảng cách ngẫu nhiên giữa một độ lệch tối thiểu và tối đa nhất định. cũng làm cho hướng của phần bù (cộng hoặc trừ) là một lựa chọn ngẫu nhiên. Bao gồm trong ngẫu nhiên rằng một số điểm có thể không có sự điều chỉnh đối với một hoặc cả hai phần của cặp tọa độ.


0

Bạn đã hết may mắn, điều này là vô cùng khó để làm! Nếu bạn nghiêm túc về nó, bạn nên đọc về quyền riêng tư khác biệt bởi vì đây có thể là những gì bạn đang theo đuổi.

Khi bạn nghĩ về vấn đề này, bạn nên xem xét trường hợp của một người ẩn dật sống ở cuối con đường dài bị cô lập. Bạn có thực sự nghĩ rằng bạn có thể làm gì đó về tọa độ GPS của họ và không tiết lộ bất cứ điều gì về người cụ thể đó. Thông tin bên lề ở đây là có thể dễ dàng phát hiện ra rằng chỉ có một người sống ở đó.

Tước Id người dùng, thời gian và thêm nhiễu vào các điểm dữ liệu là một nơi tốt để bắt đầu. Nhưng vấn đề là tất cả các điểm dữ liệu có mối tương quan chặt chẽ với nhau nên nếu bạn thêm nhiễu ngẫu nhiên vào mỗi điểm thì nhiễu sẽ bị loại bỏ và ai đó sẽ có thể rút ra được các quỹ đạo có khả năng. Vì vậy, tiếng ồn sẽ phải chống lại cuộc tấn công này, ví dụ bằng cách làm cho nó không đổi trên một quỹ đạo. Nhưng sau đó, quỹ đạo có thể dễ dàng phù hợp với các tuyến đường có khả năng dựa trên các con đường, v.v.

Tôi không chắc liệu dữ liệu bạn sẽ kết thúc có còn khả thi cho bất cứ điều gì bạn muốn làm với nó hay không nhưng ít nhất nó là một lĩnh vực đam mê.

Tái bút: Tôi không biết về mặt pháp lý có thể chấp nhận được, tôi hy vọng nó sẽ là mục tiêu di động và cụ thể theo quốc gia trong khi định nghĩa toán học về quyền riêng tư khác biệt là mạnh mẽ nhất mà bạn có thể có được.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.