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

This version

1.3.6

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

Uploaded CPython 3.13macOS 12.0+ ARM64

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

Uploaded CPython 3.12macOS 12.0+ ARM64

pydisort-1.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

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

pydisort-1.3.6-cp311-cp311-macosx_12_0_arm64.whl (587.7 kB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

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

Uploaded CPython 3.10macOS 12.0+ ARM64

pydisort-1.3.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.3.6-cp39-cp39-macosx_12_0_arm64.whl (586.6 kB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5278f36d4271cc62ab88e326806672b4b820e2d67341c65db037494fba0b015d
MD5 41892d0ed79bd74c4d8bb381d0c5c031
BLAKE2b-256 4c2558ccaeb2a80b0dfc8b76410c21eb70d107fefc83ec1991d1d9711e75b199

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c34d7e0528472db56c7e0d65042e9ef88f350b2fc84c5a4a9a5b2d5710626baf
MD5 4d9fe63a3c26d092863e8cd12a7ff3c0
BLAKE2b-256 321f4111e8cbe020e738794504439b743a767f1992d63c451af6889a0c756e48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6ed2c9d3e7fca898a06db94f01a7025a936639b2e8dd91e0e15cd2ed4e2c546
MD5 8cad08a636550965ac59f412e0c0e86b
BLAKE2b-256 8119acfc1234623eba8344b52421af0c80acaa7f4b9a95057df5a68de30dfa02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 abdf111bf0bc97def9d7d5b25cc10363037ee1f83b176e56a6ce5b74756d7294
MD5 6a8b8f9b37942dc414a16ef03936ccc0
BLAKE2b-256 6078e2ec90d78fd55be3b6a871ddcb2818a0d3c0312520552b2d5ddaec47b305

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2167e71643127d0dd5acd62c1265c9bfe9f8795e4c22a610767251915dba2652
MD5 a7806ae0f430c83df690f37733d47751
BLAKE2b-256 21a9c1fd2819291baef49811001d287a35e10e89128f1dfc74c480f5ca08a09a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 ff57fd26235b41b1de5e8e66342109c8444e6782ea9ff0b9d0ab4c5222a188d8
MD5 89519400114fb61b8f75f5117234eb78
BLAKE2b-256 b10c38ef5f6c37107c40000852f1555ae27a805ad5a5942a014540becffd872c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ea564e1a152ff7a67d149569abc526b23cf2ba5f0b75d9c2d8a4a496333467f
MD5 f9488f7fa9c5ba216f98e663f8d796dc
BLAKE2b-256 b67deb7e7628a1f7cc38632c702985d3aa93dac0d6ec66499276f44535326884

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 79b17b5204a5c0f21f399e21a244e954ad89127d154b1e166918c242d4cb7a0e
MD5 4cb8cfd2dd9ee0c72397b0cf925968dc
BLAKE2b-256 7c63ebe58d9a3015130fc525687ef694968c2dbd5ed72039710dd240556c5f97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0d288fa0dc619c5e3b9105556afbe6f27df0fbcf9194f21923d5389ec05e8145
MD5 6fa7e884ebc76f80d88a8594b9e38810
BLAKE2b-256 9fe6c406303f8e4a2e87f3be2828963bca5c9fee24a27ccce70c7d9f5f673b2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.3.6-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 2a0011ca06a8d8f201b4fd081137c1ec21bf4478a59baa2084b0e7d85f6adeed
MD5 d61c937f1e300328b4fc62e94c5bcb23
BLAKE2b-256 c3c0c9016150d8a655c8f48c2249035a941dfb7b0bd62bbf5b57e80cf1537719

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