Spaces:
Sleeping
Sleeping
CHANGED EVERTYHING!!
Browse files- pages/burn_mapping.py +58 -32
pages/burn_mapping.py
CHANGED
@@ -12,14 +12,18 @@ dNBRvisParams = {'min': 0.0,'max': 0.8, 'palette': ['green', 'yellow','orange','
|
|
12 |
class Map(geemap.Map):
|
13 |
def __init__(self, **kwargs):
|
14 |
super().__init__(**kwargs)
|
15 |
-
|
16 |
-
|
|
|
|
|
|
|
|
|
17 |
self.add_selector()
|
18 |
self.add_intSlider()
|
19 |
|
20 |
self.add("layer_manager")
|
21 |
-
self.remove("
|
22 |
-
|
23 |
def add_ee_data(self):
|
24 |
def calc_nbr(pre_start, pre_stop, post_start, post_stop, bbox):
|
25 |
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(pre_start, pre_stop)).mean()
|
@@ -44,53 +48,75 @@ class Map(geemap.Map):
|
|
44 |
self.addLayer(dixie, dNBRvisParams, 'Dixie Complex GOES NBR', False)
|
45 |
self.addLayer(cam_peak, dNBRvisParams, 'Cameron Peak GOES NBR', False)
|
46 |
self.addLayer(aug_complex, dNBRvisParams, 'August Complex GOES NBR', False)
|
|
|
47 |
|
48 |
-
def customize_ee_data(self, elapDays):
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
preNBR = PREgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
|
53 |
postNBR = POSTgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
|
54 |
dNBR = preNBR.subtract(postNBR).select('NBR')
|
55 |
dNBRclipped = dNBR.clip(bbox)
|
56 |
return dNBRclipped
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
67 |
def add_selector(self):
|
68 |
selector = widgets.Dropdown(options=fireList, value="North Complex", description='Wildfire Case Study:')
|
69 |
|
70 |
def on_selector_change(change):
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
|
|
|
|
|
|
81 |
|
82 |
selector.observe(on_selector_change, names='value')
|
83 |
-
|
84 |
-
#widget = widgets.VBox(selector)
|
85 |
self.add_widget(selector, position="topleft")
|
86 |
|
87 |
def add_intSlider(self):
|
88 |
-
slider = widgets.IntSlider(value=
|
89 |
|
90 |
def on_slider_change(change):
|
91 |
if change['name'] == 'value':
|
92 |
selected_days = change['new']
|
93 |
-
self.customize_ee_data(selected_days)
|
94 |
|
95 |
slider.observe(on_slider_change, names='value')
|
96 |
self.add_widget(slider, position="topleft")
|
|
|
12 |
class Map(geemap.Map):
|
13 |
def __init__(self, **kwargs):
|
14 |
super().__init__(**kwargs)
|
15 |
+
# Default starting configuration
|
16 |
+
selected_fire == "North Complex"
|
17 |
+
selected_days == 30
|
18 |
+
|
19 |
+
#self.add_ee_data()
|
20 |
+
self.customize_ee_data(selected_fire, selected_days)
|
21 |
self.add_selector()
|
22 |
self.add_intSlider()
|
23 |
|
24 |
self.add("layer_manager")
|
25 |
+
self.remove("draw_control")
|
26 |
+
'''
|
27 |
def add_ee_data(self):
|
28 |
def calc_nbr(pre_start, pre_stop, post_start, post_stop, bbox):
|
29 |
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(pre_start, pre_stop)).mean()
|
|
|
48 |
self.addLayer(dixie, dNBRvisParams, 'Dixie Complex GOES NBR', False)
|
49 |
self.addLayer(cam_peak, dNBRvisParams, 'Cameron Peak GOES NBR', False)
|
50 |
self.addLayer(aug_complex, dNBRvisParams, 'August Complex GOES NBR', False)
|
51 |
+
'''
|
52 |
|
53 |
+
def customize_ee_data(self, fire, elapDays):
|
54 |
+
elapDayNum = ee.Number(elapDays)
|
55 |
+
elapDay_plusOne = elapDayNum.add(ee.Number(1))
|
56 |
+
|
57 |
+
north_startDate = ee.Date('2020-08-16')
|
58 |
+
dixie_startDate = ee.Date('2021-07-13')
|
59 |
+
cam_startDate = ee.Date('2020-08-13')
|
60 |
+
aug_startDate = ee.Date('2020-08-15')
|
61 |
+
|
62 |
+
north_complex_bb = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845)
|
63 |
+
dixie_bb = ee.Geometry.BBox(-121.680467, 39.759303, -120.065477, 40.873387)
|
64 |
+
cam_peak_bb = ee.Geometry.BBox(-106.014784, 40.377907, -105.116651, 40.822094)
|
65 |
+
aug_complex_bb = ee.Geometry.BBox(-123.668726, 39.337654, -122.355860, 40.498304)
|
66 |
+
|
67 |
+
def calc_nbr(pre_start, pre_stop, post_start, post_stop, bbox):
|
68 |
+
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPC').filter(ee.Filter.date(pre_start, pre_stop))\
|
69 |
+
.filter(ee.Filter.calendarRange(17, 21, 'hour')).mean()
|
70 |
+
POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPC').filter(ee.Filter.date(post_start, post_stop))\
|
71 |
+
.filter(ee.Filter.calendarRange(17, 21, 'hour')).mean()
|
72 |
preNBR = PREgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
|
73 |
postNBR = POSTgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
|
74 |
dNBR = preNBR.subtract(postNBR).select('NBR')
|
75 |
dNBRclipped = dNBR.clip(bbox)
|
76 |
return dNBRclipped
|
77 |
+
|
78 |
+
if fire == "North Complex":
|
79 |
+
north_complex = calc_nbr(north_startDate.advance(-7, 'day'), north_startDate, north_startDate.advance(elapDayNum, 'day'), north_startDate.advance(elapDay_plusOne,'day'), north_complex_bb)
|
80 |
+
self.addLayer(north_complex, dNBRvisParams, 'North Complex GOES NBR', True)
|
81 |
+
elif fire == "Dixie":
|
82 |
+
dixie = calc_nbr(dixie_startDate.advance(-7, 'day'), dixie_startDate, dixie_startDate.advance(elapDayNum, 'day'), dixie_startDate.advance(elapDay_plusOne,'day'), dixie_bb)
|
83 |
+
self.addLayer(dixie, dNBRvisParams, 'Dixie Complex GOES NBR', True)
|
84 |
+
elif fire == "Cameron Peak":
|
85 |
+
cam_peak = calc_nbr(cam_startDate.advance(-7, 'day'), cam_startDate, cam_startDate.advance(elapDayNum, 'day'), cam_startDate.advance(elapDay_plusOne,'day'), cam_peak_bb)
|
86 |
+
self.addLayer(cam_peak, dNBRvisParams, 'Cameron Peak GOES NBR', True)
|
87 |
+
elif fire == "August Complex":
|
88 |
+
aug_complex = calc_nbr(aug_startDate.advance(-7, 'day'), aug_startDate, aug_startDate.advance(elapDayNum, 'day'), aug_startDate.advance(elapDay_plusOne,'day'), aug_complex_bb)
|
89 |
+
self.addLayer(aug_complex, dNBRvisParams, 'August Complex GOES NBR', True)
|
90 |
+
|
91 |
+
|
92 |
def add_selector(self):
|
93 |
selector = widgets.Dropdown(options=fireList, value="North Complex", description='Wildfire Case Study:')
|
94 |
|
95 |
def on_selector_change(change):
|
96 |
+
if change['name'] == 'value':
|
97 |
+
selected_fire = change['new']
|
98 |
+
self.customize_ee_data(selected_fire, selected_days)
|
99 |
+
|
100 |
+
'''#self.clear_layers()
|
101 |
+
if selected_fire == "North Complex":
|
102 |
+
self.find_layer('North Complex GOES NBR').visible = True
|
103 |
+
elif selected_fire == "Dixie":
|
104 |
+
self.find_layer('Dixie Complex GOES NBR').visible = True
|
105 |
+
elif selected_fire == "Cameron Peak":
|
106 |
+
self.find_layer('Cameron Peak GOES NBR').visible = True
|
107 |
+
elif selected_fire == "August Complex":
|
108 |
+
self.find_layer('August Complex GOES NBR').visible = True'''
|
109 |
|
110 |
selector.observe(on_selector_change, names='value')
|
|
|
|
|
111 |
self.add_widget(selector, position="topleft")
|
112 |
|
113 |
def add_intSlider(self):
|
114 |
+
slider = widgets.IntSlider(value=30,min=1,max=30,step=1,description='Elapsed days:',)
|
115 |
|
116 |
def on_slider_change(change):
|
117 |
if change['name'] == 'value':
|
118 |
selected_days = change['new']
|
119 |
+
self.customize_ee_data(selected_fire, selected_days)
|
120 |
|
121 |
slider.observe(on_slider_change, names='value')
|
122 |
self.add_widget(slider, position="topleft")
|