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

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.12macOS 12.0+ ARM64

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

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.10macOS 12.0+ ARM64

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

Uploaded CPython 3.9macOS 12.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a3d08baade27c94f68dbb3607b0e89596266df5f882fc45734ba1890abe8bfd0
MD5 476b53469e865025711fa75db023a894
BLAKE2b-256 a747944d3e383cb452427bafa1e91f35b06bf80422493525a4d8109bdbfce2df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c67b35f342d9a13155b145d713009c2411e84051211db9dfb3091e1997ef448d
MD5 9f12e35e89ab11a27973a8980379ced0
BLAKE2b-256 9604e001651cae7fa01bd73226dd77a1fe003f1d23fb3a485b1444fe0c97acc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3fd9f4a0f18b35565c3686db741db79a4fe40ddb217dc11be6e1bf544188c8c9
MD5 176dbd8eaaece047b36a717c3cd3a8f4
BLAKE2b-256 5e8a12fd3bdcb7729b1915545a5aaeba4abf83183faa77f277475d77f7006449

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 cc0b71a1195de9d27980b0765e8809041ec9d4af316fbefae786dafb26f783de
MD5 bd76a834347f260946f671edadbb5380
BLAKE2b-256 1f0e1f00df57ecb70a02b9cc78904c166efd2d17a617185a78b944c216c1ae28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dafff50694e75cf7418e63655a2095e91ef6abb294d9a1f94bec790c623fb8d4
MD5 aa3e0a344e28794cef4929e69710b15e
BLAKE2b-256 a8469f47421b37ce79fde5598b53b111603f69d24ffc8934a7221f123deff7da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 b2156ff6a3cb77e1dd1ce04822aeeb1fd1276da04d3084cf8ae9d2c5dca68d03
MD5 15f91b9d131809b093a98c1aee41671e
BLAKE2b-256 e05534cb74f566adfb20788a5207089ad68529aa8cbcbda19e2931cb046d79f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6d1fd974a6c71081c2fccb5ad223d10c513ecf733fb7c451a2ce0d3e3c37bcc2
MD5 301eaacd1d561b3f351124170e4d0519
BLAKE2b-256 018a7ef6adf70b0105fa8b748853328cabcef9e27aba5983e7b4dd52be8c206d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e4f480220f9745759bf5c008b9fe3b75224519ba3c969e5a6ce1b6cdacee896c
MD5 5eeb0fccb811e7753e3a246d0f0f6450
BLAKE2b-256 50cf215e76c07529fe85acf4eb470b5d32bfc8d800c0b3f12c000191b54a4b82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f35cf3fd127d58ab7f4c5d25ef910cf862995e18b1b7498cfe884e7a4e0d611e
MD5 58fbc225c64cea676bc1dd159ac9e8e0
BLAKE2b-256 083d29e1afe54013a4d216d70cfd735781ebbd51847dc9565c5808d98812826e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.3-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 94d77b74738ce384804aed2e46b39a0e1274c747981339d1a1e7c20b10632cf5
MD5 dcdce0156a4cf53bb3b35c28a865a603
BLAKE2b-256 1127c80b6b2aa8552e61cd02e7a588a640a5337c1e6a5ab3a1482af20a0ac897

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