Skip to main content

CUDA-accelerated Raster Algebra Calculator

Project description

cuRaster

cuRaster is a high-performance Python module written in C++ and CUDA. It is designed to compute general raster algebra expressions on massive raster datasets using GPU acceleration.

Installation

Install the precompiled wheel via pip:

pip install curaster

Requirements (for building from source)

To build and run this module from source, your system needs:

  • NVIDIA GPU with CUDA Toolkit installed (nvcc)
  • GDAL C++ library (libgdal-dev)
  • CMake 3.18+
  • pybind11 (pip install pybind11)
  • A C++20-compatible compiler

Usage

Once installed, simply import it into Python:

import curaster

curaster.compute(
    input_file="input.tif",
    output_file="output.tif",
    expression="(B4-B1)/(B4+B1)",
    verbose=True
)

API Reference

curaster.compute(...)

Computes raster algebra from a string expression on the GPU and saves the result to a new single-band Float32 GeoTIFF.

Argument Type Default Description
input_file str Required Path to the input multispectral raster
output_file str Required Path where the output raster will be saved
expression str Required The algebraic formula (e.g., "(B4-B1)/(B4+B1)"). Bands are referenced as B1, B2, etc. (1-indexed)
verbose bool True If true, prints memory telemetry and a progress bar to the terminal

Building from Source

To build from source using CMake:

mkdir build
cd build
cmake .. -Dpybind11_DIR=$(python -c "import pybind11; print(pybind11.get_cmake_dir())")
make

Alternatively, you can compile directly with nvcc:

nvcc -O3 -shared -std=c++20 -Xcompiler -fPIC -Xcompiler -fopenmp --use_fast_math \
    -o curaster$(python3-config --extension-suffix) src/raster.cu \
    $(python3 -m pybind11 --includes) \
    $(gdal-config --cflags) $(gdal-config --libs)

License

See LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

curaster-0.4.0-cp313-cp313-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.13Windows x86-64

curaster-0.4.0-cp313-cp313-manylinux_2_35_x86_64.whl (71.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

curaster-0.4.0-cp312-cp312-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.12Windows x86-64

curaster-0.4.0-cp312-cp312-manylinux_2_35_x86_64.whl (71.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

curaster-0.4.0-cp311-cp311-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.11Windows x86-64

curaster-0.4.0-cp311-cp311-manylinux_2_35_x86_64.whl (71.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

curaster-0.4.0-cp310-cp310-win_amd64.whl (29.0 MB view details)

Uploaded CPython 3.10Windows x86-64

curaster-0.4.0-cp310-cp310-manylinux_2_35_x86_64.whl (71.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

curaster-0.4.0-cp39-cp39-win_amd64.whl (28.1 MB view details)

Uploaded CPython 3.9Windows x86-64

curaster-0.4.0-cp39-cp39-manylinux_2_35_x86_64.whl (71.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.35+ x86-64

File details

Details for the file curaster-0.4.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: curaster-0.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for curaster-0.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f4bc9ca9af1a1a005bb5040bbf57888c2e46c151cfa6a14e5712cc8def88c6c1
MD5 0a3244a6078f7bb7da872e79ffd961cb
BLAKE2b-256 34492bbef9843e873e8ff49c12113ab88aa9234eaa3a089729af4b434c438df4

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curaster-0.4.0-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.4.0-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b317b5c9784916216dc2d1385a3f7a1e7ea8d3cdaef903b86b45277fa2cadbb7
MD5 a8aaf6d15bcc9e2c6571d68d4114e10c
BLAKE2b-256 56daaf47c1c5d5655c07e4ab390e020d8d972168de564535825862e78830a819

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp313-cp313-manylinux_2_35_x86_64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curaster-0.4.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: curaster-0.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for curaster-0.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c1081bf7e796dc69f890c6f4461638bb5598dd11c6983389b5421a11931dec27
MD5 9819dc06132258973ab005fce5cf48b5
BLAKE2b-256 c0a88f78b81a05747a2484318996d9b19d33ce63e92474ce16b2eb66acd5b408

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curaster-0.4.0-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.4.0-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 c58397b0b7d4392825789ea3af55df064abfa5d53866d06760daa7c09a4ac3a1
MD5 c2717eaf9127c8ed0ef5363f7f35290c
BLAKE2b-256 9d8d92de95beedab7160eae5fbc3652591185bcea7ac16342f3b1b64cbc3cd5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp312-cp312-manylinux_2_35_x86_64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curaster-0.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: curaster-0.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for curaster-0.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7c22b1a9fe1a7ddf808af3c49380ec76b07b53b2ff23bc8b1b2b04ff23747ee1
MD5 1042713c2a5a33a369f30335e19f5513
BLAKE2b-256 b49ed83d3c63ebb234cd381d6307846be1cb9986a262f729090a75a3318586e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curaster-0.4.0-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.4.0-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d3f8a06dad0ab96c7d12ccfdade55a23431425275caee5e932cb58066a0b8663
MD5 1279806b5ce3f843929ec6f24b71b3ae
BLAKE2b-256 a43a23566639f3c806e0faf42d60ff6f0507ff606bcaff4458489cd29963e744

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp311-cp311-manylinux_2_35_x86_64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curaster-0.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: curaster-0.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for curaster-0.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2fcf4fe418d9cbb18efd6bd2acecbc5f2c2840448bc8f2030c03f928da60756a
MD5 f3ce23348e4807c3fe2ee5519b68a5c8
BLAKE2b-256 b4c6b74a1a3412e4acac583871ff758d98c180e2de5d6b8825adec6cd726dd7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curaster-0.4.0-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.4.0-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 aed1217de3303c3b36b88cdabb5efce096da1c94b809e1a4038f18152beeeb85
MD5 95d2f16f3063d6269837f670756f70c7
BLAKE2b-256 a4079af717cf6c2b68a310c14acdb4c61f3b7302a3ac3ad6f73a3ca76eacadcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp310-cp310-manylinux_2_35_x86_64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curaster-0.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: curaster-0.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 28.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for curaster-0.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2682544e6b208c44b4ab96c79a8dddead8f2701b56dd3883beddecc019c20d15
MD5 673897ad7f539a4daf9837a265443cc1
BLAKE2b-256 ce693266f7560652468026ee87a384ad3b8bfbd3e38a1cae60baca45f5c46dff

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp39-cp39-win_amd64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file curaster-0.4.0-cp39-cp39-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.4.0-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 c5187efd7c8c7cb3afcac27fa2f25bf63a53286d2902828c96856462b132389e
MD5 59bfab2f97222c71f797001fa70ffee3
BLAKE2b-256 541bab532b5e56dd5ae34c6d76f42a71e845f04791b43ed1868ae9dc41b5d0ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.4.0-cp39-cp39-manylinux_2_35_x86_64.whl:

Publisher: release.yml on purijs/curaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page