Spaces:
Sleeping
Sleeping
File size: 27,779 Bytes
216e903 8d1daf1 216e903 52dd204 216e903 e773872 216e903 |
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 |
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,
)
|