rackhunson의 등록된 링크

 rackhunson로 등록된 네이버 블로그 포스트 수는 63건입니다.

[Folium] Point 시각화 (Marker, Marker Cluster, Circle) [내부링크]

각 장소의 위치좌표정보(point)를 이용해서 시각화하는 방법을 알아보자. (데이터는 아래 첨부파일 이용) - csv 데이터 불러오기 1. folium.Marker Marker를 이용하면 Naver 지도나 Google map에서 찾고자하는 장소에 마크표시를 해주는 것 처럼 좌표정보에 해당하는 곳에 마크를 표시해준다. 먼저 해당장소의 basemap을 설정한후, (basemap 설정 방법은 아래 블로그 참조) iterrows를 이용하여 csv자료의 library 정보를 한줄씩 읽어 Marker에 여러가지 정보들을 입력해줄수 있는데, location에는 marker를 표시해줄 위도와 경도 정보를, popup에는 marker를 클릭했을데 보여줄 세부내용 정보를, icon에는 folium.Icon기능을 이용하여 marker의.......

[Folium] Heatmap 시각화 [내부링크]

Folium을 이용해서 빈도수에 따른 heatmap을 그려보자. (데이터는 아래 첨부파일 이용) - csv 데이터 불러오기 folium.plugins.HeatMap을 이용하면 간편하게 그림을 그릴 수 있다. data에는 좌표정보 위치를 radius는 각 포인트들의 값이 반영될 반지름을 나타낸다. < 결과 > 몇가지 유용한 추가기능들을 알아보자. 먼저 heatmap의 색깔을 원하는 대로 변경하고 싶다면, branca 라이브러리를 이용해 colormap의 원하는 색상 및 값의 범위를 지정해줄 수 있다. 그리고 만들어진 color_map의 gradient를 계산한 후 (여기서 steps은 gradient 간격으로 적당히 큰 숫자를 적어주자) folium.plugins.HeatMap에서 gradient에 계산한 gradient를 적.......

[Folium] Choropleth Map 시각화 [내부링크]

Folium에서 choropleth를 이용해서 서울시 구별 도서관수를 시각화 해보자. (데이터는 아래 첨부파일 이용) 1. 데이터 불러오기 geopandas를 이용해서 shp파일을 읽는 방법은 아래 블로그를 참조하자. 2. boundary 데이터 프레임 정리하기 먼저, library파일과 seoul_boundary파일를 공통적으로 연결할 수 있는 변수(key)의 이름을 일치시키자. 각 파일별로 구명이 key변수가 되기때문에 seoul_boundary의 구명에 해당하는 컬럼의 이름을 변경시킨다. (컬럼이름 변경하는 방법은 아래 블로그 참조) 다음으로, 필요한 변수인 '구명'과 'geometry'를 뽑고, '구명'을 index으로 설정해 준다. 3. 구별 도서관 수 계산.......

[geocoding] 네이버 (NAVER) API 사용방법 [내부링크]

