rasterio._filepath module

Bridge between Python file-like objects and GDAL VSI.

The functionality provided in this interface is made possible thanks to GDAL’s Plugin infrastructure. You can find more information about this below and in GDAL’s documentation here:

https://gdal.org/api/cpl.html#structVSIFilesystemPluginCallbacksStruct

Note

Parts of GDAL’s plugin interface use C++ features/definitions. For that reason this module must be compiled as C++.

The high-level idea of the plugin interface is to define a series of callbacks for the operations GDAL may need to perform. There are two types of operations: filesystem and file. The filesystem operations cover things like opening a file, making directories, renaming files, etc. The file operations involve things like reading from the file, seeking to a specific position, and getting the current position in the file.

Filesystem Handling

This plugin currently only defines the “open” callback. The other features are either not needed or have usable default implementations.

The entire filesystem’s state is stored in a global dictionary mapping in-memory GDAL filenames to FilePathBase objects.

File Handling

This plugin implements the bare minimum for reading from an open file-like object. It does this by mapping GDAL’s function calls (ex. read, seek) to the corresponding method call on the file-like object.

class rasterio._filepath.FilePathBase

Bases: object

Base for a BytesIO-like class backed by a Python file-like object.

close()

Mark the file as closed.

This does not actually attempt to close the file; that is left up to the user.

exists()

Test if the in-memory file exists.

Returns:

True if the in-memory file exists.

Return type:

bool

rasterio._filepath.clone_file_obj(fobj)

Clone a filelike object.

Supports BytesIO, MemoryFile, fsspec files, and Python file objects.