BESS-JPL 1.15.1__tar.gz → 1.17.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.

Potentially problematic release.


This version of BESS-JPL might be problematic. Click here for more details.

Files changed (72) hide show
  1. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/LAI_from_NDVI.py +0 -1
  2. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/carbon_water_fluxes.py +0 -19
  3. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_C4_fraction.py +6 -1
  4. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_NDVI_maximum.py +3 -1
  5. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_NDVI_minimum.py +3 -1
  6. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_ball_berry_slope_C3.py +1 -1
  7. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_ball_berry_slope_C4.py +1 -1
  8. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_kn.py +1 -1
  9. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_peakVCmax_C3.py +3 -1
  10. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_peakVCmax_C4.py +3 -1
  11. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/model.py +6 -1
  12. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL.egg-info/PKG-INFO +1 -1
  13. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/PKG-INFO +1 -1
  14. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/pyproject.toml +1 -1
  15. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/.github/workflows/ci.yml +0 -0
  16. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/.github/workflows/python-publish.yml +0 -0
  17. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/.gitignore +0 -0
  18. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS Sensitivity.ipynb +0 -0
  19. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/BESS_JPL.py +0 -0
  20. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/C3_photosynthesis.py +0 -0
  21. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/C4_fraction.jpeg +0 -0
  22. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/C4_fraction.tif +0 -0
  23. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/C4_photosynthesis.py +0 -0
  24. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/FVC_from_NDVI.py +0 -0
  25. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/NDVI_maximum.jpeg +0 -0
  26. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/NDVI_maximum.tif +0 -0
  27. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/NDVI_minimum.jpeg +0 -0
  28. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/NDVI_minimum.tif +0 -0
  29. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/__init__.py +0 -0
  30. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/ball_berry_intercept_C3.jpeg +0 -0
  31. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/ball_berry_intercept_C3.tif +0 -0
  32. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/ball_berry_slope_C3.jpeg +0 -0
  33. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/ball_berry_slope_C3.tif +0 -0
  34. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/ball_berry_slope_C4.jpeg +0 -0
  35. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/ball_berry_slope_C4.tif +0 -0
  36. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/calculate_VCmax.py +0 -0
  37. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/canopy_energy_balance.py +0 -0
  38. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/canopy_longwave_radiation.py +0 -0
  39. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/canopy_shortwave_radiation.py +0 -0
  40. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/carbon_uptake_efficiency.jpeg +0 -0
  41. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/carbon_uptake_efficiency.tif +0 -0
  42. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/constants.py +0 -0
  43. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/interpolate_C3_C4.py +0 -0
  44. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/kn.jpeg +0 -0
  45. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/kn.tif +0 -0
  46. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_ball_berry_intercept_C3.py +0 -0
  47. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/load_carbon_uptake_efficiency.py +0 -0
  48. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/meteorology.py +0 -0
  49. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/peakVCmax_C3.jpeg +0 -0
  50. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/peakVCmax_C3.tif +0 -0
  51. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/peakVCmax_C4.jpeg +0 -0
  52. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/peakVCmax_C4.tif +0 -0
  53. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/process_BESS_table.py +0 -0
  54. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/soil_energy_balance.py +0 -0
  55. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL/version.txt +0 -0
  56. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL.egg-info/SOURCES.txt +0 -0
  57. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL.egg-info/dependency_links.txt +0 -0
  58. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL.egg-info/requires.txt +0 -0
  59. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/BESS_JPL.egg-info/top_level.txt +0 -0
  60. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/C4 Fraction.ipynb +0 -0
  61. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/Dockerfile +0 -0
  62. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/LICENSE +0 -0
  63. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/Li_2023_RSE.pdf +0 -0
  64. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/MANIFEST.in +0 -0
  65. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/Processing BESS with rasters with default parameters.ipynb +0 -0
  66. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/Processing BESS with rasters.ipynb +0 -0
  67. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/README.md +0 -0
  68. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/makefile +0 -0
  69. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/processing_BESS_with_rasters_and_default_parameters.py +0 -0
  70. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/setup.cfg +0 -0
  71. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/tests/test_import_BESS_JPL.py +0 -0
  72. {bess_jpl-1.15.1 → bess_jpl-1.17.0}/tests/test_import_dependencies.py +0 -0
