Skip to main content

Modern efficient Python package for DISORT

Project description

Pydisort

Empower Discrete Ordinates Radiative Transfer (DISORT) with Python 🚀

About Pydisort

A modern Python package for the DISORT (Discrete Ordinate Radiative Transfer) algorithm for efficient, 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.3-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.3-cp313-cp313-macosx_11_0_arm64.whl (380.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pydisort-1.2.3-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.3-cp312-cp312-macosx_11_0_arm64.whl (380.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pydisort-1.2.3-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.3-cp311-cp311-macosx_11_0_arm64.whl (379.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pydisort-1.2.3-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.3-cp310-cp310-macosx_11_0_arm64.whl (378.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pydisort-1.2.3-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.3-cp39-cp39-macosx_11_0_arm64.whl (378.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d73cf5e06ebc84e60730018a50ff4c43f14cf1eabd54a43503f0b285bcb61e5
MD5 0d4b249232540365ccb06064a917b93c
BLAKE2b-256 43eca43f079796f238a0213b4f47662fb53b864e1f08d349c2c4b8f3f0f06db5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 136106af74b85ec84387281ac2367b1d3b6d2d86f00ac0cd20c540c178008b89
MD5 6aa704ab7a50d39001adee839490ace2
BLAKE2b-256 f7f9ee37601b6d3d5f850dd1ae49c0432c31870f5807a3ca2d88aee32aa18071

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44d40d03ce812be09b0ca0bdbb26680c39f197d9199fa2b517d00e0021f8088b
MD5 345ec83acd265311299e10ee80d1f647
BLAKE2b-256 236a305aa32a995c2cafb2efedb632ed7692ffa96e30eb349de34c9276ed6bbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50a083a3c72b43a318db638d5cfde6f88396a7ab6462b9c980f8eb46beb39834
MD5 d35b5309b0969e2d89b26e73a80f370c
BLAKE2b-256 34962fd78101c4e85d41b59ed3ca908b94cae74d235d5f32d764e56acbee7dda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b4a8e9c843a3dc15cf322017b7f60f43bea906c68042d6dcd3fd8ea9d34c9a34
MD5 4392a875d2e364aa46a6584b02cb2f92
BLAKE2b-256 9685095e27a5c29265b0472c0e90dbd6338a933b75ea344c8e9ea79fdeb8a9bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66d2af9f718000a0c815fdd2851af6f5999682c78ef8b64ce90c35e482892fad
MD5 7a2b4d1b9a3273129ded4f70167154c2
BLAKE2b-256 034513ed86862de1a15da077b65d113ca5792569c540bc35ac342a2ac7719789

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b331eaf9aec799f16591f69949f8e9bd3e429860dbd8c1b80684b933cae8e44f
MD5 4f1f9a3c0dac2748249837922664639d
BLAKE2b-256 4061443d62aaf57b26fc1389f75a52be0f41886065f53f18b8c1cbfaf5c9b2ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 079a4bf7e9590b99436108a6cfed9f0bbb97e2575482e5713fdfa8f00abf94c9
MD5 67b6b4989f73e6b97c3cf4b90303ad36
BLAKE2b-256 85c0a4e32536fa5f4f995d46e64be1fb68ab1e1c320dfdd76c19cc43a1d9288a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fea350ca86e53acfed2ab2708b769914c9dca8a966b0982d09daba4e8c11606d
MD5 840ab98d70d5755b44bfedd7bcbe2499
BLAKE2b-256 ee9e27f16d2075e537e6f10121277d12b18c148fc58f526760aded40f5576f3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.2.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 90cc6977d39cb81fbf73a0ef910349efc4a34fb9213cf93b50154798debb2495
MD5 43bde1865349be8492d68734f6695c13
BLAKE2b-256 442adcfa2932e1be49a63a11a2a461b7b006b99be0bdb8e34d44930bdeb0e885

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