Files
secondo/bin/Scripts/SimilarityPartitioning.sec

32 lines
780 B
Plaintext
Raw Normal View History

2026-01-23 17:03:45 +08:00
# let k = 50;
query memclear();
let SSm = SS feed mconsume;
let SSm_Pos_mtree = SSm mcreatemtree[Pos]
let Balls = SS feed
extend[Radius: fun(t: TUPLE)
distance(attr(t, Pos),
SSm_Pos_mtree SSm mdistScan[attr(t, Pos)] head[k] tail[1] extract[Pos])]
mconsume
let maxRadius = Balls mfeed max[Radius]
let PCm = Balls mfeed head[0] mconsume;
let PCm_Pos_mtree = PCm mcreatemtree[Pos]
query Balls mfeed filter[fun(t: TUPLE)
PCm_Pos_mtree PCm mdistRange[attr(t, Pos), attr(t, Radius) + maxRadius]
filter[distance(attr(t, Pos), .Pos) < attr(t, Radius) + .Radius]
count = 0]
minsert[PCm]
minsertmtree[PCm_Pos_mtree, Pos]
consume
let PC = PCm mfeed project[Osm_id, Pos, Radius] addcounter[N, 0]
extend[C: circle(.Pos, .Radius, 20)]
consume