Suomen postinumerodatan lukeminen ja visualisointi kartalla Pythonissa. Pythonissa on useita paketteja paikkatietodatan käsittelyyn, esimerkiksi geopandas
.
Lataa data Suomen postinumeroalueista
Lataa täältä data Suomen postinumeroalueista.
Python-työympäristö postinumeroiden visualisointiin
Esimerkit toimivat parhaiten Jupyter notebook
ympäristöissä.
Jos et halua alkaa asentamaan Pythonia ja vaadittavia kirjastoja tietokoneellesi, voit valita esimerkiksi näistä vaihtoehdoista ilmaisen selainpohjaisen Python-työympäristön.
Datan lukeminen Pythoniin
Postinumerodatan voi lukea Pythoniin geopanads
-kirjastolla GetJSON
-tiedostomuodossa.
Tästä voit kopioida Python-koodin, jolla pääsee alkuun postinumeroiden kanssa.
import matplotlib.pyplot as plt
import geopandas as gpd
input_file = "finland-postal-codes-sample.geojson"
gdf = gpd.read_file(input_file)
#Derive a silly value from postal code to colorize the regions
gdf["fake_value"] = (gdf["postinumeroalue"].astype("int")-10000) / 30000
fig, ax = plt.subplots(figsize=(10,10))
#Set longitude limits to show in the map
plt.xlim(21.2, 24.5)
#Set latitude limits to show in the map
plt.ylim(59.8, 62)
#Use Finland map as a background
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
finland = world[(world.pop_est>0) & (world.name=="Finland")].copy()
finland.plot(ax=ax, color="lightgray", edgecolor='gray')
#Plot the postal code on top
gdf.plot(ax=ax, edgecolor="white", alpha=gdf.fake_value)
Yksinkertainen postinumerodatan visualisointi Pythonin matplotlib
-kirjastolla näyttää tältä:
Käyttämällä kaikkien postinumeroiden dataa saat visualisoitua koko Suomen kartan, kuten alla. Tällöin myös kuvaajan x
- ja y
-rajaus sekä mahdollisesti ja taustakartta tulee jättää pois.
Interaktiivinen kartta postinumerodatasta Pythonissa
Interaktiivisen kartan luominen Python notebookeissa onnistuu seuraavalla skriptillä. Koodi vaatii folium
-kirjaston asentamisen.
import folium
m = folium.Map(
location=[61.1, 23.1],
tiles="cartodbpositron",
zoom_start=8,
)
input_file = "finland-postal-codes-sample.geojson"
folium.GeoJson(input_file, name="geojson").add_to(m)
folium.LayerControl().add_to(m)
m
Karttaa voi zoomata notebookissa ja liikutella hiirellä.
Kirjoita uusi kommentti
Nimi näytetään muille. Sähköpostia ei julkaista. Lisää tietosuojasta.