네이버 지도 API를 이용해서 geocoding 하는 방법을 알아보자. 1. 네이버 클라우드 플랫폼 가입하기 아래 페이지로 이동해서 회원가입을 하자. 중간에 결제수단에 대한 등록절차기 있는데, 사업이 아닌 개인이 사용하는 정도로는 무료로 사용가능하다고 하니 걱정하지 않아도 된다. 계정을 만들었으면 로그인후 화면 상단에 Console을 클릭한다. 2. 네이버 지도 API 인증치 발급받기 왼쪽 배너에서 Products & Services를 클릭하고 오른쪽 메뉴항목들중 AI-NAVER API를 클릭한다. 다음 화면에서 아래 Add aplication 파란색 버튼을 클릭한 후, Application name을 원하는 대로 적어주고 (아무거나 적어도 됩니다. 저 같은 경우 그냥 제 이름.......

[geocoding] 카카오 (KAKAO) API 사용방법 [내부링크]

카카오 API를 이용해서 geocoding (reverse geocoding) 하는 방법을 알아보자. 1. kakao developers 가입하기 아래 페이지로 이동해서 회원가입을 하자. 2. API 키 받기 회원가입 및 로그인을 하고 나면 아래 메인화면에서 시작하기를 클릭하고, 어플리케이션 추가하기를 클릭한다. 본인이 원하는 앱 이름과 (저는 블로그 이름...) 사업자명을 입력하고 저장한다. 그러면 왼쪽 배너에서 앱 키를 가면 여러가지 키들을 받은 것을 확인할 수 있다. 이중에서 이후 REST API 키 사용할꺼다. 3. Python에서 geocoding 하기 테스트는 아래의 서울도서관 데이터를 이용해서 확인해보겠다. Kakao API를 이용하는데 필요한 라이브러리를 불러오고, 방금전.......

[geocoding] Geopy 라이브러리 사용하기 [내부링크]

geopy 라이브러리를 사용해서 geocoding (reverse geocoding) 하는 방법을 알아보자. 테스트는 아래의 서울도서관 데이터를 이용해서 확인해보겠다. 먼저, geopy를 설치한다. geopy.geocoders는 Google Maps나 Bing Maps등 여러가지 API를 지원하는데, 그중에서 무료로 부담없이 쓸수있는 Nominatim을 이용해보겠다. (다른 api 사용이나 좀 더 자세한 부분은 geopy 공식 documentaion 참조) - 라이브러리 불러오기 실습데이터의 첫번째 행 '꿈마을 도서관' 주소를 이용해서 geocoding을 테스트해보자. 여기서 Nominatim의 경우 전체 도로지주소를 제대로 받아들이지 못하는 문제가 발생하여, 도로지 숫자까지만 끊어 주었다. 위의 주소.......

[GeoPandas] 5. Spatial Join 하기 (sjoin) [내부링크]

두개의 데이터에 대해서 geometry를 기준으로 겹치는 영역을 기준으로 합쳐주는 기능을 spatial join이라고 한다. 전국 도서관 자료의 좌표정보(point)와 서울시 구경계 자료(polyjon)를 이용해서 서로 영역이 겹치는 서울의 도서관만 가려내는 예제를 살펴보자. (예제자료는 아래의 데이터를 사용한다) 1. 서울시구경계 geometry를 불러오자 2. 전국 도서관 자료 불러오기 3. 좌표정보를 이용해 point geometry 만들기 전국 도서관 자료에서 제공하는 위도 및 경도 자료를 이용해 point geometry를 만들어 준다. (좀 더 자세한 내용은 아래 블로그 참고) 4. spatial join 하기 도서관의 point geometry와 서울시구경계의 polygon geometry를 이.......

[GeoPandas] 6. 거리계산 및 최단거리 구하기 [내부링크]

GeoPandas를 이용해서 지점간의 거리를 구하는 하는 방법에 대해서 알아보자. 전국도서관 위치자료와 서울시고등학교 위치자료를 이용해서 학교별로 가장 가까이 있는 도서관을 찾는 실습을 해보자. (예제자료는 아래 데이터 사용) 1. 서울시 도서관 데이터 정리하기 먼저 전국 도서관 데이터를 읽고, 서울시에 소속된 도서관들만 filtering한다. 여기서 일부 위치정보(위도, 경도)가 없는 도서관들이 있는데 편의상 날리겠다. 도서관의 위치들을 folium을 이용해 시각화하면 다음과 같다. (folium 사용방법은 아래 블로그 참고) 2. 서울시 고등학교 좌표정보 구하고 정리하기 서울시 고등학교 파일을 읽어보면, 좌표정보가 없다는 것을 확인할 수.......

[GeoPandas] 7. 범위 내/외 장소 설정하기 (buffer, contain) [내부링크]

GeoPandas의 buffer 및 contain을 이용해 원하는 거리범위내의 조건을 이용하는 방법에 대해 알아보자. 전국도서관 위치자료와 서울시고등학교 위치자료를 이용해서 학교에서 가장 가까운 (서울시) 도서관이 2km이상인 곳을 찾는 실습을 해보자. (예제자료는 아래 데이터를 사용) 1. 파일불러오고 좌표 정리하기 아래 블로그의 1, 2번을 참고하자 (동일) 2. 원하는 거리 범위의 buffer 만들기 먼저 GeoPandas 데이터 프레임 형식으로 만들어 준후, .buffer()를 이용해 buffer geometry를 만들어 줄 수 있다. 괄호안에는 원하는 거리를 설정하면 되는데, 현재 EPSG 5186의 경우 m(미터)단위를 사용하므로, 2km 반경을 설정하기 위해서는 2000을 입.......

[Pydeck] 1. 기본구조 알아보기 [내부링크]

pydeck을 이용해 시각화하는데 있어 크게 3단계 과정으로 나눌수 있는데, 1. viewpoint 설정 2. layer 설정 3. 시각화 전국도서관 분포를 시각화하는 예제를 통해 간단하게 알아보자. (데이터는 아래 파일 이용) 1. viewpoint 설정 viewpoint는 지도를 어디를 어떤 각도에서 바라보도록 시각화하는가를 설정하는 것이다. 대표적인 변수들을 살펴보면, longitude, latitude는 중심점 좌표를 zoom은 확대정도 pitch은 위아래로 바라보는 각도, bearing은 오른쪽 혹은 왼쪽으로 회전하여 바라보는 각도 를 의미한다. < 설정한 viewpoint > < pitch 비교> < bearing 비교 > 2. layer 설정 어떤 종류의 layer를 이용해서 시각화할지.......

[GrADS] 2.2.1 버전 설치하기 (Mac) [내부링크]

1. 필요한 packages 설치하기 (Homebrew를 이용) perl, gcc, bc, curl의 경우 보통 기본적으로 설치되어있는 경우가 많은데, 설치유무 확인해보고 없으면 homebrew를 이용해 설치해준다. (예로 perl의 경우, which perl; echo $? 만약 결과가 0일경우 설치되어있고, 1이면 설치해줘야함) 아래의 package들을 homebrew를 통해 설치해주자 - wget : brew install wget - gfortran : brew cast install gfortran - gdal : brew install gdal - ImageMagick : brew install imagemagick - gedit : brew install gedit XQuartz의 경우 brew install xquartz 를 해도 설치가 되지만, 개인적으로 사소한 문제가 생겨 아래 페이지에서 직접 다운받아 설치.......

2021년 국제 기상기후 전문인력 양성사업 면접후기 (합격) [내부링크]

2021년 국제 기상기후 전문인력 양상사업 프로그램 면접은 코로나로 인해 온라인으로 진행되었다. 면접은 1. 국문면접 (10분) 2. 영어면접 (10분) 3. 영어 에세이 작문 (30분) 이렇게 3단계로 진행되었다. 1. 국문면접 먼저 자기소개로 간단히 하는것으로 시작했고, 지원동기, 가고 싶은 국제기구는 어디이고, 어떤 업무를 하고 싶은지로 진행되었다. 이후로는 자소서 중심으로 추가질문이 이어졌다. 예를들어, 자소서에 적었던 봉사활동 경험이나 발표경험... 등등 난 이공계여서 그런지 영어실력에 대한 질문도 하셨다. '국제기구 인턴하면 영어로 의사소통에 문제가 없어야 하는데 본인의 영어는 어느정도라 생각하는지?'... 마지막.......

[QGIS] 7-4. Heatmap 그리기 (1) [내부링크]

Heatmap으로 시각화하는 방법으로 먼저 편리하게 포인트 레이어를 이용해서 바로 그려보는 방법을 살펴보자. 1. Heatmap을 그릴 자료를 불러온다. 여기서는 광주 도서관 위치 자료를 이용해서 실습하겠다. (자료를 다운받고 정리하는 방법은 아래 블로그 참조) 2. 레이어 속성을 통해 heatmap 그리기 레이어 속성으로 이동하고, 심볼에서 상단메뉴에 열지도를 선택하고, 색상표에서 원하는 색깔을 지정해준다. 이때, 색상표 오른쪽에 화살표를 클릭 > 색상표 편집 을 통해 색상에 대해 좀 더 많은 기능들을 편집할 수 있는데, 가령, 색상에 투명도를 부여하여 basemap과 겹치게 heatmap을 그리고 싶다면 각 색깔의 화살표를 클릴하여 불투명도.......

[QGIS] 7-5. Heatmap 그리기 (2) [내부링크]

Heatmap으로 시각화하는 또다른 방법으로 공간 처리 툴박스에서 heatmap 기능을 레이어를 만드는 살펴보자. 1. Heatmap을 그릴 자료를 불러온다. 이전과 마찬가지로 광주 도서관 위치 자료를 이용해서 실습한다. (자료를 다운받고 정리하는 방법은 아래 블로그 참조) 2. 배경 좌표계를 동일하게 맞춰 새로 저장하기 포인트 레이어를 새로 저장하기 위해 Export > Save Features As 를 실행하고 파일 이름에서 저장할 위치와 이름을 설정해주고 좌표계에서 배경와 동일한 좌표계를 선택하고, 인코딩은 한글파일의 경우 깨지지 않도록 적절히 선택해주고 저장한다. 3. 공간 처리 툴박스에서 열지도(heatmap)를 통해 레이어를 만든다. 공간 처리.......

[QGIS] 7-6. 이미지파일 만들기 (조판, 오버뷰) [내부링크]

QGIS에서 분석한 내용을 이미지파일로 만들어 보자. (이미지로 만들 heatmap 결과는 아래 블로그 참조) 1. 조판만들기 기능을 실행한다. 상단 메뉴에서 프로젝트 > 새 인쇄 조판을 실행한다. 조판에 대한 제목을 입력한다. 2. 분석결과를 추가한다. 상단메뉴의 항목추가 > 지도 추가를 실행하고 하얀 공백에 구역을 정해줘서 분석결과를 불러온다. 왼쪽 툴바에서 항목 선택/이동을 클릭하고 마우스를 이용해서 확대 및 위치를 조정해 준다. 같은 방식으로 QGIS에서 지도화면을 설정하고 상단메뉴의 항목추가 > 지도 추가를 통해 전체지도를 불러온다. 오른쪽 항목 속성에서 프레임을 통해 각 지도의 테두리를 부여할 수 있다. 왼쪽지도.......

[GeoPandas] 1. 포인트 분포도 그리기 [내부링크]

서울시 구경계 및 도서관 정보 데이터를 이용해서 간단하게 분포도를 그려보자. (데이터는 아래 첨부파일 이용) 1. 데이터 불러오기 gpd.read_file일 이용하면 shp파일을 쉽게 불러올수 있다. 이때 한글의 경우 깨질수도 있는데 이때 인코딩을 설정해주면 된다. (보통 한글은 cp979 혹은 euc-kr을 사용한다.) 2. 서울시 도서관 분포 그리기 geopandas 자체 plot 기능을 이용해 쉽고 간편하게 그림을 그릴 수 있다. 세부기능들은 matplotlib와 비슷하다. < 결과 > 3. 용산구 도서관 분포 그리기 만약 특정 지역에 대해서 분포를 알아보고 싶다면, 데이터에서 조건에 맞게 필터링을 한후 그림을 그리면 된다. (geopandas는 pandas와 매우 비.......

[GeoPandas] 2. CRS 맞추기 (Re-projecting) [내부링크]

만약 공간정보 데이터의 Coordinate Reference Systems (CRS)가 맞지 않으면, 아래와 같이 그림이 이상하게 나올 수 있다. < 검은색선: 서울시구경계, 파란색점 : 서울시 도서관 위치 > 이럴때는 .crs를 이용하여 geopandas 데이터 프레임의 crs를 확인해보면 서로 CRS가 다른것을 확인할 수 있다. 이런 경우 .to_crs를 사용하여 한쪽의 CRS를 변경해줄 수 있다. < 결과 > (데이터는 아래 첨부파일 이용) (그림에 대한 좀 더 자세한 설명은 아래 블로그 참조) https://blog.naver.com/rackhunson/222398821837

[GeoPandas] 3. CSV 데이터 불러오기 (point geometry) [내부링크]

csv 파일 데이터를 GeoPandas로 다룰수 있도록 세팅하는 방법을 알아보자. (데이터는 아래 첨부파일 이용) 1. Pandas를 이용해 csv파일 불러오기 panda 라이브러리를 이용하여 csv파일을 읽는다. 2. GeoDataFrame을 이용하여 공간정보를 변환한다. geopandas의 GeoDataFrame을 이용하면 geometry와 좌표계(crs)를 설정해줄 수 있다. 여기서는 csv파일에 경도/위도 좌표 데이터를 기반으로 gdf.points_from_xy를 이용해서 point형식의 공간정보를 추가해보자. < 결과 >

[GeoPandas] 4. LineString 만들기 (태풍경로) [내부링크]

좌표정보를 이용해서 Linestring geometry를 만드는 방법을 알아보자. 예제로는 태풍의 위치좌표를 이용해서 이동경로를 시각화를 해보겠다. (데이터는 아래 첨부파일을 이용) 1. Pandas를 이용해서 csv파일 불러오기 panda 라이브러리를 이용하여 csv파일을 읽는다. geopandas는 좌표정보를 실수형으로 받기 때문에 위도와 경도 좌표를 조금 수정해주었다. 2. GeoDataFrame을 이용해서 공간정보로 변환한다. 3. Point 정보를 LineString으로 변환한다. 변환한 정보를 padas 데이터프레임으로 만든후 geodataframe으로 만들어준다. 4. 시각화 하기 geopanda에서 재공해주는 basemap을 이용해서 동아시아 지역 (한국, 중국, 일본)만 선택하여 배경.......

[Folium] basemap 만들기 및 종류들 [내부링크]

folium 라이브러리를 사용하면 interactive map을 만들수가 있다. 먼저, 배경에 해당하는 basemap 설정 하는 방법에 대해서 알아보자. 원하는 지역을 중심으로 설정한 지도를 불러오기 위해서는 folium.Map을 사용하면 된다. location : 지도의 중심이 될 좌표 zoom_start : 지도를 확대할 정도 tiles : 지도 배경 스타일을 설정할 수 있는데 종류는 10가지 정도를 지원한다. - 서울지역 지도 interactive 그리기 < 결과 > - tiles 종류별 결과들 < tiles = 'cartodbdark_matter' > < tiles = 'cartodbpositron' > < tiles = 'cartodbpositron' > < tiles = &#x27.......

[QGIS] 6-2. 오픈 스트리트맵 공간정보 수집 (QuickOSM) [내부링크]

QuickOSM을 이용하면 원하는 행정구역의 각종 정보 (도로/항로/철로/건물 등)를 얻을 수 있다. 예제실습으로 엘살바도르 국가의 La Libertad도시의 도로정보를 구축해 보겠다. 1. 원하는 행정경계구역(국가/도시 등)의 shp 파일을 준비한다. (만약 준비된 것이 없다면 만드는 방법은 아래 블로그 참조) 2. QuickOSM을 설치한다. 상단 메뉴에서 플러그인 > 플러그인 관리 및 설치로 가서 QuickOSM을 검색한 뒤 설치해준다. 3. QuickOSM을 이용하여 원하는 정보를 다운 받는다. 상단메뉴에서 벡터 > QuickOSM > QuickOSM을 실행하고, Key에서 highway를 선택하고 (좀더 세밀하게 구분하고 싶으면 Value에서 원하는 정보를 선택한다) Layer.......

[QGIS] 6-3. 위성영상 자료받기 (SCP 플러그인) [내부링크]

QGIS에서 SCP 플러그인을 이용해 위성영상을 다운받아보자 1. USGS 홈페이지 회원가입 하기. 자료를 받기 위해서는 아래 사이트의 계정이 필요하다. 2. QGIS에서 Semi-Automatic Classification Plugin을 설치한다. 상단메뉴 플러그인 > 플러그인 관리 및 설치에서 Semi-Automatic Classification Plugin을 설치하자 3. 위성영상을 다운받는다. Semi-Automatic Classification Plugin을 설치하면, 상단에 SCP 메뉴가 만들어 진다. SCP > Download products를 클릭한다. Login data 탭에서 USGS에서 가입한 User ID와 Password를 적어준다. Search 탭에서 관심지역을 선택할 수 있는데, 먼저, Add OpenStreetMap을 클릭하면 basemap이 화면.......

[QGIS] 6-4. 위성영상 전처리하기 (SCP 플러그인) [내부링크]

위성영상자료에서 섭시온도 변환 및 대기보정 등 전처리작업을 SCP를 이용해 간단히 진행해보자. 1. 상단메뉴에서 SCP > Preprocessing > Landsat을 실행한다. (ASTER나 GOES, Sentinel 자료에 대해서는 각각의 메뉴를 이용하면 된다.) 2. 전처리할 자료를 불러온다 상단의 Directory containing Landsat bands 버튼을 클릭하여 자료의 폴더 위치를 지정해주면 아래에 파일들이 불러진 것을 확인할 수 있다. (위성영상자료를 다운받는 방법을 아래 블로그 참조) 3. 전처리 기능들을 설정하고 결과를 저정할 폴더를 설정하면 전처리를 실행한다. 상단 전처리 목록들중에서 Brightness temperature in Celsius (밝기온도를 섭씨온도로 변환) .......

[QGIS] 6-5. 위성자료 Band 조합하기 [내부링크]

1. 상단메뉴에서 SCP > Band set을 실행한다. 2. Band 자료들을 불러와서 기능들을 설정한후 자료를 생성한다. 먼저 상단 폴더모양 버튼을 클릭하여 조합할 밴드 자료를 선택하여 불러온다. 정상적으로 불러왔다면 하단 Band set 1 탭에서 목록들을 확인할 수 있다. Wavelength quick settings를 통해 조합하고자 하는 위성자료 종류 및 밴드번호를 선택해준다. 선택하면 Band set 1 탭에서 Center wavelength가 바뀐것을 확인할 수 있다. 그리고, Create virtual rater of band set을 선택한 후 run을 클릭하여 실행한다. 3. RGB밴드 순서를 재설정 한다. < 결과 > 4. 밴드색 조합변경하기 상단 SCP관련 툴바에서 RGB조합을 설정하는 부.......

[QGIS] 6-6. 위성자료 Band로 계산하기 (NDBI 계산) [내부링크]

Preprocessing된 위성자료를 이용해서 NDBI (정규 시가지 지수)를 계산해 보자. 위성자료 preprocessing 방법은 아래 블로그 참고 1. 상단메뉴 SCP > Band calc 를 실행한다. 2. 계산식을 적어주고 실행한다. Expression에 NDBI 계산식을 적어주고 RUN을 실행한다. 데이터가 Landset 7 이라면, NDBI = (Band5 - Band4) / (Band5 + Band4) 데이터가 Landset 8 이라면, NDBI = (Band6 - Band5) / (Band6 + Band5) 3. 시각화를 위해 색상을 변경한다. 레이어 속성에서 렌더링 유형을 단일밴드 유사색상 색상표를 원하는 color로 지정한다. < 결과 >

[QGIS] 7-1. 객체 추출 및 건물 3D 시각화 [내부링크]

건물 수치정보가 포함된 레이어에서 아파트에 대한 정보를 추출해서 3D 시각화를 해보자. 1. 건물 수치정보 데이터를 준비한다. (여기서는 아래 첨부파일을 이용했다.) 2. 아파트 객체만 추출하여 저장한다. 건물레이어의 속성테이블을 열고, 상단 메뉴에서 표현식을 이용해서 객체 선택을 실행한다. 중간에 있는 검색부분에서 필드와 값에 종류를 선택한 다음 오른쪽 모든 유일값을 이용해야 아파트를 확인한다. 그리고, 왼쪽에 선택하고자 하는 조건의 표현식을 적어주고 객체선택을 실행한다. 레이어 창에서 선택한 객체를 따로 저장해 준다. 3. 아파트 레이어의 층수 필드를 이용하여 높이를 계산한다. 계산방법은 아파트가 16층 미만일때는.......

[QGIS] 7-2. 그리드 생성 및 포인트 개수 분석 시각화 [내부링크]

포인트 자료를 그리드로 변환하여 시각화 해보자. 1. 그리드를 생성한다. 분석할 지역을 선정하고, 상단메뉴에서 벡터 > 조사 도구 > 그리드 생성을 선택한다. 원하는 그리드 유형, 그리드 범위, 그리드 간격, 그리드 좌표계를 선택하고, 결과물을 저장할 위치(그리드)를 지정한 다음 실행한다. 2. 그리드와 포인트 자료를 이용해 계산한다. 상단 메뉴에서 벡터 > 분석 도구 > 폴리곤에 포함하는 포인트 개수 계산을 실행하고, 폴리곤에서 만들어준 그리드를 포인트에서 분석하고자 하는 포인트 자료를 선택하고, (포인트 자료는 아래 파일을 사용했다) 개수 필드 이름에 결과물 이름 필드 이름을 개수에 결과물을 저장할 위치를 지.......

[QGIS] 7-3. CSV 데이터 불러오기 [내부링크]

CSV형식의 전국 도서관 표준 데이터를 이용하여 광주지역 도서관 포인트 레이어를 만들어 보자. 1. CSV 데이터를 준비한다. 여기서는 전국 도서관 표준 데이터를 이용하여 분석하였다. 2. '구분자로 분리된 텍스트'를 이용해 CSV파일을 변환한다. 레이어 관리 툴바에서 '구분자로 분리된 텍스트'를 실행한다. 파일이름에 csv파일을 지정해주고, 한글파일의 경우 글자가 깨지지 않도록 인코딩이 변경해준다. X필드와 Y필드는 각각 경도와 위도를 설정하고 도형 좌표계를 설정한 후 '추가'를 클릭한다. 3. 광주지역 데이터만 선별한다. 생성된 레이어에서 속성테이블을 열고, 표현식을 이용해서 객체 선택을 클릭한.......

ESG, Climate Action 100+ [내부링크]

- 책임투자원칙 (설립배경) 2006년 4월, 환경, 사회, 지배구조(ESG) 이슈를 고려한 투자를 활성화 하기위해, 유엔 환경계획 금융부문(UNEP FI)과 유엔 글로벌 콤팩트(UNGC)의 협력하에 책임투자원칙(PRI)을 수립하게 됩니다. - 책임투자원칙 (Principles for Responsible Investment, PRI) 1. 투자 분석 및 의사결정 과정에서 ESG 이슈를 반영한다. 2. 적극적 소유권을 행사하며 소유권 정책 및 행사에 ESG 이슈를 반영한다. 3. 투자 대상 기업의 ESG 이슈가 적절히 공개되도록 노력한다. 4. 투자 업계 내 책임투자원칙의 도입 및 실행을 증진시킨다. 5. 책임투자원칙 이행의 효과를 높이기 위해 협력한다. 5. 책임투자원칙의 이행에 관한 활동 및.......

Pandas, 빈칸 채우기 (replace) [내부링크]

자료를 정리하다보면 결측치가 빈칸으로 되어있어 난감할 때가 있다. 이때 replace를 적절히 이용하면 원하는 값을 채워넣을 수 있다. - income(수입)의 빈칸 0으로 채우기 < 결과 > - sex의 빈칸 'unknown'으로 채우기 < 결과 > 만약 빈칸을 결측치 처리하듯 제거하고 싶다면 NaN으로 먼저 채운뒤 dropna를 이용해 제거해주면 된다. (dropna 사용법은 아래 참고) - 빈칸 제거하기 < 결과 >

[QGIS] 원하는 위치에서 최단거리 지점 찾기 [내부링크]

QGIS를 이용해 내가 원하는 위치에서 가장 가까이 있는 관심지역을 찾아보자. 1. 먼저 내가 원하는 지역 레이어를 생성한다. (만약, 이미 출발지점에 대한 레이어가 존재한다면 1번은 생략가능) 상단 메뉴에서 레이어 > 레이어 생성 > 새 shapefile 레이어 를 클릭한다. 파일이름을 적어주고 도형유형을 포인트로 선택하고, 추가차원에서 원하는 좌표정보를 설정할 수 있는데, 여기서는 EPSG:5186으로 설정하겠다. (혹시 추가적인 정보를 입력하고 싶으면 필드를 추가하면 되는데 여기서는 생략) 그러면 레이어 창에 '나의 현재위치' 레이어가 추가된것을 확인할 수 있다. 추가된 레이어에서 우리가 원하는 위치정보를 입력하기.......

[QGIS] 5-1. 망고시스템 공간분석 스크립트 설치 [내부링크]

공간분석을 용이하게 하기 위해 우리나라 망고시스템에서 개발한 공간분석 스크립트들을 설치해보자. 1. 스크립트 다운로드 망고시스템 깃헙 페이지에 가서 파일을 다운로드 한다. 2. 스크립트 설치 공간 처리 툴박스 > 스크립트를 툴박스에 추가하기 를 통해 다운받은 스크립트들 (scripts 폴더 내부)을 열기해주면 된다. 공간 처리 툴박스에 설치가 완료된 것을 확인할 수 있다.

[QGIS] 5-2. 지형도에서 DEM 생성하기 (TIN 보간) [내부링크]

지형도 (등고선 레이어) 를 이용해서 래스터형식의 DEM 레이어를 만들어 보자. 1. 등고선 shp파일을 불러온다. 2. 공간 처리 툴박스에서 보간 > TIN 보간 을 실행한다. 3. 벡터 레이어는 등고선 shp파일을 선택하고, 보간 속성값은 등고선의 값을 선택한다. (예제파일에서는 CONT) 선택후에는 아래 초록색 '+'를 클릭해 입력레이어를 추가하고 실행을 한다. 공간범위는 맵 캔버스 범위 사용을 선택했다. (이때, CRS가 벡터레이어와 일치하는치 확인하자!) 산출 래스터 크기에서 결과물 해상도를 조절할 수 있는데, 너무 조밀하게 하면 파일이 커질수 있으니 주의 < 결과 > 여기까지 DEM 레이어를 생성하였고, 한전공대지역 적.......

[QGIS] 5-3. DEM을 이용한 경사도 분석 [내부링크]

DEM 데이터를 이용해서 경사도를 구해보자. 1. DEM 데이터를 준비한다. (자세한 내용은 아래 링크 참조) < 결과 > 2. 공간 처리 툴박스 에서 GDAL > 래스터 분석 > 경사 를 실행한다. 3. 입력 레이어는 DEM 보간 산출물 shp파일을 선택하고 실행을 한다. (CRS가 일치하는치 항상 확인하자!) < 결과 > 여기까지 경사도를 생성하였고, 한전공대지역 적지분석을 위해 추가적으로 경사도가 12도 이하인 지역을 따로 선별해보겠다. 공간 처리 툴박스에서 래스터 분석 > 테이블로 재분류를 실행한다. 래스터 레이어는 이전결과 (경사)파일을 선택하고, 재분류 테이블에서 열 추가를 통해 분류할 정보를 입력해 준다. (입력 완료후.......

[QGIS] 5-4. shp병합 및 표현식을 이용한 새로운 필드 생성 [내부링크]

국토정보플랫폼의 토지특성도를 이용해서 주거지역을 선별해보자. 1. 여러개의 (한전공대 주변) 기본공간정보 데이터를 합쳐준다. 먼저 4개의 shp파일을 열어주고, 상단 메뉴에서 벡터 > 데이터 관리 도구 > 벡터 레이어 병합 을 실행한다. 입력 레이어에 앞선 4개의 shp파일을 선택해주고 실행을 클릭한다. < 결과 > 2. 주거지역을 구분하는 변수를 만든다. 이전 결과 (병합한 산출물)에서 속성테이블을 열고 필드 계산기를 열어준다. 새로운 필드 생성을 선택하고, 산출 필드 이름에 새로 추가할 필드 이름을 적어 준다. 이번 예제에서는 주거지역 이냐 아니냐에 대한 자료를 만들기 때문에 산출 필드 유형은 정수로 선택했다. 표.......

[QGIS] 5-5. 적지분석을 통한 개발가능지 추출 (래스터 계산기) [내부링크]

적지분석을 통해 한국에너지공과대학교(한전공대) 예정지역주변 개발가능지를 추측해보는 실습을 해보자. 개발가능지역을 추측하는 아래 2가지 기준을 만족하는 것으로 기준을 정했다. - 표고 75m 이하지역 혹은 경사도 12도 이하 지역 - 주거지역 (참고자료: 빅데이터를 분석을 위한 QGIS Cookbook 교육자료 V-42) 실습에 필요한 중간결과는 아래 첨부파일을 이용하고, 중간결과를 직접 실습해보고 싶으면 아래의 블로그들을 참조하자. 1. 표고 75m 이하지역 레이어 생성 (아래 블로그 참조) 2. 경사도 12도 이하 지역 레이어 생성 (아래 블로그 참조) 3. 주거지역 선별 레이어 생성 (아래 블로그 참조) 4. 래스터 계산기를 이용해 조건을 만족.......

[QGIS] 6-1. 세계국가/도시 행정경계 정보 다운로드 (GADM) [내부링크]

GADM 사이트에서 행정경계 데이터를 다운로드 받아서 원하는 도시의 행정경계 정보를 구축하는 법을 알아보자. (블로기 예시는 엘살바도르 국가의 La Libertad 도시에 대한 정보로 실습) 1. 사이트 가기 2. DATA > country 로 이동한다. 3. 원하는 국가를 선택한 후 shape 파일을 다운받는다. 4. QGIS에서 원하는 도시 객체를 따로 저장한다. QGIS에서 level 1파일을 열고 객체식별을 통해 행정구역 별로 클릭하면서 원하는 도시 (La Libertad) 를 찾는다. (국가 전체의 정보가 필요하면 level 0, 더 세밀한 county단위 정보는 level 2 shp파일을 이용하면된다.) 영역 또는 단일 클릭으로 객체 선택을 통해 찾은 행정구역을 선택한 후 레이터.......

Pandas, 그룹별 여러가지 통계 구하기 (groupby + agg) [내부링크]

.groupby를 이용해 그룹을 나눈 후 .agg를 사용하면 각 그룹의 항목별로 여러개의 원하는 통계값 한번에 처리할 수 있다. - 직업별 수입의 최대값(max), 지출의 최소값(min) 구하기 < 결과 > 한 항목에 여러개의 통계값을 한꺼번에 구하고 싶다면 괄호안에 원하는 통계함수를 적어주면 된다. - 직업별 수입의 최대값(max), 평균값(mean) 그리고 지출의 최소값(min), 평균값(mean) 구하기 < 결과 >

Pandas, 작업속도 향상시키기 (reduce memory) [내부링크]

큰 데이터를 가지고 pandas로 작업하다보면 연산속도가 많이 느려지는 것을 느낄때가 있다. 이때, 불필요하게 많이 쓰는 메모리를 줄여주면 작업속도를 향상시킬 수 있다. 메모리는 줄이는 방법은 데이터프래임의 type을 메모리를 좀 더 적게쓰는 type으로 직접 변경해주면 되는데, 직접하기 귀찮다면 아래 함수를 복붙해서 쓰면 된다. - 가상으로 천만개의 행을 가진 데이터 프레임을 생성해서 전후 비교 < 결과 > 메모리가 많이 줄어든 것을 확인할 수 있다. - type 변경 확인 - 간단한 그룹별 연산처리로 속도 비교하기 (groupby + agg 연산에 관한건 아래블로그 참고)

Pandas, 자동으로 데이터 핵심 EDA 내용 정리 (pandas-profiling) [내부링크]

pandas-profiling 패키지를 이용하면, pandas 자료에 대한 일반적인 특징들을 자동으로 정리한 결과를 얻을 수 있다. 먼저 설치하고, 아래와 같이 패키지에서 함수를 부른 다음, 분석할 파일을 함수에 넣어주고 결과내용을 저장하면 된다. 결과를 살펴보면 변수에 대한 정보, 변수간 상관관계, 결측치(missing data) 현황등 여러가지 유용한 정보들을 한번에 제공 받을 수 있다. (본 결과들은 DACON 신용카드 사용자 연체 예측 경진대회 데이터를 사용했습니다.)

[Economist] SpaceX, 그리고 앞으로의 우주산업 [내부링크]

(본 글은 Economist의 SpaceX, a Tesla for the skies (May 9th 2021) 글을 읽고 개인적으로 간략하게 정리한 내용입니다.) 5월5일 어린이날, 엘런 머스크의 SpaceX가 Starship 우주선 이륙/착륙을 성공시키면서 또 한번 세계를 놀라게 합니다. 이게 대단한 이유가 바로 착륙때문인데, 이제 우주선을 한번쓰고 버리는게 아니라 재사용 할 수 있게 해주기 때문에 우주선의 비용을 엄청나게 줄일 수 있습니다. 이 때문에 기존의 우주산업 기업들도 일제히 우주선 발사 비용을 내렸습니다. 보잉과 록히드마틴의 합작 밴처회사인 United Launch Alliance는 발사비용을 $225 millon -> $100 million 으로 내렸고, 유럽의 ArianSpace는 현재 $213 mi.......

[Economist] 다국적 기업들에 대한 세금 [내부링크]

(본 글은 Economist의 How should multinationals be taxed (May 10th 2021) 글을 읽고 개인적으로 간략하게 정리한 내용입니다.) 바이든 정부가 들어서면서 전세계를 기만했던 조세피난처(tax-heaven) 사건과 관련된 다국적 기업들에 대한 세금 정책/법안이 뜨겁게 논의 되는 것으로 보인다. 다국적 기업에 대한 세금에 대해 조금 알아보면, 세금은 이윤을 창출하는 지역 (source) 과 본사가 있는 지역 (headquarter or resident) 에서 세금이 부과되게 된다. 이러한 시스템에서 2가지 문제가 발생하게 되는데, 첫번째로, 국가간의 기업 유치 및 투자로 산업적/경제적 이익을 위해 세금을 낮추는 경쟁이 붙게된다. 언뜻보면 무슨 문제인가 싶지.......

[Economist] 미래의 은행 (디지털 화폐) [내부링크]

(본 글은 Economist의 A future with fewer banks (May 8th 2021) 글을 읽고 개인적으로 간략하게 정리한 내용입니다.) 기술의 혁신에 은행도 변화 할 수 있다는 전망이 나오고 있습니다. 중앙집권형 디지털 화폐(digital central-bank money)는 기존의 은행서비스보다 훨씬 빠르고 간결한 시스템을 구축을 가능케 한다고 합니다. 여기서 중앙집권형 디지털 화폐란, 정부에서 주관해서 발행하는 디지털 화폐로 쉽게 애기해서 이제는 상업은행들 (신한/국민/우리 등...)을 거치지 않고 바로 한국은행을 통해 은행서비스를 받게하는 화폐입니다. (사용방법 혹은 용도적인 측면서 비트코인과 비슷하긴하지만 근본적으로 탈중앙화를 목표로 하는 비트.......

Pandas, 보간법으로 결측치 채우기 (interpolate) [내부링크]

데이터에 결측치(NaN)를 채우기 위한 또하나의 방법으로 보건법(interpolation)이 있다. 먼저, 가장 간단한 선형보간법 (linear interpolation)이 default로 제공되며, .interpolation를 이용해 간단히 해결할 수 있다. - linear interpolation < 결과 > 만약 특정 컬럼(column)만 보간법(interpolation)을 사용하고 싶다면, 데이터 프레임 전체 대신 특정 컬럼만 써주면 된다. - 수입(income)에만 보간법 적용하기 < 결과 > 보간법(interpolation)은 다양한 기법들이 존재하는데, 주로 많이 쓰는 것들로는 cubic, polynomial 정도가 있으며 (지극히 제 개인적인 기준) nearest 경우에는 가장 가까운 값을 그냥 가져다 쓰게 됩니다. .......

Pandas, 원하는 날짜기간별 통계값 구하기 (resample) [내부링크]

데이터의 날짜 구간을 변경하고 싶을때, resample을 이용하면 간단하게 계산할 수 있다. (예를들어 1일단위의 데이터를 1달단위 혹은 원하는 날수만큼 단위) 먼저 resample을 이용하기 위해서는 index가 날짜타입(datetime)이어야 한다. 데이터에 날짜정보가 있다면 to_datetime을 이용해 타입을 날짜타입으로 바꾸고, .set_index를 이용해 index로 설정하자. (바꾸는 방법은 아래블로그 참조) 만약 날짜 정보가 없다면 pd.date_range를 이용해 만들면 된다. 예) 2020년 1월 1일부터 1주일 간격으로 12주의 수입 지출 example 만들기 < 결과 > 주어진 데이터 뒤에 .resample와 괄호안에 원하는 새로운 시간단위를 적는다. 그리고 뒤에 원하.......

Pandas, 원하는 조건대로 데이터 필터링하기 (filtering) [내부링크]

전체 데이터에서 원하는 조건에 해당하는 데이터만 필터링을 하고 싶다면, 원하는 조건문을 데이터 프레임에 입력해 주면 된다. - 수입이 120 이상만 필터링 < 결과 > 원하는 조건이 여러가지 일때는, 괄호()안에 각 조건을 입력하고 & (교집합, 그리고) 또는 | (합집합, 또는) 을 입력해준다. - 수입이 120이상이면서 직업이 학생인 데이터 필터링 < 결과 > 만약, 하나의 컬럼에서 여러 개의 조건을 동시에 고려하고 싶다면, .isin을 활용하면 편리하다. - 수입이 120이상이면서 직업이 학생이거나 고용인인 데이터 필터링 < 결과 >

[QGIS] TMS for Korea 설치하기 [내부링크]

Kakao, Naver나 Daum에서 제공하는 지도를 이용하기위해 TMS for Korea를 설치해보자. 1. QGIS plugins repository에 간다. (https://plugins.qgis.org/plugins/) 2. 위의 검색창에 'tms for korea' 라고 검색하고, 검색결과에 나오는 [280] TMS for Korea 를 클릭한다. 3. Downlaod latest 를 클릭해서 다운받아도 되고, 본인의 QGIS버전에 맞게 다운받아야 한다면, versions를 클릭해서 원하는 버전을 다운받는다. 4. QGIS 상단 메뉴에서 플러그인 > 플러그인 관리 및 설치 > ZIP파일에서 설치 로 가서 다운받은 zip파일을 열고 플러그인 설치를 해준다. 5. 설치가 끝나면 상단 메뉴에서 웹 > TMS for Korea 가 설치된 것을.......

Pandas, merge를 이용한 데이터 프레임 합치기 (inner, outer) [내부링크]

하나의 공통 변수에 대해 두개의 데이터 프레임을 합치고자 할 때, merge를 사용할 수 있다. 기준이 되는 변수를 on에 적어주고 어떻게 합칠지를 how로 정해주면 된다. 합치는 방법으로는 left, right, inner, outer 가 있는데, 이번 블로그에서는 inner와 outer를 이용해 볼깨요. (left와 right에 대해서는 아래블로그 참조) - name을 기준으로 inner를 이용해 example1에 example2를 합치기 < 결과 > example1과 example2 공통적으로 존재하는 요소들만 합쳐진다. 공통적이지 않는 요소들 (NaN)을 어짜피 쓰지않는다고 한다면 이 방법이 효율적이다. - name을 기준으로 outer를 이용해 example1에 example2를 합치기 < 결과 > exam.......

Pandas, 순위 매기기 (rank) [내부링크]

.rank()를 이용하면 원하는 변수에 대해서 순위를 매길 수 있다. - 수입에 대해서 순위 매기기 (오름차순) < 결과 > 순위를 매길 때 오름차순으로 할 지 내림차순으로 할 지는 ascending으로 정해준다. 내림차순으로 순위를 매기기 위해서는 ascending=False 을 설정하고, 아무것도 적지않으면 default로 오름차순으로 순위가 매겨진다. - 수입에 대해서 순위 매기기 (내림차순) < 결과 > .rank()의 결과는 기본적으로 실수로 출력되므로, .astype을 이용해 정수 타입으로 바꿔주면 좀 더 깔끔하게 정리할 수 있다. < 결과 > groupby를 이용하면 그룹별로 순위를 매길 수 있다. (groupby 사용법 아래 블로그 참조) - 직업.......

Pandas, DataFrame 컬럼 이름 변경하기 (rename) [내부링크]

.columns 을 이용하여 전체 컬럼을 수정 할 수 있다. < 결과 > 만약, 특정 컬럼만 변경하고 싶다면, ...

Pandas, DataFrame 컬럼 순서 정렬 (sort) 하기 [내부링크]

.sort_values를 통해 특정 컬럼을 sort 할 수 있고, 이는 dataframe의 다른 컬럼들도 같이 따라 정렬된다. ...

Pandas, NaN 제거하기 (drop), 채우기 (fill) [내부링크]

.dropna를 이용해 DataFrame의 모든 NaN 값들을 제거할 수 있다. 제거할 때, NaN이 속한 행 또는 열...

Pandas, replace와 apply를 이용해 값 바꾸기 [내부링크]

변경하고자 하는 값(key)과 대체 값(value)를 dictionary 형태로 만들고, .replace를 이용하여 변경해준다....

Pandas, cut 이용해 실수형 자료 범주화 (bin) 하기 [내부링크]

cut 함수를 이용해 실수형 자료를 원하는 범위로 묶어 정리할 수 있다. 범주화 하고자 하는 범위는 bins을 ...

Pandas, 그룹별 통계 구하기 (groupby) [내부링크]

.groupby를 이용하면 원하는 항목에 대해서 그룹핑을 한 통계를 계산할 수 있다. by를 이용해 그룹핑 하고...

Pandas, replace (+dict) 와 apply (+def)를 이용해 값 바꾸기 (실전) [내부링크]

변경하고자 직업(key)과 대체 값(value)를 dictionary 형태로 만들고, .replace를 이용하여 변경해준다. - ...

Pandas, 월별 (시간별) 평균값 구하기 (datetime) [내부링크]

먼저 주어진 자료에서 시간의 type이 datetime인지를 확인해보자. Dataframe의 column별 type을 확인하는 ...

Pandas, 날짜정보를 datetime 타입으로 변경하기 (to_datetime) [내부링크]

주어진 자료에서 날짜를 datetime 타입으로 변경하고 싶다면 pd.to_datetime을 이용하면 된다. 이때, forma...

Pandas, 날짜 정보 및 인덱스 만들기 (date_range) [내부링크]

datetime 타입의 날짜정보를 직접 만들어 주고 싶다면 pd.date_range를 사용하면 된다. (start는 시작날짜,...

Pandas, pivot_table 과 groupby [내부링크]

pivot_table을 이용하면 groupby와 똑같이 변수에 대해 그룹별 통계값을 구할 수 있다. index에는 그룹을 ...

Pandas, merge를 이용한 데이터 프레임 합치기 (left, right) [내부링크]

하나의 공통 변수에 대해 두개의 데이터 프레임을 합치고자 할 때, merge를 사용할 수 있다. 기준이 되는 ...

ESG, 녹색채권 (Green Bond) [내부링크]

- 채권 이란 쉽게 애기하면, 돈을 빌려주고 일정기간이 지난 뒤 원금 및 이자를 받는 방식으로 대출과 매우...