Greetings, <div><br></div><div>I'm am trying to create a raster that is coloured based on the distance from an arbitrary point. kinda like the attached tiff file. To do that I used the following ACB:</div><div><div>__________________________________________________</div>

<div>DO</div><div>$$</div><div>DECLARE </div><div>qq record;</div><div>BEGIN</div><div>for qq in</div><div>with one as </div><div>  (select (st_pixelascentroids(rast)).* from r.island_ouline_raster_125      ),</div><div>
two as </div>
<div>  (select *, st_distance(geom, 'srid=3448;POINT(600000 660000)'::geometry)::int dist from one where val is not null ),</div><div>three as</div><div>  (select * , percent_rank() over (order by dist) pr from two),</div>

<div>four as</div><div>  (select *, dev.range_percent(200, 125, pr) red, dev.range_percent(25, 250, pr) green, dev.range_percent(100, 25, pr) blue from three order by dist )</div><div>/*dev.range takes a percent and two endoints and returns the % of he diff plus endpoint 1 */</div>

<div>select * from four LOOP</div><div>update r.island_ouline_raster_12_point_5 set rast = st_setvalue(rast,1, qq.geom, qq.red);</div><div>update r.island_ouline_raster_12_point_5 set rast = st_setvalue(rast,2, qq.geom, qq.green);</div>

<div>update r.island_ouline_raster_12_point_5 set rast = st_setvalue(rast,3, qq.geom, qq.blue);</div><div><br></div><div><br></div><div>END LOOP;</div><div>/* below just writes the raster to disk */</div><div>perform <a href="http://dev.wf">dev.wf</a>(st_astiff(rast), '__kml/1250_changed5.tiff') from r.island_ouline_raster_1250;</div>

<div>END;</div><div><br></div><div>$$ language plpgsql</div></div><div>____________________________________________________________</div><div> </div><div>I used an ACB because I couldn't think of anyway to update the raster with each column/row value in plain sql. Even so,  it seems like overkill. Is there an easier way, possibly using st_mapalgebra to accomplish the same objective?</div>

<div><br></div><div>Also I'm running the same ACB on a raster which is ~ 1800x700 and it it still not finished, its currently at 3570123 ms. The attached raster is 185x73 and that took about 40 seconds to generate. So anything that would be faster would also be great.</div>

<div><br></div><div>Regards,</div><div><br></div><div>Rhys</div>