4 votos

Dos de 0, se multiplican las 1 tramas juntas

Estoy tratando de usar la Trama de la Calculadora para multiplicar 2 rásteres juntos. Fueron creados por el uso de la calculadora ráster para mantener los valores que exceden un umbral en otros dos rásteres. He probado muchas combinaciones, pero siempre terminan con ceros en todas partes.

Tengo 2 rásteres A1 y B1 de la misma área. Quiero localizar las zonas donde A1 > 5 y 30 <= B1 <= 45.

Yo no podía entender cómo utilizar Y / o comandos O en la Trama de la Calculadora (la RasterCalc plugin sugerido en otros lugares no parecen estar disponibles).

He creado dos nuevos rásteres A2 y B2, el uso de los comandos

("A1" > 5)    {saved as A2}

("B1" <=45 )* "B1"   {saved as B2a}
(B2a >= 35)          {saved as B2}

Ahora tengo 2 rásteres que son 0,1 valores (o más bien 0.999000). Quiero multiplicar estos juntos. He tratado de ajuste en float(), o con el flotador con los comandos anteriores para ver si se ha hecho una diferencia (no).

Si miro a los rásteres/uso de la herramienta de inspección puedo ver que hay regiones donde ambos A2 y B2 1 - sin embargo, cualquier multiplicación sólo da 0 como salida, cualquier adición da sólo 0 o 1.

No he sido capaz de encontrar ninguna razón por la que esto puede ocurrir.

Si yo simplemente multiplicar los dos originales de los rásteres de A1 y B1 esto funciona como se esperaba, por lo que no parece ser la multiplicación de que es el problema.

1voto

Mat Puntos 196

Asegúrese de usar el "A1@1" notación. Esto le dice a QGIS a la utilización de la banda 1 de la trama A1.

Parece como si la Trama de la Calculadora permite sólo el uso de A1, pero los resultados finales son todos 1 (al menos para mí, QGIS 2.18.10), todos o 0 si puedo usar "A1".

Usted debe ser capaz de hacer esto en un solo paso sin necesidad de múltiples intermedio rásteres.

A1 > 5 and 30 <= B1 <= 45

debe ser factible como

( ("A1@1" > 5) + ("B1@1" >= 30) + ("B1@1"<=45) ) = 3

o como

( ("A1@1" > 5) * ("B1@1" >= 30) * ("B1@1"<=45) ) 

esto es cómo puedo convertir la lógica booleana en la trama calc términos:-

a and b = a*b
a or b = (a+b)>0

También, el hecho de que estamos viendo 0.99 sugiere que usted necesita para utilizar el Realce de Contraste, Tramo min/max, y la Carga de los valores min/max. Que debe fijar la leyenda para mostrar 0/1 y mostrar la trama en negro y blanco.

También ha mencionado la rastercalc plugin. Este ha desaparecido desde el Administrador de complementos, parece estar aún disponible. La fuente ya no está disponible, deberá ser instalado manualmente, y es etiquetado como para QGIS 1.x , por lo que sospecho que ha sido retirado. En el momento en que, de QGIS raster calculator era mucho menos potente. Creo que la mayoría de las características y funciones están disponibles a través de r.mapcalc , la SAGA de la Cuadrícula de la Calculadora y, de hecho, QGIS Raster Calculator sí mismo.

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