Spaces:
Sleeping
Sleeping
import ee | |
import geemap | |
import solara | |
fireList = ["North Complex", "Dixie", "Cameron Peak", "August Complex"] | |
four_fires = 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_ee_data() | |
self.add_plot_gui() | |
def add_ee_data(map_widget): #self | |
# Create a bounding box geometry | |
NorthComplexBB = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845) | |
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-08-15', '2020-08-16')).mean() | |
POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-09-15', '2020-09-16')).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(NorthComplexBB) | |
#self.addLayer(dNBRclipped, dNBRvisParams, "GOES dNBR") | |
map_widget.addLayer(dNBR, dNBRvisParams, "GOES dNBR - North Complex") | |
def add_Dixie_data(map_widget): | |
# Create a bounding box geometry | |
NorthComplexBB = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845) | |
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-08-15', '2020-08-16')).mean() | |
POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-09-15', '2020-09-16')).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(NorthComplexBB) | |
#self.addLayer(dNBRclipped, dNBRvisParams, "GOES dNBR") | |
map_widget.addLayer(dNBR, dNBRvisParams, "GOES dNBR - North Complex") | |
def add_Cameron_Peak_data(map_widget): | |
# Create a bounding box geometry | |
NorthComplexBB = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845) | |
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-08-15', '2020-08-16')).mean() | |
POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-09-15', '2020-09-16')).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(NorthComplexBB) | |
#self.addLayer(dNBRclipped, dNBRvisParams, "GOES dNBR") | |
map_widget.addLayer(dNBR, dNBRvisParams, "GOES dNBR - North Complex") | |
def add_August_Complex_data(map_widget): | |
# Create a bounding box geometry | |
NorthComplexBB = ee.Geometry.BBox(-121.616097, 39.426723, -120.668526, 40.030845) | |
PREgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-08-15', '2020-08-16')).mean() | |
POSTgoesCMI = ee.ImageCollection('NOAA/GOES/17/MCMIPF').filter(ee.Filter.date('2020-09-15', '2020-09-16')).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(NorthComplexBB) | |
#self.addLayer(dNBRclipped, dNBRvisParams, "GOES dNBR") | |
map_widget.addLayer(dNBR, dNBRvisParams, "GOES dNBR - North Complex") | |
def Page(): | |
solara.SelectMultiple("Wildfire Case Study", four_fires, fireList) | |
solara.Markdown(f"**Selected**: {four_fires.value}") | |
with solara.Column(style={"min-width": "500px"}): | |
map_widget = Map.element( | |
center=[40, -100], | |
zoom=4, | |
height="600px", | |
) | |
def update_map(selected_fire): | |
map_widget.clear_layers() | |
if selected_fire == "North Complex": | |
add_North_Complex_data(map_widget) | |
elif selected_fire == "Dixie": | |
add_Dixie_data(map_widget) | |
elif selected_fire == "Cameron Peak": | |
add_Cameron_Peak_data(map_widget) | |
elif selected_fire == "August Complex": | |
add_August_Complex_data(map_widget) | |