danielle-losos commited on
Commit
85dc91c
·
verified ·
1 Parent(s): cb2ab79

Update pages/05_GOES_NBR.py

Browse files
Files changed (1) hide show
  1. pages/05_GOES_NBR.py +37 -39
pages/05_GOES_NBR.py CHANGED
@@ -6,58 +6,56 @@ fireList = ["North Complex", "Dixie", "Cameron Peak", "August Complex"]
6
  selected_fire = solara.reactive([fireList[0]])
7
  dNBRvisParams = {'min': 0.0,'max': 0.8, 'palette': ['green', 'yellow','orange','red']}
8
 
9
-
10
  class Map(geemap.Map):
11
  def __init__(self, **kwargs):
12
  super().__init__(**kwargs)
13
  self.add_ee_data()
14
  self.add("layer_manager")
15
  self.add("inspector")
16
-
17
-
18
- def add_ee_data(self): #self
19
 
20
- def calcNBR(preStart, preStop, postStart, postStop, bbox):
21
- PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(preStart, preStop)).mean()
22
- POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(postStart, postStop)).mean()
23
- preNBR = PREgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR');
24
- postNBR = POSTgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR');
25
- dNBR = preNBR.subtract(postNBR).select('NBR')
26
- dNBRclipped = dNBR.clip(bbox)
27
- return dNBRclipped
28
 
29
- NorthComplexBB = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845)
30
- self.north = calcNBR('2020-08-15', '2020-08-16','2020-09-15', '2020-09-16', NorthComplexBB)
31
-
32
- DixieBB = ee.Geometry.BBox(-121.680467, 39.759303, -120.065477, 40.873387)
33
- self.dixie = calcNBR('2021-07-12', '2021-07-13','2021-09-15', '2021-09-16', DixieBB)
34
-
35
- CamPeakBB = ee.Geometry.BBox(-106.014784, 40.377907, -105.116651, 40.822094)
36
- self.campeak = calcNBR('2020-08-12', '2020-08-13','2020-09-12', '2020-09-13', CamPeakBB)
37
-
38
- AugustComplexBB = ee.Geometry.BBox(-123.668726, 39.337654, -122.355860, 40.498304)
39
- self.august = calcNBR('2020-08-15', '2020-08-16','2020-11-15', '2020-11-16', AugustComplexBB)
40
-
41
- self.vis_params = dNBRvisParams
42
 
43
- # Add default layer
44
- self.addLayer(
45
- self.north,dNBRvisParams, 'North Complex GOES NBR', True,)
46
 
 
 
 
 
 
 
 
 
47
 
48
  @solara.component
49
  def Page():
50
  map_instance = Map(element_id="map")
 
51
  def update_map(selected_fire):
52
- map_instance.clear_layers()
53
- if selected_fire == "North Complex":
54
- map_instance.addLayer(map_instance.north, map_instance.vis_params, 'North Complex GOES NBR', True)
55
- elif selected_fire == "Dixie":
56
- map_instance.addLayer(map_instance.dixie, map_instance.vis_params, 'Dixie Complex GOES NBR', True)
57
- elif selected_fire == "Cameron Peak":
58
- map_instance.addLayer(map_instance.campeak, map_instance.vis_params, 'Cameron Peak GOES NBR', True)
59
- elif selected_fire == "August Complex":
60
- map_instance.addLayer(map_instance.august, map_instance.vis_params, 'August Complex GOES NBR', True)
61
 
62
  with solara.Column(style={"min-width": "500px"}):
63
  map_widget = Map.element(
@@ -65,7 +63,7 @@ def Page():
65
  zoom=4,
66
  height="600px",
67
  )
68
-
69
- solara.Select(label="Wildfire Case Study", value=selected_fire, values=fireList, on_value = update_map)
70
  solara.Markdown(f"**Selected**: {selected_fire.value}")
71
 
 
6
  selected_fire = solara.reactive([fireList[0]])
7
  dNBRvisParams = {'min': 0.0,'max': 0.8, 'palette': ['green', 'yellow','orange','red']}
8
 
 
9
  class Map(geemap.Map):
10
  def __init__(self, **kwargs):
11
  super().__init__(**kwargs)
12
  self.add_ee_data()
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_instance.clear_layers()
51
+ if selected_fire == "North Complex":
52
+ map_instance.addLayer(map_instance.north_complex, map_instance.dNBRvisParams, 'North Complex GOES NBR', True)
53
+ elif selected_fire == "Dixie":
54
+ map_instance.addLayer(map_instance.dixie, map_instance.dNBRvisParams, 'Dixie Complex GOES NBR', True)
55
+ elif selected_fire == "Cameron Peak":
56
+ map_instance.addLayer(map_instance.cam_peak, map_instance.dNBRvisParams, 'Cameron Peak GOES NBR', True)
57
+ elif selected_fire == "August Complex":
58
+ map_instance.addLayer(map_instance.aug_complex, map_instance.dNBRvisParams, 'August Complex GOES NBR', True)
59
 
60
  with solara.Column(style={"min-width": "500px"}):
61
  map_widget = Map.element(
 
63
  zoom=4,
64
  height="600px",
65
  )
66
+
67
+ solara.Select(label="Wildfire Case Study", value=selected_fire, values=fireList, on_value=update_map)
68
  solara.Markdown(f"**Selected**: {selected_fire.value}")
69