import os
import ee
import geemap
import solara
import pycafe
os.environ["EARTHENGINE_TOKEN"] = pycafe.get_secret("EARTHENGINE_TOKEN")
geemap.ee_initialize()
zoom = solara.reactive(4)
center = solara.reactive((40, -100))
class Map(geemap.Map):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.add_ee_data()
def add_ee_data(self):
counties = ee.FeatureCollection("WM/geoLab/geoBoundaries/600/ADM0")
fc = counties.filter(ee.Filter.eq("shapeName", "Taiwan"))
dem = ee.Image("USGS/SRTMGL1_003")
landsat7 = ee.Image("LANDSAT/LE7_TOA_5YEAR/1999_2003").select(
["B1", "B2", "B3", "B4", "B5", "B7"]
)
vis_params = {
"min": 0,
"max": 4000,
"palette": ["006633", "E5FFCC", "662A00", "D8D8D8", "F5F5F5"],
}
self.add_layer(
landsat7,
{"bands": ["B4", "B3", "B2"], "min": 20, "max": 200, "gamma": 2.0},
"Landsat 7",
)
self.add_layer(dem, vis_params, "SRTM DEM")
self.add_layer(fc, {}, "Taiwan")
self.add("inspector")
self.center_object(fc, 8)
@solara.component
def Page():
solara.lab.theme.dark = False
with solara.Column(style={"min-width": "500px"}):
Map.element(
zoom=zoom.value,
on_zoom=zoom.set,
center=center.value,
on_center=center.set,
scroll_wheel_zoom=True,
height="900px"
)