11 votos

¿Cómo dar un archivo de gps?

Imagine que usted tiene un GPS de seguimiento que desea hacer anónima, en el sentido legal. Cómo hacer esto? Es el ajuste a la más cercana a x distancia y excluyendo el tiempo suficiente? Existen normas internacionalmente acordadas sobre esto? Alguien ha escrito ya un algoritmo para hacer esto? Si no tengo la intención de hacer una función en mi evolución stplanr paquete para hacer esto.

Reproducible ejemplo (usando impresionante la función de la rotación de @geospacedman) de mi 'Identificablede datos:

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

red-route

El resultado se muestra más arriba. En resumen: es la ruta roja 'en las que se identifiquen y existe una mejor manera?

5voto

Estoy trabajando con nuestro grupo de ciclistas para anonimizar los archivos GPX en dos criterios (sobre todo para la seguridad). Nunca he encontrado una manera estándar de anonymising de datos, pero esto cumple dos preocupaciones de nuestros miembros, mientras que la preservación de la precisión a lo largo de las carreteras y de la información de la velocidad:

  • Personal ubicaciones, la eliminación de 'privado' áreas de personas;
  • Ocultando las marcas de tiempo de modo que los datos de los viajes no podría ser utilizado para identificar los movimientos individuales.

GPSBabel puede hacer todo esto desde la línea de comandos - por ejemplo, a cambio de los tiempos en un archivo GPX por +123450 segundos, y remover todos los trackpoints 0.5 km de distancia de un punto de referencia en el norte de 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: proceso de pistas;
  • -i, -f: de entrada el tipo de archivo (gpx) y el nombre de archivo;
  • -x: dos secuencial (-x) filtro de argumentos para timeshift (mover) y de eliminación (radio,excluir) alrededor de un punto;
  • -o, -F: tipo de archivo de salida y el nombre de archivo.

Este comando cadenas de varios filtros - primera transformación de los trackpoints en puntos de referencia, entonces el filtrado, entonces la transformación de regreso a trackpoints.

Tenga en cuenta que la reducción de la cantidad de lugares decimales alrededor del punto / área privacidad es MUY importante, ya que oscurece el centro exacto de la privacidad de la zona. 3 decimales = ~ 110m exactitud en este caso.

Me suelen llamar GPSBabel de R, escribir un nuevo archivo GPX con los filtros que se aplican, incluyendo una al azar timeshift +/- 2 semanas. Esto sería mejor como bash o python script, pero muchos de los otros trabajos que yo hago es en R y soy un vago ...

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

0voto

CaedJar4 Puntos 18

realizar un ajuste a la coordenada X e Y de cada punto a una distancia al azar entre un desplazamiento de mínimo y máximo. hacer también la dirección del desplazamiento (más o menos) una selección al azar. Incluir en la asignación al azar que algunos puntos no pueden tener ningún ajuste a una o ambas partes de un par de coordenadas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X