ECOv003-L2T-STARS 1.0.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 (71) hide show
  1. ecov003_l2t_stars-1.0.0/.github/workflows/python-publish.yml +39 -0
  2. ecov003_l2t_stars-1.0.0/.gitignore +168 -0
  3. ecov003_l2t_stars-1.0.0/ECOSTRESS Granule Download.ipynb +206 -0
  4. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/BRDF/BRDF.py +57 -0
  5. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/BRDF/SZA.py +65 -0
  6. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/BRDF/__init__.py +1 -0
  7. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/BRDF/statistical_radiative_transport.txt +90 -0
  8. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/BRDF/version.txt +1 -0
  9. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/ECOSTRESS_tiled_granule.py +567 -0
  10. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/L2T_STARS.py +1777 -0
  11. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/L2T_STARS.xml +47 -0
  12. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/LPDAAC/LPDAACDataPool.py +444 -0
  13. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/LPDAAC/__init__.py +9 -0
  14. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/LPDAAC/version.txt +1 -0
  15. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/PGEVersion.py +4 -0
  16. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/PGEVersion.txt +1 -0
  17. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/.gitignore +28 -0
  18. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/LICENSE +21 -0
  19. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/Project.toml +51 -0
  20. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/README.md +2 -0
  21. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/__init__.py +0 -0
  22. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/instantiate.jl +25 -0
  23. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/instantiate.py +13 -0
  24. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/BBoxes.jl +50 -0
  25. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/FilterSmoother.jl +280 -0
  26. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/HLS.jl +721 -0
  27. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/MODLAND.jl +93 -0
  28. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/Points.jl +45 -0
  29. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/STARS.jl +1189 -0
  30. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/VIIRS.jl +117 -0
  31. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/VNP43.jl +499 -0
  32. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/__init__.py +0 -0
  33. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/sentinel2.geojson +56990 -0
  34. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/STARS_jl/src/sentinel_tiles.jl +136 -0
  35. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VIIRS/VIIRSDataPool.py +294 -0
  36. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VIIRS/VIIRSDownloader.py +26 -0
  37. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VIIRS/VIIRS_CMR_LOGIN.py +37 -0
  38. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VIIRS/VNP09GA.py +1276 -0
  39. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VIIRS/VNP43IA4.py +288 -0
  40. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VIIRS/VNP43MA3.py +323 -0
  41. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VIIRS/__init__.py +9 -0
  42. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VIIRS/version.txt +1 -0
  43. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT/VNP43NRT.py +863 -0
  44. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT/__init__.py +1 -0
  45. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT/process_VNP43NRT.jl +157 -0
  46. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT/version.txt +1 -0
  47. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT_jl/Project.toml +15 -0
  48. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT_jl/__init__.py +0 -0
  49. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.jl +25 -0
  50. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.py +13 -0
  51. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT_jl/src/VNP43NRT.jl +411 -0
  52. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/VNP43NRT_jl/src/__init__.py +0 -0
  53. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/__init__.py +9 -0
  54. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/daterange/__init__.py +1 -0
  55. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/daterange/daterange.py +35 -0
  56. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/exit_codes.py +151 -0
  57. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/process_ECOSTRESS_data_fusion.jl +228 -0
  58. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/runconfig.py +70 -0
  59. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/timer/__init__.py +1 -0
  60. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/timer/timer.py +77 -0
  61. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS/version.txt +1 -0
  62. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS.egg-info/PKG-INFO +248 -0
  63. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS.egg-info/SOURCES.txt +69 -0
  64. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS.egg-info/dependency_links.txt +1 -0
  65. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS.egg-info/requires.txt +36 -0
  66. ecov003_l2t_stars-1.0.0/ECOv003_L2T_STARS.egg-info/top_level.txt +1 -0
  67. ecov003_l2t_stars-1.0.0/LICENSE +201 -0
  68. ecov003_l2t_stars-1.0.0/PKG-INFO +248 -0
  69. ecov003_l2t_stars-1.0.0/README.md +201 -0
  70. ecov003_l2t_stars-1.0.0/pyproject.toml +68 -0
  71. ecov003_l2t_stars-1.0.0/setup.cfg +4 -0
