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.7.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.3 MB view details)

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

pydisort-1.7.1-cp313-cp313-macosx_15_0_arm64.whl (605.1 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pydisort-1.7.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.3 MB view details)

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

pydisort-1.7.1-cp312-cp312-macosx_15_0_arm64.whl (605.1 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pydisort-1.7.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.2 MB view details)

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

pydisort-1.7.1-cp311-cp311-macosx_15_0_arm64.whl (604.4 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pydisort-1.7.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.2 MB view details)

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

pydisort-1.7.1-cp310-cp310-macosx_15_0_arm64.whl (603.6 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8df780ae5709a1f8a4cac43bd37a8ac4748778cc17824da259a53dfa8b57606d
MD5 6253f55058b4e930e63b4d1bbe6df85f
BLAKE2b-256 d1b021a03a2785a0a14d4fe316109f8ccfce6868b3f11e6d046ac5319075d608

See more details on using hashes here.

File details

Details for the file pydisort-1.7.1-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.7.1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f9b03919b0f2bd35cf46072e4943aa68d8b2f8bddfb6d276c021507884d02507
MD5 c4bbc216fd970982eb16c4c399c0842a
BLAKE2b-256 709e7a5757a5d3d80c300fa8ed059ff27bf2d761cacb73f6eeb49453a81a87ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b406e27762ae0d1d1bed12e77d63833a3617e5edb233b4d28a6446549dea3555
MD5 089d73928c08bff68de33badfbcb8723
BLAKE2b-256 dd66395cfcbe209c5cbb03623a830c3ebe9413cc86f11ad90b1af027d1981dc8

See more details on using hashes here.

File details

Details for the file pydisort-1.7.1-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.7.1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 50149827e91a8066bc9a9e3bda2a5def5591c33f37b9203b21ae7469bd0d20bb
MD5 45910e0159fe0850921556ca67652056
BLAKE2b-256 93bd4fa22416a5e1f7eed7799d357d42298713522400dc2815e8c2aff49d4393

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4e61379008c1769b7ec2c61e08b2d9441eb4385db08e08f47c69abef79d77843
MD5 9a9e88d0fcc049fcc8a01dde18551f5b
BLAKE2b-256 c797f3fd368fee70d44d2212e57313a0f0f703a25375e6c471efa134bdbc95ed

See more details on using hashes here.

File details

Details for the file pydisort-1.7.1-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.7.1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 463db3423959648d3460aea8026d4c6e3e39dd5d65e5e9441346488f2eb2f364
MD5 6b0c20f5d4f2fe9063d0a690449238b2
BLAKE2b-256 1f6f81a358d68c2b4756f2611f8ab6c288834d15f905250487fd429d7255753a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b1c5164ec37a142bd3e73963981ba3e1f425b3ce8476a9bfac62c4369694e1ee
MD5 88f6a668b5e99f0cbf766d67ee7bf828
BLAKE2b-256 648c5c8aaf30fdb6407997c7afd77a29de5be33bc8f11c819dc90eb60f44a2cc

See more details on using hashes here.

File details

Details for the file pydisort-1.7.1-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.7.1-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 ac37f7598be75e4d2071b5cfba04a97442740cf751451684c05b5fedaa63fe7a
MD5 25b2825906b2e1f7fe4831e2f905c574
BLAKE2b-256 b0620e8b3455c1e0a0d62d876b26eaa8d6a4c5f6d404e133a7969782dc49c933

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