PostGRES

[PostGRES] Buffer를 이용해서 도로 Segment를 도로 객체로 할당

이언배 2025. 2. 20. 10:25

Space Syntax 중에서 angular segment analysis 를 돌리면,

도로를 자근자근 쪼개서 각 segment로 분리한 뒤,

각 segment끼리의 각도를 중심으로 네트워크 분석을 시행한다.

 

도로는 하나인데 segment 는 여러개~

이거로 끝나면 다행이지만, 문제는

DepthmapX로 돌려 나온 결과물은 좌표도 딱히 없고, 도로 객체랑 매치도 안된다.

그리고 ID column도 사라져있기 때문에, 

geometry 로 매칭시켜야 한다.

 

그리고 도로 geometry 는 linestring이기 때문에,

"딱 맞는다" 또는 "포함관계" 를 보기가 어렵기 때문에,

 

도로geometry 에 약간의 buffer를 주고,

그 안에 포함되는 segment 의 평균과 합으로 계산해보자는 전략을 취해보자.

 

CREATE TABLE seoul_ped_spacesyntax AS --새 테이블을 만들어버려야 안전하겠지
(SELECT 
    road.id,
    SUM(asa."T1024_Choice_R1600_metric") AS c1600_sum,
    AVG(asa."T1024_Choice_R1600_metric") AS c1600_mean,
	SUM(asa."T1024_Integration_R1600_metric") AS i1600_sum,
    AVG(asa."T1024_Integration_R1600_metric") AS i1600_mean,
    road.geom
FROM 
    "Seoul_ped_road" road
JOIN 
    "Seoul_ASA_1600" asa
ON 
    ST_Within(asa.geom, ST_Buffer(road.geom, 0.5)) --0.5m 의 버퍼를 주고, 다른 geometry 랑 비교해본다.
GROUP BY 
    road.id
ORDER BY 
    road.id);

 

와아 근데 서울시 전체로 돌리니까 44시간 돌렸는데도 결과가 끝이 안난다...

서울 전체 geometry 끼리 비교를 하니 그럴 수도. (40만개 VS 20만개 매칭 수준이다).

728x90