QGIS에 지도로 위치를 보여주려면 spatial data가 필요하다.
하지만 불러온 데이터에 latitude, logitude데이터가 없고 x,y데이터가 있을때 변환하는 법을 알아보자
빈칸도 있고, x,y데이터로 되어있는 것을 볼 수 있다. (2097 data)
#python
# WGS84 경위도: GPS가 사용하는 좌표계 EPSG:4326
from pyproj import Proj, transform
import pandas as pd
data = pd.read_csv("korea_hospital_eng.csv", sep=",")
data.head()
proj_1 = Proj(init='epsg:2097')
proj_2 = Proj(init='epsg:4326')
DataFrame = data.copy()
x_list = []
y_list = []
for idx, row in DataFrame.iterrows():
x, y = row['x'], row['y']
x_, y_ = transform(proj_1, proj_2, x, y)
x_list.append(x_)
y_list.append(y_)
data['lon'] = x_list
data['lat'] = y_list
data.head()
이 코드를 통해 WGS84 경도(longitude), 위도(latitude)로 변환시킨다.
-- convert data inf to null
update koreapd.hospital set lat = null WHERE lat = 'inf';
update koreapd.hospital set lon = null WHERE lon = 'inf';
빈칸이랑 inf로 변환된것을 null 로 변환시켜준다
alter table koreapd.hospital add geom geometry;
update koreapd.hospital
set geom = ST_SetSRID(ST_MakePoint(lon::double precision, lat::double precision), 4326) where lat <> '' and lon <> '';
geom 컬럼을 추가시켜준뒤 경도,위도 데이터를 spatial data로 변환시켜준다.
지도를 통해 어디에 위치해 있는지 확인할 수 있다!!
wow 멋져요