Tôi có một bảng đa giác đại diện cho isochrones du hành thời gian vào những ngày đặc biệt. Đối với mỗi điểm gốc, có năm hình học isochrone (được lưu trữ trong các hàng riêng biệt). Đối với mỗi điểm gốc, tôi muốn rasterise năm isochrones (một NULL nhị phân hoặc 1), sau đó kết hợp chúng thành một lớp raster duy nhất. Lớp raster này yêu cầu một đại số bản đồ đơn giản: sum / 5, do đó, mỗi gốc sẽ được liên kết với một lớp raster duy nhất có các giá trị trong [NULL, 0,2, 0,4, 0,6, 0,8, 1] tùy thuộc vào số lượng các lớp cấu thành chồng lên nhau. Đó là một bề mặt xác suất.
Tất cả dữ liệu của tôi được lưu trữ trong Postgres 9.3 (với PostGIS). Vấn đề của tôi là trong khi tôi muốn học cách sử dụng raster PostGIS, nó dường như có một đường cong học tập thực sự dốc và tất cả các ví dụ tôi có thể tìm thấy đối phó với một lớp raster duy nhất. Trong các ví dụ, lớp này được sử dụng như một phần của lớp phủ đa giác, có lẽ lấy trung bình giá trị của raster cho mỗi đa giác. Tôi chưa tìm thấy một ví dụ có thể nhân rộng để kết hợp: a) vectơ -> raster b) đại số bản đồ; và c) Thuộc tính GROUP BY theo đoạn đầu tiên của tôi.
Tôi ổn khi sử dụng GDAL hoặc GRASS nếu tôi phải thực hiện nhiệm vụ này, nhưng điều này có vẻ như là thứ gì đó PostGIS có thể xử lý; Sẽ thuận tiện khi làm như vậy vì dữ liệu đầu vào của tôi đã là hình học PostGIS; và tôi thực sự muốn đi đến thỏa thuận với raster PostGIS.
Một số cấu trúc dữ liệu mẫu:
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
Tôi muốn rasterise, nhóm theo areaid, và sau đó thực hiện đại số bản đồ để đến:
areaid isorast (raster)
1000 aaa
1006 bbb
Tôi đã không thành công trong việc chứa nó cho PostGIS. Cách tiếp cận của tôi là chuyển đổi vectơ thành raster, kết xuất các raster thành các mảng và thực hiện kết hợp với các mảng numpy thông qua psycopg2, trước khi viết chúng vào GeoTIFF (có thể được đưa trở lại vào PostGIS). Không lý tưởng, nhưng có thể.