Spaces:
Sleeping
Sleeping
Re-did the whole organization!
Browse files- pages/05_GOES_NBR.py +30 -58
pages/05_GOES_NBR.py
CHANGED
@@ -11,79 +11,52 @@ class Map(geemap.Map):
|
|
11 |
def __init__(self, **kwargs):
|
12 |
super().__init__(**kwargs)
|
13 |
self.add_North_Complex_data()
|
14 |
-
self.
|
15 |
-
|
16 |
-
self.add_August_Complex_data()
|
17 |
-
|
18 |
-
|
19 |
|
20 |
-
def
|
21 |
-
# Create a bounding box geometry
|
22 |
-
NorthComplexBB = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845)
|
23 |
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
|
|
|
|
|
|
32 |
|
33 |
-
def add_Dixie_data(map_widget):
|
34 |
-
# Create a bounding box geometry
|
35 |
DixieBB = ee.Geometry.BBox(-121.680467, 39.759303, -120.065477, 40.873387)
|
|
|
36 |
|
37 |
-
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2021-07-12', '2021-07-13')).mean()
|
38 |
-
POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2021-09-15', '2021-09-16')).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(DixieBB)
|
43 |
-
#self.addLayer(dNBRclipped, dNBRvisParams, "GOES dNBR")
|
44 |
-
map_widget.addLayer(dNBR, dNBRvisParams, "GOES dNBR - Dixie")
|
45 |
-
|
46 |
-
def add_Cameron_Peak_data(map_widget):
|
47 |
-
# Create a bounding box geometry
|
48 |
CamPeakBB = ee.Geometry.BBox(-106.014784, 40.377907, -105.116651, 40.822094)
|
|
|
49 |
|
50 |
-
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-08-12', '2020-08-13')).mean()
|
51 |
-
POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-09-12', '2020-09-13')).mean()
|
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(CamPeakBB)
|
56 |
-
#self.addLayer(dNBRclipped, dNBRvisParams, "GOES dNBR")
|
57 |
-
map_widget.addLayer(dNBR, dNBRvisParams, "GOES dNBR - Cameron Peak")
|
58 |
-
|
59 |
-
def add_August_Complex_data(map_widget):
|
60 |
-
# Create a bounding box geometry
|
61 |
AugustComplexBB = ee.Geometry.BBox(-123.668726, 39.337654, -122.355860, 40.498304)
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
|
71 |
@solara.component
|
72 |
def Page():
|
|
|
73 |
def update_map(selected_fire):
|
74 |
map_instance.clear_layers()
|
75 |
if selected_fire == "North Complex":
|
76 |
-
|
77 |
elif selected_fire == "Dixie":
|
78 |
-
|
79 |
elif selected_fire == "Cameron Peak":
|
80 |
-
|
81 |
elif selected_fire == "August Complex":
|
82 |
-
|
83 |
-
|
84 |
-
def SelectFire(value):
|
85 |
-
#selected_fire.value = value
|
86 |
-
update_map(value)
|
87 |
|
88 |
with solara.Column(style={"min-width": "500px"}):
|
89 |
map_widget = Map.element(
|
@@ -91,8 +64,7 @@ def Page():
|
|
91 |
zoom=4,
|
92 |
height="600px",
|
93 |
)
|
94 |
-
map_instance = Map(widget=map_widget)
|
95 |
|
96 |
-
solara.Select(label="Wildfire Case Study", value=selected_fire, values=fireList, on_value =
|
97 |
solara.Markdown(f"**Selected**: {selected_fire.value}")
|
98 |
|
|
|
11 |
def __init__(self, **kwargs):
|
12 |
super().__init__(**kwargs)
|
13 |
self.add_North_Complex_data()
|
14 |
+
self.add_ee_data()
|
15 |
+
|
|
|
|
|
|
|
16 |
|
17 |
+
def add_ee_data(self): #self
|
|
|
|
|
18 |
|
19 |
+
def calcNBR(preStart, preStop, postStart, postStop, bbox):
|
20 |
+
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(preStart, preStop)).mean()
|
21 |
+
POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date(postStart, postStop)).mean()
|
22 |
+
preNBR = PREgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR');
|
23 |
+
postNBR = POSTgoesCMI.select(['CMI_C03','CMI_C06']).normalizedDifference(['CMI_C03', 'CMI_C06']).toFloat().rename('NBR');
|
24 |
+
dNBR = preNBR.subtract(postNBR).select('NBR')
|
25 |
+
dNBRclipped = dNBR.clip(bbox)
|
26 |
+
return dNBRclipped
|
27 |
+
|
28 |
+
NorthComplexBB = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845)
|
29 |
+
self.north = calcNBR('2020-08-15', '2020-08-16','2020-09-15', '2020-09-16', NorthComplexBB)
|
30 |
|
|
|
|
|
31 |
DixieBB = ee.Geometry.BBox(-121.680467, 39.759303, -120.065477, 40.873387)
|
32 |
+
self.dixie = calcNBR('2021-07-12', '2021-07-13','2021-09-15', '2021-09-16', DixieBB)
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
CamPeakBB = ee.Geometry.BBox(-106.014784, 40.377907, -105.116651, 40.822094)
|
35 |
+
self.campeak = calcNBR('2020-08-12', '2020-08-13','2020-09-12', '2020-09-13', CamPeakBB)
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
AugustComplexBB = ee.Geometry.BBox(-123.668726, 39.337654, -122.355860, 40.498304)
|
38 |
+
self.august = calcNBR('2020-08-15', '2020-08-16','2020-11-15', '2020-11-16', AugustComplexBB)
|
39 |
+
|
40 |
+
self.vis_params = dNBRvisParams
|
41 |
+
|
42 |
+
# Add default layer
|
43 |
+
self.addLayer(
|
44 |
+
self.north,dNBRvisParams, 'North Complex GOES NBR', True,)
|
45 |
+
|
46 |
|
47 |
@solara.component
|
48 |
def Page():
|
49 |
+
map_instance = Map(element_id="map")
|
50 |
def update_map(selected_fire):
|
51 |
map_instance.clear_layers()
|
52 |
if selected_fire == "North Complex":
|
53 |
+
map_instance.addLayer(map_instance.north, map_instance.vis_params, 'North Complex GOES NBR', True)
|
54 |
elif selected_fire == "Dixie":
|
55 |
+
map_instance.addLayer(map_instance.dixie, map_instance.vis_params, 'Dixie Complex GOES NBR', True)
|
56 |
elif selected_fire == "Cameron Peak":
|
57 |
+
map_instance.addLayer(map_instance.campeak, map_instance.vis_params, 'Cameron Peak GOES NBR', True)
|
58 |
elif selected_fire == "August Complex":
|
59 |
+
map_instance.addLayer(map_instance.august, map_instance.vis_params, 'August Complex GOES NBR', True)
|
|
|
|
|
|
|
|
|
60 |
|
61 |
with solara.Column(style={"min-width": "500px"}):
|
62 |
map_widget = Map.element(
|
|
|
64 |
zoom=4,
|
65 |
height="600px",
|
66 |
)
|
|
|
67 |
|
68 |
+
solara.Select(label="Wildfire Case Study", value=selected_fire, values=fireList, on_value = update_map)
|
69 |
solara.Markdown(f"**Selected**: {selected_fire.value}")
|
70 |
|