4 votos

Cálculo mediante programación raster-vector

Yo actualmente uso la HIERBA' r.mapcalc para encontrar la diferencia entre el vector y raster de datos utilizando un bucle y los archivos temporales y las capas.

Es posible hacer el núcleo de cálculo entre ráster con un vector de datos de más directamente en la HIERBA, en algunos herramienta externa, o alguna secuencia de comandos de python?

#!/bin/bash 
TOPO=mytopo
g.region -p rast=mytopo res=10
for file in INPUTS/* ; do
  imbase=${file#INPUTS/}   # strip off the directory prefix
  v.in.ogr input=$file output=temp_a --overwrite
  v.to.rast in=temp_a out=temp_b use=attr column=elev --overwrite
  r.mapcalc "temp_c" = "(if( "temp_b" <= "$TOPO" ,null(),if( "$TOPO" <0,0, "temp_b" - "$TOPO" )))"
   r.out.gdal input=temp_c -c  format=GTiff type=Float32 output=OUTPUTS/$imbase
end
g.remove temp_a
g.remove temp_b
g.remove temp_c

Me gusta la HIERBA' la capacidad para hacer el mapcalc de las resoluciones y de las extensiones que no es mi fuente de datos. pero a pesar de esto funciona, el proceso parece parece torpe y lento para los números de los archivos en los cientos. Idealmente, me gustaría algo como la siguiente:

 gdalogr_diff.py mytopo.tif PG:dbname=warmerda -sql "SELECT elev[${timeslice}] from temp_output" -f GTiff out_${timeslice}.tif

0voto

Antti Sykäri Puntos 10381

Puede rasterise el vector capa en python, condición se aplica y guarde el resultado:

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