[postgis-commits] svn - r3878 - spike/wktraster/rt_pg

postgis-commits at postgis.refractions.net postgis-commits at postgis.refractions.net
Tue Mar 17 07:41:50 PDT 2009


Author: pracine
Date: 2009-03-17 07:41:48 -0700 (Tue, 17 Mar 2009)
New Revision: 3878

Modified:
   spike/wktraster/rt_pg/rtpostgis.sql.in.c
Log:
Added rt_bandpath(rast,bandnum)

Modified: spike/wktraster/rt_pg/rtpostgis.sql.in.c
===================================================================
--- spike/wktraster/rt_pg/rtpostgis.sql.in.c	2009-03-16 23:06:58 UTC (rev 3877)
+++ spike/wktraster/rt_pg/rtpostgis.sql.in.c	2009-03-17 14:41:48 UTC (rev 3878)
@@ -1,21 +1,21 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- 
+--
 -- $Id$
 --
--- WKTRaster - Raster Type for PostGIS 
+-- WKTRaster - Raster Type for PostGIS
 -- http://postgis.refractions.net/support/wiki/index.php?WKTRasterHomePage
 --
 -- Copyright (c) 2009 Sandro Santilli <strk at keybit.net>
 --
 -- This is free software; you can redistribute and/or modify it under
 -- the terms of the GNU General Public Licence. See the COPYING file.
---  
+--
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
--- TODO: 
+-- TODO:
 -- 1) Add regression tests
 -- 2) Complete the warning and notes below.
--- 
+--
 -- WARNING: Any change in this file must be evaluated for compatibility.
 --
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -37,14 +37,14 @@
 ------------------------------------------------------------------------------
 
 CREATEFUNCTION rt_raster_in(cstring)
-    RETURNS raster 
+    RETURNS raster
     AS 'MODULE_PATHNAME','RASTER_in'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_raster_out(raster)
