Reputation: 1
I'm working with a Pydeck ScatterplotLayer in Streamlit to display geographic points on a map. However, all points are being plotted at the coordinate (0, 0) (latitude 0, longitude 0), even though my data contains valid latitude and longitude values.
Here’s a brief outline of my setup:
from pprint import pprint
import numpy as np
import streamlit as st
import pandas as pd
import pydeck as pdk
# Load the dataset
file_path = 'maps/data/processed/locations.proc.tsv'
data = pd.read_csv(file_path, sep='\t')
# Only select necessary columns and ensure they are Arrow-compatible
valid_data = data.dropna(subset=['Multi-site institution - Latitude', 'Multi-site institution - Longitude'])
valid_data['Institution Name'] = valid_data['Institution Name'].astype(str)
valid_data['Multi-site institution - Latitude'] = pd.to_numeric(valid_data['Multi-site institution - Latitude'], errors='coerce')
valid_data['Multi-site institution - Longitude'] = pd.to_numeric(valid_data['Multi-site institution - Longitude'], errors='coerce')
# Prepare the cleaned data for Pydeck
map_data = valid_data[['Institution Name', 'Multi-site institution - Latitude', 'Multi-site institution - Longitude']].dropna()
# Convert DataFrame to list of dicts for pydeck
map_data.loc[:,"coordinates"]= map_data['Multi-site institution - Latitude'].astype(str) +","+ map_data['Multi-site institution - Longitude'].astype(str)
# Create pydeck Deck object
view_state = pdk.ViewState(
latitude=map_data['Multi-site institution - Latitude'].mean(),
longitude=map_data['Multi-site institution - Longitude'].mean(),
zoom=5,
pitch=40
)
st.write(map_data)
# Render the map with pydeck
layer=pdk.Layer(
'ScatterplotLayer',
data=map_data,
# get_position="[Multi-site institution - Latitude, Multi-site institution - Longitude]",
get_position=[map_data.columns[-2],map_data.columns[-3]],
get_radius=5000,
get_fill_color=[255, 0, 0], # Red points for visibility
pickable=True,
auto_highlight=True
)
r = pdk.Deck(
layers=[
layer
],
initial_view_state=view_state,
tooltip={
"html": "<b>{Institution Name}</b>",
"style": {"backgroundColor": "steelblue", "color": "white"}
}
)
r.to_html("smth.html")
st.pydeck_chart(r)
Has anyone faced a similar issue with pydeck setting all coordinates to zero? Any advice or troubleshooting steps would be appreciated. I am going to shoot my self with a door knob...
Foundation year Institution Name Institutional website Multi-site institution - City Multi-site institution - Latitude Multi-site institution - Longitude
1457 Albert-Ludwigs-Universität Freiburg http://www.uni-freiburg.de/ Freiburg im Breisgau 47.993544 7.84595
1386 Ruprecht-Karls-Universität Heidelberg http://www.uni-heidelberg.de/ Heidelberg 49.411282 8.706172
1818 Universität Hohenheim http://www.uni-hohenheim.de Stuttgart 48.711712 9.211786
Upvotes: 0
Views: 66