Vairāk

Punktu paraugu ņemšanas rastrs ar PostGIS

Punktu paraugu ņemšanas rastrs ar PostGIS


Es izstrādāju PostGIS vaicājumu rastru paraugiem, izmantojot punktu tabulu, lai noteiktu zemes seguma izmaiņas. Esmu izlasījis dokumentāciju par ST_value un es varu iegūt viena punkta rastra vērtību, izmantojot šādu vaicājumu:

SELECT rid, ST_Value (rast, 1, ST_SetSRID (ST_Point (484375.820,4742079.979), 32617)) kā b1 FROM imagery.l8_2015_09_12 WHERE ST_Intersects (rast, ST_SetSRID (ST_Point (484375.820,4742071797); ģeometrija

Tomēr, atlasot, izmantojot punktu tabulu, es nevaru panākt, lai ST_Value darbotos. Izpildot šādu vaicājumu QGIS SQL logā:

- atlasiet rastru no punktu tabulas SELECT ST_Value (r.rast, 3, p.geom) Kā band3 FROM analysis_results.sample_points AS p, imagery.l8_2015_09_12 AS r WHERE ST_Intersects (r.rast, p.geom);

Es saņemu šādu kļūdu:

Mēģinājums iegūt pikseļa vērtību ar punktu punktu ģeometriju

Tabulai ir daudzpunktu ģeometrijas datu tips, kāpēc ST_value nespēlē labi?


ST_Value ir stingra prasība pēc punkta, nevis uz MultiPoint; viens veids, kā to apiet, ir izmantot ST_Dump. Pirmā vaicājuma uzņemšana un punkta konvertēšana uz MultiPoint:

SELECT rid, ST_Value (rast, 1, (ST_Dump (ST_Multi (ST_SetSRID (ST_Point (484375.820, 4742079.979), 32617)))). Geom) AS b1 NO attēla.l8_2015_09_12 WHERE ST_Intersects (rast, ST_SetSR4 , 32617) :: ģeometrija, 1);

Šis risinājums darbojas, lai atlasītu rastru, izmantojot punktu tabulu.

SELECT rid, ST_Value (r.rast, 3, (ST_Dump (p.geom)). Geom) Kā band3 FROM analīzes_rezultāti.parauga_punkti AS p, attēli.l8_2015_09_12 AS r WHERE ST_Intersects (r.rast, ST_SetSRID (p.geom, 32617) ) :: ģeometrija, 1);