Some tools for fast and easy raster processing
Project description
PyRasta
Some tools for fast and easy raster processing, based on gdal (numpy usage is reduced to the minimum).
Introduction
PyRasta is a small Python library which aims at interfacing gdal functions and methods in an easy way, so that users may only focus on the processes they want to apply rather than on the code. The library is based on gdal stream and multiprocessing in order to reduce CPU time due to large numpy array imports. This is especially useful for basic raster arithmetic operations, sliding window methods as well as zonal statistics.
Basic available operations
- Merging, clipping, re-projecting, padding, resampling, rescaling, windowing
- Rasterize and Polygonize
- Raster calculator to design your own operations
- Fast raster zonal statistics
- Automatically download and merge SRTM DEM(s) from CGIAR online database
Install
Pip installation should normally take care of everything for you.
Using PIP
The easiest way to install PyRasta is by using pip
in a terminal
$ pip install pyrasta
Note on GDAL
Installing GDAL through pip
might be tricky as it only gets
the bindings, so be sure the library is already installed on
your machine, and that the headers are located in the right
folder. Another solution may to install it through a third-party
distribution such as conda
:
(your_virtual_environment) $ conda install gdal
If you are tempted by directly installing GDAL/OGR and the GDAL Python libraries on your machine, see here for the steps you should follow.
Examples
Build digital elevation model from CGIAR SRTM site
from pyrasta.tools.srtm import from_cgiar_online_database
bounds = (23, 34, 32, 45)
dem = from_cgiar_online_database(bounds)
Fast clipping of raster by extent or by mask
from pyrasta.raster import Raster
import geopandas
raster_by_extent = Raster("/path/to/your/raster").clip(bounds=(10, 40, 15, 45))
raster_by_mask = Raster("/path/to/your/raster").clip(mask=geopandas.GeoDataFrame.from_file("/path/to/your/layer"))
Fast Zonal Statistics
Fast computing of raster zonal statistics within features of a given geographic layer, by loading in memory only the data we need (and not the whole numpy array as it is often the case in other packages) + using multiprocessing. You may use the basic statistic functions already available in the package, or define your own customized functions.
from pyrasta.raster import Raster
import geopandas
rstats = Raster("/path/to/your/raster").zonal_stats(geopandas.GeoDataFrame.from_file("/path/to/your/layer"),
stats=["mean", "median", "min", "max"],
customized_stats={"my_stat": my_stat})
Author
Benjamin Pillot
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pyrasta-1.3.28.tar.gz
.
File metadata
- Download URL: pyrasta-1.3.28.tar.gz
- Upload date:
- Size: 114.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 614282b7587ea1697379d2f9b288bcb002c11a1babc4e106891b20487635a186 |
|
MD5 | b6d53154bd7765114d6843526f3d10b2 |
|
BLAKE2b-256 | 4a4b4f61471f17115c46f97428416d04c8e10792e99d073b845aa5fb7738a193 |