特定の日の旅行時間の等時線を表すポリゴンのテーブルがあります。各原点には、5つのアイソクロネジオメトリがあります(別々の行に格納されます)。各原点について、5つのアイソクロナス(バイナリNULLまたは1)をラスタライズし、それらを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に戻す)ことです。理想的ではありませんが、実行可能です。