在 PostGIS 中沿折线提取栅格像素值
Extract raster pixel values along a polyline in PostGIS
我有一个包含栅格的 table 的 PostGIS 数据库,我想在特定时间沿多段线(任意数量的坐标点)提取像素值。所以 objective 是:
- Select 给定折线和时间戳的相关图块
- Return折线穿过的所有像素的值
因此每个输出行将包含一对坐标和相应的像素值。
根据我目前在谷歌上搜索到的内容,我知道我要么
- 将线转换为栅格,然后进行交集,或者
- 将光栅转换为矢量,然后进行交集
但是,我无法将找到的几个例子应用到我的案例中。有人可以给个提示吗?
栅格 table 称为 air_temperature
,相关列为 rast
和 timestamp
。我了解到我可以提供适当的几何形状,例如 "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()
来提取像素带。这比将栅格转换为几何图形并进一步处理它要快,但缺点是您很可能只能分析线顶点(而不是每个点)。
我有一个包含栅格的 table 的 PostGIS 数据库,我想在特定时间沿多段线(任意数量的坐标点)提取像素值。所以 objective 是:
- Select 给定折线和时间戳的相关图块
- Return折线穿过的所有像素的值
因此每个输出行将包含一对坐标和相应的像素值。
根据我目前在谷歌上搜索到的内容,我知道我要么
- 将线转换为栅格,然后进行交集,或者
- 将光栅转换为矢量,然后进行交集
但是,我无法将找到的几个例子应用到我的案例中。有人可以给个提示吗?
栅格 table 称为 air_temperature
,相关列为 rast
和 timestamp
。我了解到我可以提供适当的几何形状,例如 "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()
来提取像素带。这比将栅格转换为几何图形并进一步处理它要快,但缺点是您很可能只能分析线顶点(而不是每个点)。