Spaces:
Sleeping
Sleeping
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,) | |
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}") | |