danielle-losos commited on
Commit
0dbabff
·
verified ·
1 Parent(s): e9ab1d7

Keep OpenStreetMap when layers clear

Browse files
Files changed (1) hide show
  1. pages/burn_mapping.py +10 -45
pages/burn_mapping.py CHANGED
@@ -13,39 +13,13 @@ dNBRvisParams = {'min': 0.0,'max': 0.8, 'palette': ['green', 'yellow','orange','
13
  class Map(geemap.Map):
14
  def __init__(self, **kwargs):
15
  super().__init__(**kwargs)
16
- #self.add_ee_data()
17
  self.customize_ee_data(selected_fire.value, selected_days.value)
18
  self.add_selector()
19
  self.add_intSlider()
20
-
21
  self.add("layer_manager")
22
  self.remove("draw_control")
23
- '''
24
- def add_ee_data(self):
25
- def calc_nbr(pre_start, pre_stop, post_start, post_stop, bbox):
26
- PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(pre_start, pre_stop)).mean()
27
- POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(post_start, post_stop)).mean()
28
- preNBR = PREgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
29
- postNBR = POSTgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
30
- dNBR = preNBR.subtract(postNBR).select('NBR')
31
- dNBRclipped = dNBR.clip(bbox)
32
- return dNBRclipped
33
-
34
- north_complex_bb = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845)
35
- dixie_bb = ee.Geometry.BBox(-121.680467, 39.759303, -120.065477, 40.873387)
36
- cam_peak_bb = ee.Geometry.BBox(-106.014784, 40.377907, -105.116651, 40.822094)
37
- aug_complex_bb = ee.Geometry.BBox(-123.668726, 39.337654, -122.355860, 40.498304)
38
-
39
- north_complex = calc_nbr('2020-08-15', '2020-08-16', '2020-09-15', '2020-09-16', north_complex_bb)
40
- dixie = calc_nbr('2021-07-12', '2021-07-13', '2021-09-15', '2021-09-16', dixie_bb)
41
- cam_peak = calc_nbr('2020-08-12', '2020-08-13', '2020-09-12', '2020-09-13', cam_peak_bb)
42
- aug_complex = calc_nbr('2020-08-15', '2020-08-16', '2020-11-10', '2020-11-11', aug_complex_bb)
43
-
44
- self.addLayer(north_complex, dNBRvisParams, 'North Complex GOES NBR', False)
45
- self.addLayer(dixie, dNBRvisParams, 'Dixie Complex GOES NBR', False)
46
- self.addLayer(cam_peak, dNBRvisParams, 'Cameron Peak GOES NBR', False)
47
- self.addLayer(aug_complex, dNBRvisParams, 'August Complex GOES NBR', False)
48
- '''
49
 
50
  def customize_ee_data(self, fire, elapDays):
51
  elapDayNum = ee.Number(elapDays)
@@ -72,7 +46,7 @@ class Map(geemap.Map):
72
  dNBRclipped = dNBR.clip(bbox)
73
  return dNBRclipped
74
 
75
- self.clear_layers()
76
 
77
  if fire == "North Complex":
78
  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)
@@ -86,7 +60,13 @@ class Map(geemap.Map):
86
  elif fire == "August Complex":
87
  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)
88
  self.addLayer(aug_complex, dNBRvisParams, 'August Complex GOES NBR', True)
89
-
 
 
 
 
 
 
90
 
91
  def add_selector(self):
92
  selector = widgets.Dropdown(options=fireList, value="North Complex", description='Wildfire Case Study:')
@@ -95,16 +75,6 @@ class Map(geemap.Map):
95
  if change['name'] == 'value':
96
  selected_fire.value = change['new']
97
  self.customize_ee_data(selected_fire.value, selected_days.value)
98
-
99
- '''#self.clear_layers()
100
- if selected_fire == "North Complex":
101
- self.find_layer('North Complex GOES NBR').visible = True
102
- elif selected_fire == "Dixie":
103
- self.find_layer('Dixie Complex GOES NBR').visible = True
104
- elif selected_fire == "Cameron Peak":
105
- self.find_layer('Cameron Peak GOES NBR').visible = True
106
- elif selected_fire == "August Complex":
107
- self.find_layer('August Complex GOES NBR').visible = True'''
108
 
109
  selector.observe(on_selector_change, names='value')
110
  self.add_widget(selector, position="topleft")
@@ -124,11 +94,6 @@ class Map(geemap.Map):
124
  @solara.component
125
  def Page():
126
 
127
- #with solara.Column(style={"align":"start", "min-width": "200px", "height": "200px"}):
128
- #solara.Select(label="Wildfire Case Study", value=selected_fire, values=fireList)
129
- #solara.Markdown(f"**Selected**: {selected_fire.value}")
130
- #solara.Button(label="Map the burn scar",) #on_click = on_button_clicked)
131
-
132
  with solara.Column(align="center"):
133
  markdown = """
134
  ## Burn Map Generator Case Studies """
 
13
  class Map(geemap.Map):
14
  def __init__(self, **kwargs):
15
  super().__init__(**kwargs)
16
+ self.add_basemap('OpenStreetMap')
17
  self.customize_ee_data(selected_fire.value, selected_days.value)
18
  self.add_selector()
19
  self.add_intSlider()
 
20
  self.add("layer_manager")
21
  self.remove("draw_control")
22
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
  def customize_ee_data(self, fire, elapDays):
25
  elapDayNum = ee.Number(elapDays)
 
46
  dNBRclipped = dNBR.clip(bbox)
47
  return dNBRclipped
48
 
49
+ self.clear_specific_layers()
50
 
51
  if fire == "North Complex":
52
  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)
 
60
  elif fire == "August Complex":
61
  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)
62
  self.addLayer(aug_complex, dNBRvisParams, 'August Complex GOES NBR', True)
63
+
64
+ def clear_specific_layers(self):
65
+ layers_to_keep = ['OpenStreetMap']
66
+ layers = self.layers.copy()
67
+ for layer in layers:
68
+ if layer.name not in layers_to_keep:
69
+ self.remove_layer(layer)
70
 
71
  def add_selector(self):
72
  selector = widgets.Dropdown(options=fireList, value="North Complex", description='Wildfire Case Study:')
 
75
  if change['name'] == 'value':
76
  selected_fire.value = change['new']
77
  self.customize_ee_data(selected_fire.value, selected_days.value)
 
 
 
 
 
 
 
 
 
 
78
 
79
  selector.observe(on_selector_change, names='value')
80
  self.add_widget(selector, position="topleft")
 
94
  @solara.component
95
  def Page():
96
 
 
 
 
 
 
97
  with solara.Column(align="center"):
98
  markdown = """
99
  ## Burn Map Generator Case Studies """