Opened 9 years ago
Last modified 7 years ago
#3318 assigned defect
ST_MapAlgebra with mask seems to hard-code distance 1 instead of inferring distance from mask matrix — at Initial Version
Reported by: | robe | Owned by: | pramsey |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS Fund Me |
Component: | raster | Version: | master |
Keywords: | Cc: |
Description
I've moved this from the now closed mask documentation #2603 to here
DROP TABLE IF EXISTS shapes; CREATE TABLE shapes(rid integer, rast raster); INSERT INTO shapes(rid,rast) VALUES ( 1, ST_AsRaster( ST_Buffer( ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'), 200,200,ARRAY['8BUI'], ARRAY[118], ARRAY[0]) ); SELECT st_mapalgebra(rast,1,'st_mean4ma(double precision[], int[], text[])'::regprocedure,'{{1,0,1,1,1}, {1,0,1,1,1}, {1,0,1,1,1}, {1,0,1,1,1}, {1,0,1,1,1}}'::double precision[],false) FROM shapes;
Gives error:
ERROR: rt_pixel_set_array: mask dimensions 5 x 5 do not match given dims 3 x 3
It's my understanding based on dusty's comments that the neighborhood size should be inferred from the mask size, so there seems to me something wrong here.
Bborie's comments copied from other ticket
Distance is two pixels left, right, up, down from the pixel of interest...
2 2 2 2 2 2 1 1 1 2 2 1 0 1 2 2 1 1 1 2 2 2 2 2 2
So the distance x/y are correct. As for that error message, I'll need to dig.
Note:
See TracTickets
for help on using tickets.