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.3.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.3.1-cp313-cp313-macosx_12_0_arm64.whl (590.7 kB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

pydisort-1.3.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.3.1-cp312-cp312-macosx_12_0_arm64.whl (590.8 kB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

pydisort-1.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

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

pydisort-1.3.1-cp311-cp311-macosx_12_0_arm64.whl (589.3 kB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

pydisort-1.3.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.3.1-cp310-cp310-macosx_12_0_arm64.whl (587.8 kB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

pydisort-1.3.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

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

pydisort-1.3.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.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pydisort-1.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3eba9679b8088c3b7f836b23b02e014a86505e77e88d80a3f5c78b161f7838ed
MD5 a4ac644457189a1ba4565db3a5b6115b
BLAKE2b-256 6722d3fadf43a40843150b3ed8fe1da3f9635169553943eee436cb95abecc184

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.1-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 38957456ce531853acb1d0fae71790e59e884f9ac18ae37123b46ef9bd93a206
MD5 c148caa6ab2ea442d6e4f1391597499a
BLAKE2b-256 62980a9bbf47817f7877d035fe0e4a3167e0f4ec803d4f0b5e5bf32fc4e87055

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 258b33cbf0e214639fd613651f1a8ee240e68fe8c28adbd5afd09d4d22f0a3ba
MD5 8e0e35b909d6069bdbbefeb3273f948e
BLAKE2b-256 877a9f1d7bca97071fc25a03b14905340946c37bc1ff9402140ea33ce5f0426f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.1-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 84b4f3ee319f7a7b39cf26eeffdf1de4d60810ab281147a8aa063f6c345a588d
MD5 bd8400d84bf7574f9802a15814119339
BLAKE2b-256 afaafbccb04fe8c68cc924a7395553e7a65835a9bceeb9ead9e57dba09b9ea0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8db6b0939ad1428e8e355a76acb270e15abbde35eb545c93e98a55087004a65e
MD5 e6b9bdb61ff00a98f3105226c93ee83a
BLAKE2b-256 c2673e2172ed02da33887d6985dd02064fd066f28b9b997fc8881063a0acbaa5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.1-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 d0cd3cc1e1ebdd8454b132dc54db7dd02e4fa2346718cfaab313502d29ddaafe
MD5 c48ccb2eda1a2def15b9782517fb9ed1
BLAKE2b-256 2ecb0c9467171f48a62a07c8847d5e4113340f30cba2c98748a704f784ac75a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2dc7a5561cd0522b08660baec66d2868d6b001efff13e77fe5cd214037622417
MD5 63dde8143353383ceb7b730bdb007fe0
BLAKE2b-256 484af059de36ba73a11d3dcfa9f353d464dcf1871a2d1f5b0959efbefed2ed90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.1-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 56e689f08fcbbf38bd5e1acd920259d4d19e97a3fab3d3e557746c18b9033106
MD5 2bec0763c7bc0c4eed785cf3d011fedf
BLAKE2b-256 965092b331c79bc915447fb875d24a24c04c7b067e4d01c6510645658f6191f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 351901e53c7a0f1992bea8ddd7fa4d0962a433febed8ef36d195bc5afc4f2dd1
MD5 5fc1a01e70dd9b690ce5b0c53b288977
BLAKE2b-256 04c8c617f07913c8d28431b448d08b23d4cd16819dd9f0e8e40feb9ca385b40b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.1-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 93e07f285a40851af1c56e1fb3f47a7b80d8e82cf0eb7e6cb23351a049e42774
MD5 afecce9e9597882871181a17cee4852c
BLAKE2b-256 64a08da1e21623eae462fc7657ac994af9b72122d18506aea02f941889ddcea2

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