Files
Pier_v1/pierzainer_ground/pierzainer_ground/config.py
T

48 lines
3.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""기존 추출 및 지반 계산 설정값 (단위 m)."""
from __future__ import annotations
from dataclasses import dataclass, field
@dataclass
class LayerMap:
"""수치지형도 레이어 매핑 (운곡교 평면도 C0050202-001 기준)."""
spot_block: tuple[str, ...] = ("CA002",) # 표고점 블록, INSERT z = EL
spot_text: tuple[str, ...] = ("CA0021",) # 표고점 글자, 글자 값 = EL
contour: tuple[str, ...] = ("CAA001", "CAA002") # 계곡선 · 주곡선, 폴리라인 elevation = EL
bore_text: tuple[str, ...] = ("CV-BORE-TEXT",) # 시추공 번호
bore_symbol: tuple[str, ...] = ("CV-BORE-SYMB",) # 시추공 기호
bridge: tuple[str, ...] = ("CF-BRDG-NEWC",) # 계획 교량 외곽 (그림용)
pier_text: tuple[str, ...] = ("CS-XXXX",) # 교각 번호 텍스트 (piers JSON 없어도 자동 추출)
elevation_layer_keywords: tuple[str, ...] = ("EL", "ELEV", "LEVEL", "SPOT", "TBM", "BM", "표고", "고도")
contour_layer_keywords: tuple[str, ...] = ("CONTOUR", "CONTR", "CAA", "CNTR", "등고", "곡선")
pier_layer_keywords: tuple[str, ...] = ("PIER", "교각", "XXXX", "BRIDGE")
ground_profile_layer_keywords: tuple[str, ...] = ("GRND", "GROUND", "GLAY", "GLINE", "TERRAIN", "TOPO", "지형", "지반", "토피")
scale_layer_keywords: tuple[str, ...] = ("GSCL", "SCALE", "LEV", "ELV", "표고", "고도", "LEGEND")
# 3D 지형지물 폴리라인은 기본으로 쓰지 않는다 (--use-3d-lines 로 켬).
feature_3d_exclude_prefix: tuple[str, ...] = ("B", "CZ") # 건물(B*), 도곽·기타(CZ*) 제외
@dataclass
class GroundConfig:
layers: LayerMap = field(default_factory=LayerMap)
cad_axes: str = "YX" # "YX": CAD x = 측량 Y(동), CAD y = 측량 X(북). "XY": 그대로
use_3d_lines: bool = False # 3D 지형지물 폴리라인 꼭짓점을 지표면에 넣을지
use_profile_points: bool = True # 실지도 신규 작업에서는 종단 도식 좌표 사용 금지
allowed_terrain_layers: tuple[str, ...] = () # 빈 값이면 기존 레이어 탐색 사용
z_min: float = 0.0 # 유효 EL 범위 (이상치 1차 제거)
z_max: float = 200.0
outlier_radius: float = 15.0 # 이웃 비교 반경 (m)
outlier_dz: float = 5.0 # 이웃 중앙값과의 차이 한계 (m)
dedup_xy: float = 0.05 # 같은 자리 판정 (m)
text_block_match: float = 3.0 # 표고점 글자를 블록과 같은 점으로 볼 거리 (m)
contour_step: float = 2.0 # 등고선 꼭짓점 사이를 이 간격으로 촘촘히 (m)
tin_max_edge: float = 100.0 # 이보다 긴 변을 가진 삼각형은 자료 없음으로 처리 (m)
dtm_sparse: float = 30.0 # I07: 지반고를 만든 지형 점이 이보다 멀면 알림 (m)
ground_tol: float = 0.3 # W09: 엑셀 지반고와 DTM 차이 한계 (m)
bore_far: float = 30.0 # I04: 가장 가까운 시추공 거리 한계 (m)
bore_max: float = 80.0 # 이보다 먼 시추공은 보간에 쓰지 않음 (m)
support_layer: str = "연암" # 지지층 (G-7)
embed_d: float = 1.0 # 지지층 근입 깊이 = embed_d × 말뚝 지름 (G-7)
strata_order: tuple[str, ...] = ("매립토", "퇴적토", "풍화토", "풍화암", "연암", "경암") # G-2