PythonicDISORT 0.6.2__tar.gz → 0.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (17) hide show
  1. {PythonicDISORT-0.6.2/src/PythonicDISORT.egg-info → pythonicdisort-0.8.0}/PKG-INFO +27 -27
  2. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/README.md +26 -26
  3. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/pyproject.toml +1 -1
  4. pythonicdisort-0.8.0/src/PythonicDISORT/_assemble_intensity_and_fluxes.py +569 -0
  5. PythonicDISORT-0.6.2/src/PythonicDISORT/_solve_for_coefs.py → pythonicdisort-0.8.0/src/PythonicDISORT/_solve_for_coeffs.py +105 -63
  6. PythonicDISORT-0.6.2/src/PythonicDISORT/_diagonalize.py → pythonicdisort-0.8.0/src/PythonicDISORT/_solve_for_gen_and_part_sols.py +54 -15
  7. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/src/PythonicDISORT/pydisort.py +283 -149
  8. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/src/PythonicDISORT/subroutines.py +70 -14
  9. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0/src/PythonicDISORT.egg-info}/PKG-INFO +27 -27
  10. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/src/PythonicDISORT.egg-info/SOURCES.txt +3 -3
  11. PythonicDISORT-0.6.2/src/PythonicDISORT/_assemble_solution_functions.py +0 -385
  12. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/LICENSE.md +0 -0
  13. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/setup.cfg +0 -0
  14. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/src/PythonicDISORT/__init__.py +0 -0
  15. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/src/PythonicDISORT.egg-info/dependency_links.txt +0 -0
  16. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/src/PythonicDISORT.egg-info/requires.txt +0 -0
  17. {PythonicDISORT-0.6.2 → pythonicdisort-0.8.0}/src/PythonicDISORT.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PythonicDISORT
3
- Version: 0.6.2
3
+ Version: 0.8.0
4
4
  Summary: Discrete Ordinates Solver for the (1D) Radiative Transfer Equation in a single or multi-layer atmosphere.
5
5
  Author-email: Dion HO Jia Xu <dh3065@columbia.edu>
6
6
  Project-URL: Homepage, https://github.com/LDEO-CREW/Pythonic-DISORT
@@ -20,65 +20,63 @@ Requires-Dist: jupyter>1.0.0; extra == "notebook-dependencies"
20
20
  Requires-Dist: notebook>6.5.2; extra == "notebook-dependencies"
21
21
 
22
22
  # Introduction
23
- The PythonicDISORT package is a Discrete Ordinates Solver for the (1D) Radiative Transfer Equation in a single or multi-layer plane-parallel atmosphere.
23
+ The PythonicDISORT package is a Discrete Ordinates Solver for the (1D) Radiative Transfer Equation
24
+ in a plane-parallel, horizontally homogeneous atmosphere.
24
25
  It is coded entirely in Python 3 and is a reimplementation instead of a wrapper.
25
26
  While PythonicDISORT has been optimized for speed, it will naturally be slower than similar FORTRAN algorithms.
26
27
  On the other hand, PythonicDISORT should be easier to install, use, and modify than FORTRAN-based Discrete Ordinates Solvers.
27
28
 
28
- PythonicDISORT is based on Stamnes' FORTRAN DISORT (see References, in particular [2, 3, 8]) and has its main features:
29
- delta-M scaling, Nakajima-Tanaka (NT) corrections, only flux option, isotropic internal sources (thermal sources),
29
+ PythonicDISORT is based on Stamnes' FORTRAN DISORT (see References, in particular [2, 3, 8]) and has its main features: multi-layer solver,
30
+ delta-M scaling, Nakajima-Tanaka (NT) corrections, only flux option, direct beam source, isotropic internal source (blackbody emission),
30
31
  Dirichlet boundary conditions (diffuse flux boundary sources), Bi-Directional Reflectance Function (BDRF) for surface reflection, and more.
