]> granicus.if.org Git - postgis/commitdiff
more cleanup -- issue with raster / raster functions and output convexhull instead...
authorRegina Obe <lr@pcorp.us>
Sun, 8 Jan 2012 07:29:03 +0000 (07:29 +0000)
committerRegina Obe <lr@pcorp.us>
Sun, 8 Jan 2012 07:29:03 +0000 (07:29 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@8702 b70326c6-7e19-0410-871a-916f4a2858ee

doc/xsl/raster_gardentest.sql.xsl

index 2935a93d8ac905a0295149f79d464d9f06b09a30..8927b399a8dbb7603e8872cba83d2492a7ac717d 100644 (file)
@@ -31,6 +31,7 @@
        <xsl:variable name='var_logtable'>raster_garden_log</xsl:variable>
        <xsl:variable name='var_pixeltypes'>{8BUI,1BB}</xsl:variable>
        <xsl:variable name='var_pixelvalues'>{255,0}</xsl:variable>
+       <xsl:variable name='var_algorithm'>'Lanczos'</xsl:variable>
        <xsl:variable name='var_pt'>ST_Centroid(rast1.rast::geometry)</xsl:variable>
        <xsl:variable name='var_reclassarg'>ROW(2, '0-100:1-10, 101-500:11-150,501 - 10000: 151-254', '8BUI', 255)</xsl:variable>
        <xsl:variable name='var_georefcoords'>'2 0 0 3 0.5 0.5'</xsl:variable>
@@ -235,23 +236,24 @@ COMMIT;<xsl:text>
                                <xsl:variable name='fnargs'><xsl:call-template name="listparams"><xsl:with-param name="func" select="." /></xsl:call-template></xsl:variable>
                                <xsl:variable name='fnname'><xsl:value-of select="funcdef/function"/></xsl:variable>
                                <xsl:variable name='fndef'><xsl:value-of select="funcdef"/></xsl:variable>
+                               -- <xsl:value-of select="funcdef"/>
                                <xsl:variable name='numparams'><xsl:value-of select="count(paramdef/parameter)" /></xsl:variable>
-                               <xsl:variable name='numparamgeoms'><xsl:value-of select="count(paramdef/type[contains(text(),'geometry') or contains(text(),'geography') or contains(text(),'box') or contains(text(), 'bytea')]) + count(paramdef/parameter[contains(text(),'WKT')]) + count(paramdef/parameter[contains(text(),'geomgml')])" /></xsl:variable>
+                               <xsl:variable name='numparamgeoms'><xsl:value-of select="count(paramdef/type[contains(text(),'geometry') or contains(text(),'geography') or contains(text(),'box') ]) + count(paramdef/parameter[contains(text(),'WKT')]) + count(paramdef/parameter[contains(text(),'geomgml')])" /></xsl:variable>
                                <xsl:variable name='numparamrasts'><xsl:value-of select="count(paramdef/type[contains(text(),'raster')] )" /></xsl:variable>
                                <xsl:variable name='log_label'><xsl:value-of select="funcdef/function" />(<xsl:value-of select="$fnargs" />)</xsl:variable>
 
                                <xsl:variable name="geoftype">
                                  <!--Conditionally instantiate a value to be assigned to the variable -->
                                  <xsl:choose>
+                                       <xsl:when test="contains(paramdef, 'raster ')">
+                                         <xsl:value-of select="Raster"/>
+                                       </xsl:when>
                                        <xsl:when test="contains(paramdef, 'geometry ')">
                                          <xsl:value-of select="Geometry"/>
                                        </xsl:when>
                                        <xsl:when test="contains(paramdef, 'geography ')">
                                          <xsl:value-of select="Geography"/>
                                        </xsl:when>
-                                       <xsl:when test="contains(paramdef, 'raster ')">
-                                         <xsl:value-of select="Raster"/>
-                                       </xsl:when>
                                        <xsl:otherwise>
                                          <xsl:value-of select="Other"/>
                                        </xsl:otherwise>
@@ -317,34 +319,42 @@ SELECT  'Ending <xsl:value-of select="funcdef/function" />(<xsl:value-of select=
 <!-- log to results table -->
                SELECT '<xsl:value-of select="$geoftype" /> <xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />: Start Testing <xsl:value-of select="@PixType" />';
 
-       <!--Store first garden sql geometry from -->
+       <!--Store first garden sql rast  from -->
                                        <xsl:variable name="from1"><xsl:value-of select="." /></xsl:variable>
                                        <xsl:variable name='pix1type'><xsl:value-of select="@PixType"/></xsl:variable>
                                        
                SELECT '<xsl:value-of select="$fnname" /> <xsl:text> </xsl:text><xsl:value-of select="@ID" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$pix1type" /> against other types';
-                                               <xsl:for-each select="document('')//pgis:gardens/pgis:gset">
+                                               <xsl:for-each select="document('')//pgis:pixeltypes/pgis:pixeltype">
                                                
                        INSERT INTO <xsl:value-of select="$var_logtable" />(log_label, func, g1, g2, log_start) 
-                               VALUES('<xsl:value-of select="$log_label" /> <xsl:value-of select="$pix1type" /> <xsl:text> </xsl:text><xsl:value-of select="@ID" /><xsl:text> </xsl:text>','<xsl:value-of select="$fnname" />', '<xsl:value-of select="$pix1type" />','<xsl:value-of select="@GeometryType" />', clock_timestamp());
+                               VALUES('<xsl:value-of select="$log_label" /> <xsl:value-of select="$pix1type" /> <xsl:text> </xsl:text><xsl:value-of select="@ID" /><xsl:text> </xsl:text>','<xsl:value-of select="$fnname" />', '<xsl:value-of select="$pix1type" />','<xsl:value-of select="@PixType" />', clock_timestamp());
                        BEGIN;
                                        <xsl:choose>
                                                <xsl:when test="$numparamrasts > '1'">
-                                               SELECT 'Raster <xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="$pix1type" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$pix1type" />, <xsl:value-of select="@GeometryType" />';
+                                               SELECT 'Raster <xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="$pix1type" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$pix1type" />, <xsl:value-of select="@PixType" />';
                        <!-- If input is raster show wkt rep -->
-                         <xsl:if test="contains(funcdef, 'raster ') or contains(funcdef, 'geometry ')">
+                         <xsl:if test="contains($fndef, 'raster ') or contains($fndef, 'geometry ')">
         <!-- If output is raster or geometry show ewkt convexhull rep -->
                        SELECT ST_ConvexHull(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />) )
                        </xsl:if>
        <!-- else just output it -->
