Interactive Map editor
The Interactive Map is a singleton Leaflet Webview editor. Open it from the Profiles view title action or Open Map View. It follows the VS Code light or dark theme by default and can switch to satellite or plan basemaps.
Manage layer visibility and opacity, open the visualization editor for RGB, HSV, continuous, categorical, or interval rendering, and expose a scale. The inspector samples visible layers at a clicked point, while the status bar reports coordinates and zoom.
The local Python bridge listens on localhost:31415 for scripts that add Earth Engine
tile layers or update the viewport.
For a complete example of custom map colors, see Customizing map basemaps.


To add the DMSP-OLS night-lights trend clipped to France, open the Command Palette and
search for Earth Engine: Demo – Night Lights Trend.
In-map visualization editing
In the Layers panel, select Edit visualization on a layer to open its editor. Choose a rendering mode and adjust its parameters: image bands or feature properties, value ranges, palettes, classes or intervals, and opacity. Image layers support RGB, HSV, continuous, categorical, and interval modes; FeatureCollections support uniform, continuous, categorical, and interval styling. Select Apply to update the layer on the map.


Select Code in the editor to view the equivalent Python vis_params for the current
visualization. Use the copy button to copy the parameters, then pass them to
Map.addLayer in your vscee script.
Visualization parameters
Reusable visualization presets are stored as string properties on an image or
FeatureCollection using set. Each property key follows the structure
visualization_<number>_<keyword>: the number identifies the preset, and the keyword
identifies one of its settings. An asset can contain multiple numbered presets. For
image assets, you can also add or edit these properties in the preview editor: select
Edit, then open the Properties tab.
This convention for storing visualization parameters was created by the SEPAL team at the Food and Agriculture Organization of the United Nations (FAO).


For a child image in an ImageCollection, presets on the image take precedence. If it has none, the editor automatically uses presets from its immediate parent collection.
The sections below describe the parameters for each visualization mode and provide
example property dictionaries. Apply a dictionary with image.set(preset_properties) or
features.set(preset_properties), then use the returned object when adding the layer.
For direct Python vis_params, see Map.addLayer.
Image
RGB
RGB displays three image bands as red, green, and blue, in that order. Select the bands and set the minimum and maximum values for each channel in the visualization editor. A value below its minimum renders as 0 and a value above its maximum renders as 255; values between are stretched into the display range. You can optionally adjust gamma to change the brightness of the midtones.
The Range control can calculate per-band bounds from the pixels currently visible on the map: choose a 1, 2, or 3 sigma stretch, or a 90%, 98%, or 100% percentile stretch. Choose Custom to enter bounds manually. The gamma control defaults to 1 and accepts values from 0.1 to 5.


To add an RGB preset to an existing image, set image properties like these. The preset
assigns the s2_red, s2_green, and s2_blue bands to the red, green, and blue
channels and applies a shared 0–3000 range. Once stored on the image, it can be selected
from the Preset… dropdown:
{
"visualization_0_name": "Sentinel-2 RGB - July 2026",
"visualization_0_type": "rgb",
"visualization_0_bands": "s2_red,s2_green,s2_blue",
"visualization_0_min": "0",
"visualization_0_max": "3000"
}
For a direct Python call, see Image > RGB in vscee.
HSV
HSV uses three bands as hue, saturation, and value. In the editor, choose a band for each channel and enter its Min and Max. The map normalizes each band between those bounds to 0–1, then converts HSV to RGB for display. Hue controls the color, saturation its intensity, and value its brightness; unlike RGB, this mode has no gamma control.
The Range control can calculate bounds separately for each selected band from the visible pixels using a 1, 2, or 3 sigma stretch or a 90%, 98%, or 100% percentile stretch. Select Custom to edit the three ranges manually.


An HSV preset on an existing image stores the three bands and their ranges as string properties:
{
"visualization_4_name": "Terrain HSV",
"visualization_4_type": "hsv",
"visualization_4_bands": "hsv_hue,hsv_saturation,hsv_value",
"visualization_4_min": "0,0,0",
"visualization_4_max": "1,1,1"
}
For a direct Python call, see Image > HSV in vscee.
Continuous
Continuous rendering maps the values in one image band through a color palette. Choose the Band, then set Min and Max: values at the minimum receive the first color and values at the maximum receive the last; intermediate values blend between palette colors. The Range control can derive these bounds from the visible pixels using the same sigma and percentile stretches as RGB, or you can enter them with Custom.
Under Palette, select a color scheme or set the number of colors (2–12). You can add or remove colors and edit each one with the picker or hex field; the ramp preview shows the resulting gradient.


