Empecé con un NetCDF .gri y .catálogo de ráster archivo del reino unido proporcionada por un colega. He recortado en R para ser sólo de Londres, exportado y se convierte en un archivo ASC, y luego importados a PostGIS usando los siguientes comandos en R:
library(raster)
uk_raster <- raster("AnnMean2011.grd")
london_area <- extent(-720000.0,-630000.0,-50000.0,25000)
london_raster <- crop(uk_raster, london_area)
writeRaster(london_raster, filename="AnnMean2011.asc", format="ascii")
Y, a continuación, en el Ubuntu de la línea de comandos:
raster2pgsql -I -C -s 10001 -t 20x20 AnnMean2011.asc annualmean | psql -d james_traffic
Ahora tengo un ráster en la tabla PostGIS. El SRID de 10001 es la siguiente por el camino, de nuevo, proporcionada por un colega:
INSERT INTO spatial_ref_sys(srid, auth_name, auth_srid, proj4text)
VALUES (10001,'CMAQ_Urban',10001,'+proj=lcc +a=6370000 +b=6370000 +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=000000 +y_0=00000');
En la misma base de datos tengo un polígono de archivo, SRID 27700, que cubre Londres. Quiero calcular el valor promedio dentro de cada polígono, de la trama.
Estoy tratando de hacer algo como esto, pero no es correcto:
select polygons.postcode, avg(st_value(joined_data.rast))
from (
select (ST_Intersection(raster.rast, 1, polygons.geom)).*
from raster, polygons
where ST_Intersects(raster.rast, 1, polygons.geom)
) joined_data
group by polygons.postcode
Cómo se podría ir sobre esto, por favor?
Gracias JDS
PD: parece que el polígono y la trama alineados correctamente, tengo que convertirlos a ambos en WGS84 creo.