@@ -0,0 +1,39 @@
1
+ # This workflow will upload a Python Package using Twine when a release is created
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3
+
4
+ # This workflow uses actions that are not certified by GitHub.
5
+ # They are provided by a third-party and are governed by
6
+ # separate terms of service, privacy policy, and support
7
+ # documentation.
8
+
9
+ name: Upload Python Package
10
+
11
+ on:
12
+ release:
13
+ types: [published]
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ deploy:
20
+
21
+ runs-on: ubuntu-latest
22
+
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v3
27
+ with:
28
+ python-version: '3.x'
29
+ - name: Install dependencies
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ pip install build
33
+ - name: Build package
34
+ run: python -m build
35
+ - name: Publish package
36
+ uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
37
+ with:
38
+ user: __token__
39
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,168 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
110
+ .pdm.toml
111
+ .pdm-python
112
+ .pdm-build/
113
+
114
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
115
+ __pypackages__/
116
+
117
+ # Celery stuff
118
+ celerybeat-schedule
119
+ celerybeat.pid
120
+
121
+ # SageMath parsed files
122
+ *.sage.py
123
+
124
+ # Environments
125
+ .env
126
+ .venv
127
+ env/
128
+ venv/
129
+ ENV/
130
+ env.bak/
131
+ venv.bak/
132
+
133
+ # Spyder project settings
134
+ .spyderproject
135
+ .spyproject
136
+
137
+ # Rope project settings
138
+ .ropeproject
139
+
140
+ # mkdocs documentation
141
+ /site
142
+
143
+ # mypy
144
+ .mypy_cache/
145
+ .dmypy.json
146
+ dmypy.json
147
+
148
+ # Pyre type checker
149
+ .pyre/
150
+
151
+ # pytype static type analyzer
152
+ .pytype/
153
+
154
+ # Cython debug symbols
155
+ cython_debug/
156
+
157
+ # PyCharm
158
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
159
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
160
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
161
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
162
+ .idea/
163
+
164
+ .vscode
165
+
166
+ .DS_Store
167
+
168
+ data/
@@ -0,0 +1,206 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "Using `ECOv002-CMR` package to retrieve ECOSTRESS granules as inputs using the Common Metadata Repository (CMR) API. Using `ECOv002-L2T-STARS` package to run the product generating executable (PGE)."
8
+ ]
9
+ },
10
+ {
11
+ "cell_type": "code",
12
+ "execution_count": null,
13
+ "metadata": {},
14
+ "outputs": [],
15
+ "source": [
16
+ "import numpy as np\n",
17
+ "from ECOv002_CMR import download_ECOSTRESS_granule\n",
18
+ "from ECOv002_L2T_STARS import generate_L2T_STARS_runconfig, L2T_STARS"
19
+ ]
20
+ },
21
+ {
22
+ "cell_type": "markdown",
23
+ "metadata": {},
24
+ "source": [
25
+ "Disable logger output in notebook"
26
+ ]
27
+ },
28
+ {
29
+ "cell_type": "code",
30
+ "execution_count": null,
31
+ "metadata": {},
32
+ "outputs": [],
33
+ "source": [
34
+ "import logging\n",
35
+ "\n",
36
+ "logging.getLogger().handlers = []"
37
+ ]
38
+ },
39
+ {
40
+ "cell_type": "markdown",
41
+ "metadata": {},
42
+ "source": [
43
+ "Set working directory"
44
+ ]
45
+ },
46
+ {
47
+ "cell_type": "code",
48
+ "execution_count": null,
49
+ "metadata": {},
50
+ "outputs": [],
51
+ "source": [
52
+ "working_directory = \"data\""
53
+ ]
54
+ },
55
+ {
56
+ "cell_type": "markdown",
57
+ "metadata": {},
58
+ "source": [
59
+ "Retrieve LST LSTE granule from CMR API for target date"
60
+ ]
61
+ },
62
+ {
63
+ "cell_type": "code",
64
+ "execution_count": null,
65
+ "metadata": {},
66
+ "outputs": [],
67
+ "source": [
68
+ "L2T_LSTE_granule = download_ECOSTRESS_granule(\n",
69
+ " product=\"L2T_LSTE\", \n",
70
+ " orbit=35800,\n",
71
+ " scene=3,\n",
72
+ " tile=\"11SPS\", \n",
73
+ " aquisition_date=\"2024-10-29\",\n",
74
+ " parent_directory=working_directory\n",
75
+ ")\n",
76
+ "\n",
77
+ "L2T_LSTE_granule"
78
+ ]
79
+ },
80
+ {
81
+ "cell_type": "markdown",
82
+ "metadata": {},
83
+ "source": [
84
+ "Load and display preview of surface temperature"
85
+ ]
86
+ },
87
+ {
88
+ "cell_type": "code",
89
+ "execution_count": null,
90
+ "metadata": {},
91
+ "outputs": [],
92
+ "source": [
93
+ "L2T_LSTE_granule.ST_C"
94
+ ]
95
+ },
96
+ {
97
+ "cell_type": "markdown",
98
+ "metadata": {},
99
+ "source": [
100
+ "Retrieve L2T STARS granule from CMR API as prior"
101
+ ]
102
+ },
103
+ {
104
+ "cell_type": "code",
105
+ "execution_count": null,
106
+ "metadata": {},
107
+ "outputs": [],
108
+ "source": [
109
+ "L2T_STARS_granule = download_ECOSTRESS_granule(\n",
110
+ " product=\"L2T_STARS\", \n",
111
+ " tile=\"11SPS\", \n",
112
+ " aquisition_date=\"2024-10-22\",\n",
113
+ " parent_directory=working_directory\n",
114
+ ")\n",
115
+ "\n",
116
+ "L2T_STARS_granule"
117
+ ]
118
+ },
119
+ {
120
+ "cell_type": "markdown",
121
+ "metadata": {},
122
+ "source": [
123
+ "Load and display preview of vegetation index"
124
+ ]
125
+ },
126
+ {
127
+ "cell_type": "code",
128
+ "execution_count": null,
129
+ "metadata": {},
130
+ "outputs": [],
131
+ "source": [
132
+ "L2T_STARS_granule.NDVI"
133
+ ]
134
+ },
135
+ {
136
+ "cell_type": "markdown",
137
+ "metadata": {},
138
+ "source": [
139
+ "Generate XML run-config file for L2T STARS PGE run"
140
+ ]
141
+ },
142
+ {
143
+ "cell_type": "code",
144
+ "execution_count": null,
145
+ "metadata": {},
146
+ "outputs": [],
147
+ "source": [
148
+ "runconfig_filename = generate_L2T_STARS_runconfig(\n",
149
+ " L2T_LSTE_filename=L2T_LSTE_granule.product_filename,\n",
150
+ " prior_L2T_STARS_filename=L2T_STARS_granule.product_filename,\n",
151
+ " working_directory=working_directory\n",
152
+ ")\n",
153
+ "\n",
154
+ "runconfig_filename"
155
+ ]
156
+ },
157
+ {
158
+ "cell_type": "code",
159
+ "execution_count": null,
160
+ "metadata": {},
161
+ "outputs": [],
162
+ "source": [
163
+ "with open(runconfig_filename, \"r\") as f:\n",
164
+ " print(f.read())"
165
+ ]
166
+ },
167
+ {
168
+ "cell_type": "code",
169
+ "execution_count": null,
170
+ "metadata": {},
171
+ "outputs": [],
172
+ "source": [
173
+ "exit_code = L2T_STARS(runconfig_filename=runconfig_filename, use_VNP43NRT=False)\n",
174
+ "exit_code"
175
+ ]
176
+ },
177
+ {
178
+ "cell_type": "code",
179
+ "execution_count": null,
180
+ "metadata": {},
181
+ "outputs": [],
182
+ "source": []
183
+ }
184
+ ],
185
+ "metadata": {
186
+ "kernelspec": {
187
+ "display_name": "ECOv002-L2T-STARS",
188
+ "language": "python",
189
+ "name": "python3"
190
+ },
191
+ "language_info": {
192
+ "codemirror_mode": {
193
+ "name": "ipython",
194
+ "version": 3
195
+ },
196
+ "file_extension": ".py",
197
+ "mimetype": "text/x-python",
198
+ "name": "python",
199
+ "nbconvert_exporter": "python",
200
+ "pygments_lexer": "ipython3",
201
+ "version": "3.11.10"
202
+ }
203
+ },
204
+ "nbformat": 4,
205
+ "nbformat_minor": 2
206
+ }
@@ -0,0 +1,57 @@
1
+ from os.path import join, abspath, dirname
2
+ import warnings
3
+ import numpy as np
4
+ from numpy import where, isnan, logical_not, nanmean, nan, logical_or, loadtxt, digitize, arange
5
+
6
+
7
+ def statistical_radiative_transport(SZA, AOT):
8
+ filename = join(abspath(dirname(__file__)), 'statistical_radiative_transport.txt')
9
+
10
+ data = loadtxt(filename)
11
+
12
+ sza_index = digitize(SZA, arange(0, 90, 1)[:-1])
13
+ aot_index = digitize(AOT, arange(0, 1, 0.02)[:-1])
14
+
15
+ SRT = data[sza_index, aot_index]
16
+
17
+ return SRT
18
+
19
+
20
+ def bidirectional_reflectance(white_sky_albedo, black_sky_albedo, SZA, AOT):
21
+ warnings.filterwarnings('ignore')
22
+
23
+ # constrain aerosol optical thickness
24
+ # AOT = where(AOT >= 0.98, 0.97, AOT)
25
+ # AOT = where(AOT < 0.02, 0.02, AOT)
26
+ # AOT = where(isnan(AOT), 0.1, AOT)
27
+ AOT = np.clip(AOT, 0.1, 0.97)
28
+ AOT_mean = np.nanmean(AOT)
29
+ AOT = np.where(np.isnan(AOT), AOT_mean, AOT)
30
+
31
+ # constrain SZA
32
+ SZA = where(
33
+ logical_or(SZA <= 0, SZA > 90),
34
+ nanmean(where(
35
+ logical_not(logical_or(SZA <= 0, SZA > 90)),
36
+ SZA,
37
+ nan
38
+ )),
39
+ SZA
40
+ )
41
+
42
+ warnings.resetwarnings()
43
+
44
+ # gap-fill SZA with constant 45 degrees
45
+ SZA = where(isnan(SZA), 45, SZA)
46
+
47
+ # lookup statistical radiative transport
48
+ SRT = statistical_radiative_transport(SZA, AOT)
49
+
50
+ warnings.filterwarnings('ignore')
51
+
52
+ # cloud filter albedo
53
+ blue_sky_albedo = white_sky_albedo * SRT + black_sky_albedo * (1 - SRT)
54
+
55
+ warnings.resetwarnings()
56
+
57
+ return blue_sky_albedo
@@ -0,0 +1,65 @@
1
+ from typing import Union
2
+
3
+ import numpy as np
4
+ from rasters import Raster, RasterGeometry
5
+
6
+
7
+ def day_angle_rad_from_doy(doy):
8
+ """
9
+ This function calculates day angle in radians from day of year between 1 and 365.
10
+ """
11
+ return (2 * np.pi * (doy - 1)) / 365
12
+
13
+
14
+ def solar_dec_deg_from_day_angle_rad(day_angle_rad):
15
+ """
16
+ This function calculates solar declination in degrees from day angle in radians.
17
+ """
18
+ return (0.006918 - 0.399912 * np.cos(day_angle_rad) + 0.070257 * np.sin(day_angle_rad) - 0.006758 * np.cos(
19
+ 2 * day_angle_rad) + 0.000907 * np.sin(2 * day_angle_rad) - 0.002697 * np.cos(
20
+ 3 * day_angle_rad) + 0.00148 * np.sin(
21
+ 3 * day_angle_rad)) * (180 / np.pi)
22
+
23
+
24
+ def SZA_deg_from_lat_dec_hour(latitude, solar_dec_deg, hour):
25
+ """
26
+ This function calculates solar zenith angle from longitude, solar declination, and solar time.
27
+ SZA calculated by this function matching SZA provided by MOD07 to within 0.4 degrees.
28
+
29
+ :param latitude: latitude in degrees
30
+ :param solar_dec_deg: solar declination in degrees
31
+ :param hour: solar time in hours
32
+ :return: solar zenith angle in degrees
33
+ """
34
+ # convert angles to radians
35
+ latitude_rad = np.radians(latitude)
36
+ solar_dec_rad = np.radians(solar_dec_deg)
37
+ hour_angle_deg = hour * 15.0 - 180.0
38
+ hour_angle_rad = np.radians(hour_angle_deg)
39
+ sza_rad = np.arccos(
40
+ np.sin(latitude_rad) * np.sin(solar_dec_rad) + np.cos(latitude_rad) * np.cos(solar_dec_rad) * np.cos(
41
+ hour_angle_rad))
42
+ sza_deg = np.degrees(sza_rad)
43
+
44
+ return sza_deg
45
+
46
+
47
+ def calculate_SZA(day_of_year: Union[Raster, float], hour_of_day: Union[Raster, float], geometry: RasterGeometry) -> Raster:
48
+ """
49
+ Calculates solar zenith angle at latitude and solar apparent time.
50
+ :param lat: latitude in degrees
51
+ :param dec: solar declination in degrees
52
+ :param hour: hour of day
53
+ :return: solar zenith angle in degrees
54
+ """
55
+ day_angle = (2 * np.pi * (day_of_year - 1)) / 365
56
+ lat = np.radians(geometry.lat)
57
+ dec = np.radians((0.006918 - 0.399912 * np.cos(day_angle) + 0.070257 * np.sin(day_angle) - 0.006758 * np.cos(
58
+ 2 * day_angle) + 0.000907 * np.sin(2 * day_angle) - 0.002697 * np.cos(3 * day_angle) + 0.00148 * np.sin(
59
+ 3 * day_angle)) * (180 / np.pi))
60
+ hour_angle = np.radians(hour_of_day * 15.0 - 180.0)
61
+ SZA = np.degrees(np.arccos(np.sin(lat) * np.sin(dec) + np.cos(lat) * np.cos(dec) * np.cos(hour_angle)))
62
+ SZA = Raster(SZA, geometry=geometry)
63
+
64
+ return SZA
65
+
@@ -0,0 +1 @@
1
+ from .BRDF import *
@@ -0,0 +1,90 @@
1
+ 0.068 0.080 0.090 0.101 0.112 0.122 0.132 0.142 0.152 0.161 0.171 0.180 0.189 0.198 0.207 0.215 0.224 0.232 0.240 0.249 0.256 0.264 0.272 0.280 0.287 0.294 0.302 0.309 0.316 0.323 0.329 0.336 0.343 0.349 0.356 0.362 0.368 0.374 0.380 0.386 0.392 0.398 0.403 0.409 0.415 0.420 0.425 0.431 0.436 0.441
2
+ 0.068 0.080 0.090 0.101 0.112 0.122 0.132 0.142 0.152 0.161 0.171 0.180 0.189 0.198 0.207 0.215 0.224 0.232 0.240 0.249 0.256 0.264 0.272 0.280 0.287 0.294 0.302 0.309 0.316 0.323 0.329 0.336 0.343 0.349 0.356 0.362 0.368 0.374 0.380 0.386 0.392 0.398 0.403 0.409 0.415 0.420 0.425 0.431 0.436 0.441
3
+ 0.068 0.080 0.090 0.101 0.112 0.122 0.132 0.142 0.152 0.161 0.171 0.180 0.189 0.198 0.207 0.215 0.224 0.232 0.241 0.249 0.257 0.264 0.272 0.280 0.287 0.294 0.302 0.309 0.316 0.323 0.329 0.336 0.343 0.349 0.356 0.362 0.368 0.374 0.380 0.386 0.392 0.398 0.404 0.409 0.415 0.420 0.426 0.431 0.436 0.441
4
+ 0.068 0.080 0.091 0.101 0.112 0.122 0.132 0.142 0.152 0.161 0.171 0.180 0.189 0.198 0.207 0.216 0.224 0.232 0.241 0.249 0.257 0.265 0.272 0.280 0.287 0.295 0.302 0.309 0.316 0.323 0.330 0.336 0.343 0.349 0.356 0.362 0.368 0.374 0.380 0.386 0.392 0.398 0.404 0.409 0.415 0.420 0.426 0.431 0.436 0.441
5
+ 0.068 0.080 0.091 0.101 0.112 0.122 0.132 0.142 0.152 0.162 0.171 0.180 0.189 0.198 0.207 0.216 0.224 0.233 0.241 0.249 0.257 0.265 0.272 0.280 0.287 0.295 0.302 0.309 0.316 0.323 0.330 0.337 0.343 0.350 0.356 0.362 0.369 0.375 0.381 0.387 0.392 0.398 0.404 0.410 0.415 0.421 0.426 0.431 0.436 0.442
6
+ 0.069 0.080 0.091 0.101 0.112 0.122 0.132 0.142 0.152 0.162 0.171 0.180 0.190 0.198 0.207 0.216 0.224 0.233 0.241 0.249 0.257 0.265 0.273 0.280 0.288 0.295 0.302 0.309 0.316 0.323 0.330 0.337 0.343 0.350 0.356 0.363 0.369 0.375 0.381 0.387 0.393 0.399 0.404 0.410 0.415 0.421 0.426 0.432 0.437 0.442
7
+ 0.069 0.080 0.091 0.102 0.112 0.122 0.133 0.143 0.152 0.162 0.171 0.181 0.190 0.199 0.208 0.216 0.225 0.233 0.241 0.249 0.257 0.265 0.273 0.281 0.288 0.295 0.303 0.310 0.317 0.324 0.330 0.337 0.344 0.350 0.357 0.363 0.369 0.375 0.381 0.387 0.393 0.399 0.405 0.410 0.416 0.421 0.427 0.432 0.437 0.442
8
+ 0.069 0.080 0.091 0.102 0.112 0.123 0.133 0.143 0.152 0.162 0.172 0.181 0.190 0.199 0.208 0.216 0.225 0.233 0.242 0.250 0.258 0.266 0.273 0.281 0.288 0.296 0.303 0.310 0.317 0.324 0.331 0.338 0.344 0.351 0.357 0.363 0.370 0.376 0.382 0.388 0.394 0.399 0.405 0.411 0.416 0.422 0.427 0.432 0.438 0.443
9
+ 0.069 0.080 0.091 0.102 0.112 0.123 0.133 0.143 0.153 0.162 0.172 0.181 0.190 0.199 0.208 0.217 0.225 0.234 0.242 0.250 0.258 0.266 0.274 0.281 0.289 0.296 0.303 0.311 0.318 0.324 0.331 0.338 0.345 0.351 0.358 0.364 0.370 0.376 0.382 0.388 0.394 0.400 0.406 0.411 0.417 0.422 0.428 0.433 0.438 0.443
10
+ 0.069 0.080 0.091 0.102 0.113 0.123 0.133 0.143 0.153 0.163 0.172 0.181 0.191 0.200 0.208 0.217 0.226 0.234 0.242 0.250 0.258 0.266 0.274 0.282 0.289 0.297 0.304 0.311 0.318 0.325 0.332 0.339 0.345 0.352 0.358 0.364 0.371 0.377 0.383 0.389 0.395 0.400 0.406 0.412 0.417 0.423 0.428 0.434 0.439 0.444
11
+ 0.069 0.080 0.091 0.102 0.113 0.123 0.133 0.143 0.153 0.163 0.172 0.182 0.191 0.200 0.209 0.218 0.226 0.235 0.243 0.251 0.259 0.267 0.275 0.282 0.290 0.297 0.304 0.312 0.319 0.326 0.332 0.339 0.346 0.352 0.359 0.365 0.371 0.377 0.383 0.389 0.395 0.401 0.407 0.412 0.418 0.424 0.429 0.434 0.439 0.445
12
+ 0.069 0.081 0.092 0.102 0.113 0.123 0.134 0.144 0.154 0.163 0.173 0.182 0.191 0.200 0.209 0.218 0.227 0.235 0.243 0.251 0.259 0.267 0.275 0.283 0.290 0.298 0.305 0.312 0.319 0.326 0.333 0.340 0.346 0.353 0.359 0.366 0.372 0.378 0.384 0.390 0.396 0.402 0.408 0.413 0.419 0.424 0.430 0.435 0.440 0.445
13
+ 0.069 0.081 0.092 0.103 0.113 0.124 0.134 0.144 0.154 0.164 0.173 0.183 0.192 0.201 0.210 0.219 0.227 0.236 0.244 0.252 0.260 0.268 0.276 0.283 0.291 0.298 0.306 0.313 0.320 0.327 0.334 0.340 0.347 0.354 0.360 0.366 0.373 0.379 0.385 0.391 0.397 0.403 0.408 0.414 0.420 0.425 0.430 0.436 0.441 0.446
14
+ 0.070 0.081 0.092 0.103 0.114 0.124 0.134 0.145 0.154 0.164 0.174 0.183 0.192 0.201 0.210 0.219 0.228 0.236 0.244 0.253 0.261 0.269 0.276 0.284 0.292 0.299 0.306 0.314 0.321 0.328 0.335 0.341 0.348 0.354 0.361 0.367 0.374 0.380 0.386 0.392 0.398 0.404 0.409 0.415 0.420 0.426 0.431 0.437 0.442 0.447
15
+ 0.070 0.081 0.092 0.103 0.114 0.124 0.135 0.145 0.155 0.165 0.174 0.184 0.193 0.202 0.211 0.220 0.228 0.237 0.245 0.253 0.261 0.269 0.277 0.285 0.292 0.300 0.307 0.314 0.321 0.328 0.335 0.342 0.349 0.355 0.362 0.368 0.374 0.381 0.387 0.393 0.399 0.404 0.410 0.416 0.421 0.427 0.432 0.438 0.443 0.448
16
+ 0.070 0.081 0.093 0.104 0.114 0.125 0.135 0.145 0.155 0.165 0.175 0.184 0.193 0.203 0.212 0.220 0.229 0.237 0.246 0.254 0.262 0.270 0.278 0.286 0.293 0.301 0.308 0.315 0.322 0.329 0.336 0.343 0.350 0.356 0.363 0.369 0.375 0.382 0.388 0.394 0.400 0.405 0.411 0.417 0.423 0.428 0.433 0.439 0.444 0.449
17
+ 0.070 0.082 0.093 0.104 0.115 0.125 0.136 0.146 0.156 0.166 0.175 0.185 0.194 0.203 0.212 0.221 0.230 0.238 0.247 0.255 0.263 0.271 0.279 0.287 0.294 0.302 0.309 0.316 0.323 0.330 0.337 0.344 0.351 0.357 0.364 0.370 0.376 0.383 0.389 0.395 0.401 0.407 0.412 0.418 0.424 0.429 0.435 0.440 0.445 0.450
18
+ 0.070 0.082 0.093 0.104 0.115 0.126 0.136 0.146 0.156 0.166 0.176 0.185 0.195 0.204 0.213 0.222 0.230 0.239 0.247 0.256 0.264 0.272 0.280 0.287 0.295 0.303 0.310 0.317 0.324 0.331 0.338 0.345 0.352 0.358 0.365 0.371 0.378 0.384 0.390 0.396 0.402 0.408 0.414 0.419 0.425 0.430 0.436 0.441 0.446 0.452
19
+ 0.071 0.082 0.094 0.105 0.116 0.126 0.137 0.147 0.157 0.167 0.177 0.186 0.195 0.205 0.214 0.223 0.231 0.240 0.248 0.257 0.265 0.273 0.281 0.288 0.296 0.304 0.311 0.318 0.325 0.332 0.339 0.346 0.353 0.360 0.366 0.372 0.379 0.385 0.391 0.397 0.403 0.409 0.415 0.420 0.426 0.432 0.437 0.442 0.448 0.453
20
+ 0.071 0.083 0.094 0.105 0.116 0.127 0.137 0.147 0.158 0.168 0.177 0.187 0.196 0.205 0.214 0.223 0.232 0.241 0.249 0.258 0.266 0.274 0.282 0.289 0.297 0.305 0.312 0.319 0.327 0.334 0.341 0.347 0.354 0.361 0.367 0.374 0.380 0.386 0.392 0.398 0.404 0.410 0.416 0.422 0.427 0.433 0.438 0.444 0.449 0.454
21
+ 0.071 0.083 0.094 0.106 0.117 0.127 0.138 0.148 0.158 0.168 0.178 0.188 0.197 0.206 0.215 0.224 0.233 0.242 0.250 0.259 0.267 0.275 0.283 0.291 0.298 0.306 0.313 0.321 0.328 0.335 0.342 0.349 0.355 0.362 0.369 0.375 0.381 0.388 0.394 0.400 0.406 0.412 0.418 0.423 0.429 0.434 0.440 0.445 0.451 0.456
22
+ 0.072 0.083 0.095 0.106 0.117 0.128 0.138 0.149 0.159 0.169 0.179 0.188 0.198 0.207 0.216 0.225 0.234 0.243 0.251 0.260 0.268 0.276 0.284 0.292 0.299 0.307 0.314 0.322 0.329 0.336 0.343 0.350 0.357 0.363 0.370 0.376 0.383 0.389 0.395 0.401 0.407 0.413 0.419 0.425 0.430 0.436 0.441 0.447 0.452 0.457
23
+ 0.072 0.084 0.095 0.107 0.118 0.128 0.139 0.149 0.160 0.170 0.180 0.189 0.199 0.208 0.217 0.226 0.235 0.244 0.252 0.261 0.269 0.277 0.285 0.293 0.301 0.308 0.316 0.323 0.330 0.337 0.344 0.351 0.358 0.365 0.371 0.378 0.384 0.391 0.397 0.403 0.409 0.415 0.421 0.426 0.432 0.438 0.443 0.448 0.454 0.459
24
+ 0.072 0.084 0.096 0.107 0.118 0.129 0.140 0.150 0.160 0.171 0.180 0.190 0.200 0.209 0.218 0.227 0.236 0.245 0.254 0.262 0.270 0.278 0.286 0.294 0.302 0.310 0.317 0.325 0.332 0.339 0.346 0.353 0.360 0.366 0.373 0.379 0.386 0.392 0.398 0.405 0.411 0.416 0.422 0.428 0.434 0.439 0.445 0.450 0.456 0.461
25
+ 0.073 0.085 0.096 0.108 0.119 0.130 0.140 0.151 0.161 0.171 0.181 0.191 0.201 0.210 0.219 0.228 0.237 0.246 0.255 0.263 0.272 0.280 0.288 0.296 0.303 0.311 0.319 0.326 0.333 0.340 0.348 0.354 0.361 0.368 0.375 0.381 0.388 0.394 0.400 0.406 0.412 0.418 0.424 0.430 0.435 0.441 0.447 0.452 0.457 0.463
26
+ 0.073 0.085 0.097 0.108 0.119 0.130 0.141 0.152 0.162 0.172 0.182 0.192 0.202 0.211 0.220 0.230 0.239 0.247 0.256 0.265 0.273 0.281 0.289 0.297 0.305 0.313 0.320 0.328 0.335 0.342 0.349 0.356 0.363 0.370 0.376 0.383 0.389 0.396 0.402 0.408 0.414 0.420 0.426 0.432 0.437 0.443 0.449 0.454 0.459 0.465
27
+ 0.074 0.086 0.097 0.109 0.120 0.131 0.142 0.153 0.163 0.173 0.183 0.193 0.203 0.212 0.222 0.231 0.240 0.249 0.257 0.266 0.274 0.283 0.291 0.299 0.306 0.314 0.322 0.329 0.337 0.344 0.351 0.358 0.365 0.371 0.378 0.385 0.391 0.397 0.404 0.410 0.416 0.422 0.428 0.434 0.439 0.445 0.450 0.456 0.461 0.467
28
+ 0.074 0.086 0.098 0.109 0.121 0.132 0.143 0.154 0.164 0.174 0.184 0.194 0.204 0.214 0.223 0.232 0.241 0.250 0.259 0.267 0.276 0.284 0.292 0.300 0.308 0.316 0.323 0.331 0.338 0.346 0.353 0.360 0.367 0.373 0.380 0.387 0.393 0.399 0.406 0.412 0.418 0.424 0.430 0.436 0.441 0.447 0.453 0.458 0.463 0.469
29
+ 0.074 0.087 0.099 0.110 0.122 0.133 0.144 0.154 0.165 0.175 0.186 0.195 0.205 0.215 0.224 0.234 0.243 0.252 0.260 0.269 0.277 0.286 0.294 0.302 0.310 0.318 0.325 0.333 0.340 0.347 0.355 0.362 0.368 0.375 0.382 0.389 0.395 0.401 0.408 0.414 0.420 0.426 0.432 0.438 0.444 0.449 0.455 0.460 0.466 0.471
30
+ 0.075 0.087 0.099 0.111 0.122 0.134 0.145 0.155 0.166 0.177 0.187 0.197 0.207 0.216 0.226 0.235 0.244 0.253 0.262 0.271 0.279 0.287 0.296 0.304 0.312 0.319 0.327 0.335 0.342 0.349 0.357 0.364 0.371 0.377 0.384 0.391 0.397 0.404 0.410 0.416 0.422 0.428 0.434 0.440 0.446 0.451 0.457 0.463 0.468 0.473
31
+ 0.075 0.088 0.100 0.112 0.123 0.135 0.146 0.157 0.167 0.178 0.188 0.198 0.208 0.218 0.227 0.236 0.246 0.255 0.264 0.272 0.281 0.289 0.297 0.306 0.313 0.321 0.329 0.337 0.344 0.351 0.359 0.366 0.373 0.379 0.386 0.393 0.399 0.406 0.412 0.418 0.425 0.431 0.437 0.442 0.448 0.454 0.459 0.465 0.470 0.476
32
+ 0.076 0.088 0.101 0.112 0.124 0.136 0.147 0.158 0.168 0.179 0.189 0.199 0.209 0.219 0.229 0.238 0.247 0.256 0.265 0.274 0.283 0.291 0.299 0.307 0.315 0.323 0.331 0.339 0.346 0.354 0.361 0.368 0.375 0.382 0.389 0.395 0.402 0.408 0.415 0.421 0.427 0.433 0.439 0.445 0.451 0.456 0.462 0.467 0.473 0.478
33
+ 0.077 0.089 0.101 0.113 0.125 0.136 0.148 0.159 0.170 0.180 0.191 0.201 0.211 0.221 0.230 0.240 0.249 0.258 0.267 0.276 0.284 0.293 0.301 0.309 0.317 0.325 0.333 0.341 0.348 0.356 0.363 0.370 0.377 0.384 0.391 0.398 0.404 0.411 0.417 0.423 0.429 0.436 0.442 0.447 0.453 0.459 0.465 0.470 0.476 0.481
34
+ 0.077 0.090 0.102 0.114 0.126 0.138 0.149 0.160 0.171 0.182 0.192 0.202 0.212 0.222 0.232 0.241 0.251 0.260 0.269 0.278 0.286 0.295 0.303 0.312 0.320 0.328 0.335 0.343 0.351 0.358 0.365 0.373 0.380 0.387 0.393 0.400 0.407 0.413 0.420 0.426 0.432 0.438 0.444 0.450 0.456 0.462 0.467 0.473 0.478 0.484
35
+ 0.078 0.090 0.103 0.115 0.127 0.139 0.150 0.161 0.172 0.183 0.193 0.204 0.214 0.224 0.234 0.243 0.253 0.262 0.271 0.280 0.288 0.297 0.305 0.314 0.322 0.330 0.338 0.345 0.353 0.360 0.368 0.375 0.382 0.389 0.396 0.403 0.409 0.416 0.422 0.429 0.435 0.441 0.447 0.453 0.459 0.464 0.470 0.476 0.481 0.487
36
+ 0.078 0.091 0.104 0.116 0.128 0.140 0.151 0.163 0.174 0.184 0.195 0.205 0.216 0.226 0.235 0.245 0.255 0.264 0.273 0.282 0.291 0.299 0.308 0.316 0.324 0.332 0.340 0.348 0.356 0.363 0.370 0.378 0.385 0.392 0.399 0.405 0.412 0.419 0.425 0.431 0.438 0.444 0.450 0.456 0.462 0.467 0.473 0.479 0.484 0.490
37
+ 0.079 0.092 0.105 0.117 0.129 0.141 0.153 0.164 0.175 0.186 0.197 0.207 0.217 0.227 0.237 0.247 0.257 0.266 0.275 0.284 0.293 0.302 0.310 0.318 0.327 0.335 0.343 0.350 0.358 0.366 0.373 0.380 0.387 0.395 0.401 0.408 0.415 0.421 0.428 0.434 0.441 0.447 0.453 0.459 0.465 0.470 0.476 0.482 0.487 0.493
38
+ 0.080 0.093 0.106 0.118 0.130 0.142 0.154 0.165 0.177 0.188 0.198 0.209 0.219 0.229 0.239 0.249 0.259 0.268 0.277 0.286 0.295 0.304 0.313 0.321 0.329 0.337 0.345 0.353 0.361 0.368 0.376 0.383 0.390 0.397 0.404 0.411 0.418 0.425 0.431 0.437 0.444 0.450 0.456 0.462 0.468 0.474 0.479 0.485 0.490 0.496
39
+ 0.081 0.094 0.107 0.119 0.131 0.144 0.155 0.167 0.178 0.189 0.200 0.211 0.221 0.231 0.241 0.251 0.261 0.270 0.280 0.289 0.298 0.307 0.315 0.324 0.332 0.340 0.348 0.356 0.364 0.371 0.379 0.386 0.393 0.400 0.407 0.414 0.421 0.428 0.434 0.441 0.447 0.453 0.459 0.465 0.471 0.477 0.483 0.488 0.494 0.499
40
+ 0.081 0.095 0.108 0.120 0.133 0.145 0.157 0.169 0.180 0.191 0.202 0.213 0.223 0.234 0.244 0.254 0.263 0.273 0.282 0.291 0.300 0.309 0.318 0.326 0.335 0.343 0.351 0.359 0.367 0.374 0.382 0.389 0.396 0.404 0.411 0.417 0.424 0.431 0.437 0.444 0.450 0.456 0.463 0.469 0.475 0.480 0.486 0.492 0.497 0.503
41
+ 0.082 0.096 0.109 0.122 0.134 0.146 0.158 0.170 0.182 0.193 0.204 0.215 0.225 0.236 0.246 0.256 0.266 0.275 0.285 0.294 0.303 0.312 0.321 0.329 0.338 0.346 0.354 0.362 0.370 0.377 0.385 0.392 0.400 0.407 0.414 0.421 0.428 0.434 0.441 0.447 0.454 0.460 0.466 0.472 0.478 0.484 0.490 0.495 0.501 0.506
42
+ 0.083 0.097 0.110 0.123 0.136 0.148 0.160 0.172 0.183 0.195 0.206 0.217 0.228 0.238 0.248 0.258 0.268 0.278 0.287 0.297 0.306 0.315 0.323 0.332 0.341 0.349 0.357 0.365 0.373 0.381 0.388 0.396 0.403 0.410 0.417 0.424 0.431 0.438 0.444 0.451 0.457 0.464 0.470 0.476 0.482 0.488 0.494 0.499 0.505 0.510
43
+ 0.084 0.098 0.111 0.124 0.137 0.149 0.162 0.174 0.185 0.197 0.208 0.219 0.230 0.240 0.251 0.261 0.271 0.281 0.290 0.299 0.309 0.318 0.327 0.335 0.344 0.352 0.360 0.368 0.376 0.384 0.392 0.399 0.407 0.414 0.421 0.428 0.435 0.442 0.448 0.455 0.461 0.467 0.474 0.480 0.486 0.492 0.497 0.503 0.509 0.514
44
+ 0.085 0.099 0.112 0.126 0.138 0.151 0.163 0.176 0.187 0.199 0.210 0.221 0.232 0.243 0.253 0.264 0.274 0.283 0.293 0.302 0.312 0.321 0.330 0.338 0.347 0.355 0.364 0.372 0.380 0.388 0.395 0.403 0.410 0.418 0.425 0.432 0.439 0.445 0.452 0.459 0.465 0.471 0.478 0.484 0.490 0.496 0.501 0.507 0.513 0.518
45
+ 0.086 0.100 0.114 0.127 0.140 0.153 0.165 0.178 0.189 0.201 0.213 0.224 0.235 0.245 0.256 0.266 0.276 0.286 0.296 0.306 0.315 0.324 0.333 0.342 0.350 0.359 0.367 0.375 0.383 0.391 0.399 0.407 0.414 0.421 0.429 0.436 0.443 0.449 0.456 0.463 0.469 0.475 0.482 0.488 0.494 0.500 0.506 0.511 0.517 0.523
46
+ 0.087 0.101 0.115 0.129 0.142 0.155 0.167 0.180 0.192 0.203 0.215 0.226 0.237 0.248 0.259 0.269 0.279 0.289 0.299 0.309 0.318 0.327 0.336 0.345 0.354 0.363 0.371 0.379 0.387 0.395 0.403 0.411 0.418 0.425 0.433 0.440 0.447 0.454 0.460 0.467 0.473 0.480 0.486 0.492 0.498 0.504 0.510 0.516 0.522 0.527
47
+ 0.088 0.102 0.116 0.130 0.143 0.157 0.169 0.182 0.194 0.206 0.217 0.229 0.240 0.251 0.262 0.272 0.283 0.293 0.302 0.312 0.322 0.331 0.340 0.349 0.358 0.366 0.375 0.383 0.391 0.399 0.407 0.415 0.422 0.430 0.437 0.444 0.451 0.458 0.465 0.471 0.478 0.484 0.491 0.497 0.503 0.509 0.515 0.520 0.526 0.532
48
+ 0.089 0.104 0.118 0.132 0.145 0.158 0.171 0.184 0.196 0.208 0.220 0.232 0.243 0.254 0.265 0.275 0.286 0.296 0.306 0.316 0.325 0.335 0.344 0.353 0.362 0.370 0.379 0.387 0.395 0.403 0.411 0.419 0.427 0.434 0.441 0.448 0.455 0.462 0.469 0.476 0.482 0.489 0.495 0.501 0.508 0.514 0.519 0.525 0.531 0.536
49
+ 0.090 0.105 0.120 0.134 0.147 0.161 0.174 0.186 0.199 0.211 0.223 0.235 0.246 0.257 0.268 0.279 0.289 0.299 0.310 0.319 0.329 0.338 0.348 0.357 0.366 0.374 0.383 0.391 0.400 0.408 0.416 0.423 0.431 0.439 0.446 0.453 0.460 0.467 0.474 0.481 0.487 0.494 0.500 0.507 0.513 0.519 0.525 0.530 0.536 0.542
50
+ 0.092 0.107 0.121 0.136 0.149 0.163 0.176 0.189 0.202 0.214 0.226 0.238 0.249 0.261 0.272 0.282 0.293 0.303 0.314 0.323 0.333 0.343 0.352 0.361 0.370 0.379 0.388 0.396 0.404 0.413 0.420 0.428 0.436 0.444 0.451 0.458 0.465 0.472 0.479 0.486 0.492 0.499 0.505 0.512 0.518 0.524 0.530 0.536 0.541 0.547
51
+ 0.093 0.109 0.123 0.138 0.152 0.165 0.179 0.192 0.205 0.217 0.229 0.241 0.253 0.264 0.275 0.286 0.297 0.307 0.318 0.328 0.337 0.347 0.357 0.366 0.375 0.384 0.392 0.401 0.409 0.417 0.425 0.433 0.441 0.449 0.456 0.463 0.471 0.478 0.484 0.491 0.498 0.504 0.511 0.517 0.523 0.529 0.535 0.541 0.547 0.552
52
+ 0.095 0.110 0.125 0.140 0.154 0.168 0.182 0.195 0.208 0.220 0.233 0.245 0.256 0.268 0.279 0.290 0.301 0.312 0.322 0.332 0.342 0.352 0.361 0.371 0.380 0.389 0.397 0.406 0.414 0.423 0.431 0.439 0.446 0.454 0.461 0.469 0.476 0.483 0.490 0.497 0.503 0.510 0.516 0.523 0.529 0.535 0.541 0.547 0.553 0.558
53
+ 0.096 0.112 0.127 0.142 0.156 0.170 0.184 0.198 0.211 0.223 0.236 0.248 0.260 0.272 0.283 0.294 0.305 0.316 0.326 0.337 0.347 0.356 0.366 0.375 0.385 0.394 0.402 0.411 0.419 0.428 0.436 0.444 0.452 0.459 0.467 0.474 0.482 0.489 0.496 0.502 0.509 0.516 0.522 0.528 0.535 0.541 0.547 0.553 0.558 0.564
54
+ 0.098 0.114 0.129 0.144 0.159 0.173 0.187 0.201 0.214 0.227 0.239 0.252 0.264 0.276 0.287 0.298 0.309 0.320 0.331 0.341 0.351 0.361 0.371 0.380 0.390 0.399 0.408 0.416 0.425 0.433 0.441 0.449 0.457 0.465 0.473 0.480 0.487 0.494 0.501 0.508 0.515 0.522 0.528 0.534 0.541 0.547 0.553 0.559 0.565 0.570
55
+ 0.100 0.116 0.132 0.147 0.162 0.176 0.190 0.204 0.217 0.230 0.243 0.256 0.268 0.280 0.292 0.303 0.314 0.325 0.336 0.346 0.356 0.366 0.376 0.386 0.395 0.404 0.413 0.422 0.431 0.439 0.448 0.456 0.464 0.471 0.479 0.486 0.494 0.501 0.508 0.515 0.522 0.528 0.535 0.541 0.547 0.553 0.559 0.565 0.571 0.577
56
+ 0.102 0.118 0.134 0.150 0.165 0.179 0.194 0.208 0.221 0.235 0.247 0.260 0.273 0.285 0.296 0.308 0.319 0.330 0.341 0.352 0.362 0.372 0.382 0.391 0.401 0.410 0.419 0.428 0.437 0.445 0.454 0.462 0.470 0.478 0.485 0.493 0.500 0.507 0.514 0.521 0.528 0.535 0.541 0.548 0.554 0.560 0.566 0.572 0.578 0.583
57
+ 0.104 0.121 0.137 0.153 0.168 0.183 0.198 0.212 0.225 0.239 0.252 0.265 0.277 0.290 0.302 0.313 0.325 0.336 0.347 0.357 0.368 0.378 0.388 0.398 0.407 0.417 0.426 0.435 0.443 0.452 0.460 0.469 0.477 0.484 0.492 0.500 0.507 0.514 0.521 0.528 0.535 0.542 0.548 0.555 0.561 0.567 0.573 0.579 0.585 0.591
58
+ 0.106 0.123 0.140 0.156 0.171 0.186 0.201 0.215 0.229 0.243 0.256 0.269 0.282 0.295 0.307 0.318 0.330 0.341 0.352 0.363 0.374 0.384 0.394 0.404 0.413 0.423 0.432 0.441 0.450 0.459 0.467 0.476 0.484 0.492 0.499 0.507 0.514 0.522 0.529 0.536 0.543 0.549 0.556 0.562 0.569 0.575 0.581 0.587 0.593 0.598
59
+ 0.109 0.126 0.143 0.159 0.175 0.190 0.205 0.220 0.234 0.248 0.261 0.275 0.288 0.300 0.312 0.324 0.336 0.347 0.359 0.370 0.380 0.391 0.401 0.411 0.420 0.430 0.439 0.448 0.457 0.466 0.474 0.483 0.491 0.499 0.507 0.514 0.522 0.529 0.536 0.543 0.550 0.557 0.563 0.570 0.576 0.582 0.588 0.594 0.600 0.606
60
+ 0.111 0.128 0.145 0.162 0.178 0.194 0.209 0.224 0.238 0.252 0.266 0.280 0.293 0.305 0.318 0.330 0.342 0.353 0.365 0.376 0.387 0.397 0.407 0.417 0.427 0.437 0.446 0.455 0.464 0.473 0.482 0.490 0.498 0.506 0.514 0.522 0.529 0.536 0.544 0.551 0.558 0.564 0.571 0.577 0.584 0.590 0.596 0.602 0.608 0.613
61
+ 0.113 0.131 0.148 0.165 0.182 0.198 0.213 0.228 0.243 0.257 0.271 0.285 0.298 0.311 0.324 0.336 0.348 0.360 0.371 0.382 0.393 0.404 0.414 0.424 0.434 0.444 0.453 0.463 0.472 0.481 0.489 0.498 0.506 0.514 0.522 0.529 0.537 0.544 0.552 0.559 0.566 0.572 0.579 0.585 0.592 0.598 0.604 0.610 0.616 0.621
62
+ 0.116 0.134 0.152 0.169 0.185 0.202 0.218 0.233 0.248 0.262 0.277 0.290 0.304 0.317 0.330 0.342 0.355 0.366 0.378 0.389 0.400 0.411 0.422 0.432 0.442 0.452 0.461 0.470 0.480 0.488 0.497 0.506 0.514 0.522 0.530 0.538 0.545 0.553 0.560 0.567 0.574 0.581 0.587 0.594 0.600 0.606 0.612 0.618 0.624 0.630
63
+ 0.118 0.137 0.155 0.172 0.189 0.206 0.222 0.238 0.253 0.268 0.282 0.296 0.310 0.323 0.336 0.349 0.361 0.373 0.385 0.397 0.408 0.419 0.429 0.440 0.450 0.460 0.469 0.479 0.488 0.497 0.505 0.514 0.522 0.531 0.538 0.546 0.554 0.561 0.569 0.576 0.583 0.589 0.596 0.603 0.609 0.615 0.621 0.627 0.633 0.639
64
+ 0.121 0.140 0.158 0.176 0.194 0.211 0.227 0.243 0.259 0.274 0.288 0.303 0.317 0.330 0.343 0.356 0.369 0.381 0.393 0.404 0.416 0.427 0.437 0.448 0.458 0.468 0.478 0.488 0.497 0.506 0.515 0.523 0.532 0.540 0.548 0.556 0.563 0.571 0.578 0.585 0.592 0.599 0.606 0.612 0.618 0.625 0.631 0.637 0.642 0.648
65
+ 0.125 0.144 0.163 0.182 0.199 0.217 0.233 0.250 0.265 0.281 0.296 0.310 0.324 0.338 0.351 0.365 0.377 0.390 0.402 0.413 0.425 0.436 0.447 0.458 0.468 0.478 0.488 0.498 0.507 0.516 0.525 0.533 0.542 0.550 0.558 0.566 0.574 0.581 0.588 0.596 0.602 0.609 0.616 0.622 0.629 0.635 0.641 0.647 0.653 0.658
66
+ 0.129 0.149 0.168 0.187 0.205 0.223 0.240 0.256 0.272 0.288 0.303 0.318 0.332 0.346 0.360 0.373 0.386 0.399 0.411 0.423 0.434 0.446 0.457 0.467 0.478 0.488 0.498 0.507 0.517 0.526 0.535 0.544 0.552 0.561 0.569 0.577 0.584 0.592 0.599 0.606 0.613 0.620 0.627 0.633 0.639 0.645 0.651 0.657 0.663 0.669
67
+ 0.133 0.154 0.173 0.192 0.211 0.229 0.247 0.263 0.280 0.296 0.311 0.326 0.341 0.355 0.369 0.383 0.396 0.409 0.421 0.433 0.445 0.456 0.467 0.478 0.488 0.499 0.509 0.519 0.528 0.537 0.546 0.555 0.564 0.572 0.580 0.588 0.595 0.603 0.610 0.617 0.624 0.631 0.638 0.644 0.650 0.657 0.663 0.668 0.674 0.680
68
+ 0.137 0.158 0.179 0.198 0.217 0.236 0.254 0.271 0.288 0.304 0.320 0.335 0.350 0.365 0.379 0.392 0.406 0.418 0.431 0.443 0.455 0.467 0.478 0.489 0.499 0.510 0.520 0.529 0.539 0.548 0.557 0.566 0.574 0.583 0.591 0.599 0.606 0.614 0.621 0.628 0.635 0.642 0.649 0.655 0.661 0.667 0.673 0.679 0.685 0.690
69
+ 0.141 0.163 0.184 0.204 0.223 0.242 0.260 0.278 0.295 0.312 0.328 0.344 0.359 0.374 0.388 0.402 0.415 0.429 0.441 0.454 0.466 0.477 0.489 0.500 0.510 0.521 0.531 0.541 0.550 0.560 0.569 0.577 0.586 0.594 0.602 0.610 0.618 0.626 0.633 0.640 0.647 0.654 0.660 0.667 0.673 0.679 0.685 0.691 0.696 0.702
70
+ 0.146 0.168 0.189 0.210 0.230 0.249 0.268 0.286 0.304 0.321 0.337 0.353 0.369 0.384 0.398 0.413 0.426 0.440 0.453 0.465 0.477 0.489 0.500 0.512 0.522 0.533 0.543 0.553 0.563 0.572 0.581 0.590 0.598 0.607 0.615 0.623 0.631 0.638 0.646 0.653 0.660 0.666 0.673 0.679 0.685 0.691 0.697 0.703 0.708 0.714
71
+ 0.151 0.174 0.196 0.217 0.238 0.257 0.277 0.295 0.313 0.331 0.347 0.364 0.380 0.395 0.410 0.424 0.438 0.452 0.465 0.478 0.490 0.502 0.514 0.525 0.536 0.546 0.557 0.567 0.576 0.586 0.595 0.604 0.612 0.620 0.629 0.636 0.644 0.652 0.659 0.666 0.673 0.679 0.686 0.692 0.698 0.704 0.710 0.716 0.721 0.726
72
+ 0.156 0.180 0.203 0.224 0.246 0.266 0.286 0.305 0.323 0.341 0.358 0.375 0.391 0.407 0.422 0.437 0.451 0.464 0.478 0.491 0.503 0.515 0.527 0.538 0.549 0.560 0.570 0.580 0.590 0.599 0.608 0.617 0.626 0.634 0.642 0.650 0.658 0.665 0.672 0.679 0.686 0.693 0.699 0.705 0.711 0.717 0.723 0.728 0.734 0.739
73
+ 0.162 0.187 0.210 0.233 0.254 0.275 0.296 0.315 0.334 0.353 0.370 0.387 0.404 0.420 0.435 0.450 0.464 0.478 0.492 0.505 0.517 0.530 0.541 0.553 0.564 0.575 0.585 0.595 0.605 0.614 0.623 0.632 0.641 0.649 0.657 0.665 0.672 0.680 0.687 0.694 0.700 0.707 0.713 0.719 0.725 0.731 0.737 0.742 0.747 0.753
74
+ 0.168 0.193 0.218 0.241 0.263 0.285 0.306 0.326 0.346 0.364 0.382 0.400 0.417 0.433 0.449 0.464 0.479 0.493 0.506 0.520 0.532 0.545 0.556 0.568 0.579 0.590 0.600 0.610 0.620 0.630 0.639 0.648 0.656 0.664 0.672 0.680 0.688 0.695 0.702 0.709 0.716 0.722 0.728 0.734 0.740 0.746 0.751 0.757 0.762 0.767
75
+ 0.176 0.202 0.227 0.251 0.275 0.297 0.319 0.340 0.360 0.379 0.397 0.415 0.432 0.449 0.465 0.480 0.495 0.510 0.523 0.537 0.550 0.562 0.574 0.586 0.597 0.607 0.618 0.628 0.638 0.647 0.656 0.665 0.673 0.682 0.690 0.697 0.705 0.712 0.719 0.725 0.732 0.738 0.744 0.750 0.756 0.761 0.767 0.772 0.777 0.782
76
+ 0.184 0.211 0.238 0.263 0.287 0.310 0.332 0.353 0.374 0.394 0.413 0.431 0.449 0.466 0.482 0.498 0.513 0.527 0.541 0.555 0.568 0.580 0.592 0.604 0.615 0.626 0.636 0.646 0.656 0.665 0.674 0.682 0.691 0.699 0.707 0.714 0.721 0.728 0.735 0.742 0.748 0.754 0.760 0.766 0.772 0.778 0.783 0.788 0.793 0.798
77
+ 0.194 0.222 0.250 0.276 0.301 0.325 0.348 0.370 0.391 0.411 0.431 0.449 0.467 0.484 0.501 0.517 0.532 0.547 0.561 0.575 0.588 0.600 0.612 0.624 0.635 0.646 0.656 0.666 0.675 0.684 0.693 0.702 0.710 0.718 0.726 0.733 0.740 0.747 0.754 0.760 0.766 0.772 0.778 0.783 0.789 0.794 0.799 0.804 0.809 0.813
78
+ 0.204 0.233 0.262 0.289 0.315 0.340 0.364 0.386 0.408 0.429 0.449 0.468 0.487 0.504 0.521 0.537 0.553 0.567 0.582 0.595 0.608 0.621 0.633 0.644 0.656 0.666 0.676 0.686 0.696 0.705 0.713 0.722 0.730 0.737 0.745 0.752 0.759 0.766 0.772 0.778 0.784 0.790 0.795 0.801 0.806 0.811 0.816 0.820 0.825 0.829
79
+ 0.214 0.245 0.275 0.303 0.330 0.356 0.380 0.404 0.427 0.448 0.469 0.488 0.507 0.525 0.542 0.558 0.574 0.589 0.603 0.617 0.630 0.643 0.655 0.666 0.677 0.688 0.698 0.707 0.717 0.725 0.734 0.742 0.750 0.757 0.765 0.772 0.778 0.785 0.791 0.797 0.802 0.808 0.813 0.818 0.823 0.828 0.833 0.837 0.841 0.845
80
+ 0.225 0.258 0.289 0.319 0.347 0.374 0.400 0.424 0.447 0.470 0.491 0.511 0.530 0.548 0.566 0.582 0.598 0.613 0.627 0.641 0.654 0.667 0.678 0.690 0.701 0.711 0.721 0.730 0.739 0.748 0.756 0.764 0.772 0.779 0.786 0.793 0.799 0.805 0.811 0.817 0.822 0.827 0.832 0.837 0.842 0.846 0.851 0.855 0.859 0.863
81
+ 0.240 0.275 0.308 0.339 0.368 0.397 0.424 0.449 0.473 0.496 0.517 0.538 0.557 0.576 0.593 0.611 0.626 0.641 0.656 0.669 0.682 0.695 0.706 0.717 0.728 0.738 0.747 0.756 0.765 0.773 0.781 0.789 0.796 0.803 0.810 0.816 0.822 0.828 0.833 0.839 0.844 0.848 0.853 0.858 0.862 0.866 0.870 0.874 0.877 0.881
82
+ 0.258 0.295 0.330 0.362 0.393 0.423 0.451 0.477 0.502 0.525 0.547 0.568 0.588 0.607 0.624 0.641 0.657 0.672 0.686 0.699 0.712 0.724 0.735 0.746 0.756 0.765 0.775 0.783 0.791 0.799 0.807 0.814 0.821 0.827 0.834 0.839 0.845 0.850 0.855 0.860 0.865 0.869 0.874 0.878 0.882 0.886 0.889 0.893 0.896 0.899
83
+ 0.278 0.317 0.354 0.389 0.422 0.453 0.482 0.509 0.534 0.558 0.581 0.602 0.622 0.641 0.658 0.675 0.690 0.705 0.719 0.732 0.744 0.755 0.766 0.776 0.786 0.795 0.804 0.812 0.820 0.827 0.834 0.841 0.847 0.853 0.858 0.864 0.869 0.873 0.878 0.882 0.887 0.891 0.894 0.898 0.901 0.905 0.908 0.911 0.914 0.917
84
+ 0.299 0.341 0.381 0.418 0.453 0.485 0.516 0.544 0.570 0.595 0.617 0.639 0.659 0.678 0.695 0.711 0.726 0.741 0.754 0.766 0.778 0.789 0.799 0.809 0.818 0.826 0.834 0.841 0.848 0.855 0.861 0.867 0.873 0.878 0.883 0.888 0.892 0.897 0.901 0.904 0.908 0.912 0.915 0.918 0.921 0.924 0.926 0.929 0.932 0.934
85
+ 0.324 0.370 0.414 0.453 0.490 0.524 0.556 0.585 0.612 0.637 0.660 0.681 0.701 0.719 0.736 0.752 0.767 0.780 0.792 0.804 0.815 0.825 0.834 0.843 0.851 0.858 0.865 0.872 0.878 0.884 0.889 0.895 0.900 0.904 0.908 0.912 0.916 0.920 0.923 0.926 0.929 0.932 0.935 0.938 0.940 0.942 0.945 0.947 0.949 0.951
86
+ 0.357 0.408 0.454 0.497 0.536 0.573 0.605 0.635 0.662 0.687 0.710 0.730 0.750 0.767 0.783 0.798 0.811 0.823 0.834 0.845 0.854 0.863 0.871 0.879 0.886 0.892 0.898 0.904 0.909 0.913 0.918 0.922 0.926 0.930 0.933 0.936 0.939 0.942 0.945 0.947 0.950 0.952 0.954 0.956 0.958 0.960 0.961 0.963 0.965 0.966
87
+ 0.398 0.454 0.506 0.552 0.593 0.631 0.664 0.694 0.721 0.745 0.767 0.786 0.804 0.819 0.834 0.846 0.858 0.868 0.878 0.887 0.895 0.902 0.908 0.914 0.920 0.925 0.930 0.934 0.938 0.941 0.945 0.948 0.951 0.954 0.956 0.958 0.961 0.963 0.965 0.966 0.968 0.970 0.971 0.972 0.974 0.975 0.976 0.977 0.978 0.979
88
+ 0.449 0.514 0.571 0.621 0.665 0.703 0.737 0.766 0.791 0.813 0.832 0.849 0.864 0.877 0.888 0.899 0.907 0.915 0.923 0.929 0.935 0.940 0.944 0.949 0.952 0.956 0.959 0.962 0.964 0.967 0.969 0.971 0.973 0.975 0.976 0.978 0.979 0.980 0.981 0.983 0.984 0.984 0.985 0.986 0.987 0.988 0.988 0.989 0.990 0.990
89
+ 0.521 0.598 0.662 0.717 0.761 0.798 0.828 0.853 0.874 0.891 0.905 0.917 0.927 0.936 0.944 0.950 0.955 0.960 0.964 0.968 0.971 0.974 0.976 0.978 0.980 0.982 0.984 0.985 0.986 0.987 0.988 0.989 0.990 0.991 0.992 0.992 0.993 0.993 0.994 0.994 0.995 0.995 0.995 0.996 0.996 0.996 0.997 0.997 0.997 0.997
90
+ 0.643 0.741 0.811 0.860 0.895 0.920 0.938 0.951 0.961 0.969 0.975 0.979 0.983 0.986 0.988 0.990 0.991 0.993 0.994 0.995 0.995 0.996 0.997 0.997 0.998 0.998 0.998 0.998 0.999 0.999 0.999 0.999 0.999 0.999 0.999 0.999 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000