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

Uploaded CPython 3.13macOS 12.0+ ARM64

pydisort-1.4.5-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.4.5-cp312-cp312-macosx_12_0_arm64.whl (589.1 kB view details)

Uploaded CPython 3.12macOS 12.0+ ARM64

pydisort-1.4.5-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.4.5-cp311-cp311-macosx_12_0_arm64.whl (589.2 kB view details)

Uploaded CPython 3.11macOS 12.0+ ARM64

pydisort-1.4.5-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.4.5-cp310-cp310-macosx_12_0_arm64.whl (587.8 kB view details)

Uploaded CPython 3.10macOS 12.0+ ARM64

pydisort-1.4.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

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

pydisort-1.4.5-cp39-cp39-macosx_12_0_arm64.whl (588.0 kB view details)

Uploaded CPython 3.9macOS 12.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a93efabf713b74b5a89f3e2efbdf7de0b6b47f86d9ee999f273e91254a4532d4
MD5 6d57e3a8f31b0ee8d165fda983798763
BLAKE2b-256 e47781358ad6fa84c14394911c581aa45556641850f9d9ea2f69da8fcef13794

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp313-cp313-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 10087c45e5e4cfff3d9c5a6ea980d46f035f43d8fe579a82d2c5e4a5a6ff3c96
MD5 e4e85da778715dd1ebffd5d888c237d7
BLAKE2b-256 0b3017ab6dc45ba90c0d0a02c74e37de8e0a43856a7858964d38e3b9c71d9eb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8239f2095f2ce0e68cdad4c2c27aa47a353e2b2f7d5bf801778b66b2a99798a2
MD5 1d4c2ff5c5d3a29a982e9878d9ebaa9c
BLAKE2b-256 36ea450ef6801530542a5624d0837ca0795d92b4d4c375917975623b4a4a9968

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 643d755b560631c1f1ccedc31513c00d83c41fb0031c4cd7b906e96d14dc6e7a
MD5 47c7302ac021b07b40f6688ac06f7f3f
BLAKE2b-256 c1fd0ae3c07aa65bb47440d99bb40233601aaf9e890ecff4c946a54ba780606a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3dd0d87903a22dd9ded299abad336ab4e334f6b7083d9148aa3abd23a98cf11f
MD5 b6812379d0f42d076324ff246527b1f3
BLAKE2b-256 576ada22df474bf849b4710b83e3c7f548c897ba40911e429f7bed913a562d58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 c897cbd6146133225978df15203452e0f2b9e86ddafdd5d7227ec8a37cc262ff
MD5 6b4cc05313e025b314b117376b70bbb7
BLAKE2b-256 494e102d6cf0e537007a442d4f90775b6d094df8cec4b5839bb57d911b3a4da4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d8a616d15bcb449029b1ad809d1df5d1cca02b2bb6184043810addbc9f151a07
MD5 70ec2bda7330361397a951df5dd60cb8
BLAKE2b-256 ebf0715576ca315bd78bfe2e4b44e9288f2024be84d1d8e57db16156ba2acbd4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 919f021491ca2a5ce10bae268d625d7f39a9d64f6519504781d06a3d1497c0ee
MD5 1c34b9f805c79aae553d0446e99f7f0a
BLAKE2b-256 ad46588b68e50956969ae392bff9e22c63609b7091f890806296a4b81ff25e92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5bd07f953d22d383b835ded651418af305472edbd40b487f547b1395ae5a8e6
MD5 19d66c02e24a1243388b0b337692aa3c
BLAKE2b-256 294ca0e378cd81b781ad080f8aeb848b0519ca1d7f089ed8692e60a2160d5b26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pydisort-1.4.5-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 cc4601abb8f75bf3c5f625b70fcb6aaeb240123750afdd9eced8ff93762ff7df
MD5 940cce137515aa2d53f4780d4657a34e
BLAKE2b-256 1d3aae37722fa87f48b0e436698fc5a6d0ac0d6111d35f961a8f3b98da744d06

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