Files

103 lines
6.2 KiB
Markdown

# Pierzainer Ground
AI 연결 없이 종평면도와 교각 Excel에서 지반면 JSON을 생성합니다.
운곡교는 첫 번째 자료, 산외교는 두 번째 자료이며 기존 최종 결과를 유지합니다.
## 일반 실행 — 두 파일만 선택
1. **`지반모델링 프로그램 실행.bat`** 실행
2. **종평면도 DXF/DWG** 선택
3. **교각 Excel** 선택
4. **지반 모델 자동 생성** 클릭
새 화면 제목은 **`도면 + Excel 자동 생성 v2`** 입니다. 이전 화면이 열려 있으면 닫고 다시 실행하세요.
EPSG·블록명·축 방향·레이어·설정 파일을 사용자가 입력할 필요가 없습니다.
결과는 `data/output/drawing_도면명/`에 자동 저장됩니다.
- `ground_model.json`: 실제 지반면·교각·출처·지도 처리 상태 (지도 취득 실패 시)
- `ground_model_3d_with_maps.json`: 실제 위성사진·2D 지도까지 포함됐을 때 생성
- `generation_settings.json`: 프로그램이 자동 결정한 처리 조건 기록 (입력할 필요 없음)
- `cache/`: 원본 DWG 변환본과 실제 지도 이미지. 같은 입력의 반복 처리에 사용
이전에 지도 없는 `ground_model.json`이 생성되어 있으면, 같은 두 입력의 지도 생성 성공 후
그 파일도 지도 포함 결과로 갱신합니다. 이전 파일명을 열어서 오래된 지도 없는 결과를 보는 일을 방지합니다.
## 자동 처리 과정
```text
종평면도 + 교각 Excel
→ Excel IP1/IP3 중점으로 교각 중심 계산
→ 도면의 지형 블록과 CAD 축 후보 비교
→ 각 교각 위치에서 실측 표고점·등고선 TIN이 유효한지 확인
→ 일치하는 지형으로 고저차가 있는 지반 격자 생성
→ 원본 좌표계 / 동일 원본의 기존 처리 이력 확인
→ 정보 없음: 프로젝트 기본 EPSG:5186 적용 및 가정 상태 기록
→ 실제 위성사진/2D 지도 취득·결합
```
교각 문자 삽입점을 교각 중심으로 사용하거나 좌표를 임의 평행이동하지 않습니다.
표고 0의 단순 CAD 선과 구조용 3D 선을 지형으로 자동 채택하지 않습니다.
자료가 없는 영역과 긴 TIN 삼각형은 `null`입니다.
서로 다른 표고의 지형 원본이 중복되어 자동 판별할 수 없으면 원자료 문제를 표시합니다.
모델 좌표는 X=북(N), Y=동(E), 단위 m입니다. CAD x/y 순서는 실제 교각 좌표와
지형 TIN의 일치를 대조해 결정합니다. 거리·표고는 m, 구조 치수는 기존 스키마의 mm 규약입니다.
## 지도 처리
지도 좌표계는 도면 GEODATA/WKT, 도면·Excel의 명시된 EPSG 또는 **동일 원본 해시로
확인한 기존 처리 규약**을 우선합니다. 이전에 사용자가 지정한 좌표계도 두 입력의 해시가
동일할 때만 재사용합니다 (`data/input/coordinate_references.json`).
정보가 없는 다른 종평면도는 `data/input/map_defaults.json`의 **EPSG:5186**을 기본값으로
적용하여 지도도 포함합니다. 이는 원본에서 확인된 좌표계가 아니라 프로젝트의 매핑 가정입니다.
이 경우 `crs_assumed=true`, `crs_status=project_default_not_source_verified`로 기록하고 화면에 표시합니다.
산외교처럼 기존 원본 규약이 EPSG:5187인 자료는 이 기본값으로 덮어쓰지 않습니다.
동일 원본의 기존 규약을 재사용한 경우에도 기존의 추정/검증 상태를 보존합니다.
확인된 좌표계의 기존 실제 이미지 캐시를 우선 사용하며, 새 지도 취득은 OSM/Esri 인터넷을 사용합니다.
타일 요청으로 해당 위치 지역이 지도 서비스에 전달됩니다. AI/API 키는 필요 없습니다.
`map_status.status`는 다음과 같습니다.
| 상태 | 의미 |
|---|---|
| `mapped` | 위성사진과 2D 지도가 실제 이미지로 포함됨 |
| `unresolved_crs` | 원본 두 파일에서 지도 좌표계를 확정할 수 없음. 지반면 생성은 완료 |
| `image_unavailable` | 지반면 생성 완료, 지도 이미지 취득 실패 |
| `not_requested` | 코드에서 지도 생성을 요청하지 않음 |
지도 다운로드가 실패해도 지반 생성 전체를 실패로 처리하지 않습니다.
좌표계 기본값이 실제 도면 좌표계와 다른 경우 지도 위치가 어긋날 수 있습니다.
지도는 위치 확인용 배경이며 공인 측량 정확도를 보장하지 않습니다.
## 기존 운곡교·산외교 재생성
**`지반 JSON 생성.bat`** 또는 아래 명령은 기존 두 교량의 보존된 조건을 그대로 재현합니다.
```powershell
.venv/Scripts/python.exe -B build_ground_models.py --bridge all
```
최종 파일은 각각 `data/output/ungok/ground_model_3d_with_maps.json`,
`data/output/sanwoe/ground_model_3d_with_maps.json`입니다.
운곡교는 최초 지형 DXF가 없어 보존한 실제 지반면을 재사용합니다.
산외교는 동일 원본의 EPSG:5183 → EPSG:5187 처리 규약을 재사용하며, 이 좌표계는 기존에 위치를 대조한 가정입니다.
## 유지하는 구조
`pierzainer_ground/`는 실제 실행 소스, `data/input/ungok`·`sanwoe`는 원본과 기존 데이터,
`data/cache/`는 실제 지도 이미지, `data/output/`은 최종 결과입니다.
`.venv/`와 `tools/libredwg/`는 실행 의존성이며 `.backup/`의 ZIP 하나는 정리 전 복구 자료입니다.
검증 스크립트·비교 보고서·임시 출력 폴더는 유지하지 않습니다.
설치된 환경이 없으면 `pip install -r requirements.txt`로 의존성을 설치합니다.
## 확인된 결과
- 기존 운곡교: 교각 6개 / 유효 지반 격자 1,759개 / 위성사진·2D 지도
- 기존 산외교: 교각 7개 / 유효 지반 격자 10,626개 / 위성사진·2D 지도
- 옥성교: 실제 `XR_현황` 블록 / 교각 6개 / 여백 100 m·격자 5 m에서 유효 격자 2,344개
- 옥성교: 이전에 사용자가 선택한 EPSG:5186을 적용하여 실제 OSM 2D 지도와 Esri 위성사진 포함 생성 완료.
좌표계는 `user_selected_unverified`로 기록합니다.
원본 도면과 최종 두 교량 결과는 검증 없이 삭제하거나 덮어쓰지 않습니다.
모든 작업 결과는 `pierzainer_ground` 내부에 저장합니다.