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

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

pydisort-1.3.2-cp313-cp313-macosx_12_0_arm64.whl (595.7 kB view details)

Uploaded CPython 3.13macOS 12.0+ ARM64

pydisort-1.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.8 MB view details)

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

pydisort-1.3.2-cp312-cp312-macosx_12_0_arm64.whl (595.6 kB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

pydisort-1.3.2-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.2-cp311-cp311-macosx_12_0_arm64.whl (595.8 kB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

pydisort-1.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

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

pydisort-1.3.2-cp310-cp310-macosx_12_0_arm64.whl (594.4 kB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

pydisort-1.3.2-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.2-cp39-cp39-macosx_12_0_arm64.whl (594.5 kB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98dfde243015c45c7f7a654ea557c7a4e9c30f016946774bb1a3252ca401d173
MD5 cda69e935c2201f9799c4866926e582a
BLAKE2b-256 55f2df30977b4d49fb700fb662da4e8cd463fc7ba2330989fb2b302f72f49c24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c6486308dbed084e32fbd491a6f0de64545831bc46d4d27fb4dd4b86724cc850
MD5 0a8cf32184a493b7ac753c990a5064fb
BLAKE2b-256 d6eb3ff9943cac5d270387ac0d059a82d98424e62c1ec69f4d5815214e552cf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eb744ab1e3ab0fe773579149201b4fb6f7cf12916d6cb28eb484993e859ff64b
MD5 31fb75fcfee3d7be783257b0dbd68354
BLAKE2b-256 3415716db6c7d1c5ac0a650edd34e88599f38402797da4b4388ed498a4edb216

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 011575017004021d342cfb7112749b83713d044bd3332bea4f692a9eb2377d51
MD5 09e7dee11938889ae4ac17beef388f9d
BLAKE2b-256 0a3720b945f33217b2139e4b1b1c329606e0e8b2a0cc46890881fcf2496f4f3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 50478b415da4004b1cafc910d4b852eea3f47a36c0ba98e0e748e70db2094692
MD5 e4e1a4fbe5189b06d234abc3fc88457a
BLAKE2b-256 8e7d501c65d0609fd5472868ddbeb59fbd07a25249e9ecdbf19c89cba741b300

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 8d32c0e6ec592c44e6d02eaa5e5f581dad39286ddcf9a090e991819235a1dcf0
MD5 815b47045d36c55ba1c7b2a934952eb6
BLAKE2b-256 8b14f21dfd119a9e6e8174e9c32c00558e36971f7d8d6c319dac659dfea04187

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ec3fe5628c1f1edbdb27434cd9ab0b5922eeeb2af62e84e22a798564334b372
MD5 6de4e3da203b4b6865883c3de9f749e2
BLAKE2b-256 465269182ded5bda88fdaa24f4631cae3e3db5bfec8851e14be46322130241f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 3611582a690fa3f5bd558a43030c77f1bf395f348ec7943b4c02a54a2fb4f1cd
MD5 23e027ce55cec404456bcc03778d5a8d
BLAKE2b-256 7a6b71a755d1a8213a7c6f2c7b4c447bd6b0c2811cb5a40af07af2f1f13ec02b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2fa57499a5da72b8ae77ea7cfd76df7b87f4a66ceb0f407409f3ef1382f7a95c
MD5 061ff1135f7dbcedafc6b5827e15d576
BLAKE2b-256 efcafe322267e9c71aee1ac911e6f0deb95b212401210c00872a8bf5d1dc080f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.2-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 521c810270c4661f6dcdb11a07cef459a0b2334b9e0869528f1c335421c3cd61
MD5 5d915f8934445eb6501af450378e2051
BLAKE2b-256 daf3c675c262d0c9a8dcff507446e16a3b81a93e2df758f01104fdba246a96db

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