Skip to content

An in-memory object-oriented raster manipulation library.

License

Notifications You must be signed in to change notification settings

collijk/rasterra

Repository files navigation

rasterra

PyPI PyPI - Python Version PyPI - License


Documentation: https://collijk.github.io/rasterra

Source Code: https://github.com/collijk/rasterra

PyPI: https://pypi.org/project/rasterra/


An in-memory object-oriented raster manipulation library.

rasterra is a library for manipulating raster data in memory. It is designed to be used in lieu of rasterio to allow for easier manipulation of raster data. It is designed to be used in conjunction with geopandas when vector data is also being used.

Currently, rasterra is in a very early stage of development. It's primary limitation at this point is that it only supports single-band raster data. Multi-band support is planned for the near future.

Installation

pip install rasterra

Usage

File I/O

Reading and writing raster data is done using the load_raster and to_file functions.

import rasterra as rt

# Read in a raster
raster = rt.load_raster("path/to/raster.tif")

# Write a raster to disk
raster.to_file("path/to/output.tif")

A raster can also be read and mosaic'd from multiple files using the load_mf_raster function.

import rasterra as rt

# Read in a multi-file raster
raster = rt.load_mf_raster(["path/to/raster1.tif", "path/to/raster2.tif"])

Raster Manipulation

rasterra provides a number of methods for manipulating raster data. These methods are designed to be used in a method-chaining style, similar to pandas and geopandas.

import rasterra as rt
import geopandas as gpd

# Read in a raster
raster = rt.load_raster("path/to/raster.tif")
shapes = gpd.read_file("path/to/polygons.shp")


new_raster = (
    raster
    .to_crs(shapes.crs)          # Reproject the raster to the same CRS as the polygons
    .clip(shapes)                # Clip the raster to the bounding box of the polygons
    .mask(shapes, fill_value=0)  # Mask the raster to the polygons, filling in areas outside the polygons with 0
    .resample(0.5, 'sum')        # Downsample the raster half the original resolution,
                                 # computing the area-weighted sum of the contributing pixels
)

About

An in-memory object-oriented raster manipulation library.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages