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.Disort object with the pydisort.DisortOptions object by:
>>> import torch
>>> from pydisort import DisortOptions, Disort
>>> torch.set_default_dtype(torch.float64)
>>> 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]]]])
Installation
pip install pydisort
Prebuilt wheels cover CPython 3.10–3.14 on Linux x86-64
(glibc 2.28 or newer with PyTorch) and Apple Silicon macOS 15 or newer.
pip installs the required PyTorch automatically. The release workflow
publishes wheels only: if no wheel matches, follow the
source-build instructions
to build the C++ library with CMake before installing the Python bindings.
For a detailed documentation, please visit https://pydisort.readthedocs.io/.
Metadata
Release files for pydisort 1.8.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 71.9 MB
Release files / pydisort-1.8.13-cp314-cp314-manylinux_2_27_x86_64.whl
| Download URL | pydisort-1.8.13-cp314-cp314-manylinux_2_27_x86_64.whl |
|---|---|
| Size | 13.8 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 |
|
SHA-256 checksum How to use checksums |
a1d44b30693a5fcbd2506d93f807a3a2de186222f6753464e41152b9674dc7ff
|
|
BLAKE2b-256 checksum How to use checksums |
58baadfe9a09dc1eecf14e14bbd68153fe66c0996cdc74de1361750fa4a4944f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pydisort-1.8.13-cp314-cp314-macosx_15_0_arm64.whl
| Download URL | pydisort-1.8.13-cp314-cp314-macosx_15_0_arm64.whl |
|---|---|
| Size | 642.6 kB |
| Tags | CPython 3.14 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
cbc6d3f5eb207d97fa64c16c2f37a9958a578971bb03e4649ad70f69b2727e7d
|
|
BLAKE2b-256 checksum How to use checksums |
949f2c0c94d7da4f4e3279ae3ff2253df909a8c96e8936b09e23675eb02200df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pydisort-1.8.13-cp313-cp313-manylinux_2_27_x86_64.whl
| Download URL | pydisort-1.8.13-cp313-cp313-manylinux_2_27_x86_64.whl |
|---|---|
| Size | 13.7 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 |
|
SHA-256 checksum How to use checksums |
6393dcd9b6869935b43030095474a4f3c9f435c7858908db406cc2b9eb8d3a3e
|
|
BLAKE2b-256 checksum How to use checksums |
bcc3dab0b0572b4ac4f5d3ed5c080fe541937e3f489325276dba1f4e39fe308e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pydisort-1.8.13-cp313-cp313-macosx_15_0_arm64.whl
| Download URL | pydisort-1.8.13-cp313-cp313-macosx_15_0_arm64.whl |
|---|---|
| Size | 641.9 kB |
| Tags | CPython 3.13 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e515c0ec58d2fde9ae4255cc8e159a0627ba489eab81926bb68982ff342ba629
|
|
BLAKE2b-256 checksum How to use checksums |
00a05425ed86b52cdb96effb1d799e8b98c1cfd190ebf4e8acb7ece7eb550275
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pydisort-1.8.13-cp312-cp312-manylinux_2_27_x86_64.whl
| Download URL | pydisort-1.8.13-cp312-cp312-manylinux_2_27_x86_64.whl |
|---|---|
| Size | 13.7 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 |
|
SHA-256 checksum How to use checksums |
d3df2614d835c95b952725fbd64df25c300bb75c74ee0d4f1c02b3f69a843408
|
|
BLAKE2b-256 checksum How to use checksums |
75d75485be9e80c3f3692c743adb5b84c1257acf173e2e374b820dd025c6b0d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pydisort-1.8.13-cp312-cp312-macosx_15_0_arm64.whl
| Download URL | pydisort-1.8.13-cp312-cp312-macosx_15_0_arm64.whl |
|---|---|
| Size | 641.9 kB |
| Tags | CPython 3.12 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fe7da5b8ff689ffc33dbb98b5383861279f6bb6bc6c4f8b8cec13b908a9b94bb
|
|
BLAKE2b-256 checksum How to use checksums |
1de38f29179372816ad73cb50e3cc1c21336717c4b4b7914b1673efed9cc99b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pydisort-1.8.13-cp311-cp311-manylinux_2_27_x86_64.whl
| Download URL | pydisort-1.8.13-cp311-cp311-manylinux_2_27_x86_64.whl |
|---|---|
| Size | 13.7 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 |
|
SHA-256 checksum How to use checksums |
f9470a736baecac5fbb4660abc57fd0ac45963cca46614d242e5f04d78bc1aa6
|
|
BLAKE2b-256 checksum How to use checksums |
258d5a3f1fd231162903792bf26cdc97dbb38acf700e41388c2e7339cd115cf1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pydisort-1.8.13-cp311-cp311-macosx_15_0_arm64.whl
| Download URL | pydisort-1.8.13-cp311-cp311-macosx_15_0_arm64.whl |
|---|---|
| Size | 640.5 kB |
| Tags | CPython 3.11 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b977b99daa6d67739500a4dfa17241d2d2978a3c07cd3d3ac0162d1de224a404
|
|
BLAKE2b-256 checksum How to use checksums |
0005aa6255694ac2f2f49772565aa837b55a66d0b7c26e986ce65f813639747d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pydisort-1.8.13-cp310-cp310-manylinux_2_27_x86_64.whl
| Download URL | pydisort-1.8.13-cp310-cp310-manylinux_2_27_x86_64.whl |
|---|---|
| Size | 13.8 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 |
|
SHA-256 checksum How to use checksums |
812b41dc99a99dd0b3996a38837e8b012f7385381277ac4e8c7877ea5f7eb1c8
|
|
BLAKE2b-256 checksum How to use checksums |
5e6d0a945aeb2848463e62f9a82fde4947936c998e4312fb96dee10a8b203a68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pydisort-1.8.13-cp310-cp310-macosx_15_0_arm64.whl
| Download URL | pydisort-1.8.13-cp310-cp310-macosx_15_0_arm64.whl |
|---|---|
| Size | 638.7 kB |
| Tags | CPython 3.10 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
04561934c76b9e6808014381fe640e052c9169dfed2844b6a9f2589ff49df902
|
|
BLAKE2b-256 checksum How to use checksums |
37e932636ce3ff2e53619067e0815d3b392a94e62c751aa54300f367ce9bba7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|