1CREATE TABLE raster_world2raster ( 2 rid integer, 3 rast raster 4); 5CREATE OR REPLACE FUNCTION make_test_raster( 6 rid integer, 7 width integer DEFAULT 2, 8 height integer DEFAULT 2, 9 ul_x double precision DEFAULT 0, 10 ul_y double precision DEFAULT 0, 11 skew_x double precision DEFAULT 0, 12 skew_y double precision DEFAULT 0, 13 initvalue double precision DEFAULT 1, 14 nodataval double precision DEFAULT 0 15) 16 RETURNS void 17 AS $$ 18 DECLARE 19 x int; 20 y int; 21 rast raster; 22 BEGIN 23 rast := ST_MakeEmptyRaster(width, height, ul_x, ul_y, 1, 1, skew_x, skew_y, 0); 24 rast := ST_AddBand(rast, 1, '8BUI', initvalue, nodataval); 25 26 INSERT INTO raster_world2raster VALUES (rid, rast); 27 28 RETURN; 29 END; 30 $$ LANGUAGE 'plpgsql'; 31 32-- no skew 33SELECT make_test_raster(0, 4, 4, -2, -2); 34SELECT make_test_raster(1, 2, 2, 0, 0, 0, 0, 2); 35SELECT make_test_raster(2, 2, 2, 1, -1, 0, 0, 3); 36SELECT make_test_raster(3, 2, 2, 1, 1, 0, 0, 4); 37SELECT make_test_raster(4, 2, 2, 2, 2, 0, 0, 5); 38 39-- skew 40SELECT make_test_raster(10, 4, 4, -2, -2, 1, -1); 41SELECT make_test_raster(11, 2, 2, 0, 0, 1, -1, 2); 42SELECT make_test_raster(12, 2, 2, 1, -1, 1, -1, 3); 43SELECT make_test_raster(13, 2, 2, 1, 1, 1, -1, 4); 44SELECT make_test_raster(14, 2, 2, 2, 2, 1, -1, 5); 45 46DROP FUNCTION make_test_raster(integer, integer, integer, double precision, double precision, double precision, double precision, double precision, double precision); 47 48SELECT 49 rid, 50 (ST_WorldToRasterCoord(rast, -2, -2)).* 51FROM raster_world2raster; 52SELECT 53 rid, 54 (ST_WorldToRasterCoord(rast, 0, 0)).* 55FROM raster_world2raster; 56SELECT 57 rid, 58 (ST_WorldToRasterCoord(rast, 1, -1)).* 59FROM raster_world2raster; 60SELECT 61 rid, 62 (ST_WorldToRasterCoord(rast, 1, 1)).* 63FROM raster_world2raster; 64SELECT 65 rid, 66 (ST_WorldToRasterCoord(rast, 2, 2)).* 67FROM raster_world2raster; 68 69SELECT 70 rid, 71 (ST_WorldToRasterCoord(rast, ST_MakePoint(-2, -2))).* 72FROM raster_world2raster; 73SELECT 74 rid, 75 (ST_WorldToRasterCoord(rast, ST_MakePoint(0, 0))).* 76FROM raster_world2raster; 77SELECT 78 rid, 79 (ST_WorldToRasterCoord(rast, ST_MakePoint(1, -1))).* 80FROM raster_world2raster; 81SELECT 82 rid, 83 (ST_WorldToRasterCoord(rast, ST_MakePoint(1, 1))).* 84FROM raster_world2raster; 85SELECT 86 rid, 87 (ST_WorldToRasterCoord(rast, ST_MakePoint(2, 2))).* 88FROM raster_world2raster; 89 90SELECT 91 rid, 92 ST_WorldToRasterCoordX(rast, -2, -2) 93FROM raster_world2raster; 94SELECT 95 rid, 96 ST_WorldToRasterCoordX(rast, 0, 0) 97FROM raster_world2raster; 98SELECT 99 rid, 100 ST_WorldToRasterCoordX(rast, 1, -1) 101FROM raster_world2raster; 102SELECT 103 rid, 104 ST_WorldToRasterCoordX(rast, 1, 1) 105FROM raster_world2raster; 106SELECT 107 rid, 108 ST_WorldToRasterCoordX(rast, 2, 2) 109FROM raster_world2raster; 110 111SELECT 112 rid, 113 ST_WorldToRasterCoordX(rast, ST_MakePoint(-2, -2)) 114FROM raster_world2raster; 115 116SELECT 117 rid, 118 ST_WorldToRasterCoordX(rast, -2) 119FROM raster_world2raster; 120SELECT 121 rid, 122 ST_WorldToRasterCoordX(rast, 0) 123FROM raster_world2raster; 124SELECT 125 rid, 126 ST_WorldToRasterCoordX(rast, 1) 127FROM raster_world2raster; 128SELECT 129 rid, 130 ST_WorldToRasterCoordX(rast, 1) 131FROM raster_world2raster; 132SELECT 133 rid, 134 ST_WorldToRasterCoordX(rast, 2) 135FROM raster_world2raster; 136 137SELECT 138 rid, 139 ST_WorldToRasterCoordY(rast, -2, -2) 140FROM raster_world2raster; 141SELECT 142 rid, 143 ST_WorldToRasterCoordY(rast, 0, 0) 144FROM raster_world2raster; 145SELECT 146 rid, 147 ST_WorldToRasterCoordY(rast, 1, -1) 148FROM raster_world2raster; 149SELECT 150 rid, 151 ST_WorldToRasterCoordY(rast, 1, 1) 152FROM raster_world2raster; 153SELECT 154 rid, 155 ST_WorldToRasterCoordY(rast, 2, 2) 156FROM raster_world2raster; 157 158SELECT 159 rid, 160 ST_WorldToRasterCoordX(rast, ST_MakePoint(-2, -2)) 161FROM raster_world2raster; 162 163SELECT 164 rid, 165 ST_WorldToRasterCoordY(rast, -2) 166FROM raster_world2raster; 167SELECT 168 rid, 169 ST_WorldToRasterCoordY(rast, 0) 170FROM raster_world2raster; 171SELECT 172 rid, 173 ST_WorldToRasterCoordY(rast, 1) 174FROM raster_world2raster; 175SELECT 176 rid, 177 ST_WorldToRasterCoordY(rast, 1) 178FROM raster_world2raster; 179SELECT 180 rid, 181 ST_WorldToRasterCoordY(rast, 2) 182FROM raster_world2raster; 183 184DROP TABLE raster_world2raster; 185