Lav interaktive GIS-kort med Folium og Python

Hvad er Folium

Folium er et Python library som bygger på Leaflet teknologien. Folium generere som standard et seperat HTML kort som kan vises lokalt eller deles til andre som kan tilgå det uanset hvilke type operativ system de har, alt det kræver at åbne et Folium HTML kort er en browser. Det er også muligt at udvikle dashboards med folium som kan hostes hos en hvilken som helst cloud udbyder.

Fordelene ved Folium er at det ikke kræver anden viden end Python, at det er open-source (og derfor gratis).

Trinvis guide til at generere et interaktivt kort med Folium

Folium tilbyder en bred vifte af funktioner til yderligere tilpasning af kortet, såsom farver, ikoner og stregtykkelser. Du kan også tilføje popups, farvekort og interaktive funktioner baseret på dit behov.

Dette er grundlæggende trin til oprettelse af et interaktivt kort med Folium. Du kan udforske Foliums dokumentation for flere oplysninger og eksempler. Du kan læse mere om Folium på deres hjemmeside.

1. Installation af Folium: Sørg for, at du har Folium installeret. Du kan installere det ved hjælp af pip og conda:

pip install folium

2. Importér Folium i din Python-applikation: Du skal importere Folium i din Python-applikation for at bruge det:

import folium

3. Opret et kortobjekt: Du skal først oprette et kortobjekt ved at angive startkoordinater og zoomniveau. Her er et eksempel med et simpelt et kort centreret omkring koordinaterne [51.505, -0.09] med et zoomniveau på 13. Husk at folium altid er i WSG84 kortprojektion.

m = folium.Map(location=[51.505, -0.09], zoom_start=13)
m.save('interaktivt_kort.html')

4. Tilføj lag til kortet: Folium giver dig mulighed for at tilføje forskellige lag så som cirkler, polygoner og popups til kortet for at tilpasse det yderligere

Det er muligt at importere GeoJSON og TopoJSON filer direkte som lag ind i et folium kort.

Folium har også en indbygget algoritme kaldet Choropleth, som farvelægger polygoner direkte baseret metaværdier, så man fx være kan downloade og behandle sociodemografiske data fra Danmaks Statistik og generere et interaktivt kort baseret på fx de danske kommunegrænser eller sogne.

Her er et eksempel på hvordan man kan gøre det for de amerikanske stater:


import requests
import pandas
m = folium.Map([43, -100], zoom_start=4)
us_states = 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([43, -100], zoom_start=4)
folium.Choropleth(
    geo_data=us_states,
    data=state_data,
    columns=["State", "Unemployment"],
    key_on="feature.id",
).add_to(m)
m.save('interaktivt_kort.html')

5. Del eller vis kortet: Åbn HTML-filen i en webbrowser for at se det interaktive kort i aktion.

Det er også muligt at sende filen i en mail eller at iframe den ind på en hjemmeside.

Scroll to Top