PostGIS-Rasterwert eines Lat / Lon-Punkts

13

Ich habe ein Tiff-Raster in meiner PostGIS 2.0-Datenbank. Ich möchte den Wert des Rasters an einem bestimmten Lat / Lon-Punkt erhalten.

Ich habe:

  • postgresql-9.1
  • postgis-2.0-svn mit raster unterstützung
  • Ein in PostGIS importiertes Raster hat die SRID 3035
Fortschritte123
quelle

Antworten:

11

Sie können den Lat / Lon-Punkt mithilfe von ST_Transform () im laufenden Betrieb in Raster-CRS umwandeln. Zusammen sieht die Abfrage so aus:

ST_Value(your_raster, ST_Transform(ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))
Underdunkel
quelle
5

Die Funktion ST_value:

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

Gibt einen Rasterwert mit einem Punkt in x, y oder lat, lon zurück.

unicoletti
quelle
es funktioniert, aber auf dieser Seite werden Sie durch die Beispiele
gezwungen,
4

Während ST_Value funktioniert, müssen Sie sich auch räumlich mit dem Punkt verbinden:

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))

Oder mit einem Tisch:

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
quelle