{
"visualization_1_name": "VIIRS NDVI - July 2026",
"visualization_1_type": "continuous",
"visualization_1_bands": "viirs_ndvi",
"visualization_1_min": "0.0199",
"visualization_1_max": "1.093",
"visualization_1_palette": "#8c5a3c,#e2c76a,#d9e9aa,#75b878,#126c46"
}
For a direct Python call, see Image > Continuous in vscee.
Categorical
Categorical rendering assigns one palette color to each exact numeric value in one image
band. Choose the Band, then build the Classes legend: each row has a pixel
value, a display name, and a color editable with the picker or hex field. Add or remove
rows, choose a Scheme to fill the colors, or use Detect to replace the rows with
classes found in the visible area. values and palette must have the same length;
optional labels provide display names. Pixels whose values are not listed are masked.


{
"visualization_3_name": "CORINE land cover - 2018",
"visualization_3_type": "categorical",
"visualization_3_bands": "corine_class_index",
"visualization_3_values": "0,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",
"visualization_3_labels": "111,112,121,122,123,124,131,132,133,141,142,211,212,213,221,222,223,231,241,242,243,244,311,312,313,321,322,323,324,331,332,333,334,335,411,412,421,422,423,511,512,521,522,523",
"visualization_3_palette": "#e6004d,#ff0000,#cc4df2,#cc0000,#e6cccc,#e6cce6,#a600cc,#a64dcc,#ff4dff,#ffa6ff,#ffe6ff,#ffffa8,#ffff00,#e6e600,#e68000,#f2a64d,#e6a600,#e6e64d,#ffe6a6,#ffe64d,#e6cc4d,#f2cca6,#80ff00,#00a600,#4dff00,#ccf24d,#a6ff80,#a6e64d,#a6f200,#e6e6e6,#cccccc,#ccffcc,#000000,#a6e6cc,#a6a6ff,#4d4dff,#ccccff,#e6e6ff,#a6a6e6,#00ccf2,#80f2e6,#00ffa6,#a6ffe6,#e6f2ff"
}
For a direct Python call, see Image > Categorical in vscee.
Intervals
Intervals assign a color to each numeric range in one image band. Choose the Band and set the overall Min and Max, or derive them from the visible pixels with a sigma or percentile Range stretch. Under Intervals, the Bins control creates 2–12 intervals; choose a color scheme, then edit each row's upper bound, color, and optional name. You can also add or remove intervals. Existing presets can contain more bins, as the 23-interval example below does.
The resulting breaks must be strictly increasing and contain exactly one more value
than palette. Each interval includes its lower bound and excludes its upper bound;
optional labels name the intervals in the scale.


{
"visualization_2_name": "ERA5-Land maximum 2m temperature - July 2026",
"visualization_2_type": "intervals",
"visualization_2_bands": "era5_tmax_c",
"visualization_2_breaks": "-273.15,-40,-35,-30,-25,-20,-17.5,-15,-10,-5,-2.5,0,5,10,15,20,25,30,32.5,35,37.5,40,45,100",
"visualization_2_palette": "#BA68C8,#8E24AA,#6A1B9A,#7E57C2,#B39DDB,#ccd0ed,#1A237E,#0D47A1,#1565C0,#03A9F4,#00ffff,#1B5E20,#43A047,#8BC34A,#FFF176,#FFCA28,#FFA000,#FF6F00,#cd2000,#96132d,#fab2f5,#F06292,#E91E63"
}
For a direct Python call, see Image > Intervals in vscee.
FeatureCollection
Feature collections are rendered either with one uniform style or by mapping a feature
property to colors. In stored presets, property names the selected feature property
for property-based modes. Palette colors must be six-digit hex RGB values, with or
without a leading #. In every vector mode, the editor also exposes Width for lines
and Point size for points; these affect the rendered features independently of the
property-to-color mapping.
Uniform
Uniform styling applies the same appearance to every feature, without selecting a
property. In the editor, turn Stroke and Fill on or off independently and choose
their colors with the picker or hex fields. Use Width for outlines and Point
size for points; the fill is transparent by default. Stored uniform presets use
color, fillColor, and width as shown below, while direct Map.addLayer calls can
also specify pointSize.