31
- In addition, upon the request of a user, we added a subroutine to calculate actinic fluxes and we are open to further feature requests as well as feedback.
32
+ In addition, subroutine to calculate actinic fluxes was added to satisfy a user request and further feature requests as well as feedback are welcome.
32
33
 
33
34
  You may contact me, Dion, through dh3065@columbia.edu.
34
35
 
35
- Our **GitHub repository:** https://github.com/LDEO-CREW/Pythonic-DISORT also includes our F2PY-wrapped Stamnes DISORT (version 4.0.99) in the `disort4.0.99_f2py` directory.
36
- The original was downloaded from http://www.rtatmocn.com/disort/. The wrapper is inspired by https://github.com/kconnour/pyRT_DISORT.
36
+ The **GitHub repository** is https://github.com/LDEO-CREW/Pythonic-DISORT.
37
37
 
38
38
  # Documentation
39
39
  https://pythonic-disort.readthedocs.io/en/latest/
40
40
 
41
41
  Also see the accompanying Jupyter Notebook `Pythonic-DISORT.ipynb` in the `docs` directory
42
42
  of our GitHub repository.
43
- The Jupyter Notebook provides comprehensive documentation, suggested inputs, explanations,
43
+ This Jupyter Notebook provides comprehensive documentation, suggested inputs, explanations,
44
44
  mathematical derivations and verification tests.
45
- We highly recommend reading the non-optional parts of sections 1 and 2 before use.
45
+ It is highly recommended that new users read the non-optional parts of sections 1 and 2.
46
46
 
47
47
  ## PyTest and examples of how to use PythonicDISORT
48
48
 
49
- Not only do we have verification tests in the Jupyter Notebook, we also used PyTest to recreate most of the test problems in Stamnes' `disotest.f90`;
50
- `disotest.f90` is included in the `disort4.0.99_f2py` directory of our GitHub repository. In these tests, the solutions from PythonicDISORT are compared
51
- against solutions from our F2PY-wrapped Stamnes' DISORT (version 4.0.99). With PyTest installed, execute the console command `pytest`
52
- in the `pydisotest` directory to run these tests. The `pydisotest` directory also contains Jupyter Notebooks, one for each test,
53
- to show how the tests were implemented. These notebooks double up as examples of how to use PythonicDISORT.
49
+ Not only are there verification tests in `Pythonic-DISORT.ipynb`,
50
+ most of the test problems in Stamnes' `disotest.f90` (download DISORT 4.0.99 from http://www.rtatmocn.com/disort/) have also been recreated.
51
+ In these tests, the solutions from PythonicDISORT are compared against solutions
52
+ from a F2PY-wrapped Stamnes' DISORT (version 4.0.99; wrapper inspired by https://github.com/kconnour/pyRT_DISORT). With PyTest installed, execute the console command `pytest`
53
+ in the `pydisotest` directory to run these tests. The `pydisotest` directory also contains Jupyter Notebooks that correspond to each test
54
+ to show how it was implemented. These notebooks double up as examples of how to use PythonicDISORT.
54
55
 
55
56
  # Installation
56
57
 
57
58
  * From PyPI: `pip install PythonicDISORT`
58
- * From Conda-forge: (TODO: we need to first publish on Conda-forge)
59
- * By cloning repository: `pip install .` in the `Pythonic-DISORT` directory; `pip install -r all_optional_dependencies.txt` to install all optional dependencies
59
+ * From Conda-forge: (TODO: need to first publish on Conda-forge)
60
+ * By cloning repository: `pip install .` in the `Pythonic-DISORT` directory; `pip install -r all_optional_dependencies.txt` to install all optional dependencies (see *Requirements to run PythonicDISORT*)
60
61
 
61
62
  ## Requirements to run PythonicDISORT
62
63
  * Python 3.8+
63
64
  * `numpy >= 1.8.0`
64
65
  * `scipy >= 1.8.0`
