Examples Overview
This section provides practical examples of using GeoBrix for common geospatial workflows.
Quick Examples
Example 1: Read and Catalog Rasters
from databricks.labs.gbx.rasterx import functions as rx
rx.register(spark)
# Read rasters
rasters = spark.read.format("gdal").load("/data/satellite")
# Build catalog
catalog = rasters.select(
"path",
rx.rst_boundingbox("tile").alias("bounds"),
rx.rst_width("tile").alias("width"),
rx.rst_height("tile").alias("height"),
rx.rst_metadata("tile").alias("metadata")
)
catalog.write.mode("overwrite").saveAsTable("raster_catalog")
Example 2: Spatial Aggregation with BNG
from databricks.labs.gbx.gridx.bng import functions as bx
bx.register(spark)
# Aggregate points by BNG cell
result = spark.sql("""
SELECT
gbx_bng_pointtocell(st_point(longitude, latitude), 1000) as bng_cell,
COUNT(*) as count,
AVG(value) as avg_value
FROM measurements
WHERE country = 'GB'
GROUP BY bng_cell
""")
result.write.mode("overwrite").saveAsTable("bng_aggregated")
Example 3: Migrate from Mosaic
from databricks.labs.gbx.vectorx.jts.legacy import functions as vx
vx.register(spark)
# Convert legacy geometries
legacy = spark.table("legacy_mosaic_table")
migrated = legacy.select(
"*",
expr("st_geomfromwkb(gbx_st_legacyaswkb(mosaic_geom))").alias("geometry")
).drop("mosaic_geom")
migrated.write.mode("overwrite").saveAsTable("migrated_table")
return migrated
if __name__ == "__main__":
print("GeoBrix Examples Overview")
print("=" * 50)
print(f"Total functions: {len([name for name in dir() if callable(globals()[name]) and not name.startswith('_')])}")