ECOv003-L2T-STARS 1.6.0__tar.gz → 1.7.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 (90) hide show
  1. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT/VNP43NRT.py +23 -3
  2. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/process_julia_data_fusion.py +27 -16
  3. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS.egg-info/PKG-INFO +1 -1
  4. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS.egg-info/entry_points.txt +1 -1
  5. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/PKG-INFO +1 -1
  6. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/pyproject.toml +2 -2
  7. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/.github/workflows/ci.yml +0 -0
  8. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/.github/workflows/python-publish.yml +0 -0
  9. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/.gitignore +0 -0
  10. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/Dockerfile +0 -0
  11. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOSTRESS Granule Download Bias.ipynb +0 -0
  12. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOSTRESS Granule Download.ipynb +0 -0
  13. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/BRDF/BRDF.py +0 -0
  14. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/BRDF/SZA.py +0 -0
  15. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/BRDF/__init__.py +0 -0
  16. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/BRDF/statistical_radiative_transport.txt +0 -0
  17. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/BRDF/version.txt +0 -0
  18. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/ECOv003_DL.py +0 -0
  19. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/ECOv003_DL.xml +0 -0
  20. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/ECOv003_L2T_STARS.xml +0 -0
  21. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/L2TSTARSConfig.py +0 -0
  22. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/L2T_STARS.py +0 -0
  23. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/LPDAAC/LPDAACDataPool.py +0 -0
  24. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/LPDAAC/__init__.py +0 -0
  25. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/LPDAAC/version.txt +0 -0
  26. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/Manifest.toml +0 -0
  27. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/Project.toml +0 -0
  28. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VIIRS/VIIRSDataPool.py +0 -0
  29. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VIIRS/VIIRSDownloader.py +0 -0
  30. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VIIRS/VNP09GA.py +0 -0
  31. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VIIRS/VNP43IA4.py +0 -0
  32. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VIIRS/VNP43MA3.py +0 -0
  33. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VIIRS/__init__.py +0 -0
  34. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VIIRS/version.txt +0 -0
  35. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT/__init__.py +0 -0
  36. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT/process_VNP43NRT.jl +0 -0
  37. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT/version.txt +0 -0
  38. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT_jl/Manifest.toml +0 -0
  39. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT_jl/Project.toml +0 -0
  40. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT_jl/__init__.py +0 -0
  41. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.jl +0 -0
  42. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.py +0 -0
  43. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT_jl/src/VNP43NRT.jl +0 -0
  44. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/VNP43NRT_jl/src/__init__.py +0 -0
  45. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/__init__.py +0 -0
  46. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/calibrate_fine_to_coarse.py +0 -0
  47. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/cksum.py +0 -0
  48. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/constants.py +0 -0
  49. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/daterange/__init__.py +0 -0
  50. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/daterange/daterange.py +0 -0
  51. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/exceptions.py +0 -0
  52. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_L2T_STARS_runconfig.py +0 -0
  53. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_NDVI_coarse_image.py +0 -0
  54. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_NDVI_fine_image.py +0 -0
  55. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_STARS_inputs.py +0 -0
  56. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_albedo_coarse_image.py +0 -0
  57. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_albedo_fine_image.py +0 -0
  58. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_downsampled_filename.py +0 -0
  59. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_filename.py +0 -0
  60. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_input_staging_directory.py +0 -0
  61. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_model_state_tile_date_directory.py +0 -0
  62. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/generate_output_directory.py +0 -0
  63. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/instantiate_STARSDataFusion_jl.py +0 -0
  64. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/load_prior.py +0 -0
  65. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/login.py +0 -0
  66. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/main.py +0 -0
  67. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/prior.py +0 -0
  68. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/process_ECOSTRESS_data_fusion_distributed_bias.jl +0 -0
  69. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/process_STARS_product.py +0 -0
  70. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/retrieve_STARS_sources.py +0 -0
  71. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/runconfig.py +0 -0
  72. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/timer/__init__.py +0 -0
  73. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/timer/timer.py +0 -0
  74. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/version.py +0 -0
  75. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS/version.txt +0 -0
  76. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS.egg-info/SOURCES.txt +0 -0
  77. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS.egg-info/dependency_links.txt +0 -0
  78. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS.egg-info/requires.txt +0 -0
  79. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/ECOv003_L2T_STARS.egg-info/top_level.txt +0 -0
  80. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/LICENSE +0 -0
  81. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/README.md +0 -0
  82. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/STARS_memory_profile.jpeg +0 -0
  83. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/demo.py +0 -0
  84. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/example_L2T_STARS_with_download.py +0 -0
  85. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/makefile +0 -0
  86. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/mprofile_20241202193217.dat +0 -0
  87. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/mprofile_20241203112611.dat +0 -0
  88. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/setup.cfg +0 -0
  89. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/tests/test_import_ECOv003_L2T_STARS.py +0 -0
  90. {ecov003_l2t_stars-1.6.0 → ecov003_l2t_stars-1.7.0}/tests/test_import_dependencies.py +0 -0
