In building tile/block managers, I too have found it difficult to use iterators or design algorithms without specifically considering both tiles/blocks and cells. Without doing so, it is very easy to write code which is (extremely) cache inefficient.

I'm not sure if flow algebras have arisen in the discussion yet, but they come to mind when I think of raster algebras. They permit operations in which the values of "downstream" cells are functions of upstream cells. In such a case, efficient calculations are then driven both by blocking and by the data itself. In recent work, I've found that a number of flow algebra functions can be written by considering only one block at a time (link <>, link <>). I'm working on generalizing the concept now and can imagine it forming an easy way to quickly add general terrain analysis functionality.

gdal-dev mailing list

Reply via email to