Spaces:
Sleeping
Sleeping
import os | |
import leafmap | |
import solara | |
import ipywidgets as widgets | |
from leafmap import leafmap | |
import leafmap.colormaps as cm | |
zoom = solara.reactive(2) | |
center = solara.reactive((20, 0)) | |
maps = { | |
'Milho - Potencial Produtivo Agro-Climático com somente chuva (2011-2040)': 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res02/HadGEM2-ES/rcp4p5/2020sH/maiz200b_yld.tif', | |
"Café Arabica - Potencial Produtivo Agro-Climático com somente chuva (2011-2040)": 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res02/MIROC-ESM-CHEM/rcp8p5/2020sH/cofa200b_yld.tif', | |
"Citrus - Potencial Produtivo Agro-Climático com somente chuva (2011-2040)" : 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res02/HadGEM2-ES/rcp2p6/2020sH/citr200b_yld.tif', | |
'Cana de Açúcar - Potencial Produtivo Agro-Climático com somente chuva (2011-2040)': 'https://s3.eu-west-1.amazonaws.com/data.gaezdev.aws.fao.org/res02/NorESM1-M/rcp2p6/2020sH/sugc200b_yld.tif' | |
} | |
maps_list= list(maps) | |
maps_values= list(maps.values()) | |
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=[('Milho - Potencial Produtivo Agro-Climático com somente chuva (2011-2040)', maps_values[0]), | |
('Café Arabica - Potencial Produtivo Agro-Climático com somente chuva (2011-2040)', maps_values[1]), | |
('Citrus - Potencial Produtivo Agro-Climático com somente chuva (2011-2040)', maps_values[2]), | |
('Cana de Açúcar - Potencial Produtivo Agro-Climático com somente chuva (2011-2040)', maps_values[3]), | |
], | |
description="Image:", | |
style=style, | |
layout=widgets.Layout(width="270px", padding=padding), | |
) | |
output = widgets.Output() | |
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)) | |
#municipiosBR= 'https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2023/Brasil/BR_Municipios_2023.zip' | |
#estadosBR = 'https://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2023/Brasil/BR_UF_2023.zip' | |
m.add_basemap("HYBRID") | |
#m.add_shp(estadosBR, layer_name='EstadosBR') | |
#m.add_shp(municipiosBR, layer_name='MunicipiosBR') | |
#m.remove_legend() | |
if image.value == maps_values[0]: | |
m.add_cog_layer(image.value, name= maps_list[0], palette = 'RdYlGn') | |
elif image.value == maps_values[1]: | |
m.add_cog_layer(image.value, name= maps_list[1], palette = 'RdYlGn') | |
elif image.value == maps_values[2]: | |
m.add_cog_layer(image.value, name= maps_list[2], palette = 'RdYlGn') | |
elif image.value == maps_values[3]: | |
m.add_cog_layer(image.value, name= maps_list[3], palette = 'RdYlGn') | |
output.outputs = () | |
#output.append_stdout(f"Image date: {image_date}\n") | |
image.observe(change_image, names="value") | |
box = widgets.VBox( | |
[ image, output] | |
) | |
m.add_widget(box, position="topright", add_header=False) | |
class Map(leafmap.Map): | |
def __init__(self, **kwargs): | |
super().__init__(**kwargs) | |
add_widgets(self) | |
self.add_layer_manager(opened= True) | |
self.add_colorbar(colors=cm.get_palette(cmap_name='RdYlGn', n_class=10) , vmin=0, vmax=10000.0, caption= 'Potencial Produtivo Agro-Climático (kg Massa Seca/ha)') | |
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, | |
) | |