Skip to main content

Buteo - Geospatial Analysis Meets AI

Buteo is a toolbox designed to simplify the process of working with geospatial data in machine learning. It includes tools for reading, writing, and processing geospatial data, as well as tools for creating labels from vector data and generating patches from geospatial data. Buteo makes it easy to ingest data, create training data, and perform inference on geospatial data.

Please note that Buteo is under active development, and its API may not be entirely stable. Feel free to report any bugs or suggest improvements.

When using, please pin the version of Buteo you are using to avoid breaking changes.

For documentation, visit: https://casperfibaek.github.io/buteo/

DOI

Fibaek, Casper. (2024). Buteo: Geospatial Data Analysis Framework for AI/EO. (v0.9.63). Zenodo. https://doi.org/10.5281/zenodo.7936577

Dependencies
numba (https://numba.pydata.org/)
gdal (https://gdal.org/)

Installation
Using pip:

pip install gdal
pip install buteo

Using conda:

conda install gdal
pip install buteo

Quickstart

Reproject (and other functions) to references. (Vector and raster)

import buteo as beo

OUTDIR = "path/to/output/dir"

vector_file_correct_projection = "path/to/vector/file.gpkg"
raster_files_wrong_projection = "path/to/raster/files/*.tif:glob"

paths_to_reprojected_rasters = beo.reproject_raster(
    raster_files_with_wrong_projection,
    vector_file_with_correct_projection,
    out_path=outdir
)

paths_to_reprojected_rasters
>>> [path/to/output/dir/file1.tif, path/to/output/dir/file2.tif, ...]

Align, stack, and make patches from rasters

import buteo as beo

SRCDIR = "path/to/src/dir/"

paths_to_aligned_rasters_in_memory = beo.align_rasters(
    SRCDIR + "*.tif:glob",
)

stacked_numpy_arrays = beo.raster_to_array(
    paths_to_aligned_rasters_in_memory,
)

patches = beo.array_to_patches(
    stacked_numpy_arrays,
    256,
    offsets_y=1, # 1 overlap at 1/2 patch size (128)
    offsets_x=1, # 1 overlap at 1/2 patch size (128)
)

# patches_nr, height, width, channels
patches
>>> np.ndarray([10000, 256, 256, 9])

Predict a raster using a model

import buteo as beo

RASTER_PATH = "path/to/raster/raster.tif"
RASTER_OUT_PATH = "path/to/raster/raster_pred.tif"

array = beo.raster_to_array(RASTER_PATH)

callback = model.predict # from pytorch, keras, etc..

# Predict the raster using overlaps, and borders.
# Merge using different methods. (median, mad, mean, mode, ...)
predicted = predict_array(
    array,
    callback,
    tile_size=256,
)

# Write the predicted raster to disk
beo.array_to_raster(
    predicted,
    reference=RASTER_PATH,
    out_path=RASTER_OUT_PATH,
)
# Path to the predicted raster
>>> "path/to/raster/raster_pred.tif"

Example Colabs
Create labels from OpenStreetMap data Open All Collab
Scheduled cleaning of geospatial data Open All Collab
Clip and remove noise from rasters Open All Collab
Sharpen nightlights data Open All Collab
Filters and morphological operations Open All Collab

The toolbox is being developed by ESA-Philab, NIRAS, and Aalborg University.

Dependencies

gdal numba

optional: orfeo-toolbox esa-snap

Metadata

Release files for buteo 0.9.64

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for buteo 0.9.64
File Size Uploaded
buteo-0.9.64.tar.gz 162.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for buteo 0.9.64
File Interpreter ABI Platform
buteo-0.9.64-py3-none-any.whl Python 3 none any Details

Total release size: 370.7 kB

Release files / buteo-0.9.64.tar.gz

Download URL buteo-0.9.64.tar.gz
Size 162.1 kB
Tags Source
SHA-256 checksum
How to use checksums
01519718ded86d084c77c43b3a48b225b97e2d8f060e760574e3dcab220e767b
BLAKE2b-256 checksum
How to use checksums
270b964826ce8714b9b094ba51e0605afa68d4a6c6540b4985d4aa77c4257321
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release files / buteo-0.9.64-py3-none-any.whl

Download URL buteo-0.9.64-py3-none-any.whl
Size 208.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
994e5f502a30d387621f27be2559638b4456cc458a088707f4e98f58aebd712f
BLAKE2b-256 checksum
How to use checksums
6d905887b4420adeb47179918b999d4e53d4cfc84a5fbff86d1ebc05853032d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.9.64 This release

2 release files

0.9.63

2 release files

0.9.61

2 release files

0.9.60

2 release files

0.9.57

2 release files

0.9.56

2 release files

0.9.55

2 release files

0.9.47

2 release files

0.9.46

2 release files

0.9.45

2 release files

0.9.44

2 release files

0.9.43

2 release files

0.9.42

2 release files

0.9.41

2 release files

0.9.40

2 release files

0.9.39

2 release files

0.9.34

2 release files

0.9.33

2 release files

0.9.32

2 release files

0.9.31

2 release files

0.9.30

2 release files

0.9.29

2 release files

0.9.28

2 release files

0.9.27

2 release files

0.9.26

2 release files

0.9.25

2 release files

0.9.24

2 release files

0.9.23

2 release files

0.9.22

2 release files

0.9.21

2 release files

0.9.20

2 release files

0.9.19

2 release files

0.9.18

2 release files

0.9.17

2 release files

0.9.16

2 release files

0.9.12

2 release files

0.9.11

2 release files

0.9.10

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.25

2 release files

0.8.24

2 release files

0.8.23

2 release files

0.8.22

2 release files

0.8.21

2 release files

0.8.20

2 release files

0.8.19

2 release files

0.8.18

2 release files

0.8.17

2 release files

0.8.16

2 release files

0.8.15

2 release files

0.8.11

2 release files

0.8.10

2 release files

0.8.9

2 release files

0.8.8

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.70

2 release files

0.7.69

2 release files

0.7.68

2 release files

0.7.64

2 release files

0.7.63

2 release files

0.7.62

2 release files

0.7.61

2 release files

0.7.60

2 release files

0.7.59

2 release files

0.7.58

2 release files

0.7.57

2 release files

0.7.56

2 release files

0.7.55

2 release files

0.7.54

2 release files

0.7.53

2 release files

0.7.51

2 release files

0.7.50

2 release files

0.7.49

2 release files

0.7.48

2 release files

0.7.46

2 release files

0.7.45

1 release file

0.7.44

2 release files

0.7.43

2 release files

0.7.42

2 release files

0.7.41

2 release files

0.7.40

2 release files

0.7.39

2 release files

0.7.38

2 release files

0.7.37

2 release files

0.7.36

2 release files

0.7.35

2 release files

0.7.34

2 release files

0.7.33

2 release files

0.7.32

2 release files

0.7.31

2 release files

0.7.30

2 release files

0.7.29

2 release files

0.7.28

2 release files

0.7.27

2 release files

0.7.26

2 release files

0.7.25

2 release files

0.7.24

2 release files

0.7.23

2 release files

0.7.22

2 release files

0.7.21

2 release files

0.7.20

2 release files

0.7.19

2 release files

0.7.18

2 release files

0.7.17

2 release files

0.7.16

2 release files

0.7.15

2 release files

0.7.14

2 release files

0.7.13

2 release files

0.7.12

2 release files

0.7.11

2 release files

0.7.10

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page