我有一个表示特定日期旅行时间等时线的多边形表。对于每个原点,有五个等时线几何体(存储在单独的行中)。对于每个原点,我要栅格化五个等时线(二进制NULL或1),然后将它们组合成一个栅格图层。此栅格图层需要一个简单的地图代数:sum / 5,以便最终每个原点都将与一个单独的栅格图层相关联,该栅格图层的值分别为[NULL,0.2、0.4、0.6、0.8、1],具体取决于多少组成层重叠。这是一个概率面。
我的数据全部存储在Postgres 9.3(带有PostGIS)中。我的问题是,尽管我想学习使用PostGIS栅格,但是学习曲线似乎非常陡峭,我可以找到的所有示例都涉及单个栅格图层。在示例中,该图层用作多边形叠加层的一部分,可能平均了每个多边形的栅格值。我还没有找到组合的可复制示例:a)矢量->栅格b)地图代数;c)按照我的第一段的GROUP BY属性。
如果必须执行此任务,我可以使用GDAL或GRASS,但这似乎是PostGIS应该能够处理的。鉴于我的输入数据已经是PostGIS几何图形,这样做会很方便;我真的很想了解PostGIS栅格。
一些样本数据结构:
areaid time date isogeom (polygon)
1000 07:15:00 2014-05-05 xxx
1000 07:15:00 2014-05-06 xxy
...
1006 07:15:00 2014-05-05 zzz
我想栅格化,按areaid分组,然后执行地图代数得出:
areaid isorast (raster)
1000 aaa
1006 bbb
我没有成功将其包含到PostGIS中。我的方法是将矢量转换为栅格,将栅格转储为数组,并通过psycopg2将其与numpy数组组合,然后再将其写入GeoTIFF(可能会放回PostGIS中)。不理想,但可行。