24 lines
1.1 KiB
Python
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)
|