Pydeck, Python-Datenvisualisierung. Spaltenebene auf Carto-Karten.

Feb 18 2023
Ich werde die Geodatenvisualisierungsfunktionen von deck.gl mit Python und der Pandas-Bibliothek erkunden.

Ich werde die Geodatenvisualisierungsfunktionen von deck.gl mit Python und der Pandas-Bibliothek erkunden. Deck.gl ist ein WebGL-basiertes Visualisierungsframework für große Datensätze, und pydeck ist ein hochskaliertes räumliches Rendering für Python (unterstützt von deck.gl).

Für dieses Projekt verwende ich Jupyter Notebook – die ursprüngliche Webanwendung zum Erstellen und Teilen von Computerdokumenten. Es bietet ein einfaches, optimiertes und dokumentenzentriertes Erlebnis.

Die wichtigste Python-Bibliothek für dieses Projekt ist pydeck. Standardmäßig stellt Pydeck 0.6 Grundkartenkacheln über Carto bereit. Sie können optional den Mapbox-API-Schlüssel verwenden, indem Sie sich bei Mapbox registrieren. Aber die Carto-Karte reicht für dieses Projekt aus.

Lassen Sie uns Pydeck über Pip importieren:

pip install pydeck

  1. Wir beginnen mit dem Importieren wichtiger Python-Bibliotheken für unsere Operationen: Pandas, Pydeck, OS und optional Matplotlib.pyplot (Ich werde diesen Beitrag möglicherweise in Zukunft weiterentwickeln).
  2. import pandas as pd
    import pydeck as pdk
    from pydeck.types import String
    import matplotlib.pyplot as plt
    import os
    

    os.listdir() ## checking the current file composition of the folder
    df = pd.read_excel('stores.xlsx') ## reading .xlsx file to Pandas DataFrame
    df.set_index('Location Name') ## setting indexing to store's name
    
           
                    

    df.columns
    
    # output
    # Index(['Location Name', 'Address line 1', 'Address line 2', 'Address line 3',
    #    'City Name', 'Latitude', 'Longitude', 'Lat', 'Long', 'Postal Code',
    #      'Results'],
    #     dtype='object')
    

    df2 = df[['Location Name', 'City Name', 'Latitude', 'Longitude', 'Lat', 'Long', 'Postal Code', 'Results']]
    df2
    

df2["Long"] = df2["Long"].astype(float)
df2["Lat"] = df2["Lat"].astype(float)
df2

layer = pdk.Layer(
    'ColumnLayer',
    df2,
    get_position=['Long', 'Lat'],
    get_elevation=["Results"],
    auto_highlight=True,
    elevation_scale=5,
    pickable=True,
    extruded=True,
    get_radius=100,
    get_fill_color=["Results * 10", "Results", "Results * 40", 220],
    coverage=1
)

# Set the viewport location
view_state = pdk.ViewState(
    longitude=25.336900,
    latitude=54.734235,
    zoom=2,
    min_zoom=5,
    max_zoom=15,
    pitch=40.5,
    bearing=-27.36)

r = pdk.Deck(layers=[layer], initial_view_state=view_state)
r.to_html('stores.html')