FlatGeobuf
Added in version 3.1.
Driver short name
FlatGeobuf
Driver built-in by default
This driver is built-in by default
This driver implements read/write support for access to features encoded in FlatGeobuf format, a performant binary encoding for geographic data based on flatbuffers that can hold a collection of Simple Features.
Driver capabilities
Supports Create()
This driver supports the GDALDriver::Create()
operation
Supports Georeferencing
This driver supports georeferencing
Supports VirtualIO
This driver supports virtual I/O operations (/vsimem/, etc.)
Multi layer support
A single .fgb file only contains one single layer. For multiple layer support, it is possible to put several .fgb files in a directory, and use that directory name as the connection string.
On creation, passing a filename without a .fgb suffix will instruct the driver to create a directory of that name, and create layers as .fgb files in that directory.
Starting with GDAL 3.9, metadata set at the layer level will be written in the FlatGeobuf header, and retrieved on reading as layer metadata.
Open options
Open options can be specified in command-line tools using the syntax -oo <NAME>=<VALUE>
or by providing the appropriate arguments to GDALOpenEx()
(C) or gdal.OpenEx
(Python).
The following open options are supported:
VERIFY_BUFFERS=[YES/NO]: Defaults to
YES
. Set to YES to verify buffers when reading. This can provide some protection for invalid/corrupt data with a performance trade off.
Dataset Creation Options
None
Layer Creation Options
Layer creation options can be specified in command-line tools using the syntax -lco <NAME>=<VALUE>
or by providing the appropriate arguments to GDALDatasetCreateLayer()
(C) or Dataset.CreateLayer
(Python).
The following layer creation options are supported:
SPATIAL_INDEX=[YES/NO]: Defaults to
YES
. Set to YES to create a spatial index.TEMPORARY_DIR=<path>: Path to an existing directory where temporary files should be created. Only used if
SPATIAL_INDEX=YES
. If not specified, the directory of the output file will be used for regular filenames. For other VSI file systems, the temporary directory will be the one decided by theCPLGenerateTempFilename()
function. "/vsimem/" can be used for in-memory temporary files.TITLE=<string>: (GDAL >= 3.9) Dataset title (should be relatively short)
DESCRIPTION=<string>: (GDAL >= 3.9) Dataset description (intended for free form long text)
Creation Issues
Currently, NULL geometries are not supported with
SPATIAL_INDEX=YES
.The creation of the packet Hilbert R-Tree requires an amount of RAM which is at least the number of features times 83 bytes.
Examples
Simple translation of a single shapefile into a FlatGeobuf file. The file 'filename.fgb' will be created with the features from abc.shp and attributes from abc.dbf. The file
filename.fgb
must not already exist, as it will be created.ogr2ogr -f FlatGeobuf filename.fgb abc.shp
Conversion of a Geopackage file with multiple layers:
ogr2ogr -f FlatGeobuf my_fgb_dataset input.gpkg