statgarten / datatoys

Let's play with data! We prepared toy data for data newbies.
https://statgarten.github.io/datatoys/
Creative Commons Zero v1.0 Universal
29 stars 9 forks source link

행안부 로컬 데이터 검토 #26

Closed YoungjunNa closed 1 year ago

YoungjunNa commented 1 year ago

행안부 로컬 데이터 사용 검토가 필요합니다. 36개 그룹, 195개 업종에 대한 데이터를 업종별로 제공 받을 수 있습니다. 대부분의 데이터에 좌표(위경도) 데이터를 같은 포맷으로 포함하고 있어서, 바로 위치를 찍어주는 plot() 함수를 사용하여 손쉽게 모든 좌표를 지도 시각화 가능할 것으로 보입니다. https://www.localdata.go.kr/main.do

donny-son commented 1 year ago

확인해보니 5179 좌표계로 제공되는 것 같습니다. 이를 plot() 과 같은 함수를 통해 지도 위에 그리기 위해서 다음 방법이 떠오르네요.

statgarten/maps 에서 지도를 다운로드(4326 좌표계), R/Python GIS 라이브러리를 통해 데이터 혹은 지도를 하나의 좌표계를 통일, ggplot과 같은 시각화 라이브러리 이용해서 시각화.

YoungjunNa commented 1 year ago

local data 만 가져와도 해볼 수 있는게 엄청 많을 것 같습니다 ㅎㅎ 양식이 거의 통일되어 있고, (전부 다 확인해 보지 않았지만) 좌표계도 통일되어 있으니 .. 데이터 로딩 후 그대로 던져 넣었을 때 leaflet으로 시각화 시켜주는 function 개발해도 재밌을 것 같습니다. 아래 정도 그려주는 건 어떨까요?

https://antller.com/farmgis/hanwoo

YoungjunNa commented 1 year ago
library(sf)
library(tidyverse)
library(leaflet)

df <- readxl::read_excel("02_04_01_P.xlsx")

df.hanwoo <- df %>% 
  separate(col = "도로명전체주소", into = c("시도", "시군구"), sep = " ") %>% 
  filter(시도 == "강원도") %>%
  filter(주사육업종 == "한우") %>%
  filter(영업상태명 == "영업/정상") %>% 
  mutate(
    x = as.numeric(`좌표정보(X)`),
    y = as.numeric(`좌표정보(Y)`),
    idx = row_number()
  )

df.hanwoo <- df.hanwoo %>% 
  select(사업장명, x, y, idx) %>% 
  filter(!is.na(y)) %>% 
  st_as_sf(coords = c("x", "y"), crs = 5174) %>% 
  st_transform(4326) 

leaflet() %>% 
  addTiles() %>% 
  addMarkers(data = df.hanwoo, label = ~as.character(사업장명), clusterOptions = markerClusterOptions())
YoungjunNa commented 1 year ago

데이터 라이센스 문의에 대한 답변은 아래와 같습니다.

https://www.localdata.go.kr/devcenter/bbs/devQnaDetail.do?nttId=1456&bbsId=B0000100&searchCnd=&searchWrd=&menuNo=20003&pageIndex=4