rasterio 1.4.3


pip install rasterio

  Latest version

Released: Dec 02, 2024

Project Links

Meta
Author: Sean Gillies
Requires Python: >=3.9

Classifiers

Development Status
  • 5 - Production/Stable

Intended Audience
  • Developers
  • Information Technology
  • Science/Research

License
  • OSI Approved :: BSD License

Programming Language
  • C
  • Cython
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3

Topic
  • Multimedia :: Graphics :: Graphics Conversion
  • Scientific/Engineering :: GIS

Rasterio reads and writes geospatial raster data.

https://github.com/rasterio/rasterio/actions/workflows/tests.yaml/badge.svg https://github.com/rasterio/rasterio/actions/workflows/test_gdal_latest.yaml/badge.svg https://github.com/rasterio/rasterio/actions/workflows/test_gdal_tags.yaml/badge.svg https://img.shields.io/pypi/v/rasterio

Geographic information systems use GeoTIFF and other formats to organize and store gridded, or raster, datasets. Rasterio reads and writes these formats and provides a Python API based on N-D arrays.

Rasterio 1.4 works with Python >= 3.9, Numpy >= 1.24, and GDAL >= 3.5. Official binary packages for Linux, macOS, and Windows with most built-in format drivers plus HDF5, netCDF, and OpenJPEG2000 are available on PyPI.

Read the documentation for more details: https://rasterio.readthedocs.io/.

Example

Here’s an example of some basic features that Rasterio provides. Three bands are read from an image and averaged to produce something like a panchromatic band. This new band is then written to a new single band TIFF.

import numpy as np
import rasterio

# Read raster bands directly to Numpy arrays.
#
with rasterio.open('tests/data/RGB.byte.tif') as src:
    r, g, b = src.read()

# Combine arrays in place. Expecting that the sum will
# temporarily exceed the 8-bit integer range, initialize it as
# a 64-bit float (the numpy default) array. Adding other
# arrays to it in-place converts those arrays "up" and
# preserves the type of the total array.
total = np.zeros(r.shape)

for band in r, g, b:
    total += band

total /= 3

# Write the product as a raster band to a new 8-bit file. For
# the new file's profile, we start with the meta attributes of
# the source file, but then change the band count to 1, set the
# dtype to uint8, and specify LZW compression.
profile = src.profile
profile.update(dtype=rasterio.uint8, count=1, compress='lzw')

with rasterio.open('example-total.tif', 'w', **profile) as dst:
    dst.write(total.astype(rasterio.uint8), 1)

The output:

http://farm6.staticflickr.com/5501/11393054644_74f54484d9_z_d.jpg

API Overview

Rasterio gives access to properties of a geospatial raster file.

with rasterio.open('tests/data/RGB.byte.tif') as src:
    print(src.width, src.height)
    print(src.crs)
    print(src.transform)
    print(src.count)
    print(src.indexes)

# Printed:
# (791, 718)
# {u'units': u'm', u'no_defs': True, u'ellps': u'WGS84', u'proj': u'utm', u'zone': 18}
# Affine(300.0379266750948, 0.0, 101985.0,
#        0.0, -300.041782729805, 2826915.0)
# 3
# [1, 2, 3]

A rasterio dataset also provides methods for getting read/write windows (like extended array slices) given georeferenced coordinates.

with rasterio.open('tests/data/RGB.byte.tif') as src:
    window = src.window(*src.bounds)
    print(window)
    print(src.read(window=window).shape)

# Printed:
# Window(col_off=0.0, row_off=0.0, width=791.0000000000002, height=718.0)
# (3, 718, 791)

Rasterio CLI

Rasterio’s command line interface, named “rio”, is documented at cli.rst. Its rio insp command opens the hood of any raster dataset so you can poke around using Python.

