<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>
<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>
<!-- 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" />';
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" />
<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>
</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>