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

Uploaded CPython 3.13macOS 12.0+ ARM64

pydisort-1.4.3-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.3-cp312-cp312-macosx_12_0_arm64.whl (589.2 kB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

pydisort-1.4.3-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.3-cp311-cp311-macosx_12_0_arm64.whl (589.3 kB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

pydisort-1.4.3-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.3-cp310-cp310-macosx_12_0_arm64.whl (587.9 kB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

pydisort-1.4.3-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.3-cp39-cp39-macosx_12_0_arm64.whl (588.0 kB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6da277a6aecb5e5a6045d6b886fc254515d981ae8652eb611f4897dc7ebe6e6a
MD5 b2d9cb678ea96930906d5e560d04412b
BLAKE2b-256 1894f569ec8ec3a7148a8289a96ea44b3df67a37fd31494fa99843afee35f257

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 bf30865bd5b8ee966fb7b3d8af16f30ae48eb21aba0b61111e90c44579ac5212
MD5 ff14fa3bc6db9be9f7e34cdeefa16336
BLAKE2b-256 eaa05eae94581153d0d247ce3c4da3c94904fa466f2ee896c08ce8a10af8d997

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2dfc4d17b665c65abeb6562cb010a1b993dc47bb80a8c8190b463c6d397e4a40
MD5 75ce67e6c7ecff4c252e4653e9b4343a
BLAKE2b-256 95329087997aa12f2f1e2082c90f56557ea0bdd1e4a03eed6ecf85d7403da593

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 a5a71acab0e0269bd3528b62d3945d2f00a13d0c89668bcbc430d28fe07a9267
MD5 27bcbfd85954d1f5ac568b6a4322953b
BLAKE2b-256 ae9a4e17911f8a2f116d111e6dc08fb65552134c46a66ea94e555b13402f6429

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a759156e8f825eb546ef73e4e4ef535ebf23bc75d74bab7ab936718ab3852684
MD5 2e9c3ad1de28bf96f3440906296fddc8
BLAKE2b-256 65c0a8fc9827faab99fa23940d71ef754cf6cc5fa7a0a6dc7cd99ffc356b97e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 d5fbf757bd5c498d854d2e30a8b16bc0d579169b30b649d958b6dfac7f10fdb1
MD5 9fc671831342aae37ce1fd66729690d8
BLAKE2b-256 d24f860cf5d3a64c0e771b56998e0d36c52ad72b63fb167b58a3a52d8c2b837f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c06af88f04c3b5a70767e86c783b5b3737ed130a63a177734ba1f153be18363
MD5 3be15b01c6bc3cc6693a04797a239fcb
BLAKE2b-256 71d686ee0e65f665b36be12373b5528f29b4fd19b349864e83f8daab40493939

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 b82209a7646a291dc68baa9fd4acf1b22b6579c18d3d66a3f9df48c974812ed3
MD5 97c7fd15b615ff8240bc361edc793b72
BLAKE2b-256 830ad0cee862fdc2a3f3df7cfcd019a1a3abc736eda1e9cc280354b71a55bf96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5a669d8ece88b13f3fb61c5a3e5ea8c8bbf4594484c1b9f961c6ea4630a20fae
MD5 d1186f446152c28e2ea42292df16b71c
BLAKE2b-256 e8dbde4f2a42e7589adb3852e89daf48b1696d984b2e94970b4013b83952b0d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.3-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 af3b5edb0ca49bb1a3a3e7ebb1dd2043c2da63ff8f6c731e52eb9e3479f5eeb4
MD5 d439a669fc2e02b1bd76ac699c998aaa
BLAKE2b-256 f7cebf2a199db518cabe4514c37377a6cc04be6309f26b3f07b7f727327c4ab5

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