-
Notifications
You must be signed in to change notification settings - Fork 39
Closed
Milestone
Description
Context
While working on the get_category_filter PR, I was getting some strange behavior that seemed to suddenly break what I was working on. I decided to pull main down to my machine and see if possibly something else besides what I was doing somehow caused it. When I run the code below (based on the data filter extension docs, with the colors and slider stripped out) the points from the scatter plot layer aren't rendered on the map.
If I don't add the extension, it renders the points.
If someone could try to recreate this and either confirm that it's not just me, or let me know that it's on my end only I'd really appreciate it. I'm scratching my head right now.
Environment
- OS: Windows 11
- Browser: opera
- Lonboard Version: Main
Steps to reproduce the bug
from pathlib import Path
import geopandas as gpd
import numpy as np
import pandas as pd
import shapely
import lonboard
from lonboard import Map, ScatterplotLayer
from lonboard.layer_extension import DataFilterExtension
url = "https://ookla-open-data.s3.us-west-2.amazonaws.com/parquet/performance/type=mobile/year=2019/quarter=1/2019-01-01_performance_mobile_tiles.parquet"
local_path = Path("data-filter-extension.parquet")
if local_path.exists():
gdf = gpd.read_parquet(local_path)
else:
columns = ["avg_d_kbps", "avg_u_kbps", "avg_lat_ms", "devices", "tile"]
df = pd.read_parquet(url, columns=columns)
tile_geometries = shapely.from_wkt(df["tile"])
tile_centroids = shapely.centroid(tile_geometries)
non_geom_columns = [col for col in columns if col != "tile"]
gdf = gpd.GeoDataFrame(
df[non_geom_columns],
geometry=tile_centroids,
crs="EPSG:4326",
)
gdf.to_parquet(local_path)
filter_extension = DataFilterExtension(filter_size=3)
filter_values = np.column_stack(
[gdf["avg_d_kbps"], gdf["avg_u_kbps"], gdf["avg_lat_ms"]],
)
initial_filter_range = [
[10_000, 50_000],
[1000, 10_000],
[0, 100],
]
layer = ScatterplotLayer.from_geopandas(
gdf,
get_fill_color=[0,0,255],
radius_units="meters",
radius_min_pixels=0.1,
extensions=[filter_extension],
get_filter_value=filter_values,
filter_range=initial_filter_range,
)
m = Map(layer, basemap=lonboard.basemap.MaplibreBasemap())
display(m)Metadata
Metadata
Assignees
Labels
No labels