$ rio insp tests/data/RGB.byte.tif
Rasterio 0.10 Interactive Inspector (Python 3.4.1)
Type "src.meta", "src.read(1)", or "help(src)" for more information.
>>> src.name
'tests/data/RGB.byte.tif'
>>> src.closed
False
>>> src.shape
(718, 791)
>>> src.crs
{'init': 'epsg:32618'}
>>> b, g, r = src.read()
>>> b
masked_array(data =
 [[-- -- -- ..., -- -- --]
 [-- -- -- ..., -- -- --]
 [-- -- -- ..., -- -- --]
 ...,
 [-- -- -- ..., -- -- --]
 [-- -- -- ..., -- -- --]
 [-- -- -- ..., -- -- --]],
             mask =
 [[ True  True  True ...,  True  True  True]
 [ True  True  True ...,  True  True  True]
 [ True  True  True ...,  True  True  True]
 ...,
 [ True  True  True ...,  True  True  True]
 [ True  True  True ...,  True  True  True]
 [ True  True  True ...,  True  True  True]],
       fill_value = 0)

>>> np.nanmin(b), np.nanmax(b), np.nanmean(b)
(0, 255, 29.94772668847656)

Rio Plugins

Rio provides the ability to create subcommands using plugins. See cli.rst for more information on building plugins.

See the plugin registry for a list of available plugins.

Installation

See docs/installation.rst

Support

The primary forum for questions about installation and usage of Rasterio is https://rasterio.groups.io/g/main. The authors and other users will answer questions when they have expertise to share and time to explain. Please take the time to craft a clear question and be patient about responses.

Please do not bring these questions to Rasterio’s issue tracker, which we want to reserve for bug reports and other actionable issues.

Development and Testing

See CONTRIBUTING.rst.

Documentation

See docs/.

License

See LICENSE.txt.

Authors

The rasterio project was begun at Mapbox and was transferred to the rasterio Github organization in October 2021.

See AUTHORS.txt.

Changes

See CHANGES.txt.

Who is Using Rasterio?

See here.

