skillfed

fiona

Fiona reads and writes spatial data files

fiona v1.10.1 10.1M downloads/30d#1,485 on PyPI1,247
Permissive license BSD 3-Clause AGING released

What it is and what it does

Fiona is a Python library that reads and writes vector geographic data in formats like Shapefile and GeoPackage. It wraps GDAL but is designed to be more productive and readable than GDAL's own Python bindings. Fiona models features as data classes following the GeoJSON structure, making it straightforward to read features from one file, transform them (often using Shapely for geometry operations), and write them to another format.

The package includes both a Python API via `fiona.open()` and a command-line tool (`fio`) for tasks like streaming GeoJSON or inspecting file metadata. Installation is straightforward via pip for simple applications, though production use or support for optional format drivers may require building from source or using conda. Fiona depends on GDAL 3.4+ and Python 3.8+.

Use it for:

  • Convert between GIS formats (Shapefile to GeoPackage, etc.) with geometry or property transformations.
  • Stream large vector datasets from files or cloud storage without loading everything into memory.
  • Build command-line tools for GIS data processing and inspection using the fio CLI.
  • Read geographic features and apply spatial operations (buffering, clipping) via Shapely integration.
  • Extract and filter features from multi-layered GIS files based on bounding box or other criteria.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Fiona reads and writes vector GIS data (Shapefile, GeoPackage, etc.) via a Python API and command-line interface, wrapping GDAL with a focus on readable, productive code.

Yes, if you work with vector GIS data in Python and want a readable, productive API. Install via pip for simple use; for production or optional format support, use conda or build from source. No known vulnerabilities. Maintenance is aging (last release 697 days ago) but the repository remains active and the library is stable (Production/Stable status). Medium install friction is acceptable for most projects.

Install

fiona on PyPI

pip

pip install fiona

uv

uv add fiona

poetry

poetry add fiona

Installing fiona

Before you install

Medium friction: prebuilt wheels available for common Python versions and platforms, but installation from source requires GDAL 3.4+ and system libraries. Wheels omit optional format drivers; production use may require conda or source builds. Last release 697 days ago; repository active but aging.

License in practice

BSD 3-Clause license is permissive; you may use, modify, and distribute Fiona in commercial and private projects with minimal restrictions, provided you include the license notice.

Quickstart

import fiona
from fiona import Feature, Geometry

with fiona.open('input.shp') as src:
    profile = src.profile
    with fiona.open('output.gpkg', 'w', **profile) as dst:
        for feat in src:
            dst.write(feat)

Requires GDAL 3.4 or higher and Python 3.8 or higher. System GDAL libraries must be installed; binary wheels include GDAL but may lack optional format drivers (e.g., GML).

Verify before relying

  • Whether prebuilt wheels include all format drivers needed for your specific GIS formats beyond basic Shapefile and GeoPackage.
  • Performance characteristics when streaming large datasets or working with cloud storage paths.
  • Compatibility of bundled GDAL version with other geospatial packages in your environment.

Package facts

License BSD 3-Clause (permissive)
Python support supports the current Python release (>=3.8)
Install friction medium — platform-specific wheel
Runtime dependencies 6 — attrs, certifi, click, click-plugins, cligj, importlib-metadata
Maintenance aging — 697 days since the last release
Last repo commit
First released
Downloads 10,076,248/month — #1,485 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: fiona-1.10.1-cp310-cp310-macosx_10_15_x86_64.whl; fiona-1.10.1-cp310-cp310-macosx_11_0_arm64.whl; fiona-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fiona-1.10.1-cp310-cp310-win_amd64.whl; fiona-1.10.1-cp311-cp311-macosx_10_15_x86_64.whl; fiona-1.10.1-cp311-cp311-macosx_11_0_arm64.whl; fiona-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fiona-1.10.1-cp311-cp311-win_amd64.whl; fiona-1.10.1-cp312-cp312-macosx_10_15_x86_64.whl; fiona-1.10.1-cp312-cp312-macosx_11_0_arm64.whl; fiona-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fiona-1.10.1-cp312-cp312-win_amd64.whl; fiona-1.10.1-cp313-cp313-macosx_10_15_x86_64.whl; fiona-1.10.1-cp313-cp313-macosx_11_0_arm64.whl; fiona-1.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fiona-1.10.1-cp313-cp313-win_amd64.whl; fiona-1.10.1-cp38-cp38-macosx_10_15_x86_64.whl; fiona-1.10.1-cp38-cp38-macosx_11_0_arm64.whl; fiona-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fiona-1.10.1-cp38-cp38-win_amd64.whl

Keywords: gis, vector, feature, data

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Scientific/Engineering :: GIS

Tags

read write shapefile geopackagevector gis data pythongeospatial feature data streaminggdal python wrappergis file format conversiongeographic data i/ospatial vector data access
gis-geospatialgdal-wrappervector-data

More GIS packages