import sys; sys.path.insert(0,".") import json, collections, io from swdots import dots B=json.load(open('swpos.json',encoding='utf-8')) o=io.open('swb7.txt','w',encoding='utf-8') D=dots(51600,59200,-282000,-274400,maxlen=40) sz=collections.Counter((d[2],d[3]) for d in D); o.write(u'plan dots %d sizes %s\n'%(len(D),sz.most_common(8))) CX,CY=55406.2,-278231.2 for s in sorted(set(d[2] for d in D if d[2]==d[3])): P=[(round(d[0]-CX,1),round(d[1]-CY,1)) for d in D if d[2]==s and d[3]==s] xs=sorted(set(p[0] for p in P)); ys=sorted(set(p[1] for p in P)) o.write(u'size %.1f n=%d x:%d [%s..%s] y:%d [%s..%s]\n'%(s,len(P),len(xs),xs[0],xs[-1],len(ys),ys[0],ys[-1])) mx=sorted(set(round((b['bb'][0]+b['bb'][3])/2,1) for b in B['B7'])); my=sorted(set(round((b['bb'][1]+b['bb'][4])/2,1) for b in B['B7'])) o.write(u'model B7 x %s\n y %s\n'%(mx,my)) pts=collections.Counter((round((b['bb'][0]+b['bb'][3])/2,1),round((b['bb'][1]+b['bb'][4])/2,1)) for b in B['B7']) o.write(u'model B7 positions %d (unique %d)\n'%(sum(pts.values()),len(pts))) b=B['B7'][0]; o.write(u'sample %s\n'%b)