La intención de este trabajo es definir un buffer alrededor de un punto o polígono basado en la información de un raster. Por ejemplo, si un polígono representa una ciudad y el ráster define el tiempo que tarda en pasar por esa celda (en horas para simplificar). Me gustaría construir un buffer alrededor de esta ciudad definiendo el rango máximo que sumaría 24 horas. Cualquier celda puede moverse hacia cualquier otra celda siempre que se mueva hacia el origen (El valor de la celda origen es no incluido en la suma).
Esto permitirá la creación de topes no uniformes basados en la información del entorno en lugar de establecer un tope arbitrario alrededor de un polígono.
set.seed(8354)
r <-raster(matrix(ncol=5,nrow=5,abs(round(rnorm(25,5,5),0))))
e <- extent(c(0,5,0,5))
extent(r) <- e
plot(r)
points(2.5,2.5,cex=3,pch=19)
A continuación, las imágenes muestran la trama inicial y la trama "tamponada" hacia fuera con valores iguales a 10. La intención es moverse hacia afuera desde la celda central en las 8 direcciones, sumando los valores a medida que se avanza. Cuando se alcanza el valor 10, el buffer se ajusta a esa extensión, si el valor supera el 10, la celda actual limita la extensión.
Un reto que ya veo es el de contar en diagonal, en un caso el valor puede ser menor que 10 y en otro mayor, no estoy muy seguro de cómo evitarlo todavía.
He estado buscando a través de la gdistance
documentación así como accCost
como se ve aquí . El transition
La función parece ser el punto de colapso. Gran parte de eso se debe a mi falta de comprensión de lo que esta función está haciendo (voy a seguir mi lectura). He estado usando la suma en el argumento transitionFunction.
Valores en la trama original
Suma hacia afuera que define la extensión del buffer
0 votos
No está nada claro cómo se supone que el proceso propuesto va a producir topes "no uniformes". ¿Podría ilustrar lo que tiene en mente?
0 votos
¿Cómo ha conseguido incluir casillas como la de la fila superior, a cuatro columnas de la izquierda, cuando no se puede llegar a ella desde uno de los ocho puntos cardinales? ¿Con qué dirección cardinal lo has asociado y en qué te basas?
0 votos
Y aquí es donde estoy viendo que tengo un defecto fundamental. Tendría que mover el origen a la siguiente capa hacia fuera y recalcular usando los valores sumados de la primera pasada. Esto parece convertirse en una tarea limitante desde el punto de vista computacional bajo mi esquema actual, ya que tendría que haber un "nuevo" raster para cada celda para lograr el resultado deseado. Seguiré reflexionando y volveré con nuevas mejoras.
0 votos
Me pregunto si retroceder un paso podría ser más fructífero. Es decir, en lugar de preguntarnos cómo llevar a cabo una operación concreta que aún no está bien definida, ¿por qué no se explica a un nivel superior lo que se pretende conseguir o representar? Eso podría ser visto por muchos lectores como una invitación a sugerir soluciones creativas que, de otro modo, quedarían excluidas por lo que quizás es una pregunta demasiado estrecha en la actualidad.