Files
Pier_v1/pierzainer_ground/recover_plan_coordinates.py

24 lines
1.1 KiB
Python

"""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)