@@ -7,6 +7,7 @@ import sys
7
7
  from datetime import date, timedelta, datetime
8
8
  from glob import glob
9
9
  from os.path import abspath, expanduser, join, basename, splitext, exists, dirname
10
+ import os
10
11
  from typing import Union, List
11
12
  import dateutil
12
13
  import numpy as np
@@ -115,9 +116,28 @@ def process_julia_BRDF(
115
116
  if initialize_julia:
116
117
  instantiate_VNP43NRT_jl(julia_source_directory)
117
118
 
118
- command = f'julia "{julia_script_filename}" "{band}" "{h}" "{v}" "{tile_width_cells}" "{start_date:%Y-%m-%d}" "{end_date:%Y-%m-%d}" "{reflectance_directory}" "{solar_zenith_directory}" "{sensor_zenith_directory}" "{relative_azimuth_directory}" "{SZA_filename}" "{output_directory}"'
119
- logger.info(command)
120
- subprocess.run(command, shell=True)
119
+ # Set up the environment for the julia script
120
+ julia_env = os.environ.copy()
121
+ # Ensure that julia uses its own bundled GDAL instead of conda's GDAL
122
+ julia_env.pop("GDAL_DATA")
123
+ julia_env.pop("GDAL_DRIVER_PATH")
124
+
125
+ command = [
126
+ "julia", julia_script_filename,
127
+ band,
128
+ f"{h}", f"{v}",
129
+ f"{tile_width_cells}",
130
+ f"{start_date:%Y-%m-%d}", f"{end_date:%Y-%m-%d}",
131
+ reflectance_directory,
132
+ solar_zenith_directory,
133
+ sensor_zenith_directory,
134
+ relative_azimuth_directory,
135
+ SZA_filename,
136
+ output_directory,
137
+ ]
138
+
139
+ logger.info(" ".join(command))
140
+ subprocess.run(command, env=julia_env)
121
141
 
122
142
  class BRDFRetrievalFailed(RuntimeError):
123
143
  pass
@@ -2,6 +2,7 @@ import subprocess
2
2
  from typing import Union
3
3
  from datetime import date
4
4
  from os.path import abspath, dirname, join, exists
5
+ import os
5
6
  import logging
6
7
 
7
8
  from .instantiate_STARSDataFusion_jl import instantiate_STARSDataFusion_jl
@@ -75,16 +76,26 @@ def process_julia_data_fusion(
75
76
  if initialize_julia:
76
77
  instantiate_STARSDataFusion_jl(STARS_source_directory)
77
78
 
79
+ # Set up the environment for the julia script
80
+ julia_env = os.environ.copy()
81
+ julia_env["JULIA_NUM_THREADS"] = str(threads)
82
+ # Ensure that julia uses its own bundled GDAL instead of conda's GDAL
83
+ julia_env.pop("GDAL_DATA")
84
+ julia_env.pop("GDAL_DRIVER_PATH")
85
+
78
86
  # Base Julia command with required arguments
79
- command = (
80
- f'export JULIA_NUM_THREADS={threads}; julia --threads {threads} '
81
- f'"{julia_script_filename}" {num_workers} "{tile}" "{coarse_cell_size}" '
82
- f'"{fine_cell_size}" "{VIIRS_start_date}" "{VIIRS_end_date}" '
83
- f'"{HLS_start_date}" "{HLS_end_date}" "{downsampled_directory}" '
84
- f'"{product_name}" "{posterior_filename}" "{posterior_UQ_filename}" '
85
- f'"{posterior_flag_filename}" "{posterior_bias_filename}" '
86
- f'"{posterior_bias_UQ_filename}"'
87
- )
87
+ command = [
88
+ "julia", "--threads", f"{threads}", julia_script_filename,
89
+ f"{num_workers}",
90
+ tile,
91
+ f"{coarse_cell_size}", f"{fine_cell_size}",
92
+ f"{VIIRS_start_date}", f"{VIIRS_end_date}",
93
+ f"{HLS_start_date}", f"{HLS_end_date}",
94
+ downsampled_directory, product_name,
95
+ posterior_filename, posterior_UQ_filename,
96
+ posterior_flag_filename,
97
+ posterior_bias_filename, posterior_bias_UQ_filename,
98
+ ]
88
99
 
89
100
  # Conditionally add prior arguments if all prior filenames are provided and exist
90
101
  if all(
@@ -99,14 +110,14 @@ def process_julia_data_fusion(
99
110
  ]
100
111
  ):
101
112
  logger.info("Passing prior into Julia data fusion system")
102
- command += (
103
- f' "{prior_filename}" "{prior_UQ_filename}" "{prior_bias_filename}" '
104
- f'"{prior_bias_UQ_filename}"'
105
- )
113
+ command += [
114
+ prior_filename, prior_UQ_filename,
115
+ prior_bias_filename, prior_bias_UQ_filename,
116
+ ]
106
117
  else:
107
118
  logger.info("No complete prior set found; running Julia data fusion without prior.")
108
119
 
109
- logger.info(f"Executing Julia command: {command}")
110
- # Execute the Julia command. Using shell=True as the command string includes shell syntax (export).
120
+ logger.info(f"Executing Julia command: {' '.join(command)}")
121
+ # Execute the Julia command, adding the environment changes
111
122
  # This assumes the Julia executable is in the system's PATH.
112
- subprocess.run(command, shell=True, check=False)
123
+ subprocess.run(command, check=False, env=julia_env)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ECOv003-L2T-STARS
3
- Version: 1.6.0
3
+ Version: 1.7.0
4
4
  Summary: ECOSTRESS Collection 3 JPL STARS Data Fusion Product Generating Executable (PGE)
5
5
  Author-email: "Gregory H. Halverson" <gregory.h.halverson@jpl.nasa.gov>
6
6
  Project-URL: Homepage, https://github.com/ECOSTRESS-Collection-3/ECOv003-L2T-STARS
@@ -1,3 +1,3 @@
1
1
  [console_scripts]
2
- ECOv003-DL = ECOv003_DL.ECOv003_DL:main
2
+ ECOv003-DL = ECOv003_L2T_STARS.ECOv003_DL:main
3
3
  ECOv003-L2T-STARS = ECOv003_L2T_STARS.main:main
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ECOv003-L2T-STARS
3
- Version: 1.6.0
3
+ Version: 1.7.0
4
4
  Summary: ECOSTRESS Collection 3 JPL STARS Data Fusion Product Generating Executable (PGE)
5
5
  Author-email: "Gregory H. Halverson" <gregory.h.halverson@jpl.nasa.gov>
6
6
  Project-URL: Homepage, https://github.com/ECOSTRESS-Collection-3/ECOv003-L2T-STARS
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ECOv003-L2T-STARS"
7
- version = "1.6.0"
7
+ version = "1.7.0"
8
8
  description = "ECOSTRESS Collection 3 JPL STARS Data Fusion Product Generating Executable (PGE)"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -61,4 +61,4 @@ exclude = []
61
61
 
62
62
  [project.scripts]
63
63
  ECOv003-L2T-STARS = "ECOv003_L2T_STARS.main:main"
64
- ECOv003-DL = "ECOv003_DL.ECOv003_DL:main"
64
+ ECOv003-DL = "ECOv003_L2T_STARS.ECOv003_DL:main"