if (PG_ARGISNULL(i)) {
/* if skewed on same axis, parameter is required */
if (skewed[i - 1]) {
- /* in 2.0, error is ERROR. for 2.1 must change to NOTICE */
- elog(ERROR, "RASTER_rasterToWorldCoord: Pixel row and column required for computing longitude and latitude of a rotated raster");
+ elog(NOTICE, "Pixel row and column required for computing longitude and latitude of a rotated raster");
rt_raster_destroy(raster);
PG_RETURN_NULL();
}
if (PG_ARGISNULL(i)) {
/* if skewed, parameter is required */
if (skewed) {
- /* in 2.0, error is ERROR. for 2.1 must change to NOTICE */
- elog(ERROR, "RASTER_worldToRasterCoord: Latitude and longitude required for computing pixel row and column of a rotated raster");
+ elog(NOTICE, "Latitude and longitude required for computing pixel row and column of a rotated raster");
rt_raster_destroy(raster);
PG_RETURN_NULL();
}
AS $$ SELECT columnx, rowy FROM _st_world2rastercoord($1, $2, $3) $$
LANGUAGE 'sql' IMMUTABLE STRICT;
+---------------------------------------------------------------------------------
+-- ST_World2RasterCoordX(rast raster, pt geometry)
+-- Returns the pixel column and row covering the provided point geometry.
+-- This function works even if the point is outside the raster extent.
+---------------------------------------------------------------------------------
+CREATE OR REPLACE FUNCTION st_world2rastercoord(
+ rast raster, pt geometry,
+ OUT columnx integer,
+ OUT rowy integer
+)
+ AS
+ $$
+ DECLARE
+ rx integer;
+ ry integer;
+ BEGIN
+ IF (st_geometrytype(pt) != 'ST_Point') THEN
+ RAISE EXCEPTION 'Attempting to compute raster coordinate with a non-point geometry';
+ END IF;
+ SELECT rc.columnx AS x, rc.rowy AS y INTO columnx, rowy FROM _st_world2rastercoord($1, st_x(pt), st_y(pt)) AS rc;
+ RETURN;
+ END;
+ $$
+ LANGUAGE 'plpgsql' IMMUTABLE STRICT;
+
---------------------------------------------------------------------------------
-- ST_World2RasterCoordX(rast raster, xw float8, yw float8)
-- Returns the column number of the pixel covering the provided X and Y world
(ST_Raster2WorldCoord(rast, -1, 0)).*
FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, 1, 1)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, 1, 2)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, 2, 2)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, 0, 0)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, -1, 0)
+FROM raster_raster2world;
+
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, 1)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, 1)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, 2)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, 0)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordX(rast, -1)
+FROM raster_raster2world;
+
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, 1, 1)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, 1, 2)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, 2, 2)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, 0, 0)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, -1, 0)
+FROM raster_raster2world;
+
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, 1)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, 1)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, 2)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, 0)
+FROM raster_raster2world;
+SELECT
+ rid,
+ ST_Raster2WorldCoordY(rast, -1)
+FROM raster_raster2world;
+
DROP TABLE raster_raster2world;
12|-2|0
13|-2|2
14|-1|3
+0|-2
+1|0
+2|1
+3|1
+4|2
+10|-2
+11|0
+12|1
+13|1
+14|2
+0|-2
+1|0
+2|1
+3|1
+4|2
+10|-1
+11|1
+12|2
+13|2
+14|3
+0|-1
+1|1
+2|2
+3|2
+4|3
+10|0
+11|2
+12|3
+13|3
+14|4
+0|-3
+1|-1
+2|0
+3|0
+4|1
+10|-4
+11|-2
+12|-1
+13|-1
+14|0
+0|-4
+1|-2
+2|-1
+3|-1
+4|0
+10|-5
+11|-3
+12|-2
+13|-2
+14|-1
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-2
+1|0
+2|1
+3|1
+4|2
+10|
+11|
+12|
+13|
+14|
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-2
+1|0
+2|1
+3|1
+4|2
+10|
+11|
+12|
+13|
+14|
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-1
+1|1
+2|2
+3|2
+4|3
+10|
+11|
+12|
+13|
+14|
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-3
+1|-1
+2|0
+3|0
+4|1
+10|
+11|
+12|
+13|
+14|
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-4
+1|-2
+2|-1
+3|-1
+4|0
+10|
+11|
+12|
+13|
+14|
+0|-2
+1|0
+2|-1
+3|1
+4|2
+10|-2
+11|0
+12|-1
+13|1
+14|2
+0|-1
+1|1
+2|0
+3|2
+4|3
+10|-1
+11|1
+12|0
+13|2
+14|3
+0|-1
+1|1
+2|0
+3|2
+4|3
+10|-2
+11|0
+12|-1
+13|1
+14|2
+0|-3
+1|-1
+2|-2
+3|0
+4|1
+10|-2
+11|0
+12|-1
+13|1
+14|2
+0|-3
+1|-1
+2|-2
+3|0
+4|1
+10|-1
+11|1
+12|0
+13|2
+14|3
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-2
+1|0
+2|-1
+3|1
+4|2
+10|
+11|
+12|
+13|
+14|
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-2
+1|0
+2|-1
+3|1
+4|2
+10|
+11|
+12|
+13|
+14|
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-1
+1|1
+2|0
+3|2
+4|3
+10|
+11|
+12|
+13|
+14|
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-3
+1|-1
+2|-2
+3|0
+4|1
+10|
+11|
+12|
+13|
+14|
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+NOTICE: Pixel row and column required for computing longitude and latitude of a rotated raster
+0|-4
+1|-2
+2|-3
+3|-1
+4|0
+10|
+11|
+12|
+13|
+14|
(ST_World2RasterCoord(rast, 2, 2)).*
FROM raster_world2raster;
+SELECT
+ rid,
+ (ST_World2RasterCoord(rast, ST_MakePoint(-2, -2))).*
+FROM raster_world2raster;
+SELECT
+ rid,
+ (ST_World2RasterCoord(rast, ST_MakePoint(0, 0))).*
+FROM raster_world2raster;
+SELECT
+ rid,
+ (ST_World2RasterCoord(rast, ST_MakePoint(1, -1))).*
+FROM raster_world2raster;
+SELECT
+ rid,
+ (ST_World2RasterCoord(rast, ST_MakePoint(1, 1))).*
+FROM raster_world2raster;
+SELECT
+ rid,
+ (ST_World2RasterCoord(rast, ST_MakePoint(2, 2))).*
+FROM raster_world2raster;
+
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, -2, -2)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, 0, 0)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, 1, -1)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, 1, 1)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, 2, 2)
+FROM raster_world2raster;
+
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, ST_MakePoint(-2, -2))
+FROM raster_world2raster;
+
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, -2)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, 0)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, 1)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, 1)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, 2)
+FROM raster_world2raster;
+
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, -2, -2)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, 0, 0)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, 1, -1)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, 1, 1)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, 2, 2)
+FROM raster_world2raster;
+
+SELECT
+ rid,
+ ST_World2RasterCoordX(rast, ST_MakePoint(-2, -2))
+FROM raster_world2raster;
+
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, -2)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, 0)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, 1)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, 1)
+FROM raster_world2raster;
+SELECT
+ rid,
+ ST_World2RasterCoordY(rast, 2)
+FROM raster_world2raster;
+
DROP TABLE raster_world2raster;
12|0|3
13|1|2
14|1|1
+0|1|1
+1|-1|-1
+2|-2|0
+3|-2|-2
+4|-3|-3
+10|1|1
+11|1|-1
+12|0|-1
+13|1|-2
+14|1|-3
+0|3|3
+1|1|1
+2|0|2
+3|0|0
+4|-1|-1
+10|1|3
+11|1|1
+12|0|1
+13|1|0
+14|1|-1
+0|4|2
+1|2|0
+2|1|1
+3|1|-1
+4|0|-2
+10|2|3
+11|2|1
+12|1|1
+13|2|0
+14|2|-1
+0|4|4
+1|2|2
+2|1|3
+3|1|1
+4|0|0
+10|1|4
+11|1|2
+12|0|2
+13|1|1
+14|1|0
+0|5|5
+1|3|3
+2|2|4
+3|2|2
+4|1|1
+10|1|5
+11|1|3
+12|0|3
+13|1|2
+14|1|1
+0|1
+1|-1
+2|-2
+3|-2
+4|-3
+10|1
+11|1
+12|0
+13|1
+14|1
+0|3
+1|1
+2|0
+3|0
+4|-1
+10|1
+11|1
+12|0
+13|1
+14|1
+0|4
+1|2
+2|1
+3|1
+4|0
+10|2
+11|2
+12|1
+13|2
+14|2
+0|4
+1|2
+2|1
+3|1
+4|0
+10|1
+11|1
+12|0
+13|1
+14|1
+0|5
+1|3
+2|2
+3|2
+4|1
+10|1
+11|1
+12|0
+13|1
+14|1
+0|1
+1|-1
+2|-2
+3|-2
+4|-3
+10|1
+11|1
+12|0
+13|1
+14|1
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|1
+1|-1
+2|-2
+3|-2
+4|-3
+10|
+11|
+12|
+13|
+14|
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|3
+1|1
+2|0
+3|0
+4|-1
+10|
+11|
+12|
+13|
+14|
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|4
+1|2
+2|1
+3|1
+4|0
+10|
+11|
+12|
+13|
+14|
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|4
+1|2
+2|1
+3|1
+4|0
+10|
+11|
+12|
+13|
+14|
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|5
+1|3
+2|2
+3|2
+4|1
+10|
+11|
+12|
+13|
+14|
+0|1
+1|-1
+2|0
+3|-2
+4|-3
+10|1
+11|-1
+12|-1
+13|-2
+14|-3
+0|3
+1|1
+2|2
+3|0
+4|-1
+10|3
+11|1
+12|1
+13|0
+14|-1
+0|2
+1|0
+2|1
+3|-1
+4|-2
+10|3
+11|1
+12|1
+13|0
+14|-1
+0|4
+1|2
+2|3
+3|1
+4|0
+10|4
+11|2
+12|2
+13|1
+14|0
+0|5
+1|3
+2|4
+3|2
+4|1
+10|5
+11|3
+12|3
+13|2
+14|1
+0|1
+1|-1
+2|-2
+3|-2
+4|-3
+10|1
+11|1
+12|0
+13|1
+14|1
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|1
+1|-1
+2|0
+3|-2
+4|-3
+10|
+11|
+12|
+13|
+14|
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|3
+1|1
+2|2
+3|0
+4|-1
+10|
+11|
+12|
+13|
+14|
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|4
+1|2
+2|3
+3|1
+4|0
+10|
+11|
+12|
+13|
+14|
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|4
+1|2
+2|3
+3|1
+4|0
+10|
+11|
+12|
+13|
+14|
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+NOTICE: Latitude and longitude required for computing pixel row and column of a rotated raster
+0|5
+1|3
+2|4
+3|2
+4|1
+10|
+11|
+12|
+13|
+14|