65
- * (OPTIONAL) `pytest >= 6.2.5` (Required for non-Notebook tests)
66
+ * (OPTIONAL) `pytest >= 6.2.5` (Required to use the command `pytest`, see *PyTest and examples of how to use PythonicDISORT*)
66
67
 
67
- ## Additional requirements to run the Jupyter Notebook
68
+ ## (OPTIONAL) Additional requirements to run the Jupyter Notebook
68
69
  * `autograd >= 1.5`
69
70
  * `jupyter > 1.0.0`
70
71
  * `notebook > 6.5.2`
72
+ * `matplotlib >= 3.6.0`
71
73
 
72
- In addition, our F2PY-wrapped Stamnes' DISORT (in the `disort4.0.99_f2py` directory), or equivalent,
73
- must be set up to run the last section (section 6).
74
+ In addition, a F2PY-wrapped Stamnes' DISORT, or equivalent, is required to properly run the last section (section 6).
74
75
 
75
76
  ## Compatibility
76
77
 
77
- The PythonicDISORT package *should* be system agnostic given its minimal dependencies and pure Python code.
78
- We do not guarantee that our Jupyter Notebook and F2PY-wrapped Stamnes' DISORT will work on other systems though.
79
- The latter will almost certainly need user edits to work and in any case it requires FORTRAN compilers which
80
- are not included in our GitHub repository. Everything in the repository was built and tested on Windows 11 but
81
- not yet tested on other systems.
78
+ The PythonicDISORT package should be system agnostic given its minimal dependencies and pure Python code.
79
+ Everything in the repository was built and tested on Windows 11.
82
80
 
83
81
  # Acknowledgements
84
82
 
@@ -106,6 +104,8 @@ Science and Technology Center (STC) (Award #2019625) under which this package wa
106
104
 
107
105
  10) Trefethen, L. N.. 1996. *Finite difference and spectral methods for ordinary and partial differential equations.* https://people.maths.ox.ac.uk/trefethen/pdetext.html.
108
106
 
109
- 11) T. Nakajima and M. Tanaka. 1988. *Algorithms for radiative intensity calculations in moderately thick atmospheres using a truncation approximation.* https://www.sciencedirect.com/science/article/pii/0022407388900313.
107
+ 11) Knut Stamnes. 1982. *On the computation of angular distributions of radiation in planetary atmospheres.* https://www.sciencedirect.com/science/article/pii/0022407382900966.
110
108
 
111
- 12) K. Connour and A. Stcherbinine. 2022. *pyRT_DISORT.* https://github.com/kconnour/pyRT_DISORT.
109
+ 12) T. Nakajima and M. Tanaka. 1988. *Algorithms for radiative intensity calculations in moderately thick atmospheres using a truncation approximation.* https://www.sciencedirect.com/science/article/pii/0022407388900313.
110
+
111
+ 13) Connour, Kyle and Wolff, Michael. 2020. *pyRT_DISORT: A pre-processing front-end to help make DISORT simulations easier in Python.* https://github.com/kconnour/pyRT_DISORT.
@@ -1,63 +1,61 @@
1
1
  # Introduction
2
- The PythonicDISORT package is a Discrete Ordinates Solver for the (1D) Radiative Transfer Equation in a single or multi-layer plane-parallel atmosphere.
2
+ The PythonicDISORT package is a Discrete Ordinates Solver for the (1D) Radiative Transfer Equation
3
+ in a plane-parallel, horizontally homogeneous atmosphere.
3
4
  It is coded entirely in Python 3 and is a reimplementation instead of a wrapper.
4
5
  While PythonicDISORT has been optimized for speed, it will naturally be slower than similar FORTRAN algorithms.
5
6
  On the other hand, PythonicDISORT should be easier to install, use, and modify than FORTRAN-based Discrete Ordinates Solvers.
6
7
 
