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