Spaces:
Sleeping
Sleeping
Made slider interactive
Browse files- pages/burn_mapping.py +27 -0
pages/burn_mapping.py
CHANGED
@@ -13,6 +13,7 @@ class Map(geemap.Map):
|
|
13 |
def __init__(self, **kwargs):
|
14 |
super().__init__(**kwargs)
|
15 |
self.add_ee_data()
|
|
|
16 |
self.add("layer_manager")
|
17 |
self.add_selector()
|
18 |
self.add_intSlider()
|
@@ -41,6 +42,25 @@ class Map(geemap.Map):
|
|
41 |
self.addLayer(dixie, dNBRvisParams, 'Dixie Complex GOES NBR', False)
|
42 |
self.addLayer(cam_peak, dNBRvisParams, 'Cameron Peak GOES NBR', False)
|
43 |
self.addLayer(aug_complex, dNBRvisParams, 'August Complex GOES NBR', False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
|
45 |
def add_selector(self):
|
46 |
selector = widgets.Dropdown(options=fireList, value="North Complex", description='Wildfire Case Study:')
|
@@ -68,7 +88,14 @@ class Map(geemap.Map):
|
|
68 |
|
69 |
def add_intSlider(self):
|
70 |
slider = widgets.IntSlider(value=7,min=1,max=30,step=1,description='Elapsed days:',)
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
self.add_widget(slider, position="topleft")
|
|
|
72 |
|
73 |
@solara.component
|
74 |
def Page():
|
|
|
13 |
def __init__(self, **kwargs):
|
14 |
super().__init__(**kwargs)
|
15 |
self.add_ee_data()
|
16 |
+
self.customize_ee_data(10)
|
17 |
self.add("layer_manager")
|
18 |
self.add_selector()
|
19 |
self.add_intSlider()
|
|
|
42 |
self.addLayer(dixie, dNBRvisParams, 'Dixie Complex GOES NBR', False)
|
43 |
self.addLayer(cam_peak, dNBRvisParams, 'Cameron Peak GOES NBR', False)
|
44 |
self.addLayer(aug_complex, dNBRvisParams, 'August Complex GOES NBR', False)
|
45 |
+
|
46 |
+
def customize_ee_data(elapDays):
|
47 |
+
def calc_nbr(pre_start, pre_stop, post_start, post_stop, bbox):
|
48 |
+
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(pre_start, pre_stop)).mean()
|
49 |
+
POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(post_start, post_stop)).mean()
|
50 |
+
preNBR = PREgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
|
51 |
+
postNBR = POSTgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
|
52 |
+
dNBR = preNBR.subtract(postNBR).select('NBR')
|
53 |
+
dNBRclipped = dNBR.clip(bbox)
|
54 |
+
return dNBRclipped
|
55 |
+
|
56 |
+
north_complex_bb = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845)
|
57 |
+
startDate = ee.Date('2020-08-16')
|
58 |
+
elapDayNum = ee.Number(elapDays)
|
59 |
+
postStart = startDate.advance(1, 'day')
|
60 |
+
postStop = postStart.advance(1, 'day')
|
61 |
+
north_complex = calc_nbr('2020-08-15', '2020-08-16', postStart, postStop, north_complex_bb)
|
62 |
+
self.addLayer(north_complex, dNBRvisParams, 'North Complex GOES NBR', True)
|
63 |
+
|
64 |
|
65 |
def add_selector(self):
|
66 |
selector = widgets.Dropdown(options=fireList, value="North Complex", description='Wildfire Case Study:')
|
|
|
88 |
|
89 |
def add_intSlider(self):
|
90 |
slider = widgets.IntSlider(value=7,min=1,max=30,step=1,description='Elapsed days:',)
|
91 |
+
|
92 |
+
def on_slider_change(change):
|
93 |
+
selected_days = change['new']
|
94 |
+
customize_ee_data(selected_days)
|
95 |
+
|
96 |
+
slider.observe(on_slider_change)
|
97 |
self.add_widget(slider, position="topleft")
|
98 |
+
|
99 |
|
100 |
@solara.component
|
101 |
def Page():
|