Show
Ignore:
Timestamp:
06/05/09 09:10:47 (3 years ago)
Author:
mloskot
Message:

[wktraster] Added query_pixel_types() function to rtreader.RasterReader? class.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • spike/wktraster/scripts/rtreader.py

    r4126 r4137  
    5454        self._where = where 
    5555        self._sizes = None 
     56        self._types = None 
    5657        # Connect and read RASTER header 
    5758        self._setup() 
     
    6566    height = property(fget = lambda self: self._get_height()) 
    6667    num_bands = property(fget = lambda self: self._get_num_bands()) 
     68    pixel_types = property(fget = lambda self: self._get_pixel_types()) 
    6769 
    6870    # Public methods  
     
    9294        return self._query_raster_size(2) 
    9395 
     96    def _get_pixel_types(self): 
     97        return self._query_pixel_types() 
     98 
    9499    def _setup(self): 
    95100        self._connect() 
     
    116121 
    117122    def _query_value(self, band, x, y): 
    118         sql = """SELECT st_value(%s, %d, %d, %d) FROM %s""" % \ 
     123        sql = 'SELECT st_value(%s, %d, %d, %d) FROM %s' % \ 
    119124                 (self._column, band, x, y, self._table) 
    120125        if len(self._where) > 0: 
    121             sql += """ WHERE %s""" % self._where 
     126            sql += ' WHERE %s' % self._where 
    122127        row = self._query_single_row(sql) 
    123128        if row is None: 
     
    127132    def _query_raster_size(self, dim, force = False): 
    128133        if self._sizes is None or force is True: 
    129             sql = """SELECT st_width(%s), st_height(%s), st_numbands(%s) FROM %s""" % \ 
     134            sql = 'SELECT st_width(%s), st_height(%s), st_numbands(%s) FROM %s' % \ 
    130135                     (self._column, self._column, self._column, self._table) 
    131136            if len(self._where) > 0: 
    132                 sql += """ WHERE %s""" % self._where 
     137                sql += ' WHERE %s' % self._where 
    133138            self._sizes = self._query_single_row(sql) 
    134139 
     
    137142        return self._sizes[dim] 
    138143 
     144    def _query_pixel_types(self): 
     145 
     146        types = [] 
     147        sql = 'SELECT ' 
     148        for i in range(0, self.num_bands): 
     149            if i != 0: 
     150                sql += ',' 
     151            nband = i + 1 
     152            sql += ' st_bandpixeltype(%s, %d) ' % (self._column, nband) 
     153        sql += ' FROM ' + self._table 
     154         
     155        return self._query_single_row(sql)