[postgis-commits] svn - r3862 - spike/wktraster/scripts

postgis-commits at postgis.refractions.net postgis-commits at postgis.refractions.net
Fri Mar 13 05:09:38 PDT 2009


Author: mloskot
Date: 2009-03-13 05:09:34 -0700 (Fri, 13 Mar 2009)
New Revision: 3862

Added:
   spike/wktraster/scripts/rtreader.py
Removed:
   spike/wktraster/scripts/pyrtreader.py
Modified:
   spike/wktraster/scripts/rtpixdump.py
Log:
scripts: pyrtreader.py -> rtreader.py.

Deleted: spike/wktraster/scripts/pyrtreader.py
===================================================================
--- spike/wktraster/scripts/pyrtreader.py	2009-03-13 03:52:43 UTC (rev 3861)
+++ spike/wktraster/scripts/pyrtreader.py	2009-03-13 12:09:34 UTC (rev 3862)
@@ -1,138 +0,0 @@
-#! /usr/bin/env python
-#
-# $Id$
-#
-# A simple driver to read RASTER field data directly from PostGIS/WKTRaster.
-#
-# Copyright (C) 2009 Mateusz Loskot <mateusz at loskot.net>
-# 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-#
-###############################################################################
-#
-# Requirements: psycopg2
-#
-# WARNING: Tha main purpose of the RasterReader is to test and debug
-# WKT Raster implementation. It is not supposed to be an efficient
-# performance killer, by no means.
-#
-###############################################################################
-import psycopg2
-import sys
-
-###############################################################################
-# RASTER driver (read-only)
-
-class RasterError(Exception):
-    def __init__(self, msg):
-        self.msg = msg 
-    def __str__(self):
-        return self.msg
-
-class RasterReader(object):
-    """Reader of RASTER data stored in specified column and row (where) in a table"""
-
-    # Constructors
-
-    def __init__(self, connstr, table, column, where = ""):
-        self._connstr = connstr 
-        self._conn = None
-        self._table = table
-        self._column = column
-        self._where = where
-        self._sizes = None
-        # Connect and read RASTER header
-        self._setup()
-
-    # Public properties
-
-    db = property(fget = lambda self: self._get_db())
-    table = property(fget = lambda self: self._get_table())
-    column = property(fget = lambda self: self._get_column())
-    width = property(fget = lambda self: self._get_width())
-    height = property(fget = lambda self: self._get_height())
-    num_bands = property(fget = lambda self: self._get_num_bands())
-
-    # Public methods 
-
-    def get_value(self, band, x, y):
-        return self._query_value(band, x, y)
-
-    # Private methods 
-    
-    def _get_db(self):
-        n = filter(lambda db: db[:6] == 'dbname', self._connstr.split())[0].split('=')[1]
-        return n.strip('\'').strip()
-
-    def _get_table(self):
-        return self._table
-
-    def _get_column(self):
-        return self._column
-
-    def _get_width(self):
-        return self._query_raster_size(0)
-
-    def _get_height(self):
-        return self._query_raster_size(1)
-
-    def _get_num_bands(self):
-        return self._query_raster_size(2)
-
-    def _setup(self):
-        self._connect()
-
-    def _connect(self):
-        try:
-            if self._conn is None:
-                self._conn = psycopg2.connect(self._connstr)
-        except:
-            raise RasterError("Falied to connect to %s" % self._connstr)
-
-    def _query_single_row(self, sql):
-        assert self._conn is not None
-        try:
-            cur = self._conn.cursor()
-            cur.execute(sql)
-        except:
-            raise RasterError("Falied to execute query: %s" % sql)
-
-        row = cur.fetchone()
-        if row is None:
-            raise RasterError("No tupes returned for query: %s" % sql)
-        return row
-
-    def _query_value(self, band, x, y):
-        sql = """SELECT rt_value(%s, %d, %d, %d) FROM %s""" % \
-                 (self._column, band, x, y, self._table)
-        if len(self._where) > 0:
-            sql += """ WHERE %s""" % self._where
-        row = self._query_single_row(sql)
-        if row is None:
-            raise RasterError("Value of pixel %dx%d of band %d is none" %(x, y, band))
-        return row[0]
-    
-    def _query_raster_size(self, dim, force = False):
-        if self._sizes is None or force is True:
-            sql = """SELECT rt_width(%s), rt_height(%s), rt_numbands(%s) FROM %s""" % \
-                     (self._column, self._column, self._column, self._table)
-            if len(self._where) > 0:
-                sql += """ WHERE %s""" % self._where
-            self._sizes = self._query_single_row(sql)
-
-        if self._sizes is None:
-            raise RasterError("Falied to query %dx%d of band %d is none" %(x, y, band))
-        return self._sizes[dim]
-

Modified: spike/wktraster/scripts/rtpixdump.py
===================================================================
--- spike/wktraster/scripts/rtpixdump.py	2009-03-13 03:52:43 UTC (rev 3861)
+++ spike/wktraster/scripts/rtpixdump.py	2009-03-13 12:09:34 UTC (rev 3862)
@@ -29,7 +29,7 @@
 rt_where = None         # SQL WHERE clause, leave None if you don't need
 # END CONFIGURATION
 ###############################################################################
-import pyrtreader
+import rtreader
 import sys
 
 if len(sys.argv) != 1:
@@ -42,7 +42,7 @@
     sys.stderr.write("LOG - " + msg + "\n")
 
 try:
-    rast = pyrtreader.RasterReader(rt_connstr, rt_table, rt_column)
+    rast = rtreader.RasterReader(rt_connstr, rt_table, rt_column)
     logit("Connected to %s" % rt_connstr)
     logit("Raster width=%d, height=%d, bands=%d" %(rast.width, rast.height, rast.num_bands))
     
@@ -55,5 +55,5 @@
             print scanline
         print # Bands separator
 
-except pyrtreader.RasterError, e:
+except rtreader.RasterError, e:
     print "ERROR - ", e

Copied: spike/wktraster/scripts/rtreader.py (from rev 3861, spike/wktraster/scripts/pyrtreader.py)


Property changes on: spike/wktraster/scripts/rtreader.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:mergeinfo
   + 



More information about the postgis-commits mailing list