zoneamento-agroclima / pages /01_Agro-Clima.py
rhamon-garcia's picture
Update pages/01_Agro-Clima.py
e773872 verified
import os
import leafmap
import solara
import ipywidgets as widgets
from leafmap import leafmap
import leafmap.colormaps as cm
from leafmap.common import get_image_colormap
zoom = solara.reactive(2)
center = solara.reactive((20, 0))
maps = {
'Agro-ecological Zones: AEZ classification by climate/soil/terrain/LC': 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/LR/aez/aez_v9v2_ENSEMBLE_rcp2p6_2020s.tif',
'Koeppen-Geiger (3-character) classification 2011-2040': 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res01/IPSL-CM5A-LR/rcp4p5/KG3_IPSL-CM5A-LR_rcp4p5_2020s.tif',
"Total number of growing period days": 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res01/GFDL-ESM2M/rcp2p6/TS/lgd_GFDL-ESM2M_rcp2p6_',
"Number of dry days during temperature growing period LGPt=5 (days)" : 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res01/IPSL-CM5A-LR/rcp8p5/TS/ndd2_IPSL-CM5A-LR_rcp8p5_',
'Longest period of consecutive dry days in temperature growing period LGPt=5(days)':'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res01/HadGEM2-ES/rcp2p6/TS/ndd_HadGEM2-ES_rcp2p6_',
'Annual temperature amplitude (°C)': 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res01/NorESM1-M/rcp4p5/TS/td2_NorESM1-M_rcp4p5_',
'Mean annual temperature (°C)': 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res01/MIROC-ESM-CHEM/rcp4p5/TS/tmp_MIROC-ESM-CHEM_rcp4p5_',
'Annual precipitation (mm)': 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res01/MIROC-ESM-CHEM/rcp6p0/TS/prc_MIROC-ESM-CHEM_rcp6p0_',
'Total number of rain days (days with P > 1 mm)': 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res01/IPSL-CM5A-LR/rcp4p5/TS/ndr_IPSL-CM5A-LR_rcp4p5_'
}
anos = list(range(2025, 2041))
#municipios = ee.FeatureCollection('FAO/GAUL_SIMPLIFIED_500m/2015/level2').filter(ee.Filter.eq('ADM0_NAME', 'Brazil'))
#municipios_list =
# Get the list of municipality names
#estados_list = [estados_list]
maps_list= list(maps)
maps_values= list(maps.values())
aez_colors = {
0: "#FFFFFF", # NAA
1: "#FFD700", # Tropics, lowland; semi-arid, no soil/terrain limitations
2: "#DAA520", # Tropics, lowland; semi-arid, with soil/terrain limitations
3: "#32CD32", # Tropics, lowland; sub-humid, no soil/terrain limitations
4: "#228B22", # Tropics, lowland; sub-humid, with soil/terrain limitations
5: "#008000", # Tropics, lowland; humid, no soil/terrain limitations
6: "#006400", # Tropics, lowland; humid, with soil/terrain limitations
7: "#FFA500", # Tropics, highland; semi-arid, no soil/terrain limitations
8: "#FF8C00", # Tropics, highland; semi-arid, with soil/terrain limitations
9: "#7FFF00", # Tropics, highland; sub-humid, no soil/terrain limitations
10: "#ADFF2F", # Tropics, highland; sub-humid, with soil/terrain limitations
11: "#00FF00", # Tropics, highland; humid, no soil/terrain limitations
12: "#00FA9A", # Tropics, highland; humid, with soil/terrain limitations
13: "#FF4500", # Sub-tropics, warm; semi-arid, no soil/terrain limitations
14: "#FF6347", # Sub-tropics, warm; semi-arid, with soil/terrain limitations
15: "#9ACD32", # Sub-tropics, warm; sub-humid, no soil/terrain limitations
16: "#6B8E23", # Sub-tropics, warm; sub-humid, with soil/terrain limitations
17: "#3CB371", # Sub-tropics, warm; humid, no soil/terrain limitations
18: "#2E8B57", # Sub-tropics, warm; humid, with soil/terrain limitations
19: "#8B4513", # Sub-tropics, mud, cool; semi-arid, no soil/terrain limitations
20: "#A0522D", # Sub-tropics, mud, cool; semi-arid, with soil/terrain limitations
21: "#D2B48C", # Sub-tropics, mud, cool; sub-humid, no soil/terrain limitations
22: "#BC8F8F", # Sub-tropics, mud, cool; sub-humid, with soil/terrain limitations
23: "#8FBC8F", # Sub-tropics, mud, cool; humid, no soil/terrain limitations
24: "#556B2F", # Sub-tropics, mud, cool; humid, with soil/terrain limitations
25: "#CD853F", # Sub-tropics, cool; semi-arid, no soil/terrain limitations
26: "#DEB887", # Sub-tropics, cool; sub-humid, no soil/terrain limitations
27: "#F4A460", # Sub-tropics, cool; humid, with soil/terrain limitations
28: "#D2691E", # Sub-tropics, cool; humid, no soil/terrain limitations
29: "#B0C4DE", # Temperature, moderate; dry, no soil/terrain limitations
30: "#87CEEB", # Temperature, moderate; dry, with soil/terrain limitations
31: "#ADD8E6", # Temperature, moderate; moist, no soil/terrain limitations
32: "#6495ED", # Temperature, moderate; moist, with soil/terrain limitations
33: "#1E90FF", # Temperature, moderate; wet, no soil/terrain limitations
34: "#0000FF", # Temperature, moderate; wet, with soil/terrain limitations
35: "#4682B4", # Temperature, cool; dry, no soil/terrain limitations
36: "#5F9EA0", # Temperature, cool; dry, with soil/terrain limitations
37: "#00CED1", # Temperature, cool; moist, no soil/terrain limitations
38: "#40E0D0", # Temperature, cool; moist, with soil/terrain limitations
39: "#00FFFF", # Temperature, cool; wet, no soil/terrain limitations
40: "#00BFFF", # Temperature, cool; wet, with soil/terrain limitations
41: "#A9A9A9", # Cold, no permafrost; dry, no soil/terrain limitations
42: "#808080", # Cold, no permafrost; dry, with soil/terrain limitations
43: "#C0C0C0", # Cold, no permafrost; moist, no soil/terrain limitations
44: "#D3D3D3", # Cold, no permafrost; moist, with soil/terrain limitations
45: "#E0FFFF", # Cold, no permafrost; wet, no soil/terrain limitations
46: "#F0FFFF", # Cold, no permafrost; wet, with soil/terrain limitations
47: "#8B0000", # Dominantly very steep terrain
48: "#FF0000", # Land with severe soil/terrain limitations
49: "#00FF00", # Ample irrigated soils
50: "#008080", # Dominantly hydromorphic soils
51: "#FFDAB9", # Desert/Arid climate
52: "#000080", # Boreal/Cold climate
53: "#FFFFFF", # Arctic/Very cold climate
54: "#A52A2A", # Dominantly built-up land
55: "#0000FF" # Dominantly water
}
aez_dict ={
"NAA": "#FFFFFF", # Branco
"Tropics, lowland; semi-arid, no soil/terrain limitations": "#FFD700", # Dourado
"Tropics, lowland; semi-arid, with soil/terrain limitations": "#DAA520", # Dourado escuro
"Tropics, lowland; sub-humid, no soil/terrain limitations": "#32CD32", # Verde Lima
"Tropics, lowland; sub-humid, with soil/terrain limitations": "#228B22", # Verde Floresta
"Tropics, lowland; humid, no soil/terrain limitations": "#008000", # Verde
"Tropics, lowland; humid, with soil/terrain limitations": "#006400", # Verde Escuro
"Tropics, highland; semi-arid, no soil/terrain limitations": "#FFA500", # Laranja
"Tropics, highland; semi-arid, with soil/terrain limitations": "#FF8C00", # Laranja Escuro
"Tropics, highland; sub-humid, no soil/terrain limitations": "#7FFF00", # Verde Chartreuse
"Tropics, highland; sub-humid, with soil/terrain limitations": "#ADFF2F", # Verde Amarelo
"Tropics, highland; humid, no soil/terrain limitations": "#00FF00", # Verde Limão
"Tropics, highland; humid, with soil/terrain limitations": "#00FA9A", # Verde Médio
"Sub-tropics, warm; semi-arid, no soil/terrain limitations": "#FF4500", # Laranja Vermelho
"Sub-tropics, warm; semi-arid, with soil/terrain limitations": "#FF6347", # Tomate
"Sub-tropics, warm; sub-humid, no soil/terrain limitations": "#9ACD32", # Verde Amarelo Escuro
"Sub-tropics, warm; sub-humid, with soil/terrain limitations": "#6B8E23", # Verde Oliva
"Sub-tropics, warm; humid, no soil/terrain limitations": "#3CB371", # Verde Mar Médio
"Sub-tropics, warm; humid, with soil/terrain limitations": "#2E8B57", # Verde Mar
"Sub-tropics, mud, cool; semi-arid, no soil/terrain limitations": "#8B4513", # Marrom Sela
"Sub-tropics, mud, cool; semi-arid, with soil/terrain limitations": "#A0522D", # Sienna
"Sub-tropics, mud, cool; sub-humid, no soil/terrain limitations": "#D2B48C", # Tan
"Sub-tropics, mud, cool; sub-humid, with soil/terrain limitations": "#BC8F8F", # Rosa Marrom
"Sub-tropics, mud, cool; humid, no soil/terrain limitations": "#8FBC8F", # Verde Mar Claro
"Sub-tropics, mud, cool; humid, with soil/terrain limitations": "#556B2F", # Verde Oliva Escuro
"Sub-tropics, cool; semi-arid, no soil/terrain limitations": "#CD853F", # Peru
"Sub-tropics, cool; sub-humid, no soil/terrain limitations": "#DEB887", # Burlywood
"Sub-tropics, cool; humid, with soil/terrain limitations": "#F4A460", # Sandy Brown
"Sub-tropics, cool; humid, no soil/terrain limitations": "#D2691E", # Chocolate
"Temperature, moderate; dry, no soil/terrain limitations": "#B0C4DE", # Azul Aço Claro
"Temperature, moderate; dry, with soil/terrain limitations": "#87CEEB", # Céu Azul
"Temperature, moderate; moist, no soil/terrain limitations": "#ADD8E6", # Azul Claro
"Temperature, moderate; moist, with soil/terrain limitations": "#6495ED", # Azul Cornflower
"Temperature, moderate; wet, no soil/terrain limitations": "#1E90FF", # Azul Dodger
"Temperature, moderate; wet, with soil/terrain limitations": "#0000FF", # Azul
"Temperature, cool; dry, no soil/terrain limitations": "#4682B4", # Azul Aço
"Temperature, cool; dry, with soil/terrain limitations": "#5F9EA0", # Azul Cadet
"Temperature, cool; moist, no soil/terrain limitations": "#00CED1", # Azul Turquesa Escuro
"Temperature, cool; moist, with soil/terrain limitations": "#40E0D0", # Turquesa
"Temperature, cool; wet, no soil/terrain limitations": "#00FFFF", # Ciano
"Temperature, cool; wet, with soil/terrain limitations": "#00BFFF", # Azul Céu Profundo
"Cold, no permafrost; dry, no soil/terrain limitations": "#A9A9A9", # Cinza Escuro
"Cold, no permafrost; dry, with soil/terrain limitations": "#808080", # Cinza
"Cold, no permafrost; moist, no soil/terrain limitations": "#C0C0C0", # Prata
"Cold, no permafrost; moist, with soil/terrain limitations": "#D3D3D3", # Cinza Claro
"Cold, no permafrost; wet, no soil/terrain limitations": "#E0FFFF", # Azul Claro Claro
"Cold, no permafrost; wet, with soil/terrain limitations": "#F0FFFF", # Azul Celeste
"Dominantly very steep terrain": "#8B0000", # Vermelho Escuro
"Land with severe soil/terrain limitations": "#FF0000", # Vermelho
"Ample irrigated soils": "#00FF00", # Verde Limão
"Dominantly hydromorphic soils": "#008080", # Verde Azulado
"Desert/Arid climate": "#FFDAB9", # Pêssego
"Boreal/Cold climate": "#000080", # Azul Marinho
"Arctic/Very cold climate": "#FFFFFF", # Branco
"Dominantly built-up land": "#A52A2A", # Marrom
"Dominantly water": "#0000FF" # Azul
}
legend_dict = {
"NA": "#FFFFFF",
"Tropics, lowland; semi-arid, no soil/terrain limitations": "#FF99CC",
"Tropics, lowland; semi-arid, with soil/terrain limitations": "#FF6699",
"Tropics, lowland; sub-humid, no soil/terrain limitations": "#FF9966",
"Tropics, lowland; sub-humid, with soil/terrain limitations": "#FF6600",
"Tropics, lowland; humid, no soil/terrain limitations": "#FFCC66",
"Tropics, lowland; humid, with soil/terrain limitations": "#FF9933",
"Tropics, highland; semi-arid, no soil/terrain limitations": "#FFCC99",
"Tropics, highland; semi-arid, with soil/terrain limitations": "#FFCC00",
"Tropics, highland; sub-humid, no soil/terrain limitations": "#FFFF99",
"Tropics, highland; sub-humid, with soil/terrain limitations": "#FFFF33",
"Tropics, highland; humid, no soil/terrain limitations": "#FFFF66",
"Tropics, highland; humid, with soil/terrain limitations": "#FFFF00",
"Sub-tropics, warm; semi-arid, no soil/terrain limitations": "#FFCC33",
"Sub-tropics, warm; semi-arid, with soil/terrain limitations": "#FF9900",
"Sub-tropics, warm; sub-humid, no soil/terrain limitations": "#FFCC00",
"Sub-tropics, warm; sub-humid, with soil/terrain limitations": "#FF9900",
"Sub-tropics, warm; humid, no soil/terrain limitations": "#FFD700",
"Sub-tropics, warm; humid, with soil/terrain limitations": "#FF8C00",
"Sub-tropics, mod. cool; semi-arid, no soil/terrain limitations": "#FFA07A",
"Sub-tropics, mod. cool; semi-arid, with soil/terrain limitations": "#FF4500",
"Sub-tropics, mod. cool; sub-humid, no soil/terrain limitations": "#FFA500",
"Sub-tropics, mod. cool; sub-humid, with soil/terrain limitations": "#FFDAB9",
"Sub-tropics, mod. cool; humid, no soil/terrain limitations": "#FFD700",
"Sub-tropics, mod. cool; humid, with soil/terrain limitations": "#FFC0CB",
"Sub-tropics, cool; semi-arid, no soil/terrain limitations": "#98FB98",
"Sub-tropics, cool; semi-arid, with soil/terrain limitations": "#7CFC00",
"Sub-tropics, cool; sub-humid, no soil/terrain limitations": "#ADFF2F",
"Sub-tropics, cool; sub-humid, with soil/terrain limitations": "#32CD32",
"Sub-tropics, cool; humid, no soil/terrain limitations": "#00FF00",
"Sub-tropics, cool; humid, with soil/terrain limitations": "#008000",
"Temperate, moderate; dry, no soil/terrain limitations": "#ADD8E6",
"Temperate, moderate; dry, with soil/terrain limitations": "#4682B4",
"Temperate, moderate; moist, no soil/terrain limitations": "#5F9EA0",
"Temperate, moderate; moist, with soil/terrain limitations": "#6495ED",
"Temperate, moderate; wet, no soil/terrain limitations": "#1E90FF",
"Temperate, moderate; wet, with soil/terrain limitations": "#0000FF",
"Temperate, cool; dry, no soil/terrain limitations": "#87CEEB",
"Temperate, cool; dry, with soil/terrain limitations": "#4169E1",
"Temperate, cool; moist, no soil/terrain limitations": "#191970",
"Temperate, cool; moist, with soil/terrain limitations": "#00008B",
"Temperate, cool; wet, no soil/terrain limitations": "#4B0082",
"Temperate, cool; wet, with soil/terrain limitations": "#8A2BE2",
"Cold, no permafrost; dry, no soil/terrain limitations": "#708090",
"Cold, no permafrost; dry, with soil/terrain limitations": "#2F4F4F",
"Cold, no permafrost; moist, no soil/terrain limitations": "#696969",
"Cold, no permafrost; moist, with soil/terrain limitations": "#808080",
"Cold, no permafrost; wet, no soil/terrain limitations": "#A9A9A9",
"Cold, no permafrost; wet, with soil/terrain limitations": "#D3D3D3",
"Dominantly very steep terrain": "#FFD700",
"Land with severe soil/terrain limitations": "#A0522D",
"Ample irrigated soils": "#CD5C5C",
"Dominantly hydromorphic soils": "#8B0000",
"Desert/Arid climate": "#FF4500",
"Boreal/Cold climate": "#2E8B57",
"Arctic/Very cold climate": "#00CED1",
"Dominantly built-up land": "#8B4513",
"Dominantly water": "#0000FF"
}
def add_widgets(m):
setattr(m, "zoom_to_layer", True)
style = {"description_width": "initial"}
padding = "0px 0px 0px 5px"
image = widgets.Dropdown(
value=None,
options=[('Agro-ecological Zones classification by climate/soil/terrain/LC', maps_values[0]),
('Koeppen-Geiger (3-character) classification 2011-2040', maps_values[1]),
('Total number of growing period days', maps_values[2]),
('Number of dry days during temperature growing period LGPt=5 (days)', maps_values[3]),
('Longest period of consecutive dry days in temperature growing period LGPt=5(days)', maps_values[4]),
('Annual temperature amplitude (°C)', maps_values[5]),
('Mean annual temperature (°C)', maps_values[6]),
('Annual precipitation (mm)', maps_values[7]),
('Total number of rain days (days with P > 1 mm)', maps_values[8]),
],
description="Image:",
style=style,
layout=widgets.Layout(width="270px", padding=padding),
)
ano = widgets.Dropdown(
value=None,
options=anos,
description="Ano:",
style=style,
layout=widgets.Layout(width="270px", padding=padding),
)
output = widgets.Output()
def change_ano(change):
if change.new:
if change.new not in m.get_layer_names():
#mosaic = f"{url}/datasets/{dataset.value}/{image.value}.json"
m.add_cog_layer(image.value+ str(ano.value) + '.tif', name=str(ano.value), palette = 'inferno' )
output.outputs = ()
#output.append_stdout(f"Image date: {image_date}\n")
ano.observe(change_ano, names="value")
def change_image(change):
if change.new:
if change.new not in m.get_layer_names():
#mosaic = f"{url}/datasets/{dataset.value}/{image.value}.json"
layer_list = m.get_layer_names()
for layer in layer_list:
m.remove_layer(m.find_layer(layer))
m.add_basemap("HYBRID")
#m.remove_legend()
if image.value == maps_values[0]:
m.add_cog_layer(maps_values[0], name=maps_list[0],colormap=aez_colors)
m.add_legend(legend_title="Legenda", legend_dict=aez_dict, layer_name=maps_list[0], position="bottomleft")
elif image.value == maps_values[1]:
#m.remove_colorbar()
#raster = 'pages/aez.tif'
legend_dict = {
"A4 Equatorial rainforest": "#00FF00", # Verde
"Am Equatorial monsoon": "#32CD32", # Verde Lima
"As Equatorial savannah, dry summer": "#ADFF2F", # Verde Amarelo
"Aw Equatorial savannah, dry winter": "#9ACD32", # Verde Amarelo Escuro
"BWh Desert climate, hot": "#FF4500", # Laranja Vermelho
"BWk Desert climate, cold": "#FF8C00", # Laranja Escuro
"BSh Steppe climate, hot": "#FFD700", # Ouro
"BSk Steppe climate, cold": "#DAA520", # Ouro Escuro
"Cfa Temperate/mesothermal, fully humid, hot": "#87CEEB", # Céu Azul
"Cfb Temperate/mesothermal, fully humid, warm": "#ADD8E6", # Azul Claro
"Cfc Temperate/mesothermal, fully humid, cold": "#4682B4", # Azul Aço
"Csa Temperate/mesothermal, dry summer, hot": "#FFA07A", # Salmão Claro
"Csb Temperate/mesothermal, dry summer, warm": "#FA8072", # Salmão
"Csc Temperate/mesothermal, dry summer, cold": "#E9967A", # Salmão Escuro
"Cwa Temperate/mesothermal, dry winter, hot": "#FFDAB9", # Pêssego
"Cwb Temperate/mesothermal, dry winter, warm": "#FFE4B5", # Moccasin
"Cwc Temperate/mesothermal, dry winter, cold": "#FFDEAD", # Navajo Branco
"Dfa Continental/microthermal, fully humid, hot": "#8B0000", # Vermelho Escuro
"Dfb Continental/microthermal, fully humid, warm": "#B22222", # Tijolo Fogo
"Dfc Continental/microthermal, fully humid, cold": "#DC143C", # Carmesim
"Dfd Continental/microthermal, fully humid, very cold": "#FF0000", # Vermelho
"Dsa Continental/microthermal, dry summer, hot": "#800080", # Roxo
"Dsb Continental/microthermal, dry summer, warm": "#9370DB", # Roxo Médio
"Dsc Continental/microthermal, dry summer, cold": "#8A2BE2", # Azul Violeta
"Dsd Continental/microthermal, dry summer, very cold": "#4B0082", # Índigo
"Dwa Continental/microthermal, dry winter, hot": "#000080", # Azul Marinho
"Dwb Continental/microthermal, dry winter, warm": "#0000CD", # Azul Médio
"Dwc Continental/microthermal, dry winter, cold": "#1E90FF", # Azul Dodger
"Dwd Continental/microthermal, dry winter, very cold": "#00BFFF", # Azul Céu Profundo
"ET Tundra climate": "#F0E68C", # Caqui
"EF Eternal Frost climate": "#FFFFFF" # Branco
}
custom_cmap = {
0: "#00FF00", # A4 Equatorial rainforest
1: "#32CD32", # Am Equatorial monsoon
2: "#ADFF2F", # As Equatorial savannah, dry summer
3: "#9ACD32", # Aw Equatorial savannah, dry winter
4: "#FF4500", # BWh Desert climate, hot
5: "#FF8C00", # BWk Desert climate, cold
6: "#FFD700", # BSh Steppe climate, hot
7: "#DAA520", # BSk Steppe climate, cold
8: "#87CEEB", # Cfa Temperate/mesothermal climate, fully humid, hot
9: "#ADD8E6", # Cfb Temperate/mesothermal climate, fully humid, warm
10: "#4682B4", # Cfc Temperate/mesothermal climate, fully humid, cold
11: "#FFA07A", # Csa Temperate/mesothermal climate, dry summer, hot
12: "#FA8072", # Csb Temperate/mesothermal climate, dry summer, warm
13: "#E9967A", # Csc Temperate/mesothermal climate, dry summer, cold
14: "#FFDAB9", # Cwa Temperate/mesothermal climate, dry winter, hot
15: "#FFE4B5", # Cwb Temperate/mesothermal climate, dry winter, warm
16: "#FFDEAD", # Cwc Temperate/mesothermal climate, dry winter, cold
17: "#8B0000", # Dfa Continental/microthermal climate, fully humid, hot
18: "#B22222", # Dfb Continental/microthermal climate, fully humid, warm
19: "#DC143C", # Dfc Continental/microthermal climate, fully humid, cold
20: "#FF0000", # Dfd Continental/microthermal climate, fully humid, very cold
21: "#800080", # Dsa Continental/microthermal climate, dry summer, hot
22: "#9370DB", # Dsb Continental/microthermal climate, dry summer, warm
23: "#8A2BE2", # Dsc Continental/microthermal climate, dry summer, cold
24: "#4B0082", # Dsd Continental/microthermal climate, dry summer, very cold
25: "#000080", # Dwa Continental/microthermal climate, dry winter, hot
26: "#0000CD", # Dwb Continental/microthermal climate, dry winter, warm
27: "#1E90FF", # Dwc Continental/microthermal climate, dry winter, cold
28: "#00BFFF", # Dwd Continental/microthermal climate, dry winter, very cold
29: "#F0E68C", # ET Tundra climate
30: "#FFFFFF" # EF Eternal Frost climate
}
m.add_cog_layer(image.value, colormap=custom_cmap, name=maps_list[1])
m.add_legend(legend_title="Legenda", legend_dict=legend_dict, layer_name=maps_list[1], position="bottomleft")
elif image.value == maps_values[5] or image.value == maps_values[6]:
colors = cm.get_palette(cmap_name='inferno', hashtag=True)
m.add_cog_layer(image.value+ str(ano.value) + '.tif', name=str(ano.value), palette = 'inferno' )
m.add_colorbar(colors= colors, vmin=0, vmax=40, position='bottomright', orientation='horizontal', label='°C', caption='Graus Celsius')
elif image.value == maps_values[7]:
colors = cm.get_palette(cmap_name='inferno', hashtag=True)
m.add_cog_layer(image.value+ str(ano.value) + '.tif', name=str(ano.value), palette = 'inferno' )
m.add_colorbar(colors= colors, vmin=0, vmax=3000, position='bottomright', orientation='horizontal', label='mm', caption='Precipitação Anual')
else:
m.add_cog_layer(image.value+ str(ano.value) + '.tif', name=str(ano.value), palette = 'inferno' )
colors = cm.get_palette(cmap_name='inferno', hashtag=True)
m.add_colorbar(colors= colors, vmin=0, vmax=365, position='bottomright', orientation='horizontal', label='Dias', caption='Dias no Ano')
#image_date = get_image_date(image.value, m)
output.outputs = ()
#output.append_stdout(f"Image date: {image_date}\n")
image.observe(change_image, names="value")
box = widgets.VBox(
[ ano,image, output]
)
m.add_widget(box, position="topright", add_header=False)
class Map(leafmap.Map):
def __init__(self, **kwargs):
super().__init__(**kwargs)
#ee.Authenticate()
#ee.Initialize(project='ee-curso-gee-rhamon')
#self.add_ee_data()
add_widgets(self)
self.add_layer_manager(opened= True)
#self.add_legend(legend_title="Legend", legend_dict=legend_dict, open=False)
#self.add_inspector()
@solara.component
def Page():
with solara.Column(style={"min-width": "500px"}):
Map.element(
zoom=zoom.value,
on_zoom=zoom.set,
center=center.value,
on_center=center.set,
height="600px",
toolbar_ctrl=False,
data_ctrl=True,
add_google_map=True,
)