sepal_ui.mapping.sepal_map.SepalMap#
- class sepal_ui.mapping.sepal_map.SepalMap(**kwargs)[source]#
Custom Map object design to build application.
The SepalMap class inherits from ipyleaflet.Map. It can thus be initialized with all its parameter. The map will fall back to CartoDB.DarkMatter map that well fits with the rest of the sepal_ui layout. Numerous methods have been added in the class to help you deal with your workflow implementation. It can natively display raster from .tif files and files and ee objects using methods that have the same signature as the GEE JavaScripts console.
- Parameters:
basemaps (List[str]) – the basemaps used as background in the map. If multiple selection, they will be displayed as layers.
dc (DrawControl | None) – whether or not the drawing control should be displayed. default to false
vinspector (bool) – Add value inspector to map, useful to inspect pixel values. default to false
gee (bool) – whether or not to use the ee binding. If False none of the earthengine display functionalities can be used. default to True
statebar (bool) – whether or not to display the Statebar in the map
kwargs (optional) – any parameter from a ipyleaflet.Map. if set, ‘ee_initialize’ will be overwritten.
Attributes
dc
The drawing control of the map
gee
Either the map will use ee binding or not
state
The statebar to inform the user about tile loading
v_inspector
The value inspector of the map
Methods
Custom Map object design to build application.
Customized add_layer method designed for EE objects.
Adds a basemap to the map.
Add a colorbar to the map.
Customized add_layer method designed for EE objects.
Add layer and use a default style for the GeoJSON inputs.
Creates and adds a custom legend as widget control to the map.
Adds a local raster dataset to the map.
Get the proper zoom to the given ee geometry.
Search a layer by name or index.
Returns the approximate pixel scale of the current map view, in meters.
Get the complete list of available basemaps.
Returns the approximate pixel scale of the current map view, in meters.
Return the vizual parameters that are set in the metadata of the image.
Hide the drawing control of the map.
Remove all the layers from the maps.
Remove last added layer from Map.
Remove a layer based on a key.
Centers the map view at a given coordinates with the given zoom level.
Centers the map view at a given coordinates with the given zoom level.
Show the drawing control on the map.
Adapt the zoom to the given bounds.
Get the proper zoom to the given ee geometry.
Adapt the zoom to the given LocalLayer.
- SepalMap.__init__(basemaps=[], dc=False, vinspector=False, gee=True, statebar=False, **kwargs)[source]#
Custom Map object design to build application.
The SepalMap class inherits from ipyleaflet.Map. It can thus be initialized with all its parameter. The map will fall back to CartoDB.DarkMatter map that well fits with the rest of the sepal_ui layout. Numerous methods have been added in the class to help you deal with your workflow implementation. It can natively display raster from .tif files and files and ee objects using methods that have the same signature as the GEE JavaScripts console.
- Parameters:
basemaps (List[str]) – the basemaps used as background in the map. If multiple selection, they will be displayed as layers.
dc (bool) – whether or not the drawing control should be displayed. default to false
vinspector (bool) – Add value inspector to map, useful to inspect pixel values. default to false
gee (bool) – whether or not to use the ee binding. If False none of the earthengine display functionalities can be used. default to True
statebar (bool) – whether or not to display the Statebar in the map
kwargs (optional) – any parameter from a ipyleaflet.Map. if set, ‘ee_initialize’ will be overwritten.
- Return type:
None
- SepalMap.addLayer(ee_object, vis_params={}, name='', shown=True, opacity=1.0, viz_name='', key='')#
Customized add_layer method designed for EE objects.
Copy the addLayer method from geemap to read and guess the vizaulization parameters the same way as in SEPAL recipes. If the vizparams are empty and visualization metadata exist, SepalMap will use them automatically.
- Parameters:
ee_object (ComputedObject) – the ee OBject to draw on the map
vis_params (dict) – the visualization parameters set as in GEE
name (str) – the name of the layer
shown (bool) – either to show the layer or not, default to true (it is bugged in ipyleaflet)
opacity (float) – the opcity of the layer from 0 to 1, default to 1.
viz_name (str) – the name of the vizaulization you want to use. default to the first one if existing
key (str) – the unequivocal key of the layer. by default use a normalized str of the layer name
- Return type:
None
- SepalMap.add_basemap(basemap='HYBRID')[source]#
Adds a basemap to the map.
- Parameters:
basemap (str) – Can be one of string from basemaps. Defaults to ‘HYBRID’.
- Return type:
None
- SepalMap.add_colorbar(colors, cmap='viridis', vmin=0.0, vmax=1.0, index=[], categorical=False, step=0, transparent_bg=False, position='bottomright', layer_name='', **kwargs)[source]#
Add a colorbar to the map.
- Parameters:
colors (list) – The set of colors to be used for interpolation. Colors can be provided in the form: * tuples of RGBA ints between 0 and 255 (e.g: (255, 255, 0) or (255, 255, 0, 255)) * tuples of RGBA floats between 0. and 1. (e.g: (1.,1.,0.) or (1., 1., 0., 1.)) * HTML-like string (e.g: “#ffff00) * a color name or shortcut (e.g: “y” or “yellow”)
cmap (str) – a matplotlib colormap default to viridis
vmin (float) – The minimal value for the colormap. Values lower than vmin will be bound directly to colors[0].. Defaults to 0.
vmax (float) – The maximal value for the colormap. Values higher than vmax will be bound directly to colors[-1]. Defaults to 1.0.
index (list) – The values corresponding to each color. It has to be sorted, and have the same length as colors. If None, a regular grid between vmin and vmax is created. Defaults to None.
categorical (bool, optional) – Whether or not to create a categorical colormap. Defaults to False.
step (int) – The step to split the LinearColormap into a StepColormap. Defaults to None.
position (str) – The position for the colormap widget. Defaults to “bottomright”.
layer_name (str) – Layer name of the colorbar to be associated with. Defaults to None.
kwargs – any other argument of the colorbar object from matplotlib
transparent_bg (bool)
- Return type:
None
- SepalMap.add_ee_layer(ee_object, vis_params={}, name='', shown=True, opacity=1.0, viz_name='', key='')[source]#
Customized add_layer method designed for EE objects.
Copy the addLayer method from geemap to read and guess the vizaulization parameters the same way as in SEPAL recipes. If the vizparams are empty and visualization metadata exist, SepalMap will use them automatically.
- Parameters:
ee_object (ComputedObject) – the ee OBject to draw on the map
vis_params (dict) – the visualization parameters set as in GEE
name (str) – the name of the layer
shown (bool) – either to show the layer or not, default to true (it is bugged in ipyleaflet)
opacity (float) – the opcity of the layer from 0 to 1, default to 1.
viz_name (str) – the name of the vizaulization you want to use. default to the first one if existing
key (str) – the unequivocal key of the layer. by default use a normalized str of the layer name
- Return type:
None
- SepalMap.add_layer(layer, hover=False, key='')[source]#
Add layer and use a default style for the GeoJSON inputs.
Remove existing layer if already on the map.
- Parameters:
layer (Layer) – any layer type from ipyleaflet
hover (bool) – whether to use the default hover style or not.
key (str) – the unequivocal key of the layer. by default use a normalized str of the layer name
- Return type:
None
- SepalMap.add_legend(title='Legend', legend_dict={}, position='bottomright', vertical=True)[source]#
Creates and adds a custom legend as widget control to the map.
- Parameters:
title (str) – Title of the legend. Defaults to ‘Legend’.
legend_dict (dict) – dictionary with key as label name and value as color
position (str) – the position (corners) of the legend on the map
vertical (bool) – vertical or horizoal position of the legend
- Return type:
None
- SepalMap.add_raster(image, bands=None, layer_name='Layer_mgy', colormap='inferno', opacity=1.0, fit_bounds=True, key='')[source]#
Adds a local raster dataset to the map.
If used on a cloud platform (or distant jupyter), this method won’t know where the entry point of the client is set and will thus fail to display the image. Please follow instructions from https://localtileserver.banesullivan.com/installation/remote-jupyter.html and set up the
LOCALTILESERVER_CLIENT_PREFIX
environment variable.- Parameters:
image (str | Path) – The image file path.
bands (list | int | None) – The image bands to use. It can be either a number (e.g., 1) or a list (e.g., [3, 2, 1]). Defaults to None.
layer_name (str) – The layer name to use for the raster. Defaults to None. If a layer is already using this name 3 random letter will be added
colormap (str | Colormap) – The name of the colormap to use for the raster, such as ‘gray’ and ‘terrain’. More can be found at https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html. Defaults to inferno.
opacity (float) – the opacity of the layer, default 1.0.
key (str) – the unequivocal key of the layer. by default use a normalized str of the layer name
fit_bounds (bool) – Whether or not we should fit the map to the image bounds. Default to True.
- Returns:
the local tile layer embedding the raster member (to be used with other tools of sepal-ui)
- Return type:
TileLayer
- SepalMap.centerObject(item, zoom_out=1)#
Get the proper zoom to the given ee geometry.
- Parameters:
item (ComputedObject) – the geometry to zoom on
zoom_out (int) – Zoom out the bounding zoom
- Return type:
Self
- SepalMap.find_layer(key, base=False, none_ok=False)[source]#
Search a layer by name or index.
- Parameters:
key (Layer | str | int) – the layer name, the layer key, the index or directly the layer
base (bool) – either the basemaps should be included in the search or not. default to false
none_ok (bool) – if True the function will not raise error if no layer is found. Default to False
- Returns:
The first layer using the same name or index else None
- Return type:
TileLayer
- SepalMap.getScale()#
Returns the approximate pixel scale of the current map view, in meters.
Reference: https://blogs.bing.com/maps/2006/02/25/map-control-zoom-levels-gt-resolution.
- Returns:
Map resolution in meters.
- Return type:
float
- static SepalMap.get_basemap_list()[source]#
Get the complete list of available basemaps.
This function is intending for development use It give the list of all the available basemaps for SepalMap object.
- Returns:
The list of the basemap names
- Return type:
List[str]
- SepalMap.get_scale()[source]#
Returns the approximate pixel scale of the current map view, in meters.
Reference: https://blogs.bing.com/maps/2006/02/25/map-control-zoom-levels-gt-resolution.
- Returns:
Map resolution in meters.
- Return type:
float
- static SepalMap.get_viz_params(image)[source]#
Return the vizual parameters that are set in the metadata of the image.
- Parameters:
image (Image) – the image to analyse
- Returns:
The dictionary of the find properties
- Return type:
dict
- SepalMap.hide_dc()[source]#
Hide the drawing control of the map.
Deprecated since version 2.8.0: use dc methods instead
- Return type:
Self
- SepalMap.remove_all(base=False)[source]#
Remove all the layers from the maps.
If base is set to True, the basemaps are removed as well.
- Parameters:
base (bool) – whether or not the basemaps should be removed, default to False
- Return type:
None
- SepalMap.remove_last_layer(local=False)[source]#
Remove last added layer from Map.
- Parameters:
local (bool) – Specify True to only remove local last layers, otherwise will remove every last layer.
- Return type:
Self
Deprecated since version 2.8.0: use remove_layer(-1) instead
- SepalMap.remove_layer(key, base=False, none_ok=False)[source]#
Remove a layer based on a key.
The key can be, a Layer object, the name of a layer or the index in the layer list.
- Parameters:
key (Layer | int | str) – the key to find the layer to delete
base (bool) – either the basemaps should be included in the search or not. default t false
none_ok (bool) – if True the function will not raise error if no layer is found. Default to False
- Return type:
None
- SepalMap.setCenter(lon, lat, zoom=-1)#
Centers the map view at a given coordinates with the given zoom level.
- Parameters:
lon (float) – The longitude of the center, in degrees.
lat (float) – The latitude of the center, in degrees.
zoom (int) – The zoom level, from 1 to 24. Defaults to None.
- Return type:
None
- SepalMap.set_center(lon, lat, zoom=-1)[source]#
Centers the map view at a given coordinates with the given zoom level.
- Parameters:
lon (float) – The longitude of the center, in degrees.
lat (float) – The latitude of the center, in degrees.
zoom (int) – The zoom level, from 1 to 24. Defaults to None.
- Return type:
None
- SepalMap.show_dc()[source]#
Show the drawing control on the map.
Deprecated since version 2.8.0: use dc methods instead
- Return type:
Self
- SepalMap.zoom_bounds(bounds, zoom_out=1)[source]#
Adapt the zoom to the given bounds. and center the image.
- Parameters:
bounds (Sequence[float]) – coordinates corners as minx, miny, maxx, maxy in EPSG:4326
zoom_out (int) – Zoom out the bounding zoom
- Return type:
Self
- SepalMap.zoom_ee_object(item, zoom_out=1)[source]#
Get the proper zoom to the given ee geometry.
- Parameters:
item (ComputedObject) – the geometry to zoom on
zoom_out (int) – Zoom out the bounding zoom
- Return type:
Self
- SepalMap.zoom_raster(layer, zoom_out=1)[source]#
Adapt the zoom to the given LocalLayer.
The localLayer need to come from the add_raster method to embed the image name.
- Parameters:
layer (LocalTileLayer) – the localTile layer to zoom on. it needs to embed the “raster” member
zoom_out (int) – Zoom out the bounding zoom
- Return type:
Self