# 2026-07-18 Python GIS 의존성 업그레이드 작업 이력 ## 상태 - 완료일: 2026-07-18 - 결과: NumPy 2.x 및 GIS 스택 업그레이드, Trimesh·Pyogrio 반영, WhiteboxTools 실행 복구 완료 ## 확정 버전 | 패키지 | 작업 전 | 확정 버전 | 처리 결과 | |---|---:|---:|---| | numpy | 1.26.4 | 2.5.0 | 업그레이드 | | scipy | 1.16.3 | 1.18.0 | 업그레이드 | | shapely | 2.0.6 | 2.1.2 | 업그레이드 | | rasterio | 1.3.9 | 1.5.0 | 업그레이드 | | laspy | 2.4.1 | 2.7.0 | 업그레이드 | | geopandas | 0.14.0 | 1.1.4 | 업그레이드 | | trimesh | 3.23.0 | 4.12.2 | GLB 검증 후 확정 업그레이드 | | pyogrio | 없음 | 0.13.0 | 신규 추가 | | whitebox | 2.3.0 | 2.3.6 | 업그레이드 | | setuptools | 83.0.0 | 83.0.0 | 유지 | ## 변경 파일 | 파일 | 변경 내용 | |---|---| | `requirements.txt` | 위 9개 패키지의 확정 핀 반영 및 Pyogrio 추가 | | `B05_wf2_Route/B05_wf2_Route_Engine_Skeleton.py` | Whitebox 임시 DEM에 CRS GeoKey를 부여하여 실제 D8 실행 복구 | ## WhiteboxTools 해결 내용 1. `whitebox==2.3.0`이 제거된 `pkg_resources`를 사용해 `setuptools==83.0.0`에서 생성 실패하던 문제를 `whitebox==2.3.6` 업그레이드로 해결했다. 2. 최초 실행 시 WhiteboxTools Windows 바이너리를 내려받았고 `WhiteboxTools v2.4.0`의 `version()` 호출을 확인했다. 3. B05 임시 GeoTIFF에 GeoKey가 없어 실행 바이너리가 중단되던 문제를 `crs="EPSG:3857"` 지정으로 해결했다. 임시 파일은 D8 격자 계산에만 사용되며 결과 산출물로 보존되지 않는다. ## 검증 결과 | 검증 | 결과 | |---|---| | `pip install -r requirements.txt` | 전체 의존성 동시 설치 성공 | | `pip check` | `No broken requirements found` | | 핵심 10개 패키지 import 및 버전 확인 | 통과 | | B04 프로젝트 함수 기반 GLB 생성 | 통과, GLB 헤더 확인 | | Pyogrio GeoJSON 쓰기·읽기 왕복 | 통과 | | B05 Whitebox D8 직접 실행 | 통과, NumPy 폴백 미사용, `max_acc=9.0` | | Ruff format/check 및 `py_compile` | 통과 | ## 후속 관리 - Rasterio와 Pyproj가 서로 다른 PROJ 런타임을 포함하므로 CRS 변환 이상이 재현될 경우 우선 점검한다. - Graphify, Ingest, Lint는 별도 AI 작업 범위로 남긴다.