Valor ráster PostGIS de un punto lat / lon

13

Tengo un ráster tiff en mi base de datos PostGIS 2.0. Quiero obtener el valor del ráster en un punto lat / lon especificado.

Yo tengo:

  • postgresql-9.1
  • postgis-2.0-svn con soporte raster
  • un ráster importado en PostGIS su SRID es 3035
avances123
fuente

Respuestas:

11

Puede transformar el punto lat / lon en CRS ráster sobre la marcha utilizando ST_Transform (). Combinada, la consulta se ve así:

ST_Value(your_raster, ST_Transform(ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))
bajo oscuro
fuente
5

La función ST_value:

http://postgis.net/docs/RT_ST_Value.html

devuelve un valor ráster dado un punto en x, y o lat, lon.

unicoletti
fuente
funciona, pero en esta página los ejemplos que las fuerzas para ingresar su consulta en EPSG: 3035, y quiero consulta en puntos lon lat ..
avances123
4

Si bien ST_Value funciona, también necesita unirse espacialmente al punto:

SELECT ST_Value(your_raster.rast, ST_Transform(ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))
FROM your_raster
WHERE ST_Intersects(your_raster.rast, ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))

O con una mesa:

SELECT ST_Value(your_raster.rast, ST_Transform(ST_SetSRID(ST_MakePoint(your_table.lon,your_table.lat),4326),3035))
FROM your_raster
JOIN your_table ON ST_Intersects(your_raster.rast, ST_SetSRID(ST_MakePoint(your_table.lon,your_table.lat),4326),3035))
HeikkiVesanto
fuente