Raster Manipulation
Coordinate translation
WherobotsDB allows you to translate coordinates as per your needs. It can translate pixel locations to world coordinates and vice versa.PixelAsPoint
Use RS_PixelAsPoint to translate pixel coordinates to world location.World to Raster Coordinate
Use RS_WorldToRasterCoord to translate world location to pixel coordinates. To just get X coordinate use RS_WorldToRasterCoordX and for just Y coordinate use RS_WorldToRasterCoordY.Pixel Manipulation
Use RS_Values to fetch values for a specified array of Point Geometries. The coordinates in the point geometry are indicative of real-world location.Band Manipulation
WherobotsDB provides APIs to select specific bands from a raster image and create a new raster. For example, to select 2 bands from a raster, you can use the RS_Band API to retrieve the desired multi-band raster. Let’s use a multi-band raster for this example. The process of loading and converting it to raster type is the same.raster1 having raster2’s specified band.
Resample raster data
WherobotsDB allows you to resample raster data using different interpolation methods like the nearest neighbor, bilinear, and bicubic to change the cell size or align raster grids, using RS_Resample.Execute map algebra operations
Map algebra is a way to perform raster calculations using mathematical expressions. The expression can be a simple arithmetic operation or a complex combination of multiple operations. The Normalized Difference Vegetation Index (NDVI) is a simple graphical indicator that can be used to analyze remote sensing measurements from a space platform and assess whether the target being observed contains live green vegetation or not.Interoperability between raster and vector data
Geometry As Raster
WherobotsDB allows you to rasterize a geometry by using RS_AsRaster.
The vector coordinates are buffed up to showcase the output, the real use case, may or may not match the example.
Spatial range query
WherobotsDB provides raster predicates to do a range query using a geometry window, for example let’s use RS_Intersects.Spatial join query
WherobotsDB’s raster predicates can also do a spatial join using the raster column and geometry column, using the same function as above.These range and join queries will filter rasters using the provided geometric boundary and the spatial boundary of the raster.
Collecting raster Dataframes and working with them locally in Python
WherobotsDB allows collecting Dataframes with raster columns and working with them locally in Python. The raster objects are represented asSedonaRaster objects in Python, which can be used to perform raster operations.
SedonaRaster object.
as_numpy or as_numpy_masked method. The
band data is organized in CHW order.
rasterio, you can retrieve a rasterio.DatasetReader object using the
as_rasterio method.
Writing Python UDFs to work with raster data
You can write Python UDFs that receive raster data, process it with NumPy, SciPy, or scikit-learn, and return either a scalar value or a new raster. Use thesedona_vectorized_udf decorator for the best performance — it preserves all raster metadata (CRS, affine transform, nodata values, etc.) automatically.
Raster to scalar
Compute a summary statistic from each raster tile and return it as a DataFrame column:Raster to raster
Return aSedonaRaster to pass raster data back to WherobotsDB with full metadata preserved. Use raster.with_bands() to replace pixel data — band count and data type can change freely.
with_bands() method accepts any NumPy array in CHW order (channels × height × width). The band count and data type can differ from the input — for example, a 4-band float32 input can produce a 1-band int64 output. The spatial dimensions (height and width) must match the original raster.
Working with out-db rasters
SedonaRaster will automatically construct a rasterio Env using Hadoop S3A configurations when loading out-db rasters, so out-db
rasters should be loaded without credential problems. However, if you are working with out-db rasters in a subprocess, SedonaRaster
will fail to infer Hadoop S3A configurations. To make subprocesses pick up Hadoop S3A configurations and properly load out-db rasters,
you have to export S3 configs to environment variables using sedona.spark.raster.gdal_conf.export_gdal_conf_to_env:

