"""Recover a drawing-layout frame only from mutually consistent pier geometry. No map pixels, text insertion points, or user offsets are used as controls. Unresolved/ambiguous fits are rejected. This script produces evidence, not terrain. """ import itertools,json,math from pathlib import Path import numpy as np from ezdxf import recover from build_sample_grounds import OUTPUT,save from pierzainer_ground.project_coordinates import workbook_piers from pierzainer_ground.plan_registration import resolve_plan_registration def run(job): out=Path(job['output']);doc,_=recover.readfile(str(next((out/'cache').glob('*.dxf')))) evidence=resolve_plan_registration(doc,workbook_piers(job['workbook'])) evidence['sample']=job['sample'] save(out/'plan_registration.json',evidence) print(json.dumps({'sample':job['sample'],'candidates':len(evidence['candidate_rectangles']),'solutions':evidence['solutions']},ensure_ascii=False),flush=True) if __name__=='__main__': for job in json.loads((OUTPUT/'inputs.json').read_text(encoding='utf-8')): if job['sample'] in (5,10,11):run(job)