{
"visualization_0_name": "Boundaries",
"visualization_0_type": "uniform",
"visualization_0_color": "#008000",
"visualization_0_fillColor": "#FFFFFF",
"visualization_0_width": "2"
}
For a direct Python call, see FeatureCollection > Uniform in vscee.
Continuous
Continuous styling maps a numeric feature property between Min and Max through a palette of at least two colors. Choose the Property and enter the bounds, or use Range > Visible min/max to derive them from features in the current view. Under Palette, choose a scheme or set 2–12 colors, then adjust individual colors with the picker or hex fields. Values between the bounds blend between colors; the shared Width and Point size controls still apply.


{
"visualization_1_name": "July 2026 mean daily precipitation",
"visualization_1_type": "continuous",
"visualization_1_property": "july_mean_daily_precip_mm",
"visualization_1_min": "0",
"visualization_1_max": "3",
"visualization_1_palette": "#f7fbff,#c6dbef,#6baed6,#2171b5,#08306b"
}
For a direct Python call, see FeatureCollection > Continuous in vscee.
Categorical
Categorical styling assigns a color to each exact numeric or string value in a feature
property. Choose the Property and edit each Classes row's value, name, and
color. Add or remove rows, choose a Scheme, or use Detect to replace the legend
with classes present in the visible area. Each distinct value needs one color; names
become optional labels in the scale. Features with unlisted values are not drawn.


{
"visualization_2_name": "CORINE majority land cover - 2018",
"visualization_2_type": "categorical",
"visualization_2_property": "corine_majority",
"visualization_2_values": "111, 112, 121, 122, 123, 124, 131, 132, 133, 141, 142, 211, 212, 213, 221, 222, 223, 231, 241, 242, 243, 244, 311, 312, 313, 321, 322, 323, 324, 331, 332, 333, 334, 335, 411, 412, 421, 422, 423, 511, 512, 521, 522, 523",
"visualization_2_palette": "#e6004d, #ff0000, #cc4df2, #cc0000, #e6cccc, #e6cce6, #a600cc, #a64dcc, #ff4dff, #ffa6ff, #ffe6ff, #ffffa8, #ffff00, #e6e600, #e68000, #f2a64d, #e6a600, #e6e64d, #ffe6a6, #ffe64d, #e6cc4d, #f2cca6, #80ff00, #00a600, #4dff00, #ccf24d, #a6ff80, #a6e64d, #a6f200, #e6e6e6, #cccccc, #ccffcc, #000000, #a6e6cc, #a6a6ff, #4d4dff, #ccccff, #e6e6ff, #a6a6e6, #00ccf2, #80f2e6, #00ffa6, #a6ffe6, #e6f2ff",
"visualization_2_labels": "111, 112, 121, 122, 123, 124, 131, 132, 133, 141, 142, 211, 212, 213, 221, 222, 223, 231, 241, 242, 243, 244, 311, 312, 313, 321, 322, 323, 324, 331, 332, 333, 334, 335, 411, 412, 421, 422, 423, 511, 512, 521, 522, 523"
}
Stored values are parsed as numbers. Values typed into new Classes rows are also
converted when they look numeric: "01" and "1" both become 1, so they cannot
remain distinct. Use Detect to preserve existing string classes, or pass string
values directly to Map.addLayer.
For a direct Python call, see FeatureCollection > Categorical in vscee.
Intervals
Interval styling maps a numeric feature property to one color per range. Choose the Property and the first and last bounds, or select Range > Visible min/max to derive them from features in view. Choose 2–12 Bins and a color scheme, then edit each interval's upper bound, color, and optional name, or add and remove intervals.
The resulting breaks must be strictly increasing and contain one more value than
palette; each interval includes its lower bound and excludes its upper bound.


{
"visualization_3_name": "July 2026 mean temperature - intervals",
"visualization_3_type": "intervals",
"visualization_3_property": "july_mean_temp_c",
"visualization_3_breaks": "-273.15, -40, -35, -30, -25, -20, -17.5, -15, -10, -5, -2.5, 0, 5, 10, 15, 20, 25, 30, 32.5, 35, 37.5, 40, 45, 100",
"visualization_3_palette": "#BA68C8, #8E24AA, #6A1B9A, #7E57C2, #B39DDB, #ccd0ed, #1A237E, #0D47A1, #1565C0, #03A9F4, #00ffff, #1B5E20, #43A047, #8BC34A, #FFF176, #FFCA28, #FFA000, #FF6F00, #cd2000, #96132d, #fab2f5, #F06292, #E91E63"
}
For a direct Python call, see FeatureCollection > Intervals in vscee.