-                       <xsl:if test="not(contains(funcdef, 'raster ') or contains(funcdef, 'geometry ') )">
+                       <xsl:if test="not(contains($fndef, 'raster ') or contains($fndef, 'geometry ') )">
                SELECT <xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)
                        </xsl:if>
                        , ST_AsText(ST_ConvexHull(rast1.rast)) As ref1_geom, ST_AsText(ST_ConvexHull(rast2.rast)) As ref2_geom
                                          </xsl:when>
                                          <xsl:when test="$numparamgeoms > '0'">
-                                               SELECT 'Geometry <xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$pix1type" />, <xsl:value-of select="@GeometryType" />';
+                                               SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$pix1type" />, <xsl:value-of select="@GeometryType" />';
                        <!-- If input is geometry show ewkt rep -->
-                       SELECT <xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />), ST_AsEWKT(rast1.rast::geometry) As ref1_geom, ST_AsEWKT(foo2.the_geom) As ref2_geom
+                         <xsl:if test="contains(funcdef, 'raster ') or contains(funcdef, 'geometry ')">
+        <!-- If output is raster or geometry show ewkt convexhull rep -->
+                       SELECT ST_ConvexHull(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />) )
+                       </xsl:if>
+       <!-- else just output it -->
+                       <xsl:if test="not(contains(funcdef, 'raster ') or contains(funcdef, 'geometry ') )">
+               SELECT <xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />)
+                       </xsl:if>
+                       , ST_AsEWKT(rast1.rast::geometry) As ref1_geom, ST_AsEWKT(rast2.rast::geometry) As ref2_geom
                                          </xsl:when>
                                          <xsl:otherwise>
                                                SELECT 'Other <xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of select="@ID" />(<xsl:value-of select="$fnargs" />): Start Testing <xsl:value-of select="$pix1type" />, <xsl:value-of select="@GeometryType" />';
@@ -352,7 +362,7 @@ SELECT  'Ending <xsl:value-of select="funcdef/function" />(<xsl:value-of select=
                        SELECT ST_AsText(<xsl:value-of select="$fnname" />(<xsl:value-of select="$fnfakeparams" />))
                                          </xsl:otherwise>
                                        </xsl:choose>
-                                       FROM (<xsl:value-of select="$from1" />) As rast1 CROSS JOIN (<xsl:value-of select="." />) As foo2
+                                       FROM (<xsl:value-of select="$from1" />) As rast1 CROSS JOIN (<xsl:value-of select="." />) As rast2
                                        LIMIT 2;
                        <!-- log completion -->
                        <xsl:value-of select="$var_logupdatesql" />
@@ -378,6 +388,10 @@ SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of sel
                                <xsl:choose>
                                     <!-- ignore output parameters -->
                                    <xsl:when test="contains(parameter,'OUT')"></xsl:when>
+                                   <xsl:when test="contains(parameter, 'algorithm')">
+                                               <xsl:value-of select="$var_algorithm" />
+                                       </xsl:when>
+                                   
                                        <xsl:when test="contains(parameter, 'georefcoords')">
                                                <xsl:value-of select="$var_georefcoords" />
                                        </xsl:when>
@@ -419,10 +433,10 @@ SELECT '<xsl:value-of select="$fnname" /><xsl:text> </xsl:text><xsl:value-of sel
                                        </xsl:when>
                                        
                                        <xsl:when test="contains(type,'box') or type = 'geometry' or type = 'geometry '">
-                                               <xsl:text>foo2.the_geom</xsl:text>
+                                               <xsl:text>rast2.rast::geometry</xsl:text>
                                        </xsl:when>
                                        <xsl:when test="type = 'geography' or type = 'geography '">
-                                               <xsl:text>geography(foo2.the_geom)</xsl:text>
+                                               <xsl:text>geography(rast2.rast::geometry)</xsl:text>
                                        </xsl:when>
                                        <xsl:when test="contains(type,'raster[]') and (position() = 1) ">
                                                <xsl:text>ARRAY[rast1.rast]</xsl:text>