구글 빅쿼리 시각화: 대용량 공간 데이터 매핑

Google BigQuery Visualization: Mapping Big Spatial Data

구글 직소(Jigsaw)가 지원하는 GDELT 프로젝트는 100개 이상의 언어로 전 세계 거의 모든 국가의 방송, 인쇄 및 웹 뉴스를 모니터링하고, 매일 매초마다 사람, 위치, 조직, 테마, 감정, 카운트, 수, 인용, 이미지, 이벤트 등을 식별하는 무료 오픈 플랫폼입니다.

 

GDELT 프로젝트 시각화는 가장 자주 언급되는 25,000명의 화제의 인물과 그들 사이의 관계를 보여줍니다

 

최근 GDELT GEO 2.0 API를 지원하는 기본 데이터셋인 GDELT Global Geographic Graph가 출시되었습니다. 2017년 4월 4일부터의 전 세계 영어 온라인 뉴스보도에서 17억 개 이상의 위치 언급에 대한 내용을 포함하고 있습니다. 각 언급의 맥락과 용도에 대한 600자 문맥에 관한 토막글도 제공하여 상세한 내용을 담고 있습니다.

 

GDELT 프로젝트는 공개 연구를 위한 전 세계 인간 사회의 실시간 네트워크 다이어그램 및 데이터베이스입니다

 

GDELT가 작성한 이 게시물은 구글 빅쿼리와의 통합이 어떻게 이 거대한 데이터 세트를 매핑하는 데 활용될 수 있는지에 대해 조사합니다. 이 게시물은 전염병이 유행하는 동안 서로 다른 지역의 COVID-19 뉴스 취재에 초점을 맞춥니다.

Global Geography Graph는 2017년까지 전세계 영어 뉴스 보도에서 17억 개 이상의 위치 언급 정보를 보유하고 있으며, 이로 인해 세계 뉴스의 지리 지도를 만들 수 있게 되었습니다.

Global Geographic Graph에서 맵을 생성하는 작업에는 전통적으로 BigQuery SQL 쿼리를 실행하여 결과를 컴파일하고 CSV 파일로 다운로드한 다음 CARTO로 해당 파일을 가져와 실제 맵을 생성하는 작업이 포함되었습니다. 그러나 CARTO에는 실제로 BigQuery 커넥터가 내장되어 있으므로 CARTO에 SQL 쿼리를 직접 붙여넣기만 하면 됩니다. CARTO는 BigQuery에서 쿼리를 실행하고 결과를 지도에 완벽하게 다운로드하며 고정된 내부에서도 쿼리를 다시 실행하여 지도를 지속적으로 동기화할 수 있습니다!

5월 한 달 동안 COVID-19와 관련된 영어 뉴스 보도에서 언급된 위치 지도를 만들고 싶다고 가정해 보겠습니다. CARTO 계정에 로그인한 후 “New Dataset”을 선택하고 데이터소스로 “BigQuery”를 클릭한 다음 “Connect” 버튼을 클릭합니다. 그럼 아래와 같은 대화 상자가 표시됩니다:

 

“Billing Project ID” 드롭다운에는 구글 클라우드 프로젝트 목록이 자동으로 표시됩니다(BigQuery의 쿼리가 청구될 할당량에 대한 프로젝트). 그런 다음 SQL 조회 상자에 쿼리를 붙여넣고 새 CARTO 데이더셋의 이름을 선택한 다음 “Connect to BG”를 클릭합니다. 그럼 이게 끝입니다! 여기까지 완료하면 CARTO가 BigQuery로 쿼리를 보내어 실행할 수 있도록 하고, 몇 분 안에 결과가 다시 CARTO로 스트리밍되어 새 데이터셋을 채우게 됩니다.

실행할 실제 쿼리는 다음과 같습니다(국가 레벨 일치를 위해 “GeoType > 1” 사용).

SELECT ST_GeogPoint(Lon, Lat) as the_geom, count(1) Cnt FROM `gdelt-bq.gdeltv2.ggg` where (ContextualText like ‘%COVID%’ and ContextualText like ‘%coronavirus%’)and GeoType>1 and DATE(DateTime) >= “2020-05-01” AND DATE(DateTime) <= “2020-05-31” group by Lat,Lon order by Cnt desc limit 10000

쿼리의 시작 부분에 있는 “ST_GeogPoint(Lon, Lat) as the_Geom”은 위도 및 경도 좌표를 취하여 지리 “점” 유형으로 변환합니다.

또는 Global Geography Graph에 “the_gem”이라는 GERIORY 열이 이미 있으므로 다음을 사용할 수도 있습니다.

 

