0 votos
1.4k vistas

Tenía pensado que una intersección en álgebra de mapas era una multiplicación y no una suma.

Sucede que al sumar dos ráster con valores que no son 0 ni 1, si no que fueron productos de una Condicional del estilo Con("distanciaEuclidianaX"<50, .8), me genera una intersección, cuando lo que busco es una acumulación de los raster, lo que tenía entendido que era una suma.


¿Alguien sabe como acumular los valores?


Info extra:

Estoy tratando de seguir una metodología de análisis multicriterio, donde se sacan distancias euclidianas de cada vector y luego se asigna un valor al pixel segun una distancia conveniente. Luego se suman los resultados para formar una amalgama, una plasta que te dice probabilidades de idoneidad a un fenómeno.


Les dejo un cartel que hicieron unos amigos en la universidad con la metodología, a ellos sí les aparece la acumulación que busco y no una intersección que reduce las manchas.


Nota: Si lo hago booleano, la suma sí puede ser acumulada, pero los valores de pixel no tienen los valores que busco. ¿Alguna propuesta de cómo asignaron estos compañeros de la universidad los valores de píxel si no fue con la Condicional?



Este es mi problema:


image 


image 



El resultado esperado


image 



La formula de este mapa

image 

Luego de las distancias, la asignación de valor:


image

por Novato (155 puntos)   en ArcGIS Desktop | 1.4k vistas

1 Respuesta

+1 voto
Antes de iniciar con el cruce de variables o suma ponderada, te recomiendo que normalices todas las variables. Por ejemplo, si una variable tiene valores de 0 - 50, y otra tiene valores de -10 - 250, podría normalizar para que todas las variables tengan su valor mínimo 0 y el máximo 10.
por Administrador (7.8k puntos)  
0
Hola Franz, resolví el problema con 2 métodos.
El primero lo encontré en un video que dejo más abajo, y consiste en reclasificar las variables de tal manera que limites los resultados a la distancia que buscas (reclasificas las distancias euclidianas). Todas las variables las reclasifiqué con 3 nuevos valores que iban del 0 al 2, dejando en 0 las distancias que no me interesaban, en 1 las que más o menos, y en 2 las óptimas, antes categorizadas como mencioné anteriormente.

Luego eso ya se podía sumar y ponderar en la calculadora raster y etc.

El segundo método me lo corrigio un amigo que fue mi maestro en la universidad.
Consistía en agregar 2 cosas:
Empezar con Float, y terminar con un ",0)".
Para que la condicional fuera:
Float(Con("dist_eucl"<150, .8, 0))<div>
Esto arrojaba rasters con valores polarizados que iban del 0 al .8 (o al valor seleccionado) y no valores de .8 a .8 (nodatavalues).

Luego, para ponderar la suma, hacer lo mismo: Float("var1"*.2+"var2"*.3+"var3"*.5)
Y listo!! Todo quedó como debería de quedar (acumulado y no interseccionado)


+1
Cheverísimo, y sobre todo gracias por tomarte el tiempo y compartir tus conocimientos con la comunidad SIG.
1,437 preguntas
1,584 respuestas
976 comentarios
1,264 usuarios