7
- PythonicDISORT is based on Stamnes' FORTRAN DISORT (see References, in particular [2, 3, 8]) and has its main features:
8
- delta-M scaling, Nakajima-Tanaka (NT) corrections, only flux option, isotropic internal sources (thermal sources),
8
+ PythonicDISORT is based on Stamnes' FORTRAN DISORT (see References, in particular [2, 3, 8]) and has its main features: multi-layer solver,
9
+ delta-M scaling, Nakajima-Tanaka (NT) corrections, only flux option, direct beam source, isotropic internal source (blackbody emission),
9
10
  Dirichlet boundary conditions (diffuse flux boundary sources), Bi-Directional Reflectance Function (BDRF) for surface reflection, and more.
10
- In addition, upon the request of a user, we added a subroutine to calculate actinic fluxes and we are open to further feature requests as well as feedback.
11
+ In addition, subroutine to calculate actinic fluxes was added to satisfy a user request and further feature requests as well as feedback are welcome.
11
12
 
12
13
  You may contact me, Dion, through dh3065@columbia.edu.
13
14
 
14
- Our **GitHub repository:** https://github.com/LDEO-CREW/Pythonic-DISORT also includes our F2PY-wrapped Stamnes DISORT (version 4.0.99) in the `disort4.0.99_f2py` directory.
15
- The original was downloaded from http://www.rtatmocn.com/disort/. The wrapper is inspired by https://github.com/kconnour/pyRT_DISORT.
15
+ The **GitHub repository** is https://github.com/LDEO-CREW/Pythonic-DISORT.
16
16
 
17
17
  # Documentation
18
18
  https://pythonic-disort.readthedocs.io/en/latest/
19
19
 
20
20
  Also see the accompanying Jupyter Notebook `Pythonic-DISORT.ipynb` in the `docs` directory
21
21
  of our GitHub repository.
22
- The Jupyter Notebook provides comprehensive documentation, suggested inputs, explanations,
22
+ This Jupyter Notebook provides comprehensive documentation, suggested inputs, explanations,
23
23
  mathematical derivations and verification tests.
24
- We highly recommend reading the non-optional parts of sections 1 and 2 before use.
24
+ It is highly recommended that new users read the non-optional parts of sections 1 and 2.
25
25
 
26
26
  ## PyTest and examples of how to use PythonicDISORT
27
27
 
28
- Not only do we have verification tests in the Jupyter Notebook, we also used PyTest to recreate most of the test problems in Stamnes' `disotest.f90`;
29
- `disotest.f90` is included in the `disort4.0.99_f2py` directory of our GitHub repository. In these tests, the solutions from PythonicDISORT are compared
30
- against solutions from our F2PY-wrapped Stamnes' DISORT (version 4.0.99). With PyTest installed, execute the console command `pytest`
31
- in the `pydisotest` directory to run these tests. The `pydisotest` directory also contains Jupyter Notebooks, one for each test,
32
- to show how the tests were implemented. These notebooks double up as examples of how to use PythonicDISORT.
28
+ Not only are there verification tests in `Pythonic-DISORT.ipynb`,
29
+ most of the test problems in Stamnes' `disotest.f90` (download DISORT 4.0.99 from http://www.rtatmocn.com/disort/) have also been recreated.
30
+ In these tests, the solutions from PythonicDISORT are compared against solutions
31
+ from a F2PY-wrapped Stamnes' DISORT (version 4.0.99; wrapper inspired by https://github.com/kconnour/pyRT_DISORT). With PyTest installed, execute the console command `pytest`
32
+ in the `pydisotest` directory to run these tests. The `pydisotest` directory also contains Jupyter Notebooks that correspond to each test
33
+ to show how it was implemented. These notebooks double up as examples of how to use PythonicDISORT.
33
34
 
34
35
  # Installation
35
36
 
36
37
  * From PyPI: `pip install PythonicDISORT`
