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

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

pydisort-1.2.6-cp313-cp313-macosx_11_0_arm64.whl (398.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pydisort-1.2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

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

pydisort-1.2.6-cp312-cp312-macosx_11_0_arm64.whl (397.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pydisort-1.2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

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

pydisort-1.2.6-cp311-cp311-macosx_11_0_arm64.whl (396.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pydisort-1.2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

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

pydisort-1.2.6-cp310-cp310-macosx_11_0_arm64.whl (395.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pydisort-1.2.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

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

pydisort-1.2.6-cp39-cp39-macosx_11_0_arm64.whl (395.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 00ae5514ec80a7e33312787c394ed8a438065f4e1ed08dbc71d9b78b4ba3ee23
MD5 034de34427f7380bde377ce2d2f18e2f
BLAKE2b-256 524e139176dc03123e89ae85d4ed83021cd9ba998d81dc7caf29879d8c5b2089

See more details on using hashes here.

File details

Details for the file pydisort-1.2.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.2.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e3631725abce4d421a7110458e9a525e5ef51a3e31462387233dce73e7114989
MD5 0e838227949e29b60b1201dc614b04b7
BLAKE2b-256 417f912522a3444fc7bc729279768c4b9b1dc4c32ccd1a22bb319441ebecef4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6d0f6af396707a25670898422c6d8de0cf2cad1b4ecc1cf68f89ebc4cae5c5e7
MD5 3f8386102eeb15cf4fa72beb56ade144
BLAKE2b-256 1917f7cd376fbff0ff02a92df32a69ed262a28e42791324db6e23ba278a63113

See more details on using hashes here.

File details

Details for the file pydisort-1.2.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.2.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dda0536585a044c80a2978ad90effbfe653d22db1082c8285c0c6d5ad64ca02e
MD5 7a20bd672bd47904217bc74e3a579d0b
BLAKE2b-256 f7b99f6efcecbe5919b8fee874f87e43e4b2ac1e01525630fa1778e9a5aa7742

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 beca38dad6679df36e623b404b8931a64534071524a4350e4d0125fb177083bf
MD5 6e73a801a505519bd3b1ea35f22766a6
BLAKE2b-256 1620f2d6460c763cc7d5cf71d0ae5070f43b5c291305394dc1ac8f0288de8179

See more details on using hashes here.

File details

Details for the file pydisort-1.2.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.2.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57d3aa17b35fc0ec3652d01433a5084eea401add6b69512a17b21b6e9221ff5b
MD5 4c6eb4d35355bc7275459c049a454df7
BLAKE2b-256 76d4c35d98a0d395cb0a77a1934beffeaed76ab4e68d8ca40e3afc66835c3abd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 adb2716afc6f1ce1c07f3f782469d18a9ad6499a977ecf4afa3ba6e59b8ce9fc
MD5 01688d97edbeb1f4e6fe54ba50fbb83b
BLAKE2b-256 e3860f0454f2403c951f44cffcb835fa9f44254b6c5bf950667ea1fff68c86b9

See more details on using hashes here.

File details

Details for the file pydisort-1.2.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.2.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52311e50ffdec2b512d84bc2e94074e0cae52a3b4e2d7c7035a808e81ad4e866
MD5 a75aec264f072eb9a2415ffafcd2acf4
BLAKE2b-256 36238d49f4287709134f48f4a57d9dddc6f0a1e0020b31e433d0357470e7fc27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49d36e9061defe77108d145321a3640a0b62216aae0ed014936ac97de493395b
MD5 c4db4fa08acac4ade7b945e8b3759d54
BLAKE2b-256 d67fefb83b6d9f28bf75dfa6676389017b663196904f0e49daf1807507c239c9

See more details on using hashes here.

File details

Details for the file pydisort-1.2.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pydisort-1.2.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 728a11f8e1732a852b294c3f5134473a140726c10ca9c962ba8705e6e2ad1d74
MD5 789b49f12ff322f1caf25e500362aa0d
BLAKE2b-256 09b09d29a0f54261136c922948de74f28a507ec7f43a8c19069dfffe23645485

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