3

I am testing map algebra with PostGIS (2.1 with PostgreSQL 9.3) on two images, and found it to be rather slow. For example, dividing two images of 7200 * 3600 pixels took 110 ~ 120s on a desktop with i7 3.4 GHz CPU; the same operation with the same data took ArcGIS (10.1) 15 ~ 16s.

The SQL statement tested was based on this PostGIS example as follows:

SELECT ST_MapAlgebra(t1.rast,t2.rast
        ,'([rast1]+0.001)/([rast2]+0.001)') AS rast
FROM img1 t1, img2 t2 

The two rasters were imported using the following options:

 raster2pgsql -d -M -C -I -s 4326 ...

I did not use filesystem storage or tiling.

My question is:

What's the best way (if possible) to improve the above SQL for map algebra?

jbalk
  • 7,505
  • 1
  • 17
  • 39
tinlyx
  • 11,057
  • 18
  • 71
  • 119

1 Answers1

1

How about testing St_MapAlgebraExp

SELECT ST_MapAlgebraExp(t1.rast,t2.rast ,'([rast1]+0.001)/([rast2]+0.001)') AS rast FROM img1 t1, img2 t2

elmo
  • 809
  • 5
  • 19