[Mapserver-dev] Raster Queries

Vincent Schut schut at sarvision.com
Mon Mar 22 04:54:29 EST 2004


Frank,

just to fill in for your cat: Good work! Keep it going! Miauw!

On Friday 19 March 2004 19:09, Frank Warmerdam wrote:
> Woot!
>
> I can now do some very simple raster queries.  The following simple
> query script executes properly against a raster layer.
>
> #!/usr/bin/env python
>
> import mapscript
> import sys
>
> map = mapscript.Map('rquery.map')
> layer = map.getLayer(0)
>
> rect = mapscript.Rect()
> rect.minx = 440720
> rect.maxx = 440780
> rect.miny = 3751260
> rect.maxy = 3751320
>
> layer.queryByRect( map, rect )
>
> layer.open()
> for i in range(1000):
>      result = layer.getResult( i )
>      if result is None:
>          break
>
>      print '(%d,%d,%s)' % (result.shapeindex,
> result.tileindex,result.classindex)
>
>      s = layer.getShape( result.shapeindex, result.tileindex )
>      print s
>      for i in range(layer.numitems):
>          print '%s: %s' % (layer.getItem(i), s.getValue(i))
>
> layer.close()
>
> map = None
> mapscript.msCleanup()
>
> And reports the following for the small 2x2 query rectangle:
> (0,0,)
> <C shapeObj instance at _808d1808_p_shapeObj>
> x: 440720
> y: 3751320
> value: 107
> (1,0,)
> <C shapeObj instance at _b8231908_p_shapeObj>
> x: 440780
> y: 3751320
> value: 123
> (2,0,)
> <C shapeObj instance at _808d1808_p_shapeObj>
> x: 440720
> y: 3751260
> value: 115
> (3,0,)
> <C shapeObj instance at _f0961a08_p_shapeObj>
> x: 440780
> y: 3751260
> value: 132
>
> As you can see, I have taken the approach of turning raster query results
> into internal data arrays that can then be access normally via the opening
> the layer and reading the shapes.  I haven't tested it yet, but the query
> template engine should work without any special knowledge about rasters.
>
> I haven't yet added red, green, blue and class into the query results. 
> Does it make more sense to return the class number or the class name in the
> query results?
>
> I also haven't gotten the histogramming support working yet or some of the
> query types (at a point, within a polygon, etc). However, I felt the need
> to good a Woot somewhere for my breakthrough.  The problem with working in
> my basement is it is hard to impress the cat when I get something working.
> :-)
>
> Best regards,

-- 
-----------------------------
 Vincent Schut
 SarVision B.V.
 Wageningen, The Netherlands
 www.sarvision.com



More information about the mapserver-dev mailing list