import sys exec(open('/tmp/verify_daesan2_run/scripts/final.py').read().split("for st in ['4745.0005','5100.0','5469.9995']:")[0]) for st in ['4745.0005','5100.0']: B=to_dxf(pts(st,lambda g,i:g=='기층·인버트(가정)'),st,1); D=to_dxf(pts(st,lambda g,i:g=='배수(측구)'),st,1) bw=B[(B[:,0]>=9526.3+150)&(B[:,0]<=18726.3-150)] xs=np.arange(9676.3,18576.3,50.0) top_line=lambda x: 15484.0+(x-9526.3)*(15300-15484)/9200.0 bot_line=lambda x: 15334.0+(x-9526.3)*(15150-15334)/9200.0 tt=[];bb=[] for x0 in xs: m=(bw[:,0]>=x0-25)&(bw[:,0]15150), interior: max|dev|={np.abs(bb).max():.1f} mm, mean={bb.mean():.1f} mm (signed; negative=model below drawing)") # drains body vs lid body=np.vstack([REF[k] for k in ['DRN_wallL1','DRN_wallL2','DRN_botL','DRN_pipeL','DRN_wallR1','DRN_wallR2','DRN_botR','DRN_pipeR']]) lid=np.vstack([REF['DRN_topL'],REF['DRN_topR']]) dm=D[(D[:,0]>8900)&(D[:,0]<19300)] a,_=cKDTree(dm).query(body); b,_=cKDTree(dm).query(lid) print(f"{st}: DRN body (walls/bottom/pipe) ref->model max={a.max():.1f} mm; lid (450-wide top line) ref->model max={b.max():.1f} mm") print(f"{st}: DRN model x-extent per ditch: left {dm[dm[:,0]<14126,0].min():.0f}-{dm[dm[:,0]<14126,0].max():.0f}, right {dm[dm[:,0]>14126,0].min():.0f}-{dm[dm[:,0]>14126,0].max():.0f}")