# Installs geemap package
import subprocess
try:
import geemap
except ImportError:
print('geemap package not installed. Installing ...')
subprocess.check_call(["python", '-m', 'pip', 'install', 'geemap'])
import ee
import geemap
Map = geemap.Map(center=[40, -100], zoom=4)
Map.add_basemap('HYBRID') # Add Google Map
Map
# Add Earth Engine data
area1 = ee.Image("users/nkeikon/myanmar_sr/area1_map")
area2 = ee.Image("users/nkeikon/myanmar_sr/area2_map")
tanintharyi = ee.FeatureCollection("users/nkeikon/myanmar_sr/TNI")
Map.centerObject(tanintharyi, 10)
total = ee.ImageCollection([area1, area2]).mosaic()
palette = [
'ff0000', # palm (red)
'9933ff', # rubber (purple)
'008000', # other trees (green)
'lime', # shrub (lime)
'yellow', # bare (yellow)
'0000ff', # river (blue)
]
viz = {'min': 1, 'max': 6, 'palette': palette}
MAIN = 'Default map'
OILPALM = 'Oil palm only'
RUBBER = 'Rubber only'
OILPALM_RUBBER = 'Oil palm and rubber'
mainVis = total.visualize(**viz)
oilpalmVis = total.eq(1).selfMask().visualize(**{'palette': 'red'})
rubberVis = total.eq(2).selfMask().visualize(**{'palette': 'purple'})
oilpalm_rubberVis = oilpalmVis.blend(rubberVis)
Map.addLayer(mainVis, {}, 'Land cover')
Map.addLayer(oilpalmVis, {}, 'Oil palm only')
Map.addLayer(rubberVis, {}, 'Rubber only')
Map.addLayer(oilpalm_rubberVis, {}, 'Oil palm and rubber')
# Add widgets to the map
import ipywidgets as widgets
from ipyleaflet import WidgetControl
legend = widgets.HTML(
value='',
placeholder='Land cover',
description='Land cover',
)
citation = widgets.HTML(
value='Reference: https://go.nature.com/2QBIrYe',
placeholder='Land cover',
description='Land cover',
)
dropdown = widgets.Dropdown(
options=[
('Land cover', 1),
('Old palm only', 2),
('Rubber only', 3),
('Oil palm and bubber only', 4),
('Show all layers', 5),
],
value=5,
description='Select layer',
)
legend_control = WidgetControl(widget=legend, position='bottomleft')
citation_control = WidgetControl(widget=citation, position='bottomright')
dropdown_control = WidgetControl(widget=dropdown, position='topright')
all_layers = Map.layers
def on_change(change):
if change['type'] == 'change' and change['name'] == 'value':
if change['new'] == 5:
Map.layers = all_layers
else:
Map.layers = Map.layers[:3]
layer_index = change['new'] + 2
Map.add_layer(all_layers[layer_index])
dropdown.observe(on_change)
Map.add_control(legend_control)
Map.add_control(citation_control)
Map.add_control(dropdown_control)
Map