Supported Data Formats

This chapter summarizes practical format support exposed through WbW-Py.

Format support influences interoperability, performance, and long-term archive strategy. Read/write capability is only one part of the decision; you should also consider ecosystem compatibility, compression behavior, and whether a given format is best used as an interchange artifact or as an internal working format.

Backend support comes from core crates:

  • Raster: wbraster
  • Vector: wbvector
  • Lidar: wblidar

Raster Formats

Exhaustive raster format support in the current WbW-Py build:

FormatRead (read_raster)Write (write_raster)Common extensions / path rules
DTEDYesYes.dt0, .dt1, .dt2 (DTED 0, 1, 2 elevation data; WGS-84 geographic only)
Esri ASCII GridYesYes.asc (and .grd when detected as ASCII)
Esri Binary Grid workspaceYesBackend-onlyEsri Binary workspace directory (hdr.adf + w001001.adf) or .adf
Esri Float GridYesYes.flt, .hdr (single-band float grid with header file)
ERDAS IMAGINE (HFA)YesNo.img - read-only MVP; RLC (run-length) compression supported
GRASS ASCII RasterYesYes.txt / .asc when GRASS header keys are detected
Surfer GRDYesYes.grd (DSAA / DSRB signatures)
PCRasterYesYes.map (CSF signature)
SAGA Binary GridYesYes.sdat, .sgrd
Idrisi / TerrSet RasterYesYes.rst, .rdc
ER MapperYesYes.ers
ENVI HDR-labelled rasterYesYes.hdr, or data files (.img, .dat, .bin, .raw, .bil, .bsq, .bip) with .hdr sidecar
GeoTIFF / BigTIFF / COGYesYes.tif, .tiff
GeoPackage rasterYesYes.gpkg
JPEG2000 / GeoJP2YesYes.jp2
JPEG + World FileYesYes.jpg, .jpeg with .jgw, .jpgw, .jpegw, or .wld world file
PNG + World FileYesYes.png with .pgw, .pngw, or .wld world file
ZarrYesYes.zarr store (directory / suffix)
XYZ ASCII GridYesYes.xyz (whitespace or comma-delimited X Y Z points)

Typical pattern:

import whitebox_workflows as wb

wbe = wb.WbEnvironment()
r = wbe.read_raster('dem.tif')
wbe.write_raster(r, 'dem_out.tif')

Vector Formats

Exhaustive vector format support in the current WbW-Py build:

FormatRead (read_vector)Write (write_vector)Extensions / notes
FlatGeobufYesYes.fgb
GeoJSONYesYes.geojson, .json
TopoJSONYesYes.topojson
GeoPackageYesYes.gpkg
GeoParquetYesYes.parquet
GMLYesYes.gml
GPXYesYes.gpx
KMLYesYes.kml
KMZYesYes.kmz
MapInfo InterchangeYesYes.mif with .mid sidecar
OSM PBFYesNo.osm.pbf (read workflows only)
ESRI ShapefileYesYes.shp plus dataset sidecars

When write_vector(...) is called without an extension, WbW-Py defaults output to .gpkg.

Typical pattern:

import whitebox_workflows as wb

wbe = wb.WbEnvironment()
v = wbe.read_vector('roads.gpkg')
wbe.write_vector(v, 'roads_out.gpkg')

Lidar Formats

Exhaustive lidar format support in the current WbW-Py build:

FormatRead (read_lidar)Write (write_lidar)Extensions / notes
LASYesYes.las
LAZYesYes.laz
COPCYesYes.copc.las, .copc.laz
PLYYesYes.ply
E57YesYes.e57

When write_lidar(...) is called without an extension, WbW-Py defaults output to .copc.laz.

Typical pattern:

import whitebox_workflows as wb

wbe = wb.WbEnvironment()
l = wbe.read_lidar('survey.las')
wbe.write_lidar(l, 'survey_out.copc.laz')

Sensor Bundle Families

Supported bundle readers include:

  • read_bundle(...) (auto-detect)
  • read_landsat(...)
  • read_sentinel1(...)
  • read_sentinel2(...)
  • read_planetscope(...)
  • read_iceye(...)
  • read_dimap(...)
  • read_maxar_worldview(...)
  • read_radarsat2(...)
  • read_rcm(...)

Bundle inputs may be either extracted directories or supported archives:

  • .zip
  • .tar
  • .tar.gz
  • .tgz

See Working with Sensor Bundles for family-specific examples.

Validation Guidance

  1. Prefer stable interchange formats (.tif, .gpkg, .copc.laz) for production pipelines.
  2. Re-open outputs and verify metadata after write operations.
  3. Use explicit options where format behavior must be reproducible.