Python으로 지오 코딩 웹앱을 빌드하는 방법

코드로 가이드 및 튜토리얼을 쉽게 따라 할 수 있습니다.

Unsplash에 Glenn Carstens-Peters의 사진

주소를 지리적 위치 (위도와 경도)로 변환해야하는 경우가 많으며이를 지오 코딩이라고합니다. 사용할 수있는 몇 가지 무료 지오 코딩 API (물론 제한 있음)가 있습니다. 이 튜토리얼에서는 주소가 포함 된 CSV 파일을 드래그 앤 드롭하고 지오 코딩 된 주소를 CSV로 가져 오 (다운로드) 할 수있는 무료 지오 코딩 애플리케이션을 만드는 방법을 보여줍니다.

GeopandasStreamlit을 사용하여 Python으로 지오 코딩 앱을 빌드합니다 . 선택적으로 앱을 실행하려면 Visual Studio 코드와 같은 IDE가 필요합니다. 시작하겠습니다. 먼저 라이브러리를 가져옵니다.

아래의이 GIF는 우리가 빌드 할 내용을 간략하게 보여줍니다. 사용자는 올바른 열을 선택하여 파일을 업로드하고 상호 작용할 수 있습니다.

지오 코딩 앱-CSV 파일 업로드

Streamlit 기본 사항

웹 앱은 Streamlit을 사용합니다. Streamlit은 순수하게 Python으로 사용하기 쉬운 웹 앱 빌드 라이브러리입니다. 코드를 작성할 파이썬 파일 (app.py)을 만듭니다.

먼저 필요한 라이브러리를 가져 오겠습니다.

import time
import base64
import streamlit as st
import pandas as pd
import geopandas as gpd
import geopy
from geopy.geocoders import Nominatim
from geopy.extra.rate_limiter import RateLimiter
import plotly_express as px

st.image(“geocoding.jpg”)
st.title(“Geocoding Application in Python”)
st.markdown(“Uppload a CSV File with address columns (Street name & number, Postcode, City)”)

Streamlit을 실행하는 것은 터미널에 쓰는 것만 큼 간단합니다.

streamlit run app.py
Streamlit을 사용한 지오 코딩 앱

CSV 파일 업로드

파일을 업로드하려면 st.file_upoader(). 을 사용하여 로컬 데이터와 상호 작용할 수있는 함수를 만듭니다 st.file_upoader().

주요 기능을 만들고 그 안에 CSV 파일을 업로드합니다. CSV가 업로드되면 Pandas를 사용하여 데이터를 읽고 데이터의 처음 몇 행을 표시 할 수 있습니다. 앱 빌드를 진행하면서이 메인 메뉴를 편집 할 것입니다. 마지막 섹션 인 앱에서이 함수에 대한 최종 코드를 정점에 올릴 수 있습니다.

주소 열 생성 또는 선택

아마도 형식이 지정된 주소 열이 필요하므로이 앱에서는 올바른 형식의 열과 지오 코딩을 허용하거나 데이터의 열에서 주소 열을 만들 수 있도록 설계합니다. 다음은 올바른 형식의 주소 예입니다. 도로명과 번호, 우편 번호, 도시 및 국가가 있습니다.

Karlaplan 13,115 20,STOCKHOLM, Sweden

아래의 두 번째 함수는 주소 열로 사용할 서식이 지정된 열을 선택합니다.

지오 코드

이제 지오 코딩을 시작할 수 있으며 아래 함수는 Nominatim 지오 코더를 사용합니다. 이 함수는 위도 및 경도 열이있는 지오 코딩 된 데이터 프레임을 반환합니다.

데이터를 지오 코딩하면지도에 표시 할 수 있습니다. 아래 기능은 Plotly Express를 사용합니다. Figure를 Streamlit에 전달하려면 st.plotly_chart(). 다른 라이브러리를 사용하여 데이터를 플로팅 할 수도 있습니다.

지오 코딩 된 CSV 파일 다운로드

데이터가 지오 코딩되면 앱은 위도 및 경도와 함께 데이터 프레임을 다시 표시합니다. 지오 코딩 된 데이터를 다운로드 할 수있는 것도 좋을 것입니다.

