ฉันมีตารางรูปหลายเหลี่ยมแสดงเวลาในการเดินทางในแต่ละวัน สำหรับจุดเริ่มต้นแต่ละจุดมีรูปทรงเรขาคณิต isochrone ห้า (เก็บไว้ในแถวที่แยกต่างหาก) สำหรับจุดเริ่มต้นแต่ละจุดฉันต้องการที่จะรวมห้า isochrones (ไบนารี NULL หรือ 1) แล้วรวมเข้ากับชั้นแรสเตอร์เดียว เลเยอร์แรสเตอร์นี้ต้องใช้พีชคณิตแผนที่อย่างง่าย ๆ : sum / 5 เพื่อให้ต้นกำเนิดแต่ละอันจะเชื่อมโยงกับเลเยอร์แรสเตอร์เดี่ยวที่มีค่าใน [NULL, 0.2, 0.4, 0.6, 0.8, 1] ขึ้นอยู่กับจำนวน ชั้นที่เป็นองค์ประกอบทับซ้อนกัน มันเป็นพื้นผิวที่น่าจะเป็น
ข้อมูลของฉันถูกเก็บไว้ใน Postgres 9.3 (พร้อม PostGIS) ปัญหาของฉันคือในขณะที่ฉันต้องการเรียนรู้การใช้ PostGIS แรสเตอร์ดูเหมือนว่าจะมีช่วงการเรียนรู้ที่สูงชันและตัวอย่างทั้งหมดที่ฉันสามารถหาข้อตกลงกับชั้นแรสเตอร์เดียว ในตัวอย่างเลเยอร์นี้ใช้เป็นส่วนหนึ่งของรูปหลายเหลี่ยมซ้อนทับอาจเฉลี่ยค่าของแรสเตอร์สำหรับรูปหลายเหลี่ยมแต่ละรูป ฉันไม่พบตัวอย่างที่จำลองได้สำหรับการรวม: a) เวกเตอร์ -> raster b) พีชคณิตแผนที่ และ c) GROUP BY attribute ตามวรรคหนึ่งของฉัน
ฉันตกลงที่จะใช้ 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 นี้ วิธีการของฉันคือการแปลงเวกเตอร์เป็นแรสเตอร์ทิ้งแรสเตอร์เป็นอาร์เรย์และดำเนินการผสมกับอาร์เรย์ numpy ผ่าน psycopg2 ก่อนที่จะเขียนลงใน GeoTIFF (อาจจะนำกลับมาใช้ใน PostGIS) ไม่เหมาะ แต่ทำได้