37
- * From Conda-forge: (TODO: we need to first publish on Conda-forge)
38
- * By cloning repository: `pip install .` in the `Pythonic-DISORT` directory; `pip install -r all_optional_dependencies.txt` to install all optional dependencies
38
+ * From Conda-forge: (TODO: need to first publish on Conda-forge)
39
+ * By cloning repository: `pip install .` in the `Pythonic-DISORT` directory; `pip install -r all_optional_dependencies.txt` to install all optional dependencies (see *Requirements to run PythonicDISORT*)
39
40
 
40
41
  ## Requirements to run PythonicDISORT
41
42
  * Python 3.8+
42
43
  * `numpy >= 1.8.0`
43
44
  * `scipy >= 1.8.0`
44
- * (OPTIONAL) `pytest >= 6.2.5` (Required for non-Notebook tests)
45
+ * (OPTIONAL) `pytest >= 6.2.5` (Required to use the command `pytest`, see *PyTest and examples of how to use PythonicDISORT*)
45
46
 
46
- ## Additional requirements to run the Jupyter Notebook
47
+ ## (OPTIONAL) Additional requirements to run the Jupyter Notebook
47
48
  * `autograd >= 1.5`
48
49
  * `jupyter > 1.0.0`
49
50
  * `notebook > 6.5.2`
51
+ * `matplotlib >= 3.6.0`
50
52
 
51
- In addition, our F2PY-wrapped Stamnes' DISORT (in the `disort4.0.99_f2py` directory), or equivalent,
52
- must be set up to run the last section (section 6).
53
+ In addition, a F2PY-wrapped Stamnes' DISORT, or equivalent, is required to properly run the last section (section 6).
53
54
 
54
55
  ## Compatibility
55
56
 
56
- The PythonicDISORT package *should* be system agnostic given its minimal dependencies and pure Python code.
57
- We do not guarantee that our Jupyter Notebook and F2PY-wrapped Stamnes' DISORT will work on other systems though.
58
- The latter will almost certainly need user edits to work and in any case it requires FORTRAN compilers which
59
- are not included in our GitHub repository. Everything in the repository was built and tested on Windows 11 but
60
- not yet tested on other systems.
57
+ The PythonicDISORT package should be system agnostic given its minimal dependencies and pure Python code.
58
+ Everything in the repository was built and tested on Windows 11.
61
59
 
62
60
  # Acknowledgements
63
61
 
@@ -85,6 +83,8 @@ Science and Technology Center (STC) (Award #2019625) under which this package wa
85
83
 
86
84
  10) Trefethen, L. N.. 1996. *Finite difference and spectral methods for ordinary and partial differential equations.* https://people.maths.ox.ac.uk/trefethen/pdetext.html.
87
85
 
88
- 11) T. Nakajima and M. Tanaka. 1988. *Algorithms for radiative intensity calculations in moderately thick atmospheres using a truncation approximation.* https://www.sciencedirect.com/science/article/pii/0022407388900313.
86
+ 11) Knut Stamnes. 1982. *On the computation of angular distributions of radiation in planetary atmospheres.* https://www.sciencedirect.com/science/article/pii/0022407382900966.
89
87
 
90
- 12) K. Connour and A. Stcherbinine. 2022. *pyRT_DISORT.* https://github.com/kconnour/pyRT_DISORT.
88
+ 12) T. Nakajima and M. Tanaka. 1988. *Algorithms for radiative intensity calculations in moderately thick atmospheres using a truncation approximation.* https://www.sciencedirect.com/science/article/pii/0022407388900313.
89
+
90
+ 13) Connour, Kyle and Wolff, Michael. 2020. *pyRT_DISORT: A pre-processing front-end to help make DISORT simulations easier in Python.* https://github.com/kconnour/pyRT_DISORT.
@@ -8,7 +8,7 @@ dependencies = [
8
8
  "scipy>=1.8.0",
9
9
  ]
10
10
  name = "PythonicDISORT"
11
- version = "0.6.2"
11
+ version = "0.8.0"
12
12
  authors = [
13
13
  { name="Dion HO Jia Xu", email="dh3065@columbia.edu" },
14
14
  ]