Skip to main content

Modern Python package for DISORT with support for parallel computation.

Project description

Pydisort

Superpowered Radiative Transfer: Fast, Scalable, User-Friendly 🚀

About Pydisort

A modern Python package for the DISORT (Discrete Ordinate Radiative Transfer) algorithm for high-performance, high-precision modeling of radiative scattering and absorption in layered media.

pydisort provides a high-level Python API to the well-tested C implementation of DISORT, originally developed in Fortran (Stamnes et al. 1988) and later ported to C as cdisort by Timothy E. Dowling, which is a critical component of libRadTran. To support Python integration, the C code was first encapsulated in C++ classes, which were then exposed to Python using pybind11. For efficient memory management and potential GPU acceleration, pydisort leverages PyTorch tensors, paving the way for future applications in machine learning and large-scale parallel computation.

The normal usage of pydisort is to create a pydisort.DisortOptions object first and then initialize the pydisort.cpp.Disort object with the pydisort.DisortOptions object by:

>>> import torch
>>> from pydisort import DisortOptions, Disort
>>> op = DisortOptions().flags("onlyfl,lamber")
>>> op.ds().nlyr = 4
>>> op.ds().nstr = 4
>>> op.ds().nmom = 4
>>> op.ds().nphase = 4
>>> ds = Disort(op)
>>> tau = torch.tensor([0.1, 0.2, 0.3, 0.4]).unsqueeze(-1)
>>> flx = ds.forward(tau, fbeam=torch.tensor([3.14159]))
>>> flx
tensor([[[[0.0000, 3.1416],
        [0.0000, 2.8426],
        [0.0000, 2.3273],
        [0.0000, 1.7241],
        [0.0000, 1.1557]]]])

For a detailed documentation, please visit https://pydisort.readthedocs.io/.

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 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.

pydisort-1.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pydisort-1.4.1-cp313-cp313-macosx_12_0_arm64.whl (589.2 kB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

pydisort-1.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pydisort-1.4.1-cp312-cp312-macosx_12_0_arm64.whl (589.1 kB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

pydisort-1.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pydisort-1.4.1-cp311-cp311-macosx_12_0_arm64.whl (589.2 kB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

pydisort-1.4.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pydisort-1.4.1-cp310-cp310-macosx_12_0_arm64.whl (587.8 kB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

pydisort-1.4.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pydisort-1.4.1-cp39-cp39-macosx_12_0_arm64.whl (587.9 kB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

File details

Details for the file pydisort-1.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 38560cd90f26da739e9f8ca37b982058692a3f3e7df6068b48ab0133c0992d4a
MD5 d72362c17e065d8705fa8444007157f5
BLAKE2b-256 7ec3086d5bec28ac261ccc085b9f27e0d5d949925783c3e34615273a6aa3a155

See more details on using hashes here.

File details

Details for the file pydisort-1.4.1-cp313-cp313-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 0e52aa7a9c007e635b7bd9964d9a27b7b46c179d01c1d296ee505851e8ab24df
MD5 da03a9bdbd19f7cab0379ead793864e9
BLAKE2b-256 9a276ded4f54b615e6ea3e83322600e11be513fdc2d9d05542ddc8a41055ac33

See more details on using hashes here.

File details

Details for the file pydisort-1.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08bb1d07fee31a062b82200a846e0a1a1039a09f3266794aad78a7c900928def
MD5 dd011690e28a96b53affbb6e996c4ee2
BLAKE2b-256 88b4f74a5fcf544bd4e3b158bd21efb493516936ac92f9e8c0b40c6821d5bfa5

See more details on using hashes here.

File details

Details for the file pydisort-1.4.1-cp312-cp312-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 2b4c363472f5f5ce82b142f44f0cc1d54b99fbb1620f7671766f775988c4ff7f
MD5 bbcf5702d1432110fad9efeb2965cec0
BLAKE2b-256 9264fc38ac46571ac3db445ff5a8eaa6826dbd86720dad881ef732268662200f

See more details on using hashes here.

File details

Details for the file pydisort-1.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 26ab24ebb86bed8593a755fcdb27934b04f8e2c73a329be4123f3a3cfb4f9c57
MD5 6e94149c69435bd8aa6b21c42928235a
BLAKE2b-256 207e16c32b5e3b77e76352d16346fe39c8fa2dd3d424cf9751032a2e0cd7403a

See more details on using hashes here.

File details

Details for the file pydisort-1.4.1-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 5f33ee42b9db58e5f08e3a7cf3f6519ded7bf8b4cfc3cd3d314507e304071994
MD5 f64fdc0153286dd72fa722bf3fe38d67
BLAKE2b-256 1a810d3aa338157e227abb5286f02593099fd6b9b21291e4f7ef6bbb9d7ba108

See more details on using hashes here.

File details

Details for the file pydisort-1.4.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c00653fb811c87c65ae15f77cfa173f6a2803c4aadb0d7401ec327dbfd09896b
MD5 4d1123a996a147295d95093a542ae643
BLAKE2b-256 ba63ef9364c1f81001afe7c8257a200db95c7c327873bfa867f2b05ff355ed85

See more details on using hashes here.

File details

Details for the file pydisort-1.4.1-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 d30424bfeca7daf315c068cd7d324a8273ed53337785f11356363f264ab5a1dd
MD5 deeee48ee231d40a467739cddac74439
BLAKE2b-256 b23154bd7ac30cde05ba10ad6865975c93445f38ad46573b40391dbb955fb081

See more details on using hashes here.

File details

Details for the file pydisort-1.4.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4090e2ba8e2f494e710e239b34d034c2871c9bfb4e7d61757fc47bed05642cc9
MD5 f6d9f82fe99092f847eff78cc259f083
BLAKE2b-256 254e2a0812b621085860babb751cd0f6bdf926bf7c243810c6dabbc10d5066f8

See more details on using hashes here.

File details

Details for the file pydisort-1.4.1-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.4.1-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 5321158f3402121b1a37611f1d9f6936ee004b5c7bea7e981d4dc9c85ed2dc08
MD5 a8457fc33b775668ec9c4b3f65f7c92f
BLAKE2b-256 26bb35c34a1e19df91415ad889d631772234c353bc1763778845fec5952a948e

See more details on using hashes here.

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