danielle-losos commited on
Commit
7c74f2b
·
verified ·
1 Parent(s): 0ed20b8

RE WROTE IT ALLL

Browse files
Files changed (1) hide show
  1. pages/05_GOES_NBR.py +42 -46
pages/05_GOES_NBR.py CHANGED
@@ -13,68 +13,64 @@ class Map(geemap.Map):
13
  self.add("layer_manager")
14
  self.add("inspector")
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  def add_ee_data(self):
17
- # Add North Complex image
18
- north_complex_bb = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845)
19
- self.north_complex = self.calc_nbr('2020-08-15', '2020-08-16', '2020-09-15', '2020-09-16', north_complex_bb)
 
 
 
 
 
20
 
21
- # Add Dixie image
22
  dixie_bb = ee.Geometry.BBox(-121.680467, 39.759303, -120.065477, 40.873387)
23
- self.dixie = self.calc_nbr('2021-07-12', '2021-07-13', '2021-09-15', '2021-09-16', dixie_bb)
24
-
25
- # Add Cameron Peak image
26
  cam_peak_bb = ee.Geometry.BBox(-106.014784, 40.377907, -105.116651, 40.822094)
27
- self.cam_peak = self.calc_nbr('2020-08-12', '2020-08-13', '2020-09-12', '2020-09-13', cam_peak_bb)
28
-
29
- # Add August Complex image
30
  aug_complex_bb = ee.Geometry.BBox(-123.668726, 39.337654, -122.355860, 40.498304)
31
- self.aug_complex = self.calc_nbr('2020-08-15', '2020-08-16', '2020-11-15', '2020-11-16', aug_complex_bb)
32
-
33
- # Visualization parameters
34
- self.dNBRvisParams = dNBRvisParams
35
 
36
- def calc_nbr(self, pre_start, pre_stop, post_start, post_stop, bbox):
37
- PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(pre_start, pre_stop)).mean()
38
- POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(post_start, post_stop)).mean()
39
- preNBR = PREgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
40
- postNBR = POSTgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
41
- dNBR = preNBR.subtract(postNBR).select('NBR')
42
- dNBRclipped = dNBR.clip(bbox)
43
- return dNBRclipped
 
44
 
45
  @solara.component
46
  def Page():
47
  #map_instance = Map(element_id="map")
48
-
49
- def update_map(selected_fire):
50
- Map.clear_layers()
51
- print("Adding layer")
52
-
53
- if selected_fire == "North Complex":
54
- print("Adding North Complex layer")
55
- Map.addLayer(map_instance.north_complex, map_instance.dNBRvisParams, 'North Complex GOES NBR', True)
56
-
57
- elif selected_fire == "Dixie":
58
- print("Adding Dixie layer")
59
- Map.addLayer(map_instance.dixie, map_instance.dNBRvisParams, 'Dixie Complex GOES NBR', True)
60
-
61
- elif selected_fire == "Cameron Peak":
62
- print("Adding Cam Peak layer")
63
- map_instance.addLayer(map_instance.cam_peak, map_instance.dNBRvisParams, 'Cameron Peak GOES NBR', True)
64
-
65
- elif selected_fire == "August Complex":
66
- print("Adding August Complex layer")
67
- Map.addLayer(map_instance.aug_complex, map_instance.dNBRvisParams, 'August Complex GOES NBR', True)
68
-
69
  #Add elements to page
70
- with solara.Column(style={"min-width": "500px", "height": "500px"}):
71
  solara.Select(label="Wildfire Case Study", value=selected_fire, values=fireList, on_value=update_map)
72
  solara.Markdown(f"**Selected**: {selected_fire.value}")
73
-
 
 
74
  # Isolation is required to prevent the map from overlapping navigation (when screen width < 960px)
75
  with solara.Column(style={"isolation": "isolate"}):
