diff --git a/.env b/.env index 509a5e6e5..4d9fecafd 100644 --- a/.env +++ b/.env @@ -90,3 +90,4 @@ AUTH_OTP_DISABLED=True NVIDIA_API_KEY=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 # 노선분석 산사태위험지도(행안부 생활안전지도 WMS IF_0046 · D03_PlanAnalysis_Landslide) 키 — 비우면 겹 꺼짐 SAFEMAP_API_KEY= +DATA_GO_KR_API_KEY=0j5WZHeNxSkdPVSLXUsx9kVikXEN%2BDc%2Byv68jz8IpKFffjbZkRiQrJO78y6rxPCTqhiSOW4lDxpid0twkSVQ9g%3D%3D diff --git a/.gitignore b/.gitignore index 41ea91f75..2a17e5483 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,8 @@ storage/ #resources/ # 전국 등고선 gpkg 22GB — 영구 추적 제외 (배포서버 구성 시 직접 배치) resources/data_global_contours/national_contours.gpkg +# 산림 주제도 원본(산림청 공개 파일) — 추적 제외 +resources/data_forest/ # 로그 파일 *.log diff --git a/M02_MasterTemplete/M02_MasterTemplete_Hopyo_ToItem.ts b/M02_MasterTemplete/M02_MasterTemplete_Hopyo_ToItem.ts index 429e3c8ba..01f117d13 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_Hopyo_ToItem.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_Hopyo_ToItem.ts @@ -83,7 +83,7 @@ export async function toItem(o: ToItemOptions): Promise { close(); document.dispatchEvent(new Event(ITEM_BUILT)); showToast( - `구조물 조합 「${got.이름}」 만듦 — 「실무자료」 폴더 · 줄 ${got.줄수}` + + `구조물 조합 「${label}」 만듦 — 「실무자료」 폴더 · 줄 ${got.줄수}` + (got.열수 > 1 ? ` · 규격 열 ${got.열수}` : ""), "success", 6000, diff --git a/docs/raw/plans/2026-10-31_plan_619.md b/docs/raw/plans/2026-10-31_plan_619.md new file mode 100644 index 000000000..b82c8fb1f --- /dev/null +++ b/docs/raw/plans/2026-10-31_plan_619.md @@ -0,0 +1,9 @@ +# PLAN 619 이관 — 공공데이터포털 키 .env · 산림 주제도 공개 파일 받기(요구 514 · 515) + +## 619 공공데이터포털 키 · 산림 주제도 파일 받기 (요구 514 · 515 · 끝) + +- 근거: `docs/raw/요구_1025/_조사_513_산림청_주제도_API.md` · 정함(사용자): 1:5,000 은 나중 공공기관 협업 때 정식 요청 · 지금은 공공데이터포털 「제한 없음」 1:25,000 급만. +- [x] 619-1 공공데이터포털 인증키 `.secrets.local.md` → `.env` `DATA_GO_KR_API_KEY` · `read_g2b_key` 가 `.env` 읽음 — 확인 = 조달청 API 한 번 정상 + - 검증완료 — `.env` 한 줄 덧 · `.secrets.local.md` 키 값 0 개(git grep) · `read_g2b_key` 가 `.env` 읽음 · 조달청 가격정보 API = 진짜 키는 관문 통과(가짜 키 403 · 빈 키 401) · 응답 = 조달청 Open API 시스템 점검 화면 → 결과 수 확인은 점검 끝난 뒤 한 번 더 (bf0f01d76) +- [x] 619-2 `resources/data_forest/` 에 임상도 1:25,000 · 산림입지토양도 1:25,000 · 임도망도 · 산사태위험지도 공개 받기(로그인 필요 = 적고 넘어감) — 확인 = 크기 · 좌표계 · 칸 · 도형 수 표 + - 검증완료 — 산림청 누리집 공개 내려받기(로그인 없음) 20 zip · 2.7 GB · 125 파일 · 산림입지토양도 1:25,000 전국 17 시도 zip 1,015 MB · Polygon 347,613 · 86 칸 · ITRF2000 TM 중부(5186 꼴) · 20200114 판 / 임상도 1:25,000 = 제주시 예시만 Polygon 4,695 · 5 칸(FIFTH_FRTP DMCLS_CD AGCLS_CD DNST_CD SMBL_CD) / 임도망도 「전체」 = 제주 두 시만 LineString 131 · 142 km · 6 칸 / 산사태위험지도 = 제주시 예시만 GeoTIFF 10 m 등급 1~5 · Korea 2000 Central Belt / 로그인 필요 = 임상도 · 임도망도 · 산사태 전국(산림공간정보서비스 신청) · 빅데이터플랫폼 FRT002601 = 접속 시간 초과 · 표 = `resources/data_forest/_목록.md` diff --git a/docs/raw/요구_1025/사용자요구_1025.md b/docs/raw/요구_1025/사용자요구_1025.md index 63996aa66..e0828c8d3 100644 --- a/docs/raw/요구_1025/사용자요구_1025.md +++ b/docs/raw/요구_1025/사용자요구_1025.md @@ -1029,3 +1029,19 @@ CPU는 더늘리기는 힘들어보이고 GPU 사용을 위해 부품사용에 ## 요구 515 (10-31 · 사용자) 1. api키는 env파일로 옮겨둬. 2. 공공데이터 포털에서 데이터를 다운받는데 위치는 리소스 폴더가 맞을것같아. 적당히 폴더를 만들어서 넣어줘. 3. 지금 랩탑의 CPU 사용율이 89%로 웹앱에는 표기되는데 작업관리자로 확인해보니까 이용률이 19%밖에 안됨.... 왜 그런지 이유를 찾아봐. + +## 요구 516 (10-31 · 사용자) + +2.7gb정도는 깃티아에 올라감. 무리없음. 나만 단독으로 사용하는 레포임. 견본만받은건 뭐지? 그리고 공공데이터포털로 받기로 한거 아니야? + +## 요구 517 (10-31 · 사용자) + +그럼 제주만 받은 데이터는 삭제하고 다른곳을 찾아보자. + +## 요구 518 (10-31 · 사용자) + +경제림육성단지 다운로드함. 어디에 저장해줘? / (붙여넣음: 공공데이터포털 [개발계정] 산림청_경제림육성단지구역도_GW — REST · 자동승인 · 승인 · 활용기간 2026-10-31 ~ 2028-10-31 · XML · End Point https://apis.data.go.kr/1400000/fsInfoService · 일반 인증키(값 적지 않음) · 상세기능 /ecoFrstyOpenAPI 경제림육성단지 국유림 또는 사유림 단지명을 입력받아 기본정보 제공 · 일일 1000 · 활용목적 웹 사이트 개발 · 활용내용 임도설계자동화프로그램 개발) 이부분 확인해봐. + +## 요구 519 (10-31 · 사용자) + +같은 데이터 인지 확인해보면 될것같은데. / (붙여넣음: 산사태위험지도 WMS — 재난안전 · 제공기관 산림청 · REST · WMS · 활용 신청 258 · 갱신주기 1년 · 수정일 2025-05-30 · 5등급 · 호출 safemap.go.kr/openapi2/IF_0046_WMS · 레이어 A2SM_SANSATAI · serviceKey · srs · bbox · format · width · height · transparent · 범례 lgdInfo?intId=IF_0046) 이거 확인해봐. 그리고 포털 활용신청은 한거야. 이전 채팅에 일반 인증키가 있잖아. diff --git a/resources/knowledge/.secrets.local.md b/resources/knowledge/.secrets.local.md index 0252971a9..34f892dac 100644 --- a/resources/knowledge/.secrets.local.md +++ b/resources/knowledge/.secrets.local.md @@ -21,7 +21,7 @@ ## 공공데이터포털 (data.go.kr) — 일반 인증키 - 용도: 조달청 나라장터 가격정보현황서비스 등 data.go.kr OpenAPI 전반 (API별 활용신청 필요) -- 인증키(Encoding형, URL에 그대로 사용): `0j5WZHeNxSkdPVSLXUsx9kVikXEN%2BDc%2Byv68jz8IpKFffjbZkRiQrJO78y6rxPCTqhiSOW4lDxpid0twkSVQ9g%3D%3D` +- 인증키(Encoding형) → .env DATA_GO_KR_API_KEY 로 옮김 - 발급: 2026-08-14, 계정 = data.go.kr 회원(사용자 개인). 만료 시 마이페이지 → 오픈API → 개발계정에서 갱신 - 검증(2026-08-14): 가격정보현황서비스 실호출 정상 (resultCode 00) - 엔드포인트: `http://apis.data.go.kr/1230000/ao/PriceInfoService/<오퍼레이션>?serviceKey=<키>&pageNo=1&numOfRows=999&type=json` diff --git a/resources/knowledge/original/_pipeline/collect_cost_sources.py b/resources/knowledge/original/_pipeline/collect_cost_sources.py index 866a52972..5ee8ae1dd 100644 --- a/resources/knowledge/original/_pipeline/collect_cost_sources.py +++ b/resources/knowledge/original/_pipeline/collect_cost_sources.py @@ -92,7 +92,13 @@ def read_key(pattern, name): def read_g2b_key(): - return read_key(r"인증키\(Encoding형[^`]*`([^`]+)`", "공공데이터포털") + from dotenv import load_dotenv + + load_dotenv(Path(__file__).resolve().parents[4] / ".env") + key = os.environ.get("DATA_GO_KR_API_KEY", "").strip() + if not key: + sys.exit("공공데이터포털 키 없음 — .env DATA_GO_KR_API_KEY") + return key def collect_docs():