Imagine que tiene un rastreo GPS que desea hacer anónimo, en el sentido legal. ¿Cómo harías esto? ¿Ajustar a la distancia x más cercana y eliminar el tiempo es suficiente? ¿Existen estándares acordados internacionalmente sobre esto? ¿Alguien ha escrito un algoritmo para hacer esto? Si no, planeo hacer una función en mi paquete stplanr en evolución para hacer esto.
Ejemplo reproducible (usando la asombrosa función de rotación de @geospacedman) de mis propios datos ' identificables ':
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()
El resultado se muestra arriba. En resumen: ¿la ruta roja es 'identificable' y hay una mejor manera?
Respuestas:
Estoy trabajando con nuestro grupo local de ciclismo para anonimizar archivos GPX en dos criterios (principalmente por seguridad). Nunca me he encontrado con una forma estándar de anonimizar datos, pero esto satisface dos preocupaciones de nuestros miembros, al tiempo que conserva la precisión a lo largo de las carreteras y la información de velocidad:
GPSBabel puede hacer ambas cosas desde la línea de comando, por ejemplo, para cambiar los tiempos en un archivo GPX en +123450 segundos y eliminar todos los puntos de seguimiento a 0.5 km de un punto de referencia en el norte de Tanzania:
-t
: solo pistas de proceso;-i
,-f
: tipo de archivo de entrada (gpx) y nombre de archivo;-x
: dos argumentos de filtro secuenciales (-x) para Timeshift (mover) y eliminar (radio, excluir) alrededor de un punto;-o
,-F
: tipo de archivo de salida y nombre de archivo.Este comando encadena varios filtros : primero transforma los puntos de seguimiento en waypoints, luego filtra y luego vuelve a transformarlos en puntos de seguimiento.
Tenga en cuenta que reducir los lugares decimales alrededor del área de referencia / privacidad es MUY importante ya que oscurece el centro exacto del área de privacidad. 3 lugares decimales = ~ 110m de precisión en este caso.
Por lo general, llamo a GPSBabel desde R, escribiendo un nuevo archivo GPX con filtros aplicados, incluido un cambio de hora aleatorio +/- 2 semanas. Esto sería mejor como un script bash o python, pero gran parte del otro trabajo que hago es en R y soy flojo ...
fuente
No tienes suerte, ¡esto es tremendamente difícil de hacer! Si lo toma en serio, debe leer sobre la privacidad diferencial porque esto es probablemente lo que busca.
Cuando piense en este problema, debe considerar el caso de una persona reclusa que vive al final de un largo camino aislado. ¿Realmente crees que puedes hacer algo sobre su coordenada GPS y no revelar nada sobre esa persona en particular? La información adicional aquí es que se puede descubrir fácilmente que solo una persona vive allí.
Despojando la identificación del usuario, el tiempo y agregando ruido a los puntos de datos es un buen lugar para comenzar. Pero el problema es que todos los puntos de datos están fuertemente correlacionados, por lo que si agrega ruido aleatorio a cada punto, el ruido se cancelará y alguien podrá deducir las trayectorias probables. Por lo tanto, el ruido tendría que ser resistente a este ataque, por ejemplo, haciéndolo constante a lo largo de una trayectoria. Pero entonces, las trayectorias probablemente se pueden combinar fácilmente con rutas probables basadas en carreteras, etc.
No estoy seguro de si los datos con los que terminará serán factibles para lo que quiera hacer con ellos, pero al menos es un campo apasionante.
PD: No sé si es legalmente aceptable, esperaría que sea un objetivo móvil y un país específico, mientras que la definición matemática de privacidad diferencial es la más sólida que puede obtener.
fuente
haga un ajuste a la coordenada X e Y de cada punto por una distancia aleatoria entre un cierto desplazamiento mínimo y máximo. También haga que la dirección del desplazamiento (más o menos) sea una selección aleatoria. Incluya en la aleatorización que algunos puntos pueden no tener ajuste en una o ambas partes de un par de coordenadas.
fuente