在 PostGIS 中沿折线提取栅格像素值

Extract raster pixel values along a polyline in PostGIS

我有一个包含栅格的 table 的 PostGIS 数据库,我想在特定时间沿多段线(任意数量的坐标点)提取像素值。所以 objective 是:

  1. Select 给定折线和时间戳的相关图块
  2. Return折线穿过的所有像素的值

因此每个输出行将包含一对坐标和相应的像素值。

根据我目前在谷歌上搜索到的内容,我知道我要么

  1. 将线转换为栅格,然后进行交集,或者
  2. 将光栅转换为矢量,然后进行交集

但是,我无法将找到的几个例子应用到我的案例中。有人可以给个提示吗?

栅格 table 称为 air_temperature,相关列为 rasttimestamp。我了解到我可以提供适当的几何形状,例如 "st_transform(st_setsrid(st_geomfromtext('MULTILINESTRING ((7.294832 52.697831, 7.294074 52.698534))'), 4326), 3857)".

我想我可以 select 通过包含一个 where 语句来 select 相关的图块和时间戳:

where st_intersects(st_transform(st_setsrid(st_geomfromtext('MULTILINESTRING ((7.294832 52.697831, 7.294074 52.698534))'), 4326), 3857), rast) and timestamp='2017-01-01 01:00:00'

但是 select 部分看起来如何?

我想,您应该upload your rasters into database and than employ st_value() 来提取像素带。这比将栅格转换为几何图形并进一步处理它要快,但缺点是您很可能只能分析线顶点(而不是每个点)。