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 the Normalized Difference Vegetation Index (NDVI) on massive raster datasets using GPU.

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++17-compatible compiler

Usage

Once installed, simply import it into Python:

import curaster

curaster.ndvi(
    input_file="data/massive_satellite_image.tif",
    output_file="data/output_ndvi.tif",
    red_band_index=3,
    nir_band_index=4,
    chunk_size=256,    # Align this with your TIFF's BLOCKYSIZE for max speed
    verbose=True
)

API Reference

curaster.ndvi(...)

Calculates (NIR - Red) / (NIR + Red) 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 NDVI raster will be saved.
red_band_index int Required The GDAL band number (1-indexed) containing Red data.
nir_band_index int Required The GDAL band number (1-indexed) containing NIR data.
chunk_size int 256 The number of horizontal rows to process at a time.
verbose bool True If true, prints 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++17 -Xcompiler -fPIC \
    -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.3.0-cp313-cp313-win_amd64.whl (28.9 MB view details)

Uploaded CPython 3.13Windows x86-64

curaster-0.3.0-cp313-cp313-manylinux_2_35_x86_64.whl (70.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

curaster-0.3.0-cp312-cp312-win_amd64.whl (28.9 MB view details)

Uploaded CPython 3.12Windows x86-64

curaster-0.3.0-cp312-cp312-manylinux_2_35_x86_64.whl (70.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

curaster-0.3.0-cp311-cp311-win_amd64.whl (28.9 MB view details)

Uploaded CPython 3.11Windows x86-64

curaster-0.3.0-cp311-cp311-manylinux_2_35_x86_64.whl (70.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

curaster-0.3.0-cp310-cp310-win_amd64.whl (28.9 MB view details)

Uploaded CPython 3.10Windows x86-64

curaster-0.3.0-cp310-cp310-manylinux_2_35_x86_64.whl (70.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

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

Uploaded CPython 3.9Windows x86-64

curaster-0.3.0-cp39-cp39-manylinux_2_35_x86_64.whl (70.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.35+ x86-64

File details

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

File metadata

  • Download URL: curaster-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 28.9 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.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f16aa387102be54c2cdc816a7083a3785dd77c3c3c90a9f9967ab90d21ac9ec4
MD5 1e41733e968e6db05f242fc590d0d974
BLAKE2b-256 6e0514e199238dd98bd4abb5a6bc0763e28f18b11cbb9c271e0c07e4e09542ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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.3.0-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.3.0-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b9a00005ec1dcc2fb44f59bca5b1aabffe401b5f43eeff03e10b056f69fab2d4
MD5 b801d10b45e99a4ce47f37e383126348
BLAKE2b-256 9f29ce1443ab247195d0e87f0501e97e96bca9002acc2b2af478fff137bdbd4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: curaster-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 28.9 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.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7699db04e2780c95797f2c44134f9a3591aa4cf8621ec66e180b6cc04be11a3c
MD5 4acaeef97190e1c7d78fbeb31e1eec92
BLAKE2b-256 0b04756976d4fd9018ece5d21c24f1bf428451ed63ef9d54dc92fe0fbfec9c0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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.3.0-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.3.0-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 96b931030fdbd062df537975a8b9da835bcbadac583655a7cae80b06d5747f1f
MD5 e74433d041af911ba340042ce763d1cc
BLAKE2b-256 bae8f993794472a8a1d4595c121b0e2af2a1a9cf2c82ba0aec2646160a0eb82a

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: curaster-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 28.9 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.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 af093603d25e2dba5dc41de913a45d4aebedf536ffe3165104fa434c4e00b310
MD5 ba99cc6f3fafada2483449ea2a41737a
BLAKE2b-256 d117436cb970093a32cb791de8f6806de1ca7c200d6dcda7afed5e5d035b55fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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.3.0-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.3.0-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 e8dfa20ef6b107c31c243470d06e9b3d679c8446870109a9ed514917bb164e25
MD5 8cdd1b34571b357eaf9671b27fec7547
BLAKE2b-256 1783d4bef4be5d5367d8d6c9ea43a71367214166525eaf545ad800536d56cd9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: curaster-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 28.9 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.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 750807aea3c755fafb8520381905b713dba900ef73b74e7f03c4bca60ff810a0
MD5 0eb9c8e61552b9ef5fad29023baf1493
BLAKE2b-256 654c53776200fc2990750181ba6db906b959b528ce5e579ebe5844f076773002

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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.3.0-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.3.0-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 8e5915c4926a4788d8ae84965b09ced87b374bcd44af3f6e35420aa3a703c64e
MD5 90ae2d0c79119cdded49ccad68d7295b
BLAKE2b-256 e3e7789ccb0cc0bfe71f8e00a9ba0e4cbed95254ed51641e873c88bc3b33b341

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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.3.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: curaster-0.3.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.3.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d17e31f5ccd67476ce5f086886e1fc55892d67a02b760a13138200d7d25a8ce3
MD5 4201ce1024a93e39a65287dc48e2038a
BLAKE2b-256 5567a7e4611cea347e86759e7ed9bfc865ad62e8e0073394aa8cde271072b795

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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.3.0-cp39-cp39-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for curaster-0.3.0-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 244847d37e22afd3671b5486fb3462f721d41d9a1e79af872a89fc6292bf8cfc
MD5 e42c967dc2c420769cd3b9c76cdee9a4
BLAKE2b-256 1e26ac767d2165fef56ddecd268125a4f3c94c37158a57d1f8a0f72e60efea0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for curaster-0.3.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