SELECT ANY_VALUE(the_geom) as the_geom, count(1) Cnt FROM `gdelt-bq.gdeltv2.ggg` where (ContextualText like ‘%COVID%’ and ContextualText like ‘%coronavirus%’) and GeoType>1 and DATE(DateTime) >= “2020-05-01” AND DATE(DateTime) <= “2020-05-31” group by TO_JSON_STRING(the_geom) order by Cnt desc limit 10000

여기서와 같이 지리 열을 기준으로 그룹화하는 것은 대부분의 관찰/표본된 지리 데이터의 부정확한 특성 때문에 매우 나쁜 관행이라는 점을 기억해야 합니다. GPS 지점을 수집할 때, 정지된 물체는 GPS 지터(jitter)로 인해 실제 위치 주변의 작은 반지름에서 계속 움직이는 것처럼 보일 수 있으며, 표본 추출의 부정확성과 오류는 서로 약간 다른 점들의 군집을 산출할 수 있습니다.

그리드에 스냅하는 것만으로는 그리드 해상도에 관계없이 점 군집이 원형 좌표로 분할되기 때문에 이 문제가 해결되지 않습니다. Global Geography Graph의 경우, 모든 위치는 중심 기반 지명 사전에서 추출됩니다. 프랑스 파리에 대한 모든 참조는 항상 정확하게 동일한 좌표를 산출합니다. 따라서 여기서는 좌표를 기준으로 안전하게 그룹화할 수 있습니다. 그러나 다른 종류의 데이터는 이에 대해 강력하게 반대합니다. 이러한 종류의 “상위 N” 그룹을 수행하기 위해 관측된 GIS를 사용할 경우 먼저 점을 군집화해야 합니다.

몇 분 안에 데이터가 표준 CARTO 테이블로 표시되고 데이터를 즉시 매핑할 수 있습니다.

그러나 각 위치를 언급하는 상위 5개 기사를 표시하는 대화형 클릭 가능한 지도를 만들려면 어떻게 해야 할까요?

아래 쿼리는 위치별로 상위 5개 기사를 선택하여 제목과 URL을 HTML 블록에 연결하고 해당 소셜 미디어 이미지 중 하나를 헤더 이미지로 선택합니다.

select ST_GeogPoint(Lon, Lat) as the_geom, ARRAY_TO_STRING(ARRAY_AGG(Art ORDER BY cnt DESC LIMIT 5), ‘<BR><BR>’) Articles, max(SharingImage) SharingImage, APPROX_TOP_COUNT(Loc, 1)[OFFSET(0)].value LocationName, Count(1) NumMentions from (

select CONCAT(‘<a href=”‘, min(URL), ‘” target=”blank”>’,max(Title),'</a>’) Art, Lat, Lon, max(SharingImage) SharingImage, APPROX_TOP_COUNT(Location, 1)[OFFSET(0)].value Loc, count(1) cnt FROM `gdelt-bq.gdeltv2.ggg` WHERE (ContextualText like ‘%COVID%’ and ContextualText like ‘%coronavirus%’) and GeoType>1 and DATE(DateTime) >= “2020-05-01” AND DATE(DateTime) <= “2020-05-31” group by LOWER(Title), Lat, Lon

) group by Lat, Lon order by NumMentions desc limit 10000

 

다시 한 번 데이터를 CARTO 데이터셋으로 가져옵니다. 4월에 사용한 것과 동일한 지침에 따르면 (그러나 이번에는 데이터를 CSV로 저장하고 CARTO에 다시 로드하는 부분을 건너뜁니다. 이제 그럴 필요가 없으니까요!) 아래와 같은 대화형 지도를 얻을 수 있습니다.

커넥터에서 입증되었듯이 데이터를 연결하고 CARTO 플랫폼에서 사용할 수 있도록 하려면 BigQuery에서 SQL 조회만 입력하면 됩니다. 이를 통해 쉽게 시각화, 공간 분석 및 빌드 애플리케이션을 수행할 수 있습니다.

 

SPH는 CARTO, Google Maps, SuperMap 등 다양한 케이스에 적용될 수 있는 다채로운 제품군을 보유하고 있으며 고객의 사례에 꼭 맞는 무료 세미나 및 개별 컨설팅을 제공하고 있습니다. 각 케이스에 맞춰 더욱 자세한 이야기를 나누고 싶으시다면 여기에서 문의 주시길 바라며, SPH에서 발행하는 GIS/로케이션 인텔리전스 관련 최신 소식을 받아보고 싶으신 분들은 페이스북 페이지 또는 뉴스레터를 구독해 주시길 바랍니다. 감사합니다.