Reference

Python API

dash-globe wraps react-globe.gl with a chainable, figure-like Python API. Configure layout, textures, camera, and layers in fluent calls, then wire clickData / hoverData into normal Dash callbacks.

Imports

import dash_globe

globe = dash_globe.DashGlobe(id="globe")
# Helpers
dash_globe.PRESETS
dash_globe.data_url(...)
dash_globe.event_coords(...)
dash_globe.material_spec(...)
dash_globe.lambert_material(...)
dash_globe.ring_color_interpolator(...)

Install with pip install dash-globe. Public exports are listed in dash_globe.__all__.

DashGlobe

Subclasses the generated Dash component. Defaults responsive=True. All helpers return self so calls chain.

DashGlobe(*args, **kwargs)

Create a globe component. Pass any raw react-globe.gl prop alongside high-level helpers.

dash_globe.DashGlobe(id="demo", responsive=True)

update(**kwargs)

Set component props in place. Snake-case aliases are accepted for camelCase props (for example background_colorbackgroundColor).

Scene helpers

update_layout(...)

Outer layout and renderer settings.

ParameterDescription
width, heightCanvas size in pixels.
responsiveResize with the container.
background_colorCSS color behind the canvas.
background_image_urlBackground image URL.
globe_offset[x, y] offset from canvas center.
wait_for_globe_readyDefer animation until assets load.
animate_inInitial entrance animation.
renderer_config, style, class_nameRenderer / wrapper extras.

update_globe(...)

Globe shell texture and atmosphere.

ParameterDescription
globe_image_url, bump_image_urlBase and bump textures.
show_globe, show_graticules, show_atmosphereVisibility toggles.
atmosphere_color, atmosphere_altitudeAtmosphere styling.
curvature_resolutionMesh curvature resolution.

update_view(lat=, lng=, altitude=, transition_duration=)

Set camera target. Omitted fields keep their current values.

update_controls(auto_rotate=, auto_rotate_speed=)

Orbit control auto-rotation.

update_interaction(...)

Pointer picking, cursor style, line hover precision, animation pause, and currentView report interval.

update_day_night_cycle(...)

Built-in day/night shader: enabled, day_image_url, night_image_url, time, animate, minutes_per_second.

update_clouds(...)

Rotating cloud shell: enabled, image_url, altitude, rotation_speed, opacity.

clear_tile_cache()

Bump clearGlobeTileCacheKey so the client refreshes cached tiles.

Layers

Each layer has an add_* helper that appends records and an update_* helper that replaces data and/or sets accessors. Pass a single list or multiple positional records to add_*.

Points

.add_points(*points)
.update_points(data=None, **props)

Common props: point_lat, point_lng, point_color, point_label, point_altitude, point_radius.

Arcs

.add_arcs(*arcs)
.update_arcs(data=None, **props)

Common props: arc_start_lat, arc_start_lng, arc_end_lat, arc_end_lng, arc_color, arc_dash_length, arc_dash_gap, arc_dash_animate_time.

Polygons

.add_polygons(*polygons)
.update_polygons(data=None, **props)

Common props: polygon_geo_json_geometry, polygon_cap_color, polygon_side_color, polygon_stroke_color, polygon_altitude, polygon_label.

Paths

.add_paths(*paths)
.update_paths(data=None, path_points=..., path_color=..., ...)

Heatmaps

.add_heatmap(points)
.add_heatmaps(*heatmaps)
.update_heatmap(data=None, **props)
.update_heatmaps(data=None, **props)

Hex bins & hex polygons

.add_hex_bins(*points) / .update_hex_bins(...)
.add_hex_polygons(*polygons) / .update_hex_polygons(...)

Tiles

.add_tiles(*tiles)
.update_tiles(data=None, tile_material=..., ...)

Use material_spec(...) or lambert_material(...) for JSON-serialisable materials.

Particles

.add_particle_sets(*particle_sets)
.update_particles(data=None, **props)

Rings

.add_rings(*rings)
.update_rings(data=None, ring_color=..., ...)

Animated ring colors can use ring_color_interpolator(...) instead of a JS callback.

Labels

.add_labels(*labels)
.update_labels(data=None, label_text=..., ...)

HTML overlays

.add_html_elements(*elements, children=None)
.update_html_elements(data=None, children=None, **props)

Geo-anchored Dash children matched to htmlElementsData by index.

Large data

enable_large_data_mode(enabled=True, **props)

Enables client-side large-data defaults (summary event payloads, merged point/hex rendering, disabled layer transitions). Pair with data_url(...).

dash_globe.data_url(url, unwrap_features=True)

Returns a compact marker the React wrapper fetches in the browser so large GeoJSON never enters the Dash layout. GeoJSON FeatureCollections are unwrapped to .features by default.

.update_polygons(
    data=dash_globe.data_url("https://example.com/countries.geojson"),
    polygon_geo_json_geometry="geometry",
    polygon_cap_color="steelblue",
)

Helpers

PRESETS

Built-in texture URLs:

AttributeUse
EARTH, EARTH_DAY, EARTH_NIGHT, EARTH_DARKGlobe textures
EARTH_TOPOGRAPHY, EARTH_WATERBump / water masks
NIGHT_SKYBackground starfield
CLOUDSCloud shell texture

event_coords(event)

Extract {"lat", "lng", "altitude?"} from a clickData / hoverData payload. Returns None when coordinates are missing.

material_spec(type, **options) / lambert_material(...)

JSON material specs for tile layers. Types: basic, lambert, phong, standard. Side: front, back, double.

ring_color_interpolator(color, fade_color=, opacity=, fade_opacity=, easing=)

Serialisable stand-in for a JS ringColor callback. Easing: linear, sqrt, square, cubic.

Events & callbacks

These props participate in normal Dash callbacks as Inputs/States:

PropMeaning
clickDataLast left-click pick payload
rightClickDataLast right-click pick payload
hoverDataCurrent hover pick payload
currentViewReported camera view (lat/lng/altitude)
eventDataMode"summary" or "full" payload size
from dash import Input, Output, callback
import dash_globe

@callback(Output("out", "children"), Input("globe", "clickData"))
def on_click(click_data):
    coords = dash_globe.event_coords(click_data)
    return str(coords)

Accessors & naming

Layer accessors accept either a constant value or a string field path (for example "lat" or "properties.ADMIN"). High-level helpers accept snake_case; raw camelCase props also work via update(...) or the constructor.

The wrapper targets JSON-serialisable react-globe.gl features. Raw JavaScript functions, DOM nodes, and arbitrary Three.js objects are not exposed through the high-level helpers.