@@ -23,7 +23,6 @@ def LAI_from_NDVI(
23
23
  Union[Raster, np.ndarray]: Converted LAI data.
24
24
  """
25
25
  fIPAR = rt.clip(NDVI - 0.05, min_fIPAR, max_fIPAR)
26
- fIPAR = np.where(fIPAR == 0, np.nan, fIPAR)
27
26
  LAI = rt.clip(-np.log(1 - fIPAR) * (1 / KPAR), min_LAI, max_LAI)
28
27
 
29
28
  return LAI
@@ -12,25 +12,6 @@ from .soil_energy_balance import soil_energy_balance
12
12
 
13
13
  PASSES = 1
14
14
 
15
-
16
- def load_ball_berry_intercept_C3(self, geometry: RasterGeometry) -> Raster:
17
- filename = join(abspath(dirname(__file__)), "ball_berry_intercept_C3.tif")
18
- image = rt.Raster.open(filename, geometry=geometry, resampling=self.resampling)
19
-
20
- return image
21
-
22
- def load_ball_berry_slope_C3(self, geometry: RasterGeometry) -> Raster:
23
- filename = join(abspath(dirname(__file__)), "ball_berry_slope_C3.tif")
24
- image = rt.Raster.open(filename, geometry=geometry, resampling=self.resampling)
25
-
26
- return image
27
-
28
- def load_ball_berry_slope_C4(self, geometry: RasterGeometry) -> Raster:
29
- filename = join(abspath(dirname(__file__)), "ball_berry_slope_C4.tif")
30
- image = rt.Raster.open(filename, geometry=geometry, resampling=self.resampling)
31
-
32
- return image
33
-
34
15
  def carbon_water_fluxes(
35
16
  canopy_temperature_K: np.ndarray, # canopy temperature in Kelvin
36
17
  soil_temperature_K: np.ndarray, # soil temperature in Kelvin
@@ -3,8 +3,13 @@ from os.path import join, abspath, dirname
3
3
  import rasters as rt
4
4
  from rasters import Raster, RasterGeometry
5
5
 
6
+ import numpy as np
7
+
6
8
  def load_C4_fraction(geometry: RasterGeometry = None, resampling: str = "nearest") -> Raster:
7
9
  filename = join(abspath(dirname(__file__)), "C4_fraction.tif")
8
- image = Raster.open(filename, geometry=geometry, resampling=resampling)
10
+ image = Raster.open(filename, geometry=geometry, resampling=resampling, nodata=np.nan)
11
+ image = rt.clip(image, 0, 100)
12
+ # Scale image to be between 0 and 1
13
+ image /= 100.0
9
14
 
10
15
  return image
@@ -3,8 +3,10 @@ from os.path import join, abspath, dirname
3
3
  import rasters as rt
4
4
  from rasters import Raster, RasterGeometry
5
5
 
6
+ import numpy as np
7
+
6
8
  def load_NDVI_maximum(geometry: RasterGeometry = None, resampling: str = "nearest") -> Raster:
7
9
  filename = join(abspath(dirname(__file__)), "NDVI_maximum.tif")
8
- image = Raster.open(filename, geometry=geometry, resampling=resampling)
10
+ image = Raster.open(filename, geometry=geometry, resampling=resampling, nodata=np.nan)
9
11
 
10
12
  return image
@@ -3,8 +3,10 @@ from os.path import join, abspath, dirname
3
3
  import rasters as rt
4
4
  from rasters import Raster, RasterGeometry
5
5
 
6
+ import numpy as np
7
+
6
8
  def load_NDVI_minimum(geometry: RasterGeometry = None, resampling: str = "nearest") -> Raster:
7
9
  filename = join(abspath(dirname(__file__)), "NDVI_minimum.tif")
8
- image = Raster.open(filename, geometry=geometry, resampling=resampling)
10
+ image = Raster.open(filename, geometry=geometry, resampling=resampling, nodata=np.nan)
9
11
 
10
12
  return image
@@ -5,6 +5,6 @@ from rasters import Raster, RasterGeometry
5
5
 
6
6
  def load_ball_berry_slope_C3(geometry: RasterGeometry = None, resampling: str = "nearest") -> Raster:
7
7
  filename = join(abspath(dirname(__file__)), "ball_berry_slope_C3.tif")
8
- image = Raster.open(filename, geometry=geometry, resampling="nearest")
8
+ image = Raster.open(filename, geometry=geometry, resampling=resampling)
9
9
 
10
10
  return image
@@ -5,6 +5,6 @@ from rasters import Raster, RasterGeometry
5
5
 
6
6
  def load_ball_berry_slope_C4(geometry: RasterGeometry = None, resampling: str = "nearest") -> Raster:
7
7
  filename = join(abspath(dirname(__file__)), "ball_berry_slope_C4.tif")
8
- image = Raster.open(filename, geometry=geometry, resampling="nearest")
8
+ image = Raster.open(filename, geometry=geometry, resampling=resampling)
9
9
 
10
10
  return image
@@ -5,6 +5,6 @@ from rasters import Raster, RasterGeometry
5
5
 
6
6
  def load_kn(geometry: RasterGeometry = None, resampling: str = "nearest") -> Raster:
7
7
  filename = join(abspath(dirname(__file__)), "kn.tif")
8
- image = Raster.open(filename, geometry=geometry, resampling="nearest")
8
+ image = Raster.open(filename, geometry=geometry, resampling=resampling)
9
9
 
10
10
  return image
@@ -3,8 +3,10 @@ from os.path import join, abspath, dirname
3
3
  import rasters as rt
4
4
  from rasters import Raster, RasterGeometry
5
5
 
6
+ import numpy as np
7
+
6
8
  def load_peakVCmax_C3(geometry: RasterGeometry = None, resampling: str = "nearest") -> Raster:
7
9
  filename = join(abspath(dirname(__file__)), "peakVCmax_C3.tif")
8
- image = Raster.open(filename, geometry=geometry, resampling="nearest")
10
+ image = Raster.open(filename, geometry=geometry, resampling=resampling, nodata=np.nan)
9
11
 
10
12
  return image
@@ -3,8 +3,10 @@ from os.path import join, abspath, dirname
3
3
  import rasters as rt
4
4
  from rasters import Raster, RasterGeometry
5
5
 
6
+ import numpy as np
7
+
6
8
  def load_peakVCmax_C4(geometry: RasterGeometry = None, resampling: str = "nearest") -> Raster:
7
9
  filename = join(abspath(dirname(__file__)), "peakVCmax_C4.tif")
8
- image = Raster.open(filename, geometry=geometry, resampling="nearest")
10
+ image = Raster.open(filename, geometry=geometry, resampling=resampling, nodata=np.nan)
9
11
 
10
12
  return image
@@ -185,7 +185,12 @@ def BESS_JPL(
185
185
  logger.warning(f"Variable '{name}' has a different size: {size} (expected: {reference_size}).")
186
186
 
187
187
  # check if any of the FLiES outputs are not given
188
- if None in (Rg, VISdiff, VISdir, NIRdiff, NIRdir, UV, albedo_visible, albedo_NIR):
188
+ flies_variables = [Rg, VISdiff, VISdir, NIRdiff, NIRdir, UV, albedo_visible, albedo_NIR]
189
+ flies_variables_missing = False
190
+ for variable in flies_variables:
191
+ if variable is None:
192
+ flies_variables_missing = True
193
+ if flies_variables_missing:
189
194
  # load cloud optical thickness if not provided
190
195
  if COT is None:
191
196
  COT = GEOS5FP_connection.COT(time_UTC=time_UTC, geometry=geometry, resampling=resampling)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BESS-JPL
3
- Version: 1.15.1
3
+ Version: 1.17.0
4
4
  Summary: Breathing Earth System Simulator (BESS) Gross Primary Production (GPP) and Evapotranspiration (ET) Model Python
5
5
  Author-email: Gregory Halverson <gregory.h.halverson@jpl.nasa.gov>
6
6
  Project-URL: Homepage, https://github.com/JPL-Evapotranspiration-Algorithms/BESS-JPL
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BESS-JPL
3
- Version: 1.15.1
3
+ Version: 1.17.0
4
4
  Summary: Breathing Earth System Simulator (BESS) Gross Primary Production (GPP) and Evapotranspiration (ET) Model Python
5
5
  Author-email: Gregory Halverson <gregory.h.halverson@jpl.nasa.gov>
6
6
  Project-URL: Homepage, https://github.com/JPL-Evapotranspiration-Algorithms/BESS-JPL
@@ -3,7 +3,7 @@ requires = ["setuptools>=60", "setuptools-scm>=8.0", "wheel"]
3
3
 
4
4
  [project]
5
5
  name = "BESS-JPL"
6
- version = "1.15.1"
6
+ version = "1.17.0"
7
7
  description = "Breathing Earth System Simulator (BESS) Gross Primary Production (GPP) and Evapotranspiration (ET) Model Python"
8
8
  readme = "README.md"
9
9
  authors = [
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes