4 votos

Crear polígonos desde una ubicación que no sea el centroide (ocultando ubicaciones específicas)

Buscando obtener feedback sobre herramientas o metodologías que se puedan usar para denotar un área sensible sin revelar la ubicación específica de una característica. Por ejemplo, cómo hacer mejor un buffer que no esté basado en un centroide.

Digamos que tengo una característica que quiero ocultar pero necesito saber aproximadamente dónde está. Puede que tenga solo un punto, tal vez incluso un pequeño polígono que define su límite. Puede que desee hacer un buffer de polígono que tenga varios kilómetros de ancho pero quiero que la ubicación específica de la característica que contiene esté más o menos aleatorizada. Dentro del polígono, en algún lugar, ciertamente no justo en el medio.

5voto

Jip Puntos 21

He utilizado el siguiente flujo de trabajo para datos sensibles con éxito:

  1. defina un búfer para sus puntos/polígonos actuales que desea ocultar
  2. utilice la herramienta Crear puntos aleatorios con el búfer como su clase de entidad restringida y 1 como el número de puntos
  3. defina un búfer para los puntos aleatorios

Esto devuelve búferes que están completamente aleatorizados, al mismo tiempo que permiten un control en la precisión de sus datos dependiendo del nivel de sensibilidad a través del tamaño del búfer.

0 votos

Este fue el primer flujo de trabajo que se me ocurrió, y después de todo podría ser la mejor opción. Para ser justos, creo que las otras sugerencias aquí también estarían bien. Es bueno tener algunas opciones. Gracias.

1voto

David Holm Puntos 6165

Lo primero que viene a la mente es un sistema de cuadrícula.

Crea una cuadrícula que cubra toda el área que te preocupa y devuelve solo las celdas de la cuadrícula que intersectan con la característica "oculta". Esto podría ser una sola celda para un punto o muchas celdas para un polígono grande o una línea.

El tamaño de las celdas de la cuadrícula determinará qué tan general es la ubicación. La cuadrícula tampoco tiene que ser cuadrada, podrías usar rectángulos o incluso una cuadrícula hexagonal.

0voto

Cemre Puntos 153

Puedes crear 2 columnas RAND_X y RAND_Y y aleatorizar el número que desees dentro con valores de rango de tu elección, digamos por ejemplo un rango de [-3000 a 3000] para un valor aleatorio en un rango máximo de 3 km. El valor de RAND_X sería algo que agregarías a tus coordenadas X, el valor de RAND_Y algo que agregarías a tus coordenadas Y.

De esta manera, tendrías tu punto central movido en un perímetro limitado ... pero no en el centro de tu área o en el lugar de tu punto. Simplemente elige sabiamente tu rango y no olvides los valores negativos.

Luego puedes crear un buffer alrededor de esta área, por ejemplo.

Puedes utilizar este texto en un archivo .cal para usarlo en la Calculadora de Campos:

def Randomizer(intMin,intMax):
    import random
    return random.randint(int(intMin),int(intMax))

__esri_field_calculator_splitter__
Randomizer(-3000,3000)

Fuente del script (solo cambié un poco los nombres en mi script .cal).

Randomizar

A continuación, un ejemplo:

Posiciones posibles aleatorizadas

0 votos

Este es también un método interesante que podría explorar. Sin embargo, estoy tratando de entender... ¿podrías establecer una distancia 'aleatoria' diferente para cada característica o la estás estableciendo igual en toda la clase de características?

0 votos

La distancia de desplazamiento en X e Y es diferente para cada característica, en este método. El objetivo es que no puedas adivinar si hay un patrón de desplazamiento para todas las características, por ejemplo. Lo único que no es aleatorio son los valores de rango máximo que estableces (aquí es 3000 por ejemplo). En mi ejemplo, elijo difuminar la ubicación del punto fuente en un área que es de 3 km alrededor del punto fuente (un área circular), pero si estableces el valor de rango en X diferente al de Y, tendrías una elipse.

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