Buscando un algoritmo de crecimiento regional


8

Trabajo con un conjunto de ráster que representa los valores de la tierra y me gustaría crear automáticamente polígonos con forma aleatoria pero con cierto tamaño y / o valor de la tierra dado un punto centroide de cada polígono. El punto centroide actuará como la celda ráster inicial (un píxel llamado como celda semilla) que pertenecerá a ese cierto polígono y luego un algoritmo de crecimiento de región comenzará a agregar píxeles alrededor de un píxel centroide hasta la restricción de tamaño y / o valor del terreno de un polígono será satisfecho.

¿Alguien que tenga alguna idea sobre un algoritmo de crecimiento regional existente? o al menos, ¿cuál es la clase de ArcObjects o Interfaces con las que puedo trabajar, para leer el valor de cada píxel, crear un nuevo polígono agregándole un nuevo píxel?

Espero que lo anterior tenga sentido y que alguien pueda ayudarme.

Editar

Básicamente tengo la intención de crear automáticamente polígonos con formas regulares y una serie de restricciones como el tamaño, el valor del terreno, etc., utilizando un algoritmo genético (GA). Pero primero necesito crear un conjunto de soluciones aleatorias para alimentar el GA, por lo que, por ejemplo, en el bloque de tierra, que es un área encerrada por carreteras, ya he dicho 4 puntos de centroide. Cada punto centroide representa la ubicación aproximada de cada nueva parcela de tierra. Además, cada centroide está asociado con los atributos de cada parcela, es decir, el tamaño y el valor del terreno. Entonces, quiero comenzar por cada centroide como punto de partida del algoritmo de crecimiento de la región para comenzar a crear una forma aleatoria para cada parcela basada en cada centroide.

Espero que lo anterior tenga sentido. Espero con ansias cómo puedo crear este algoritmo de crecimiento regional o si ya hay uno en VBA y ArcObjects.


¿Podría decir algo sobre el propósito de crear polígonos aleatorios? Después de todo, hay muchos, muchos tipos de aleatoriedad. Es probable que algunos de ellos (como los métodos simples para hacer polígonos fractales aleatorios) sean de su interés. Si usted está tratando de simular nada realista, el procedimiento tendrá que incorporar aspectos de los fenómenos que en realidad crean los polígonos que interesa.
whuber

Cuando agrega una celda a una región, ¿desea agregar la celda adyacente de menor costo o la celda más cercana al centroide del polígono?
Kirk Kuykendall

Me disculpo por la demora. No he notado este comentario. Cada vez que quiero agregar una celda adyacente en la región actual hasta que se cumplan algunas restricciones.
Demetris

Respuestas:


1

Un análisis de distancia de costo es un enfoque: clasifique el ráster en función del valor de la tierra comenzando desde el punto de inicio, luego, el umbral de ese resultado le dará el área de costo acumulativo como un ráster. Simplemente traduzca ese ráster clasificado en un polígono, y debería obtener su resultado. Dependiendo de los detalles de lo que está tratando de hacer, es posible que pueda salirse con la función de Asignación de costos con sus ubicaciones de semillas y el ráster del valor de la tierra para lograr el resultado deseado.


La idea es buena porque en realidad relaciona el polígono con algo real (valor de la tierra). Pero, ¿cómo se traduce el "umbral de ese resultado" (que presumiblemente significa seleccionar todos los puntos con costos inferiores a un valor fijo) a un costo acumulado específico ? Además, el procedimiento no es "aleatorio", pero eso no es un problema: uno podría aleatorizar aspectos de la cuadrícula de costos de antemano para que el resultado sea algo aleatorio.
whuber


0

Puedes probar el gdal_fillnodata .


Su respuesta se marcó en la cola de revisión como de baja calidad debido a su longitud y contenido. Si está sugiriendo que el autor de esta pregunta debería investigar un software alternativo, le recomiendo que edite su respuesta para proporcionar más detalles acerca de por qué lo que está tratando de hacer no funcionará y por qué lo que sugiere lo hará.
PolyGeo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.