Belirli günlerde seyahat süresi iz zamanlarını temsil eden bir çokgen tablo var. Her başlangıç noktası için beş izokron geometrisi vardır (ayrı satırlarda saklanır). Her başlangıç noktası için, beş eşzamanlı (bir ikili NULL veya 1) rasterleştirmek ve sonra bunları tek bir raster katmanında birleştirmek istiyorum. Bu raster katmanı basit bir harita cebiri gerektirir: toplam / 5, böylece her orijin sonunda kaç tanesine bağlı olarak [NULL, 0.2, 0.4, 0.6, 0.8, 1] değerlerine sahip tek bir raster katmanı ile ilişkilendirilecektir. bileşen katmanları çakışır. Olasılıklı bir yüzeydir.
Verilerimin tümü Postgres 9.3'te (PostGIS ile) saklanır. Benim sorunum PostGIS raster kullanmayı öğrenmek isterken, gerçekten dik bir öğrenme eğrisi var gibi görünüyor ve tüm örnekler tek bir raster katmanı ile ilgili bulabilirsiniz. Örneklerde, bu katman çokgen bir bindirmenin parçası olarak kullanılır, belki de her bir çokgen için raster değerinin ortalaması alınır. Birleştirme için tekrarlanabilir bir örnek bulamadım: a) vektör -> raster b) harita cebiri; ve c) İlk paragrafım uyarınca GROUP BY özelliği.
Ben bu görevi gerçekleştirmek için GDAL veya GRASS kullanarak Tamam, ama bu PostGIS bir şey işlemek gerekir gibi görünüyor; girdi verilerimin zaten PostGIS geometrisi olduğu göz önüne alındığında bunu yapmak uygun olacaktır; ve gerçekten PostGIS raster'iyle anlaşmak istiyorum.
Bazı örnek veri yapısı:
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
Rasterleştirmek, alan kimliğine göre gruplandırmak ve daha sonra gelmek için harita cebirini gerçekleştirmek istiyorum:
areaid isorast (raster)
1000 aaa
1006 bbb
Bunu PostGIS'e dahil etmekte başarılı olamadım. Benim yaklaşımım, vektörü raster haline getirmek, rasterleri dizilere dökmek ve bir GeoTIFF'e (belki de PostGIS'e geri koymak için) yazmadan önce psycopg2 aracılığıyla sayısal dizilerle kombinasyonu gerçekleştirmekti. İdeal değil ama yapılabilir.