대지분석에서 녹지는 보통 「공원녹지」 패널로 끝납니다. 도시계획시설로 지정된 공원과 녹지의 폴리곤입니다. 그런데 그건 땅의 용도지 나무가 아닙니다. 공원 폴리곤 안에 잔디밭인지 숲인지 구분이 없고, 폴리곤 밖의 가로수·중정 수목은 아예 없습니다. 보고서에서 「가로수가 있는 길」과 「없는 길」을 가르고 싶으면 나무 자체를 찾아야 합니다.
수목(TREES) 패널은 항공사진에서 나무를 직접 찾아 찍습니다. 이 글은 그게 어떻게 되는지, 어디서 실패했는지, 그리고 열에 셋은 놓친다는 한계를 왜 숨기지 않는지에 대한 설명입니다.
한국은 VWorld 항공영상을 씁니다. 대지분석 축척에서 화소 하나가 약 47cm라 수관 하나가 10~20픽셀로 잡힙니다. 나무 한 그루를 개체로 볼 수 있는 해상도입니다. 반경 300m 모자이크가 2초 안에 붙습니다.
식생 검출의 교과서적 방법은 초록 지수(ExG, VARI 같은 G−R 계열)입니다. 초록 채널이 빨강보다 얼마나 높은가를 재는 겁니다. 그런데 VWorld 영상에서 이 방법은 즉시 무너졌습니다. 나무가 거의 없는 명동의 G−R 중앙값이 +23인데 남산 숲이 +24였습니다. 영상 전체에 초록빛이 깔려 있어서(색 보정 과정에서 생긴 전역 캐스트로 보입니다) 회색 노면도 「초록」으로 읽히는 겁니다. 절대 임계값을 대면 명동이 「식생 40%」가 됩니다.
답은 HSV 색공간이었습니다. 색상(hue)이 70~160°(초록 대역)이면서 채도(saturation)가 0.35 이상인 화소만 식생으로 봅니다. 회색 노면은 초록 캐스트가 있어도 채도가 낮아서 걸러지고, 잎은 캐스트와 무관하게 채도가 높습니다. 이 규칙으로 명동 7.5%, 여의도(공원 포함) 16.8%, 남산 숲 41.9%가 나왔습니다 — 순서와 크기가 모두 타당합니다.
색만 보면 두 가지가 나무로 잡힙니다. 녹색 방수페인트 옥상과 녹조 낀 수면입니다. 둘 다 스펙트럼으로 가르기 어렵지만, 우리는 건물 발자국과 수면 폴리곤을 이미 갖고 있습니다. 그걸로 지웠습니다.
| 대지 | 마스킹 전 | 마스킹 후 | 지운 면적 |
|---|---|---|---|
| 명동 300m | 7.52% | 5.07% | 35.6% |
| 여의도 500m | 15.76% | 13.74% | 17.0% |
| 한강 반포 | 8.76% | 4.31% | 53.6% |
명동은 개체 수가 895에서 584로 줄었습니다 — 옥상에 얹혀 있던 것들입니다. 한강 반포는 절반이 물이었습니다. 마스킹으로 잃는 진짜 나무는 얼마나 되는지도 재봤습니다. 가로수 4,506그루 중 11그루(0.2%포인트)였습니다. 「가지가 지붕을 덮은 나무가 빠진다」는 걱정은 실측상 무의미했습니다.
검출된 화소를 전부 점으로 찍으면 숲에서 문제가 생깁니다. 최소 간격을 두고 점을 고르는 알고리즘은 이어진 숲에서 점을 격자처럼 규칙 배열합니다. 실제로는 없는 규칙성을 광고하는 그림이 됩니다.
그래서 12m 창에서 수관 밀도가 0.7을 넘는 곳은 이어진 수관(면)으로, 나머지만 개체(원)로 그립니다. 수림대는 면으로, 가로수는 개체로 그리는 도면 관행과도 맞습니다. 개체 원의 반지름은 네 방향으로 식생이 이어지는 길이에서 재서 1.2~6m 사이로 잡습니다. 렌더는 0.2~0.5초입니다.
이 검출이 실제 나무를 얼마나 잡는지는 서울시 가로수 위치정보(2026년, 287,635그루)와 대조해 잰 값입니다. 등록 가로수 자리 ±3m 안에 우리 검출이 있으면 잡은 것으로 쳤습니다.
| 명동 | 강남역 | 여의도 | 성수 | 잠실 | 상암 | 연남동 | 합계 |
|---|---|---|---|---|---|---|---|
| 69% | 75% | 68% | 58% | 70% | 69% | 78% | 69.9% |
빠지는 건 그늘에 든 나무와 채도가 죽은 나무입니다. 채도 문턱을 낮추면 재현율은 84%까지 오르는데, 그 대신 명동 수관이 5.7%에서 14.6%로 뛰어 회색 노면과 그늘이 딸려 들어옵니다. 색 정보만으로는 재현율과 오탐이 같이 풀리지 않아서 문턱을 그대로 두고 한계를 적는 쪽을 택했습니다.
가로수 대장은 공공누리 4유형(상업적 이용·변경 금지)이라 검증에만 썼고 서비스에는 담지 않았습니다. 화면에 찍히는 나무는 전부 영상에서 찾은 것입니다.
미국 뉴욕은 같은 패널을 다른 방법으로 만듭니다. NAIP 항공영상에 근적외선 밴드가 있기 때문입니다. 잎은 광합성에 쓰려고 빨간빛을 흡수하고 쓸모없는 근적외선은 거의 다 되쏩니다. 그래서 근적외선 사진에서 나무는 하얗게 타고 아스팔트는 어둡습니다. 그 대비를 재는 값이 NDVI(정규식생지수)입니다.
뉴욕시 2015 가로수 총조사 3,497그루와 대조한 재현율이 86%입니다. 타임스스퀘어 1.6%·허드슨강 0.0%로 오탐도 깨끗합니다. 한국과의 16%포인트 차이가 곧 근적외선이 없는 값입니다.
한국에서 근적외선을 쓸 수 있는지도 확인했습니다. VWorld 항공·위성은 RGB 3밴드뿐입니다. Sentinel-2 위성은 근적외선을 주고 서울을 덮지만 화소가 10m라 수관 5m 한 그루가 화소의 20%밖에 안 됩니다 — 공원·산림 규모 판별에는 선명하지만(남산 NDVI 0.88 vs 명동 0.12) 가로수는 못 찾습니다. 국토지리정보원 정사영상은 파일로 내려받는 물건이라 분석 시점에 호출할 API가 아니고, 근적외선 포함 여부도 공개 문서에서 확인하지 못했습니다. 지금 공개 API로는 없습니다.
다른 미국 도시(LA·시카고 등)에서는 수목 패널이 기본 세트에서 빠집니다. NAIP은 주·연도마다 촬영 조건이 달라 같은 문턱이 통한다는 보장이 없고, 그 도시 지상자료로 대조를 하지 않았기 때문입니다. 빈 도판을 내는 것보다 없는 게 낫습니다.
수목 검출 코드는 한 곳에 있고, 열쾌적 지도의 수관 그늘이 같은 것을 씁니다. 한쪽만 고치면 다이어그램과 열쾌적 지도가 어긋나기 때문입니다. 열쾌적에서는 검출된 자리에 높이 8m를 가정해 그림자를 드리우는데, 그 가정은 열쾌적 글에서 따로 설명합니다.