Spaces:
Runtime error
Runtime error
Add time slider app
Browse files- pages/11_time_slider.py +57 -0
- requirements.txt +1 -1
pages/11_time_slider.py
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import solara
|
| 3 |
+
import pandas as pd
|
| 4 |
+
import leafmap.maplibregl as leafmap
|
| 5 |
+
import ipywidgets as widgets
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def create_map():
|
| 9 |
+
|
| 10 |
+
os.environ["TITILER_ENDPOINT"] = "https://titiler.xyz"
|
| 11 |
+
url = "https://huggingface.co/datasets/giswqs/NASA-OPERA/resolve/main/SanFrancisco_OPERA-DISP-S1/filenames.csv"
|
| 12 |
+
df = pd.read_csv(url)
|
| 13 |
+
dates = df["date"].to_list()
|
| 14 |
+
images = df["url"].to_list()
|
| 15 |
+
|
| 16 |
+
m = leafmap.Map(
|
| 17 |
+
projection="globe", sidebar_visible=True, layer_manager_expanded=False
|
| 18 |
+
)
|
| 19 |
+
m.add_basemap("USGS.Imagery")
|
| 20 |
+
vmin = -0.02
|
| 21 |
+
vmax = 0.02
|
| 22 |
+
palette = "seismic"
|
| 23 |
+
m.add_time_slider(
|
| 24 |
+
images,
|
| 25 |
+
labels=dates,
|
| 26 |
+
vmin=vmin,
|
| 27 |
+
vmax=vmax,
|
| 28 |
+
colormap_name=palette,
|
| 29 |
+
opacity=0.7,
|
| 30 |
+
expanded=True,
|
| 31 |
+
time_interval=1,
|
| 32 |
+
)
|
| 33 |
+
m.add_colorbar(vmin=vmin, vmax=vmax, palette=palette, label="Displacement (m)")
|
| 34 |
+
# m.set_terrain()
|
| 35 |
+
|
| 36 |
+
terrain_checkbox = widgets.Checkbox(
|
| 37 |
+
value=False,
|
| 38 |
+
description="Add 3D Terrain",
|
| 39 |
+
style={"description_width": "initial"},
|
| 40 |
+
)
|
| 41 |
+
|
| 42 |
+
def on_terrain_change(change):
|
| 43 |
+
if change["new"]:
|
| 44 |
+
m.set_terrain()
|
| 45 |
+
else:
|
| 46 |
+
m.remove_terrain()
|
| 47 |
+
|
| 48 |
+
terrain_checkbox.observe(on_terrain_change, names="value")
|
| 49 |
+
|
| 50 |
+
m.add_to_sidebar(terrain_checkbox, add_header=False)
|
| 51 |
+
return m
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
@solara.component
|
| 55 |
+
def Page():
|
| 56 |
+
m = create_map()
|
| 57 |
+
return m.to_solara()
|
requirements.txt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
anymap
|
| 2 |
fiona
|
| 3 |
geopandas
|
| 4 |
-
leafmap>=0.
|
| 5 |
mapclassify
|
| 6 |
maplibre
|
| 7 |
solara
|
|
|
|
| 1 |
anymap
|
| 2 |
fiona
|
| 3 |
geopandas
|
| 4 |
+
leafmap>=0.49.2
|
| 5 |
mapclassify
|
| 6 |
maplibre
|
| 7 |
solara
|