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