파일을 다운로드하려면 아래 함수를 작성하고 마우스 오른쪽 버튼을 클릭하여 지정된 이름으로 파일을 저장할 수 있습니다.

모든 코드를 합치면 지오 코딩 애플리케이션 코드는 다음과 같습니다.

더 많은 기능을 추가하고이를 기반으로 구축하여 원하는 경우 다른 사용 사례를 허용 할 수 있습니다. 다음은 앱에서 지오 코딩 된 파일을 다운로드하는 방법입니다.

지오 코딩 앱 — 지오 코딩 된 파일 다운로드

코드는이 Github 저장소에서도 호스팅됩니다.

Suggested posts

중요하지만 종종 간과되는 데이터 과학 및 분석 기술

중요하지만 종종 간과되는 데이터 과학 및 분석 기술

이제 데이터 과학 및 분석에 들어가는 데 필요한 기술 기술을 배울 수있는 방법이 그 어느 때보 다 많았습니다. 온라인 과정, Kaggle 대회, YouTube 자습서, 스택 오버플로가있는 금광 등이 있습니다. 현장에 침입하려는 사람들은 종종 "X 데이터 작업을 수행하려면 어떤 프로그래밍 기술이 필요한가요?", "어떤 기계 학습 기술을 배워야합니까?", "기술을 구축하려면 어떤 프로젝트를 수행해야합니까?"와 같은 질문을 자주합니다. / 포트폴리오?”.

Python으로 차트 주석 자동 생성

Python으로 차트 주석 자동 생성

따라서 매일 업데이트되는 최신의 아름다운 대화 형 대시 보드를 만들었으며 이제 경영진은 로그인하여 자신이 원할 때마다 판매 상황을 확인할 수 있습니다. 그러나 항상 그래프를 싫어하고 보고서에 숫자를 제공하기를 원하는 사람들이 있습니다. 그들은 차트를 클릭하지 않을 것입니다.

Related posts

데이터 과학을위한 필수 수학 : 기초 및 기초 변경

데이터 과학을위한 필수 수학 : 기초 및 기초 변경

고유 분해 및 SVD에 유용한 기저의 선형 대수 개념 이해이 기사에서는 고유 분해 또는 특이 값 분해 (SVD)와 같은 행렬 분해 방법을 이해하는 흥미로운 방법 인 기저 개념에 대해 알아 봅니다. 정의 기본은 벡터 공간 (벡터 집합)을 설명하는 데 사용되는 좌표계입니다.

판다와 에라스무스 연구 교환 분석

판다와 에라스무스 연구 교환 분석

Erasmus 프로그램 2011-12에서 발생한 20 만 개의 연구 교환으로 데이터 세트를 분석 한 결과 1987 년 이후 Erasmus 프로그램은 매년 수십만 명의 유럽 학생들에게 한 학기 또는 1 년을 해외에서 보낼 기회를 다른 유럽에서 보낼 수있는 기회를 제공합니다. 경제적 인 지원뿐만 아니라 쉬운 교환 과정을 제공합니다. 유럽의 다양한 사람, 언어 및 문화에 대한 마음과 마음을 열어주는 정말 귀중한 경험입니다.

데이터 과학을위한 8 가지 기본 통계 개념

… 평범한 영어로 설명

데이터 과학을위한 8 가지 기본 통계 개념

통계는 "수량 데이터의 수집, 분석, 해석 및 표현을 다루는 수학의 한 분야"입니다. 프로그래밍과 기계 학습을 혼합하면 데이터 과학의 핵심 기술에 대해 꽤 잘 설명 할 수 있습니다.

데이터 과학의 9 가지 거리 측정

일반적인 거리 측정의 장점과 함정

데이터 과학의 9 가지 거리 측정

감독되거나 감독되지 않는 많은 알고리즘은 거리 측정을 사용합니다. 유클리드 거리 또는 코사인 유사성과 같은 이러한 측정은 종종 k-NN, UMAP, HDBSCAN 등과 같은 알고리즘에서 찾을 수 있습니다.