76
  map_widget = Map.element(
77
- center=[40, -100],
78
  zoom=6,
79
  height="600px",
80
  )
 
13
  self.add("layer_manager")
14
  self.add("inspector")
15
 
16
+ solara.Select(label="Wildfire Case Study", value=selected_fire, values=fireList, on_value=update_map)
17
+ solara.Markdown(f"**Selected**: {selected_fire.value}")
18
+ mapFire_button = widgets.Button(description="Map the burn scar")
19
+
20
+ def on_button_clicked(b):
21
+ self.clear_layers()
22
+ if selected_fire == "North Complex":
23
+ self.find_layer("North Complex GOES NBR").visible = True
24
+ elif selected_fire == "Dixie":
25
+ self.find_layer("Dixie Complex GOES NBR").visible = True
26
+ elif selected_fire == "Cameron Peak":
27
+ self.find_layer("Cameron Peak GOES NBR").visible = True
28
+ elif selected_fire == "August Complex":
29
+ self.find_layer("August Complex GOES NBR").visible = True
30
+ #self.layers = self.layers[:3]
31
+
32
+ mapFire_button.on_click(on_button_clicked)
33
+
34
  def add_ee_data(self):
35
+ def calc_nbr(pre_start, pre_stop, post_start, post_stop, bbox):
36
+ PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(pre_start, pre_stop)).mean()
37
+ POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(post_start, post_stop)).mean()
38
+ preNBR = PREgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
39
+ postNBR = POSTgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR')
40
+ dNBR = preNBR.subtract(postNBR).select('NBR')
41
+ dNBRclipped = dNBR.clip(bbox)
42
+ return dNBRclipped
43
 
44
+ north_complex_bb = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845)
45
  dixie_bb = ee.Geometry.BBox(-121.680467, 39.759303, -120.065477, 40.873387)
 
 
 
46
  cam_peak_bb = ee.Geometry.BBox(-106.014784, 40.377907, -105.116651, 40.822094)
 
 
 
47
  aug_complex_bb = ee.Geometry.BBox(-123.668726, 39.337654, -122.355860, 40.498304)
 
 
 
 
48
 
49
+ north_complex = calc_nbr('2020-08-15', '2020-08-16', '2020-09-15', '2020-09-16', north_complex_bb)
50
+ dixie = calc_nbr('2021-07-12', '2021-07-13', '2021-09-15', '2021-09-16', dixie_bb)
51
+ cam_peak = calc_nbr('2020-08-12', '2020-08-13', '2020-09-12', '2020-09-13', cam_peak_bb)
52
+ aug_complex = calc_nbr('2020-08-15', '2020-08-16', '2020-11-15', '2020-11-16', aug_complex_bb)
53
+
54
+ self.addLayer(north_complex, dNBRvisParams, 'North Complex GOES NBR', True)
55
+ self.addLayer(dixie, dNBRvisParams, 'Dixie Complex GOES NBR', False)
56
+ self.addLayer(cam_peak, dNBRvisParams, 'Cameron Peak GOES NBR', False)
57
+ self.addLayer(aug_complex, dNBRvisParams, 'August Complex GOES NBR', False)
58
 
59
  @solara.component
60
  def Page():
61
  #map_instance = Map(element_id="map")
62
+ '''
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  #Add elements to page
64
+ with solara.Column(style={"min-width": "500px", "height": "200px"}):
65
  solara.Select(label="Wildfire Case Study", value=selected_fire, values=fireList, on_value=update_map)
66
  solara.Markdown(f"**Selected**: {selected_fire.value}")
67
+ mapFire_button = widgets.Button(description="Map the burn scar")
68
+ '''
69
+
70
  # Isolation is required to prevent the map from overlapping navigation (when screen width < 960px)
71
  with solara.Column(style={"isolation": "isolate"}):
72
  map_widget = Map.element(
73
+ center=[39, -120.5],
74
  zoom=6,
75
  height="600px",
76
  )