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