경로 데이터는 어떻게 검증하나
이 사이트의 코스는 대부분 공개 데이터에서 옵니다 — 한국관광공사 두루누비, OpenStreetMap, 각국 관광청. 그런데 받은 파일을 그대로 싣지는 않습니다.
공개 GPX에는 실제로 틀린 것이 들어 있습니다. 41 m 언덕을 463 m 올랐다고 적은 파일, 19 km를 걷는데 상승이 0이라는 파일, 17 km 코스가 40 km로 나오는 파일. 이 글은 무엇을 검사하고, 걸리면 어떻게 하는지를 적습니다. 검사를 통과하지 못한 사례와 아직 해결하지 못한 것도 함께 적습니다.
출처가 없으면 등록하지 않습니다
가장 먼저 걸리는 조건입니다. 등록 도구는 출처 정보가 없는 코스를 아예 거부합니다. 이름, URL, 라이선스를 다 적어야 통과합니다. 예외는 없습니다.
데이터는 그것을 모은 사람의 것이고, 출처 표시는 예의가 아니라 이용 조건입니다. 그래서 모든 경로 상세 페이지 아래에 출처와 라이선스가 붙어 있습니다.
검사 1 — 이 고도는 정말 땅을 잰 것인가
파일에 고도가 채워져 있다고 해서 그게 측정값이라는 뜻은 아닙니다. 두 가지로 망가집니다.
하나, 아예 변하지 않습니다. 서해랑길 87·88코스는 파일 안의 모든 고도가 0.0입니다. 각각 757개, 1188개 점 전부요. "데이터 없음"을 뜻하는 자리표시자인데, 그냥 더하는 함수한테는 완벽한 평지로 보입니다. 그래서 88코스는 19 km를 걷는 동안 상승 0 m라고 올라와 있었습니다.
둘, 변하긴 하는데 땅이 그렇게 생기지 않았습니다. 두루누비 제주올레 파일 15개는 고도가 끝에서 끝까지 0과 −1을 번갈아 갑니다. 값이 변하고, 그럴듯하게 오르내리고, 15 km 동안 1 m를 오갑니다. 진짜 코스 데이터는 그렇지 않습니다 — 가장 평평한 서해랑길 파일도 고도 폭이 12.1 m는 됩니다.
두 번째 종류를 잡으려고 경사를 셉니다. 이웃한 두 점 사이의 기울기가 100%(45도)를 넘으면 "사람이 걷는 땅이 아니다"로 봅니다. 한두 번은 있을 수 있지만 반복되면 그건 지형이 아닙니다.
기준선은 감이 아니라 두 모집단을 실제로 재서 정했습니다.
| 데이터 | 45도를 넘는 스텝의 비율 |
|---|---|
| 서해랑길 12개 파일 (측량 자료) | 0.0% — 12개 전부 |
| 두루누비 제주올레 파일 (2017년 소비자 GPS 기록) | 중앙값 6.9%, 최악 23.9% |
제주올레 쪽에는 이웃한 두 점 사이가 220 m 차이나는 스텝도 있습니다. 두 모집단은 1% 근처 어디에서도 겹치지 않습니다. 그래서 임계값을 1%로 잡았습니다.
이 검사가 잡아낸 것이 무엇인지 보여주는 예 — 제주올레 14-1코스는 그 데이터로 9.8 km에 상승 3,607 m를 보고합니다.
검사를 통과하지 못한 고도는 버리고, 고도 서비스에 다시 물어봅니다.
검사 2 — 잔떨림을 상승으로 세지 않습니다
고도가 진짜여도 GPS에는 잔떨림이 섞입니다. 평지인데 +0.2 m, −0.3 m 같은 계단이 수천 개 찍힙니다.
서해랑길 45코스는 해발 41 m를 넘지 않는데 단순 합산으로 463 m가 나왔고, 그 3분의 2가 0.3 m 미만짜리 계단이었습니다. 그래서 한 번에 5 m 넘게 오른 것만 셉니다. 그 숫자를 어떻게 골랐는지는 누적 상승 안내에 있습니다.
검사 3 — 선이 스스로 모순되지 않는가
OpenStreetMap에서 트레일을 가져올 때는 다른 문제가 생깁니다. 하나의 트레일이 수백 개의 조각(way)으로 나뉘어 있고, 그것을 이어 붙여야 하는데 순서를 무엇으로 정하느냐가 문제입니다.
덴마크 트레일 3개를 올릴 때 겪은 일입니다.
Gendarmstien의 Bjergetapen 구간이 21.63 km로 나왔습니다. 그런데 조각들의 개별 길이를 그냥 더하면 14.82 km입니다. 릴레이션에 적힌 멤버 순서대로 이었더니 중간에 6,451 m짜리 점프가 직선으로 들어간 것입니다. 다섯 구간 합도 92.01 km로 공식 84 km를 크게 넘었습니다.
멤버 순서 대신 가장 가까운 끝점끼리 잇는 방식으로 바꾸자 47개 릴레이션 전부에서 150 m가 넘는 이음새가 0이 됐습니다.
여기서 얻은 것이 검사 방법 그 자체입니다. 조각들의 개별 길이 합과 이어 붙인 길이를 비교하면 됩니다. 둘이 다르면 이음새가 점프를 삼킨 것입니다. 어느 방식이 맞는지 미리 알 방법이 없었는데, 이제는 잽니다.
검사 4 — 앞 구간이 끝난 곳에서 시작하는가
구간이 번호로 이어지는 트레일은 앞 구간의 끝과 이번 구간의 시작이 붙어 있어야 합니다. 등록 도구에 그 확인이 들어 있어서, 잘못 받은 GPX가 보드에 닿기 전에 걸립니다.
그리고 마지막 — 공식 수치와 대조합니다
여기까지는 전부 파일이 자기 자신과 모순되는지를 보는 검사입니다. 그것만으로는 부족합니다. 마지막에 관광청·국립공원이 공표한 거리·구간 수·누적 상승과 맞춰 봅니다.
덴마크 3개 트레일의 결과입니다.
| 트레일 | 측정 | 공식 |
|---|---|---|
| Gendarmstien | 84.63 km | 84 km |
| Camønoen | 174.74 km | 175 km |
| Hærvejen | 646.06 km | 653.8 km (태그 합) |
가장 좋은 확인은 앞서 나온 Bjergetapen입니다 — VisitSønderborg가 14.8 km라고 적는데 기하 체인이 14.82 km를 줍니다.
맞지 않은 것도 그대로 적습니다
Camønoen 8구간은 36.75 km로, 공식 27.3 km보다 9 km 이상 깁니다. 구간 경계를 옮겨 봐도 원인이 거기가 아니었습니다 — Hårbølle에서 묀 다리까지가 실제 56.0 km인데 공식 6·7·8구간 합이 46.3 km입니다. 공식 쪽 수치가 어디서 온 것인지 밝히지 못했습니다. 측정값대로 올리고, 그 코스 설명에 이 사실을 적어 두었습니다.
Hærvejen의 Hirtshals→Tornby 구간은 아예 빼놓았습니다. 조각 길이 합이 4.98 km인데 태그는 15.9 km라고 적고 있고, 이음새는 0입니다. 즉 릴레이션에 11 km가 통째로 없습니다. 채울 근거를 찾지 못해서 올리지 않았습니다.
덴마크는 세 트레일 어디에도 누적 상승이 공표돼 있지 않습니다. 고도 표본 간격이 적절한지 대조할 수 없는 첫 나라였고, 그 사실을 각 코스 설명에 적었습니다.
자기검증이 닿지 못하는 곳
마지막 이야기가 이 글에서 가장 중요합니다.
구마노 고도 허브 지도에 2.7 km짜리 구멍이 보인다는 지적을 받았습니다. 재 봤더니 이음새 셋 중 둘은 붙어 있고(0.00 km, 0.12 km) 하나만 2.68 km 벌어져 있었습니다. 길 망으로 재니 그 사이는 걸어서 이어집니다(2.98 km, 우회 1.12배).
여기서 "그냥 릴레이션이 안 나눠진 것"이라고 답을 끝낼 뻔했습니다. 공식을 보고 나서야 진짜 이유를 알았습니다 — 구마노혼구관광협회는 小雲取越을 小口에서 請川까지로 정의하고, 그 안내문은 請川에서 혼구까지 3~4 km는 국도를 걷거나 버스를 타라고 적습니다.
구멍은 데이터 누락이 아니라, 공식이 구간을 끊어 놓은 자리였습니다.
지오메트리 자기검증은 선이 스스로 모순되는 것만 잡습니다. "걸어서 이어진다"는 선에 대한 사실이고, "왜 하필 거기서 끊기는가"는 출처에 대한 사실입니다. 뒤엣것은 자기검증으로 닿지 않습니다. 그래서 마지막 단계가 공식 대조이고, 그래서 어긋나면 이유를 밝히기 전까지는 올리지 않습니다.
고칠 때는 URL을 지킵니다
이미 올라간 코스의 숫자가 틀렸다고 판명되면, 지우고 다시 올리는 대신 같은 문서를 제자리에서 고칩니다. 문서 id, 등록일, 좋아요, 다운로드 수, 댓글, 장소 핀이 그대로 남습니다.
이유는 단순합니다. 모든 코스 페이지가 사이트맵에 있어서, 지웠다 다시 올리면 그만큼의 링크가 죽습니다. 표기 하나 고치자고 남의 북마크를 깨뜨릴 일은 아닙니다.
---
여기 적은 숫자들은 경로 상세 페이지의 거리·상승 값과 코스 모음의 구간 비교표에 그대로 반영돼 있습니다. 그 값이 어떻게 난이도와 예상 시간이 되는지는 난이도 안내에 있습니다.
