ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python/지도를 사용할 수 있는 Folium/0. Getting started
    코딩/Python 2024. 7. 9. 14:23
    728x90

    아래 번역본은 지도 샘플을 포함하고 있지 않으므로 원문 링크를 참조하면 이해가 더 쉽다.

    https://python-visualization.github.io/folium/latest/getting_started.html

    Getting started

    Installation

    Folium can be installed using

    Folium은 다음을 사용하여 설치할 수 있다.

    $ pip install folium

    If you are using the Conda package manager, the equivalent is

    Conda 패키지 관리자를 사용하는 경우 이에 상응하는 것은 다음과 같다.

    $ conda install folium -c conda-forge

    Dependencies

    Folium has the following dependencies, all of which are installed automatically with the above installation commands:

    Folium에는 다음과 같은 종속성이 있으며, 모두 위의 설치 명령을 사용하여 자동으로 설치된다.

    • branca
    • Jinja2
    • Numpy
    • Requests

    Additional packages may be necessary for some functionality. It will say so in the documentation where that’s the case.

    일부 기능에는 추가 패키지가 필요할 수 있다. 해당하는 경우 문서에 그렇게 명시되어 있다.

    Creating a map

    Here’s a basic example of creating a map:

    다음은 지도를 생성하는 기본 예이다.

    import folium
    
    m = folium.Map(location=(45.5236, -122.6750))

    If you are in a Jupyter Notebook, you can display it by asking for the object representation:

    Jupyter Notebook에 있는 경우 object representation을 요청하여 표시할 수 있다.

    m

    Or you can save it as an HTML file:

    또는 HTML 파일로 저장할 수도 있다.

    m.save("index.html")

    Choosing a tileset

    The default tiles are set to OpenStreetMap, but a selection of tilesets are also built in.

    기본 타일은 OpenStreetMap으로 설정되어 있지만 다양한 타일 세트도 내장되어 있다.

    folium.Map((45.5236, -122.6750), tiles="cartodb positron")

    You can also pass any tileset as a url template. Choose one from https://leaflet-extras.github.io/leaflet-providers/preview/ and pass the url and attribution. For example:

    또한 타일셋을 URL 템플릿으로 전달할 수도 있다. https://leaflet-extras.github.io/leaflet-providers/preview/ 에서 하나를 선택하고 URL과 속성을 전달한다. 예를 들어:

    folium.Map(tiles='https://{s}.tiles.example.com/{z}/{x}/{y}.png', attr='My Data Attribution')

    Folium also accepts objects from the xyzservices package.

    Folium은 xyzservices 패키지의 개체도 허용한다.

    Adding markers

    There are various marker types, here we start with a simple Marker. You can add a popup and tooltip. You can also pick colors and icons.

    다양한 마커 유형이 있다. 여기서는 간단한 마커부터 시작한다. 팝업과 툴팁을 추가할 수 있다. 색상과 아이콘을 선택할 수도 있다.

    m = folium.Map([45.35, -121.6972], zoom_start=12)
    
    folium.Marker(
        location=[45.3288, -121.6625],
        tooltip="Click me!",
        popup="Mt. Hood Meadows",
        icon=folium.Icon(icon="cloud"),
    ).add_to(m)
    
    folium.Marker(
        location=[45.3311, -121.7113],
        tooltip="Click me!",
        popup="Timberline Lodge",
        icon=folium.Icon(color="green"),
    ).add_to(m)
    
    m

    Vectors such as lines

    Folium has various vector elements. One example is PolyLine, which can show linear elements on a map. This object can help put emphasis on a trail, a road, or a coastline.

    Folium에는 다양한 벡터 요소가 있다. 한 가지 예는 지도에 선형 요소를 표시할 수 있는 PolyLine이다. 이 개체는 산책로, 도로 또는 해안선을 강조하는 데 도움이 될 수 있다.

    m = folium.Map(location=[-71.38, -73.9], zoom_start=11)
    
    trail_coordinates = [
        (-71.351871840295871, -73.655963711222626),
        (-71.374144382613707, -73.719861619751498),
        (-71.391042575973145, -73.784922248007007),
        (-71.400964450973134, -73.851042243124397),
        (-71.402411391077322, -74.050048183880477),
    ]
    
    folium.PolyLine(trail_coordinates, tooltip="Coast").add_to(m)
    
    m

    Grouping and controlling

    You can group multiple elements such as markers together in a FeatureGroup. You can select which you want to show by adding a LayerControl to the map.

    마커와 같은 여러 요소를 FeatureGroup으로 그룹화할 수 있다. 지도에 LayerControl을 추가하여 표시할 항목을 선택할 수 있다.

    m = folium.Map((0, 0), zoom_start=7)
    
    group_1 = folium.FeatureGroup("first group").add_to(m)
    folium.Marker((0, 0), icon=folium.Icon("red")).add_to(group_1)
    folium.Marker((1, 0), icon=folium.Icon("red")).add_to(group_1)
    
    group_2 = folium.FeatureGroup("second group").add_to(m)
    folium.Marker((0, 1), icon=folium.Icon("green")).add_to(group_2)
    
    folium.LayerControl().add_to(m)
    
    m

    GeoJSON/TopoJSON overlays

    Folium supports both GeoJSON and TopoJSON data in various formats, such as urls, file paths and dictionaries.

    Folium은 URL, 파일 경로, 사전 등 다양한 형식의 GeoJSON 및 TopoJSON 데이터를 모두 지원한다.

    import requests
    
    m = folium.Map(tiles="cartodbpositron")
    
    geojson_data = requests.get(
        "https://raw.githubusercontent.com/python-visualization/folium-example-data/main/world_countries.json"
    ).json()
    
    folium.GeoJson(geojson_data, name="hello world").add_to(m)
    
    folium.LayerControl().add_to(m)
    
    m

    Choropleth maps

    Choropleth can be created by binding the data between Pandas DataFrames/Series and Geo/TopoJSON geometries.

    등치(Choropleth)는 Pandas DataFrames/Series와 Geo/TopoJSON 도형 간의 데이터를 바인딩하여 생성할 수 있다.

    import pandas
    
    state_geo = requests.get(
        "https://raw.githubusercontent.com/python-visualization/folium-example-data/main/us_states.json"
    ).json()
    state_data = pandas.read_csv(
        "https://raw.githubusercontent.com/python-visualization/folium-example-data/main/us_unemployment_oct_2012.csv"
    )
    
    m = folium.Map(location=[48, -102], zoom_start=3)
    
    folium.Choropleth(
        geo_data=state_geo,
        name="choropleth",
        data=state_data,
        columns=["State", "Unemployment"],
        key_on="feature.id",
        fill_color="YlGn",
        fill_opacity=0.7,
        line_opacity=0.2,
        legend_name="Unemployment Rate (%)",
    ).add_to(m)
    
    folium.LayerControl().add_to(m)
    
    m
    728x90

    댓글

Designed by Tistory.