1.4.3 Dec 02, 2024
1.4.2 Oct 30, 2024
1.4.1 Oct 01, 2024
1.4.0 Sep 26, 2024
1.4.0rc2 Sep 10, 2024
1.4.0rc1 Sep 09, 2024
1.4b2 Aug 31, 2024
1.4b1 Aug 11, 2024
1.4a3 Apr 16, 2024
1.4a2 Mar 03, 2024
1.4a1 Feb 16, 2024
1.3.11 Sep 04, 2024
1.3.10 Apr 12, 2024
1.3.9 Oct 19, 2023
1.3.8.post2 Oct 12, 2023
1.3.8.post1 Oct 10, 2023
1.3.8 Jun 28, 2023
1.3.7 May 22, 2023
1.3.6 Feb 13, 2023
1.3.5.post1 Feb 03, 2023
1.3.5 Jan 25, 2023
1.3.4 Nov 16, 2022
1.3.3 Oct 19, 2022
1.3.2 Aug 19, 2022
1.3.1 Aug 18, 2022
1.3.0.post1 Aug 10, 2022
1.3.0 Jul 06, 2022
1.3b3 Jun 27, 2022
1.3b2 Jun 22, 2022
1.3b1 May 10, 2022
1.3a4 Apr 21, 2022
1.3a3 Feb 04, 2022
1.3a2 Oct 20, 2021
1.3a1 Oct 15, 2021
1.2.10 Oct 11, 2021
1.2.10.dev0 Oct 05, 2021
1.2.9 Oct 01, 2021
1.2.8 Sep 09, 2021
1.2.7 Sep 07, 2021
1.2.6 Jun 23, 2021
1.2.5 Jun 22, 2021
1.2.4 May 31, 2021
1.2.3 Apr 27, 2021
1.2.2 Apr 07, 2021
1.2.1 Mar 03, 2021
1.2.0 Jan 25, 2021
1.2b4 Jan 21, 2021
1.2b3 Jan 12, 2021
1.2b2 Jan 11, 2021
1.2b1 Dec 13, 2020
1.2a1 Dec 04, 2020
1.1.8 Oct 21, 2020
1.1.7 Sep 29, 2020
1.1.6 Sep 15, 2020
1.1.5 Jun 03, 2020
1.1.4 May 07, 2020
1.1.3 Feb 25, 2020
1.1.2 Dec 19, 2019
1.1.1 Nov 14, 2019
1.1.0 Oct 07, 2019
1.1b3 Oct 04, 2019
1.1b2 Oct 02, 2019
1.1b1 Oct 02, 2019
1.0.28 Sep 09, 2019
1.0.27 Sep 05, 2019
1.0.26 Aug 26, 2019
1.0.25 Aug 07, 2019
1.0.24 Jun 06, 2019
1.0.23 May 16, 2019
1.0.22 Mar 20, 2019
1.0.21 Feb 28, 2019
1.0.20 Feb 27, 2019
1.0.18 Feb 07, 2019
1.0.17 Feb 06, 2019
1.0.16 Feb 05, 2019
1.0.15 Jan 28, 2019
1.0.14 Jan 25, 2019
1.0.13 Dec 15, 2018
1.0.12 Dec 11, 2018
1.0.11 Dec 01, 2018
1.0.10 Nov 17, 2018
1.0.9 Oct 26, 2018
1.0.8 Oct 03, 2018
1.0.7 Sep 26, 2018
1.0.6 Sep 24, 2018
1.0.5 Sep 19, 2018
1.0.4 Sep 17, 2018
1.0.3.post1 Sep 08, 2018
1.0.3 Sep 07, 2018
1.0.2 Jul 27, 2018
1.0.1 Jul 23, 2018
1.0.0 Jul 12, 2018
1.0rc5 Jul 09, 2018
1.0rc4 Jul 05, 2018
1.0rc3 Jul 03, 2018
1.0rc2 Jun 29, 2018
1.0rc1 Jun 27, 2018
1.0b4 Jun 23, 2018
1.0b3 Jun 22, 2018
1.0b2 Jun 19, 2018
1.0b1 May 25, 2018
1.0a12 Dec 01, 2017
1.0a11 Oct 31, 2017
1.0a10 Oct 09, 2017
1.0a9 Jun 02, 2017
1.0a8 Mar 28, 2017
1.0a7 Feb 14, 2017
0.36.0 Jun 14, 2016
0.35.1 May 06, 2016
0.35.0.post1 May 04, 2016
0.35.0 May 04, 2016
0.34.0 Apr 05, 2016
0.33.0 Apr 01, 2016
0.32.0.post1 Mar 28, 2016
0.32.0 Mar 23, 2016
0.31.0 Dec 18, 2015
0.30.0 Nov 17, 2015
0.29.0 Oct 23, 2015
0.28.0 Oct 06, 2015
0.27.0 Sep 25, 2015
0.26.0 Aug 12, 2015
0.25.0 Jul 17, 2015
0.24.1 Jul 01, 2015
0.24.0 May 27, 2015
0.23.0 May 08, 2015
0.22.0 May 01, 2015
0.21.0 Apr 22, 2015
0.20.0 Apr 08, 2015
0.19.1 Mar 30, 2015
0.19.0 Mar 26, 2015
0.18 Feb 10, 2015
0.17.1.post1 Jan 26, 2015
0.17.1 Jan 20, 2015
0.17 Jan 15, 2015
0.16 Dec 16, 2014
0.15.1 Nov 04, 2014
0.15 Oct 11, 2014
0.14.1 Oct 02, 2014
0.14 Oct 01, 2014
0.13.2 Sep 23, 2014
0.13.1 Sep 13, 2014
0.13 Sep 10, 2014
0.12.1 Sep 02, 2014
0.12 Sep 02, 2014
0.11.1 Aug 19, 2014
0.11 Aug 06, 2014
0.10.1 Jul 21, 2014
0.10 Jul 19, 2014
0.9 Jul 16, 2014
0.8 Mar 31, 2014
0.7.3 Mar 22, 2014
0.7.2 Mar 20, 2014
0.7.1 Mar 15, 2014
0.7 Mar 15, 2014
0.6 Feb 10, 2014
0.5.1 Feb 02, 2014
0.5 Jan 22, 2014
0.4 Dec 20, 2013
0.3 Dec 16, 2013
0.2 Nov 24, 2013
0.1 Nov 19, 2013

Wheel compatibility matrix

Platform CPython 3.9 CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13
macosx_10_15_x86_64
macosx_14_0_arm64
manylinux2014_x86_64
manylinux_2_17_x86_64
win_amd64

Files in release