Resumen
No puedo cargar un ráster georreferenciado/desviado en QGIS si está almacenado en una base de datos PostGIS.
Detalles del problema
Por algunas razones, necesito crear un ráster sesgado en una base de datos PostGIS, y utilizarlo en mi aplicación personalizada. En primer lugar, puedo crear un raster en PostGIS así:
create table grids(
rid serial primary key,
rdata raster
);
create index idx_grids on grids using gist(ST_ConvexHull(rdata));
-- Parameters: width, height, upperleft-x, upperleft-y, scale-x, scale-y (almost always negative), skew-x, skew-y, EPSG
insert into grids(rid,rdata)
values (1, ST_MakeEmptyRaster(1000,2000,690000.5,4299999.5,12.5*sqrt(2),-6.25*sqrt(2),-6.25*sqrt(2),-12.5*sqrt(2),4509)
update grids
set rdata=ST_AddBand(rdata, '32BSI'::text, 128)
where rid=1;
Debería producir una trama cuadrada, pero girada 45 grados.
Entonces, podría dibujar un pequeño rectángulo utilizando ST_SetValues
:
update grids set rdata=ST_SetValues(rdata,1,200,200,50,50,255)
Pero cuando cargo el ráster en QGIS, el ráster se muestra en posición vertical en lugar de sesgado.
Estoy usando QGIS 3.14.16 y PostgreSQL 12/PostGIS 3.0 bajo Windows 10 2004.
¿Es esa la limitación de QGIS en sí mismo o de sus bibliotecas subyacentes como GDAL? ¿O si hay algo mal en mi sintaxis SQL?