-    RETURNS cstring 
+    RETURNS cstring
     AS 'MODULE_PATHNAME','RASTER_out'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATE TYPE raster (
     alignment = double,
@@ -74,91 +74,96 @@
     LANGUAGE 'C' IMMUTABLE;
 
 CREATEFUNCTION rt_raster_to_box2d(raster)
-    RETURNS BOX2D 
+    RETURNS BOX2D
     AS 'MODULE_PATHNAME','RASTER_to_BOX2DFLOAT4'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_raster_envelope(raster)
-    RETURNS GEOMETRY 
+    RETURNS GEOMETRY
     AS 'MODULE_PATHNAME','RASTER_envelope'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_srid(raster)
     RETURNS integer
     AS 'MODULE_PATHNAME','RASTER_getSRID'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_width(raster)
     RETURNS integer
     AS 'MODULE_PATHNAME','RASTER_getWidth'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_height(raster)
     RETURNS integer
     AS 'MODULE_PATHNAME','RASTER_getHeight'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_pixelsizex(raster)
-    RETURNS float8 
+    RETURNS float8
     AS 'MODULE_PATHNAME','RASTER_getXPixelSize'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_pixelsizey(raster)
-    RETURNS float8 
+    RETURNS float8
     AS 'MODULE_PATHNAME','RASTER_getYPixelSize'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_rotationx(raster)
-    RETURNS float8 
+    RETURNS float8
     AS 'MODULE_PATHNAME','RASTER_getXRotation'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_rotationy(raster)
-    RETURNS float8 
+    RETURNS float8
     AS 'MODULE_PATHNAME','RASTER_getYRotation'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_upperleftx(raster)
-    RETURNS float8 
+    RETURNS float8
     AS 'MODULE_PATHNAME','RASTER_getXUpperLeft'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_upperlefty(raster)
-    RETURNS float8 
+    RETURNS float8
     AS 'MODULE_PATHNAME','RASTER_getYUpperLeft'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_georeference(raster)
     RETURNS TEXT
     AS 'MODULE_PATHNAME','RASTER_getGeoReference'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_numbands(raster)
     RETURNS integer
     AS 'MODULE_PATHNAME','RASTER_getNumBands'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_bandpixeltype(raster, integer)
     RETURNS text
     AS 'MODULE_PATHNAME','RASTER_getBandPixelTypeName'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
-    
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
+
 CREATEFUNCTION rt_bandnodatavalue(raster, integer)
     RETURNS float4
     AS 'MODULE_PATHNAME','RASTER_getBandNoDataValue'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
+CREATEFUNCTION rt_bandpath(raster, integer)
+    RETURNS text
+    AS 'MODULE_PATHNAME','RASTER_getBandPath'
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
+
 CREATEFUNCTION rt_value(raster, integer, integer, integer)
     RETURNS float8
     AS 'MODULE_PATHNAME','RASTER_getPixelValue'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- TODO: To be implemented
 CREATEFUNCTION rt_setvalue(raster, integer, integer, integer, float8)
     RETURNS float8
     AS 'MODULE_PATHNAME','RASTER_setPixelValue'
-    LANGUAGE 'C' _IMMUTABLE_STRICT; 
--- 
+    LANGUAGE 'C' _IMMUTABLE_STRICT;
+--
 -- rt_MakeEmptyRaster( <width>, <height>, <ipx>, <ipy>,
 --                                        <scalex>, <scaley>,
 --                                        <skewx>, <skewy>,
@@ -183,68 +188,68 @@
     WITH FUNCTION rt_bytea(raster) AS IMPLICIT;
 
 ------------------------------------------------------------------------------
---  GiST index OPERATOR support functions 
+--  GiST index OPERATOR support functions
 ------------------------------------------------------------------------------
 
 CREATEFUNCTION rt_overleft(raster, raster)
     RETURNS bool
     AS 'select geometry_overleft($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_overright(raster, raster)
     RETURNS bool
     AS 'select geometry_overright($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_left(raster, raster)
     RETURNS bool
     AS 'select geometry_left($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_right(raster, raster)
     RETURNS bool
     AS 'select geometry_right($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_overabove(raster, raster)
     RETURNS bool
     AS 'select geometry_overabove($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_overbelow(raster, raster)
     RETURNS bool
     AS 'select geometry_overbelow($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_above(raster, raster)
     RETURNS bool
     AS 'select geometry_above($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_below(raster, raster)
     RETURNS bool
     AS 'select geometry_below($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_same(raster, raster)
     RETURNS bool
     AS 'select geometry_same($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_contained(raster, raster)
     RETURNS bool
     AS 'select geometry_contained($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_contain(raster, raster)
     RETURNS bool
     AS 'select geometry_contain($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 CREATEFUNCTION rt_overlap(raster, raster)
     RETURNS bool
     AS 'select geometry_overlap($1::geometry, $2::geometry)'
-    LANGUAGE 'SQL' _IMMUTABLE_STRICT; 
+    LANGUAGE 'SQL' _IMMUTABLE_STRICT;
 
 ------------------------------------------------------------------------------
 --  GiST index OPERATORs
@@ -306,7 +311,7 @@
 
 CREATE OPERATOR ~= (
    LEFTARG = raster, RIGHTARG = raster, PROCEDURE = rt_same,
-   COMMUTATOR = '~=', 
+   COMMUTATOR = '~=',
    RESTRICT = eqsel, JOIN = eqjoinsel
 );
 
@@ -349,10 +354,10 @@
     blocksize_y double precision,
     extent GEOMETRY,
 
-    CONSTRAINT raster_columns_pk primary key ( 
-        r_table_catalog, 
-        r_table_schema, 
-        r_table_name, 
+    CONSTRAINT raster_columns_pk primary key (
+        r_table_catalog,
+        r_table_schema,
+        r_table_name,
         r_column )
 ) WITH OIDS;
 
@@ -366,9 +371,9 @@
 --      <blocksize_x> <blocksize_y>
 --      <extent>
 -------------------------------------------------------------------------------
--- 
+--
 -- TODO: to be documented
--- 
+--
 -------------------------------------------------------------------------------
 
 CREATEFUNCTION AddRasterColumn(varchar, varchar, varchar, varchar,
@@ -383,7 +388,7 @@
                                integer,             -- blocksize_y
                                geometry)            -- extent
 
-    RETURNS text AS 
+    RETURNS text AS
 $$
 DECLARE
 
@@ -414,10 +419,10 @@
     nodata_values_size integer := 0;
 
 BEGIN
-    
+
     RAISE DEBUG 'Parameters: catalog=%, schema=%, table=%, column=%, srid=%, pixel_types=%, out_db=%, regular_blocking=%, nodata_values=%, pixelsize_x=%, pixelsize_y=%, blocksize_x=%, blocksize_y=%',
                  p_catalog_name, p_schema_name, p_table_name, p_column_name, p_srid, p_pixel_types, p_out_db, p_regular_blocking, p_nodata_values, p_pixelsize_x, p_pixelsize_y, p_blocksize_x, p_blocksize_y;
-    
+
     -- Validate required parametersa and combinations
     IF ( (p_catalog_name IS NULL) OR (p_schema_name IS NULL)
           OR (p_table_name IS NULL) OR (p_column_name IS NULL) ) THEN
@@ -439,7 +444,7 @@
         RAISE EXCEPTION 'out_db IS NULL, value expected';
         RETURN 'fail';
     END IF;
-    
+
     IF ( p_regular_blocking IS NULL ) THEN
         RAISE EXCEPTION 'regular_blocking IS NULL, value expected';
         RETURN 'fail';
@@ -536,7 +541,7 @@
             RAISE EXCEPTION 'extent is of invalid type (%), expected simple and non-rotated POLYGON', geometry_type_into;
             RETURN 'fail';
         END IF;
-        
+
         -- Verify SRID
         SELECT ST_SRID(p_extent) INTO srid_into;
         IF ( p_srid != srid_into::integer ) THEN
@@ -559,7 +564,7 @@
             RETURN 'fail';
         END IF;
     END IF;
-    
+
     IF ( real_schema IS NULL ) THEN
         RAISE DEBUG 'Detecting schema';
         sql := 'SELECT n.nspname AS schemaname '
@@ -648,9 +653,9 @@
 --      <blocksize_x> <blocksize_y>
 --      <extent>
 -------------------------------------------------------------------------------
--- 
+--
 -- TODO: to be documented
--- 
+--
 -------------------------------------------------------------------------------
 
 CREATEFUNCTION AddRasterColumn(varchar, varchar, varchar, integer, varchar[],
@@ -658,7 +663,7 @@
                                double precision, double precision,
                                integer, integer, geometry)
     RETURNS text AS
-$$ 
+$$
 DECLARE
     ret text;
 BEGIN
@@ -678,9 +683,9 @@
 --      <blocksize_x> <blocksize_y>
 --      <extent>
 -------------------------------------------------------------------------------
--- 
+--
 -- TODO: to be documented
--- 
+--
 -------------------------------------------------------------------------------
 
 CREATEFUNCTION AddRasterColumn(varchar, varchar, integer, varchar[],
@@ -688,7 +693,7 @@
                                double precision, double precision,
                                integer, integer, geometry)
     RETURNS text AS
-$$ 
+$$
 DECLARE
     ret text;
 BEGIN
@@ -703,9 +708,9 @@
 -- DROPRASTERCOLUMN
 --      <catalog> <schema> <table> <column>
 -------------------------------------------------------------------------------
--- 
+--
 -- TODO: to be implemented, to be documented
--- 
+--
 -------------------------------------------------------------------------------
 
 CREATEFUNCTION DropRasterColumn(varchar, varchar, varchar, varchar)



More information about the postgis-commits mailing list