viz¶
lonboard.viz ¶
viz(
data: VizDataInput | list[VizDataInput] | tuple[VizDataInput, ...],
*,
scatterplot_kwargs: ScatterplotLayerKwargs | None = None,
path_kwargs: PathLayerKwargs | None = None,
polygon_kwargs: PolygonLayerKwargs | None = None,
map_kwargs: MapKwargs | None = None,
con: DuckDBPyConnection | None = None
) -> Map
Plot your data easily.
The goal of this function is to make it simple to get something showing on a map.
For more control over rendering, construct Map and Layer objects directly.
This function accepts a variety of geospatial inputs:
- GeoPandas
GeoDataFrame. - GeoPandas
GeoSeries. - numpy array of Shapely objects.
- Single Shapely object.
-
A DuckDB query with a spatial column from DuckDB Spatial.
Warning
The DuckDB query must be run with
duckdb.sql()orduckdb.DuckDBPyConnection.sql()and not withduckdb.execute()orduckdb.DuckDBPyConnection.execute().For example
import duckdb from lonboard import viz sql = "SELECT * FROM spatial_table;" query = duckdb.sql(sql) viz(query)You can also render an entire table by using the
table()method:import duckdb from lonboard import viz con = duckdb.connect() con.execute("CREATE TABLE spatial_table AS ...;") viz(con.table("spatial_table"))Warning
DuckDB Spatial does not currently expose coordinate reference system information, so the user must ensure that data has been reprojected to EPSG:4326.
-
Any Python class with a
__geo_interface__property conforming to the Geo Interface protocol. dictholding GeoJSON-like data.- pyarrow
Tablewith a geometry column marked with a GeoArrow extension type. - pyarrow
ArrayorChunkedArraymarked with a GeoArrow extension type defined by geoarrow-pyarrow. -
Arrow-compatible Array, ChunkedArray, Table, or RecordBatch objects that have associated GeoArrow metadata. An object is "Arrow-compatible" if it implements the Arrow PyCapsule Interface and has either an
__arrow_c_array__or__arrow_c_stream__method. The provided Arrow data must be or have a geometry column marked with a GeoArrow extension type.Some examples of these sources include pyogrio's
open_arrow, DuckDB Spatial, GeoArrow-Rust's Python bindings, GeoDataFusion database connections, and, soon, GeoPolars DataFrames.
Alternatively, you can pass a list or tuple of any of the above inputs.
If you want to easily add more data, to an existing map, you can pass the output of
viz into Map.add_layer.
Parameters:
-
data(VizDataInput | list[VizDataInput] | tuple[VizDataInput, ...]) –a data object of any supported type.
Other Parameters:
-
scatterplot_kwargs(ScatterplotLayerKwargs | None) –a
dictof parameters to pass down to all generatedScatterplotLayers. -
path_kwargs(PathLayerKwargs | None) –a
dictof parameters to pass down to all generatedPathLayers. -
polygon_kwargs(PolygonLayerKwargs | None) –a
dictof parameters to pass down to all generatedPolygonLayers. -
map_kwargs(MapKwargs | None) –a
dictof parameters to pass down to the generatedMap. -
con(DuckDBPyConnection | None) –Deprecated: the active DuckDB connection. This argument has no effect and might be removed in the future.
For more control over rendering, construct Map and Layer objects
directly.
Returns:
-
Map–widget visualizing the provided data.
VizDataInput
module-attribute
¶
VizDataInput: TypeAlias = (
GeoDataFrame
| GeoSeries
| Table
| NDArray[object_]
| BaseGeometry
| ArrowArrayExportable
| ArrowStreamExportable
| GeoInterfaceProtocol
| dict[str, Any]
| DuckDBPyRelation
)
A type definition for allowed data inputs to the viz function.