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.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pydisort-1.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.3 MB view details)

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

pydisort-1.7.0-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.0-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.0-cp312-cp312-macosx_15_0_arm64.whl (605.1 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pydisort-1.7.0-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.0-cp311-cp311-macosx_15_0_arm64.whl (604.4 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

pydisort-1.7.0-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.0-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.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pydisort-1.7.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4ce5ebbd5fcf5f7fc83cc2b40e032e20e8fa797725079cf5e577ec9bd8a25392
MD5 e13373ce09189d3f37e934a232432c23
BLAKE2b-256 f84525d902055c8a7a71a21a5155cf07555132276df13bddcdf7db4149445131

See more details on using hashes here.

File details

Details for the file pydisort-1.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pydisort-1.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d5d431ff9d0cf0be474d02360d37b6ebdb25e48516754b5f8ef8222f32d3c1a
MD5 444a7dd7a90b07776ca8ee0470c2fa43
BLAKE2b-256 6df99acc088b3caaad664d2e2ea4ffdd39cbb175fb81f42851f957bbf4cd09c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b1b56498cfb44fc4a6030b2fa6518ea8c7b23c2e2dd314550a5dc2d8a54e92a4
MD5 7e69fc659829af2e4b68a8c8cd875162
BLAKE2b-256 4a322b76d1787c001d4741031bf9296b1a9176f390d40bd4cb659e1b521c3010

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4649f8ec2f7351ea21977cf8a2992cffb598cfac39bc5495e753423243894bb7
MD5 de0b14b56a0b034c02872e0970b3c06b
BLAKE2b-256 5a631c09926c13ee41a3489a067576961329cee20cf7791774f8d87089150298

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 186ca704c3518feb1a652122f27f7271ebd07cd0b1f8ddb3176007f184648d97
MD5 80a99749fb7479402b9b59ff6a61f5f6
BLAKE2b-256 8e44f169032d6509f2ddf1b2af458a5b5fc974e3d755f934c39dfdafad2d712b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5cc365cbbad0913b1aad12e6fd0b1e729e7b765d413d2a469815f5eb24b54668
MD5 5466498834b24935ae7ea12ac82827e2
BLAKE2b-256 2d43be331ead930d74054ea2f877e97252e6a6c54fb518d5eeb3e4b30ce68358

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d2645d11c9c0967e12d28acfe5302f9ee06329c6dd39c659a4a3b23e740cbc58
MD5 846edd0604d18ac232cbc88199ce6025
BLAKE2b-256 ac8129c7db46398ff91f0d2814854db98da698386e5816002784b9a8538aa22b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b93ab2026590b27b5218846b4cb5a04a5e5ec46fe9567bdedf225a42d62bc8eb
MD5 97df397170b45aac581c686a4e76db5f
BLAKE2b-256 09574e49580ce1b38da28fd8c806be76d0940846b06536d3ba48dad98c19e739

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.7.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a8fd5f9696083dd43c693d0eed3b506f807c5cd8d4d9ca1d6a5841e584d7e657
MD5 eb29508634e56e63d7b101afa75cd4ae
BLAKE2b-256 ea0aa6e9824616bea5d0ba42433ff1b10fa532ea3ba8485cee9e07253e50e5c7

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