ECOv003-L2T-STARS 1.0.1__py3-none-any.whl → 1.1.0__py3-none-any.whl

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 (75) hide show
  1. ECOv003_L2T_STARS/BRDF/BRDF.py +57 -0
  2. ECOv003_L2T_STARS/BRDF/SZA.py +65 -0
  3. ECOv003_L2T_STARS/BRDF/__init__.py +1 -0
  4. ECOv003_L2T_STARS/BRDF/statistical_radiative_transport.txt +90 -0
  5. ECOv003_L2T_STARS/BRDF/version.txt +1 -0
  6. ECOv003_L2T_STARS/ECOv003_DL.py +527 -0
  7. ECOv003_L2T_STARS/ECOv003_DL.xml +47 -0
  8. ECOv003_L2T_STARS/ECOv003_L2T_STARS.py +162 -0
  9. ECOv003_L2T_STARS/ECOv003_L2T_STARS.xml +47 -0
  10. ECOv003_L2T_STARS/L2TSTARSConfig.py +188 -0
  11. ECOv003_L2T_STARS/L2T_STARS.py +489 -0
  12. ECOv003_L2T_STARS/LPDAAC/LPDAACDataPool.py +444 -0
  13. ECOv003_L2T_STARS/LPDAAC/__init__.py +9 -0
  14. ECOv003_L2T_STARS/LPDAAC/version.txt +1 -0
  15. ECOv003_L2T_STARS/Manifest.toml +2332 -0
  16. ECOv003_L2T_STARS/Project.toml +14 -0
  17. ECOv003_L2T_STARS/VIIRS/VIIRSDataPool.py +294 -0
  18. ECOv003_L2T_STARS/VIIRS/VIIRSDownloader.py +26 -0
  19. ECOv003_L2T_STARS/VIIRS/VIIRS_CMR_LOGIN.py +36 -0
  20. ECOv003_L2T_STARS/VIIRS/VNP09GA.py +1277 -0
  21. ECOv003_L2T_STARS/VIIRS/VNP43IA4.py +288 -0
  22. ECOv003_L2T_STARS/VIIRS/VNP43MA3.py +323 -0
  23. ECOv003_L2T_STARS/VIIRS/__init__.py +9 -0
  24. ECOv003_L2T_STARS/VIIRS/version.txt +1 -0
  25. ECOv003_L2T_STARS/VNP43NRT/VNP43NRT.py +863 -0
  26. ECOv003_L2T_STARS/VNP43NRT/__init__.py +1 -0
  27. ECOv003_L2T_STARS/VNP43NRT/process_VNP43NRT.jl +169 -0
  28. ECOv003_L2T_STARS/VNP43NRT/version.txt +1 -0
  29. ECOv003_L2T_STARS/VNP43NRT_jl/Manifest.toml +995 -0
  30. ECOv003_L2T_STARS/VNP43NRT_jl/Project.toml +15 -0
  31. ECOv003_L2T_STARS/VNP43NRT_jl/__init__.py +0 -0
  32. ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.jl +25 -0
  33. ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.py +13 -0
  34. ECOv003_L2T_STARS/VNP43NRT_jl/src/VNP43NRT.jl +411 -0
  35. ECOv003_L2T_STARS/VNP43NRT_jl/src/__init__.py +0 -0
  36. ECOv003_L2T_STARS/__init__.py +3 -0
  37. ECOv003_L2T_STARS/calibrate_fine_to_coarse.py +60 -0
  38. ECOv003_L2T_STARS/constants.py +38 -0
  39. ECOv003_L2T_STARS/daterange/__init__.py +1 -0
  40. ECOv003_L2T_STARS/daterange/daterange.py +35 -0
  41. ECOv003_L2T_STARS/generate_L2T_STARS_runconfig.py +249 -0
  42. ECOv003_L2T_STARS/generate_NDVI_coarse_directory.py +21 -0
  43. ECOv003_L2T_STARS/generate_NDVI_coarse_image.py +30 -0
  44. ECOv003_L2T_STARS/generate_NDVI_fine_directory.py +14 -0
  45. ECOv003_L2T_STARS/generate_NDVI_fine_image.py +28 -0
  46. ECOv003_L2T_STARS/generate_STARS_inputs.py +231 -0
  47. ECOv003_L2T_STARS/generate_albedo_coarse_directory.py +18 -0
  48. ECOv003_L2T_STARS/generate_albedo_coarse_image.py +30 -0
  49. ECOv003_L2T_STARS/generate_albedo_fine_directory.py +17 -0
  50. ECOv003_L2T_STARS/generate_albedo_fine_image.py +30 -0
  51. ECOv003_L2T_STARS/generate_filename.py +37 -0
  52. ECOv003_L2T_STARS/generate_input_staging_directory.py +23 -0
  53. ECOv003_L2T_STARS/generate_model_state_tile_date_directory.py +28 -0
  54. ECOv003_L2T_STARS/generate_output_directory.py +28 -0
  55. ECOv003_L2T_STARS/install_STARS_jl.py +43 -0
  56. ECOv003_L2T_STARS/instantiate_STARS_jl.py +38 -0
  57. ECOv003_L2T_STARS/load_prior.py +248 -0
  58. ECOv003_L2T_STARS/prior.py +56 -0
  59. ECOv003_L2T_STARS/process_ECOSTRESS_data_fusion_distributed_bias.jl +420 -0
  60. ECOv003_L2T_STARS/process_STARS_product.py +507 -0
  61. ECOv003_L2T_STARS/process_julia_data_fusion.py +110 -0
  62. ECOv003_L2T_STARS/retrieve_STARS_sources.py +101 -0
  63. ECOv003_L2T_STARS/runconfig.py +70 -0
  64. ECOv003_L2T_STARS/timer/__init__.py +1 -0
  65. ECOv003_L2T_STARS/timer/timer.py +77 -0
  66. ECOv003_L2T_STARS/version.py +8 -0
  67. ECOv003_L2T_STARS/version.txt +1 -0
  68. {ECOv003_L2T_STARS-1.0.1.dist-info → ecov003_l2t_stars-1.1.0.dist-info}/METADATA +30 -23
  69. ecov003_l2t_stars-1.1.0.dist-info/RECORD +73 -0
  70. {ECOv003_L2T_STARS-1.0.1.dist-info → ecov003_l2t_stars-1.1.0.dist-info}/WHEEL +1 -1
  71. ecov003_l2t_stars-1.1.0.dist-info/entry_points.txt +3 -0
  72. ecov003_l2t_stars-1.1.0.dist-info/top_level.txt +1 -0
  73. ECOv003_L2T_STARS-1.0.1.dist-info/RECORD +0 -5
  74. ECOv003_L2T_STARS-1.0.1.dist-info/top_level.txt +0 -1
  75. {ECOv003_L2T_STARS-1.0.1.dist-info → ecov003_l2t_stars-1.1.0.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,101 @@
1
+ from datetime import date
2
+ import logging
3
+
4
+ from dateutil.rrule import rrule, DAILY
5
+
6
+ from rasters import RasterGeometry
7
+
8
+ import colored_logging as cl
9
+
10
+ from harmonized_landsat_sentinel import HLS2CMR
11
+
12
+ from harmonized_landsat_sentinel import (
13
+ HLSTileNotAvailable,
14
+ HLSSentinelNotAvailable,
15
+ HLSLandsatNotAvailable,
16
+ HLSDownloadFailed,
17
+ HLSNotAvailable,
18
+ )
19
+
20
+ from ECOv003_exit_codes import *
21
+
22
+ from .daterange import get_date
23
+ from .VNP43NRT import VNP43NRT
24
+
25
+ logger = logging.getLogger(__name__)
26
+
27
+ def retrieve_STARS_sources(
28
+ tile: str,
29
+ geometry: RasterGeometry,
30
+ HLS_start_date: date,
31
+ HLS_end_date: date,
32
+ VIIRS_start_date: date,
33
+ VIIRS_end_date: date,
34
+ HLS_connection: HLS2CMR,
35
+ VIIRS_connection: VNP43NRT, # Using VNP43NRT as a representative VIIRS connection
36
+ ):
37
+ """
38
+ Retrieves necessary Harmonized Landsat Sentinel (HLS) and VIIRS source data.
39
+
40
+ This function downloads HLS Sentinel and Landsat data, and prefetches VIIRS VNP09GA
41
+ data for the specified tile and date ranges. It includes error handling for
42
+ download failures and data unavailability.
43
+
44
+ Args:
45
+ tile (str): The HLS tile ID.
46
+ geometry (RasterGeometry): The spatial geometry of the area of interest.
47
+ HLS_start_date (date): The start date for HLS data retrieval.
48
+ HLS_end_date (date): The end date for HLS data retrieval.
49
+ VIIRS_start_date (date): The start date for VIIRS data retrieval.
50
+ VIIRS_end_date (date): The end date for VIIRS data retrieval.
51
+ HLS_connection (HLS2CMR): An initialized HLS data connection object.
52
+ VIIRS_connection (VNP43NRT): An initialized VIIRS data connection object
53
+ (can be VNP43NRT, VNP43IA4, or VNP43MA3).
54
+
55
+ Raises:
56
+ DownloadFailed: If an HLS download fails.
57
+ AuxiliaryLatency: If HLS data for a given tile/date is not available (latency issue).
58
+ """
59
+ logger.info(
60
+ f"Retrieving HLS sources for tile {cl.place(tile)} from {cl.time(HLS_start_date)} to {cl.time(HLS_end_date)}"
61
+ )
62
+ # Iterate through each day in the HLS date range to retrieve Sentinel and Landsat data
63
+ for processing_date in [
64
+ get_date(dt) for dt in rrule(DAILY, dtstart=HLS_start_date, until=HLS_end_date)
65
+ ]:
66
+ try:
67
+ logger.info(
68
+ f"Retrieving HLS Sentinel at tile {cl.place(tile)} on date {cl.time(processing_date)}"
69
+ )
70
+ # Attempt to download HLS Sentinel data
71
+ HLS_connection.sentinel(tile=tile, date_UTC=processing_date)
72
+ logger.info(
73
+ f"Retrieving HLS Landsat at tile {cl.place(tile)} on date {cl.time(processing_date)}"
74
+ )
75
+ # Attempt to download HLS Landsat data
76
+ HLS_connection.landsat(tile=tile, date_UTC=processing_date)
77
+ except HLSDownloadFailed as e:
78
+ logger.exception(e)
79
+ raise AuxiliaryDownloadFailed(e)
80
+ except (
81
+ HLSTileNotAvailable,
82
+ HLSSentinelNotAvailable,
83
+ HLSLandsatNotAvailable,
84
+ ) as e:
85
+ # Log warnings for data not being available, but continue processing
86
+ logger.warning(e)
87
+ except Exception as e:
88
+ # Catch other unexpected exceptions during HLS retrieval
89
+ logger.warning("Exception raised while retrieving HLS tiles")
90
+ logger.exception(e)
91
+ continue # Continue to the next date even if one HLS retrieval fails
92
+
93
+ logger.info(
94
+ f"Retrieving VIIRS sources for tile {cl.place(tile)} from {cl.time(VIIRS_start_date)} to {cl.time(VIIRS_end_date)}"
95
+ )
96
+ # Prefetch VNP09GA data for the specified VIIRS date range and geometry
97
+ VIIRS_connection.prefetch_VNP09GA(
98
+ start_date=VIIRS_start_date,
99
+ end_date=VIIRS_end_date,
100
+ geometry=geometry,
101
+ )
@@ -0,0 +1,70 @@
1
+ import logging
2
+ from os.path import exists
3
+
4
+ import untangle
5
+
6
+ from ECOv003_exit_codes import *
7
+
8
+ logger = logging.getLogger(__name__)
9
+
10
+ __author__ = 'Gregory Halverson'
11
+
12
+
13
+ def parse_scalar(scalar):
14
+ return scalar.cdata
15
+
16
+
17
+ def parse_vector(vector):
18
+ data = [
19
+ element.cdata
20
+ for element
21
+ in vector.children
22
+ ]
23
+
24
+ return data
25
+
26
+
27
+ def parse_group(group):
28
+ result = {}
29
+
30
+ if hasattr(group, 'scalar'):
31
+ for element in group.scalar:
32
+ result[element['name']] = parse_scalar(element)
33
+
34
+ if hasattr(group, 'vector'):
35
+ for element in group.vector:
36
+ result[element['name']] = parse_vector(element)
37
+
38
+ if hasattr(group, 'group'):
39
+ for element in group.group:
40
+ result[element['name']] = parse_group(element)
41
+
42
+ return result
43
+
44
+
45
+ def parse_runconfig(text: str) -> dict:
46
+ tree = untangle.parse(text)
47
+ config = parse_group(tree.input)
48
+
49
+ return config
50
+
51
+
52
+ def read_runconfig(filename: str) -> dict:
53
+ if not exists(filename):
54
+ raise UnableToOpenRunConfig(f"run-config file does not exist: {filename}")
55
+
56
+ try:
57
+ tree = untangle.parse(filename)
58
+ config = parse_group(tree.input)
59
+ except ECOSTRESSExitCodeException as e:
60
+ raise e
61
+ except Exception as e:
62
+ logger.exception(e)
63
+ raise UnableToParseRunConfig(f"unable to parse run-config file: {filename}")
64
+
65
+ return config
66
+
67
+
68
+ class ECOSTRESSRunConfig:
69
+ def read_runconfig(self, filename: str) -> dict:
70
+ return read_runconfig(filename)
@@ -0,0 +1 @@
1
+ from .timer import *
@@ -0,0 +1,77 @@
1
+ """
2
+ This is a minimalistic performance timer.
3
+ """
4
+ import time
5
+
6
+ __author__ = "Gregory Halverson"
7
+
8
+ DEFAULT_FORMAT = "0.2f"
9
+
10
+ class Timer(object):
11
+ """
12
+ This is a minimalistic performance timer.
13
+ """
14
+
15
+ def __init__(self):
16
+ self._start_time = None
17
+ self._end_time = None
18
+ self.start()
19
+
20
+ def __enter__(self, *args, **kwargs):
21
+ self.start()
22
+ return self
23
+
24
+ def __exit__(self, *args, **kwargs):
25
+ self.end()
26
+
27
+ def __repr__(self):
28
+ # print("Timer.__repr__")
29
+ return self.__format__(format_string=DEFAULT_FORMAT)
30
+
31
+ def __str__(self):
32
+ # print("Timer.__str__")
33
+ return self.__repr__()
34
+
35
+ def __format__(self, format_string=DEFAULT_FORMAT):
36
+ if format_string is None or format_string == "":
37
+ format_string = DEFAULT_FORMAT
38
+
39
+ return format(self.duration, format_string)
40
+
41
+ @property
42
+ def now(self):
43
+ # return datetime.now()
44
+ return time.perf_counter()
45
+
46
+ def start(self):
47
+ self._start_time = self.now
48
+
49
+ return self.start_time
50
+
51
+ @property
52
+ def start_time(self):
53
+ return self._start_time
54
+
55
+ def end(self):
56
+ self._end_time = self.now
57
+
58
+ return self.end_time
59
+
60
+ @property
61
+ def end_time(self):
62
+ return self._end_time
63
+
64
+ @property
65
+ def duration(self):
66
+ if self.start_time is None:
67
+ raise Exception("timer never started")
68
+
69
+ if self.end_time is None:
70
+ end_time = self.now
71
+ else:
72
+ end_time = self.end_time
73
+
74
+ duration = end_time - self.start_time
75
+
76
+ return duration
77
+
@@ -0,0 +1,8 @@
1
+ from os.path import join, abspath, dirname
2
+
3
+ # Read the version from a version.txt file located in the same directory as this script.
4
+ with open(join(abspath(dirname(__file__)), "version.txt")) as f:
5
+ version = f.read().strip() # .strip() to remove any leading/trailing whitespace
6
+
7
+ __version__ = version
8
+ __author__ = "Gregory H. Halverson, Evan Davis"
@@ -0,0 +1 @@
1
+ 1.1.0
@@ -1,49 +1,43 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: ECOv003_L2T_STARS
3
- Version: 1.0.1
3
+ Version: 1.1.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
7
7
  Classifier: Programming Language :: Python :: 3
8
8
  Classifier: Operating System :: OS Independent
9
- Requires-Python: >=3.11
9
+ Requires-Python: >=3.10
10
10
  Description-Content-Type: text/markdown
11
11
  License-File: LICENSE
12
12
  Requires-Dist: colored-logging
13
+ Requires-Dist: ECOv002-CMR>=1.0.4
13
14
  Requires-Dist: ECOv002-granules
14
- Requires-Dist: ECOv002-CMR
15
- Requires-Dist: pandas
16
- Requires-Dist: pillow
17
- Requires-Dist: geopandas
18
- Requires-Dist: geos5fp
19
- Requires-Dist: harmonized-landsat-sentinel>=1.1.0
15
+ Requires-Dist: ECOv003-granules
16
+ Requires-Dist: ECOv003-exit-codes>=1.1.0
17
+ Requires-Dist: GEOS5FP
20
18
  Requires-Dist: h5py
19
+ Requires-Dist: harmonized-landsat-sentinel>=1.1.0
21
20
  Requires-Dist: matplotlib
22
21
  Requires-Dist: modland
23
- Requires-Dist: msgpack
24
- Requires-Dist: msgpack-numpy
25
- Requires-Dist: netCDF4
26
22
  Requires-Dist: numpy
27
- Requires-Dist: pyproj
28
- Requires-Dist: rasterio
29
- Requires-Dist: shapely
30
- Requires-Dist: scikit-image
31
- Requires-Dist: affine
32
- Requires-Dist: astropy
23
+ Requires-Dist: pandas
33
24
  Requires-Dist: pycksum
34
- Requires-Dist: pykdtree
35
- Requires-Dist: pyresample
25
+ Requires-Dist: pytictoc
36
26
  Requires-Dist: rasters
37
- Requires-Dist: scikit-learn
27
+ Requires-Dist: scikit-image
38
28
  Requires-Dist: scipy
39
29
  Requires-Dist: sentinel-tiles
40
- Requires-Dist: six
41
- Requires-Dist: tensorflow
30
+ Requires-Dist: shapely
42
31
  Requires-Dist: untangle
43
32
  Requires-Dist: xmltodict
44
33
  Provides-Extra: dev
34
+ Requires-Dist: build; extra == "dev"
45
35
  Requires-Dist: pytest>=6.0; extra == "dev"
46
36
  Requires-Dist: pytest-cov; extra == "dev"
37
+ Requires-Dist: jupyter; extra == "dev"
38
+ Requires-Dist: pytest; extra == "dev"
39
+ Requires-Dist: twine; extra == "dev"
40
+ Dynamic: license-file
47
41
 
48
42
  # ECOSTRESS Collection 3 Level 2 STARS Vegetation Index & Albedo
49
43
 
@@ -242,6 +236,19 @@ Import this package with the name `ECOv003_L2T_STARS` with underscores:
242
236
  import ECOv003_L2T_STARS
243
237
  ```
244
238
 
239
+ ### Command Line Usage
240
+
241
+ #### Command-Line Entry-Point for the `ECOv003-L2T-STARS` Product Generating Executable
242
+
243
+ ```bash
244
+ ECOv003-L2T-STARS <runconfig> [--date YYYY-MM-DD] [--spinup-days DAYS] [--target-resolution METERS] [--ndvi-resolution METERS] [--albedo-resolution METERS] [--use-vnp43nrt | --no-vnp43nrt] [--calibrate-fine] [--sources-only] [--no-remove-input-staging] [--no-remove-prior] [--no-remove-posterior] [--threads COUNT] [--num-workers COUNT] [--version]
245
+ ```
246
+
247
+ #### Command-Line Entry-Point for the `ECOv003-DL` Product Generating Executable
248
+
249
+ ```
250
+ ECOv003_DL <runconfig_filename> [--tiles TILE_ID [TILE_ID ...]] [--version]
251
+ ```
245
252
 
246
253
  ## References
247
254
 
@@ -0,0 +1,73 @@
1
+ ECOv003_L2T_STARS/ECOv003_DL.py,sha256=mqdyc6bx6i7ApbwWIvzdGKNrKAUepKjI2haiokLSS0U,24590
2
+ ECOv003_L2T_STARS/ECOv003_DL.xml,sha256=MwzGr_CjcBboWJ5L7GZMtf36yubrsVmUkOnuiFdH2To,2032
3
+ ECOv003_L2T_STARS/ECOv003_L2T_STARS.py,sha256=fiOAJZPvlk6gz8R57krzTsySWGnxbvssoaC7xfSNCqE,5521
4
+ ECOv003_L2T_STARS/ECOv003_L2T_STARS.xml,sha256=a6FZF_FhcmlMT9nedNJaDARtQJI8I_qXhf7ScFphVyU,2084
5
+ ECOv003_L2T_STARS/L2TSTARSConfig.py,sha256=nn4EzKvWYYMgJQPuJHFZoWtVUrP-PF3IY_e7I0BYT8E,8756
6
+ ECOv003_L2T_STARS/L2T_STARS.py,sha256=zlOCPP2Gs9FmgXqEzvhCqWh6KPi_3LbnVNjz_TMRrxw,24429
7
+ ECOv003_L2T_STARS/Manifest.toml,sha256=k6dzN8jpePGBIPqTkKFsYDv5ezV3DgO4ChHss_cI524,84043
8
+ ECOv003_L2T_STARS/Project.toml,sha256=Ywo_YsreqwgpbuNP3NWMsXw3VY2m8NTUrBwKCyBUbuM,657
9
+ ECOv003_L2T_STARS/__init__.py,sha256=C-Ut4I9wJrxVgLjpktu50trMuQNd73wS_gPJNxhp9UM,104
10
+ ECOv003_L2T_STARS/calibrate_fine_to_coarse.py,sha256=2YQHo0hO5EuvGt6TOF_1WypiqNDAR5gjvs0cYe9F_vQ,2345
11
+ ECOv003_L2T_STARS/constants.py,sha256=5-cxFiiq_zDKIvkK8Bi2iVVzST-15ytdu4QAvlLz_OY,1996
12
+ ECOv003_L2T_STARS/generate_L2T_STARS_runconfig.py,sha256=vaNooGrq3pahcabd8LIHzoncJe3Eh0L1mJeaQRC2Kwg,11122
13
+ ECOv003_L2T_STARS/generate_NDVI_coarse_directory.py,sha256=i1pFHFyMuj2e6aQ2wTgrF2-rAQXWe8LE2mbCRksj3c8,590
14
+ ECOv003_L2T_STARS/generate_NDVI_coarse_image.py,sha256=9XBBV1FFqjxkEFnr61xr9R2tnHQAlx2XN9KzLN8RApc,1215
15
+ ECOv003_L2T_STARS/generate_NDVI_fine_directory.py,sha256=rCYfGd_X1fLYsOfl9LtfS3E57FLDa-a_8G46ToQFM2U,531
16
+ ECOv003_L2T_STARS/generate_NDVI_fine_image.py,sha256=V-v2slDYEYf1scJCvxb3tZ6IvdpJTHuDPg6l_gNaoQI,911
17
+ ECOv003_L2T_STARS/generate_STARS_inputs.py,sha256=aNau4pPDYzfgYfkFUpOVO5oJ0kqnqXm8wIS7QTpQ0JQ,10580
18
+ ECOv003_L2T_STARS/generate_albedo_coarse_directory.py,sha256=7DLfI45L8tpXMG4CnZasJi1U7AN3HnA24Rcz8hy3Qy4,563
19
+ ECOv003_L2T_STARS/generate_albedo_coarse_image.py,sha256=nBOKiWVsRnQ2TeOktWVfZbwVy9cOCa2QeP_8H0QDWrA,1162
20
+ ECOv003_L2T_STARS/generate_albedo_fine_directory.py,sha256=0PaoccD0ktwzoUUMEd3zDWAP4Ed6nfyLRMUGaqHDrCA,554
21
+ ECOv003_L2T_STARS/generate_albedo_fine_image.py,sha256=mXXprX9jQ5aOXFjBIXFB6j-O4X4j9V_4_BYIUAuLbpQ,923
22
+ ECOv003_L2T_STARS/generate_filename.py,sha256=XppMoRiKBG1Rf-uWu95UCO1klK6uv5GdK9pvg3gDmnk,1359
23
+ ECOv003_L2T_STARS/generate_input_staging_directory.py,sha256=TlFKYliu6BbfDGLlwD0nlt0AZzDwKWeEgeTtzmicElY,800
24
+ ECOv003_L2T_STARS/generate_model_state_tile_date_directory.py,sha256=U9d7vcuA1Udq6tuyRKUIibfoOPsJKV5dp5AWT7qLcfc,939
25
+ ECOv003_L2T_STARS/generate_output_directory.py,sha256=Dr1zX6ljYzxFgC9XkocYBiF5aMGggHJejtpI9hbLwlM,889
26
+ ECOv003_L2T_STARS/install_STARS_jl.py,sha256=EBJYvEokDxVDW6UxcCCaGSbDVtUiUz29QJxntdMYqCM,1738
27
+ ECOv003_L2T_STARS/instantiate_STARS_jl.py,sha256=x9N7r4sxUoydEOlSUXvh_w3YBcy9ln7H2V_mK1M-Czk,1407
28
+ ECOv003_L2T_STARS/load_prior.py,sha256=nZ7n2jN6GdIiBKpyVqxoIn4bFDItU-siufXEkMbRLcc,11301
29
+ ECOv003_L2T_STARS/prior.py,sha256=fLE54pBIOG6sCas1G60nhn8LcHa2AqZ_eSY_J-MB4eM,2867
30
+ ECOv003_L2T_STARS/process_ECOSTRESS_data_fusion_distributed_bias.jl,sha256=LrFBCQp4ovJ6wI-oIIbvpdZEiSQtt0YmScbPmxlaSoA,15400
31
+ ECOv003_L2T_STARS/process_STARS_product.py,sha256=d26HdxcY9XBXa_MFCJfFm7BMCtmCaUrNdSVXiY0-D6Y,22406
32
+ ECOv003_L2T_STARS/process_julia_data_fusion.py,sha256=D4zSkihn6EC19009gFD3lXXxiCjsJwTPx0rqE_Wvgyw,5237
33
+ ECOv003_L2T_STARS/retrieve_STARS_sources.py,sha256=s6026PQ5PRQTPFgjrDa4vgbHa8OqUanBqn0Wdoq0DbA,3838
34
+ ECOv003_L2T_STARS/runconfig.py,sha256=TLaB3w6Y0qEZPqMa-YXuUzKSACrdpKmrozUNLh70aQw,1519
35
+ ECOv003_L2T_STARS/version.py,sha256=CcCeNt2pNqb8AQ_vHLUbLJciE8hxTMeGmN79vAYObYQ,354
36
+ ECOv003_L2T_STARS/version.txt,sha256=f70hDr7BH2WpcZDvkAeVxLjaOAWvP1objR0nJVaykso,5
37
+ ECOv003_L2T_STARS/BRDF/BRDF.py,sha256=41MCtcddMEd8cmW2K9wWyg71nkKjnom3Z64KX5NMehg,1532
38
+ ECOv003_L2T_STARS/BRDF/SZA.py,sha256=_J5ybmrg8ASVglXp4OvSoVutkDVeSxDBygfTe848sww,2529
39
+ ECOv003_L2T_STARS/BRDF/__init__.py,sha256=7HYw9eTuudpkgtpXAjFN1CpPjr6R9JsnW3bLtNBdRSM,20
40
+ ECOv003_L2T_STARS/BRDF/statistical_radiative_transport.txt,sha256=KHIGS6afnY7m0CzHki4zeuwqttjK38jgZg8-oYDn68o,26999
41
+ ECOv003_L2T_STARS/BRDF/version.txt,sha256=atlhOkVXmNbZLl9fOQq0uqcFlryGntaxf1zdKyhjXwY,5
42
+ ECOv003_L2T_STARS/LPDAAC/LPDAACDataPool.py,sha256=T4x43HdfUnnToYaabJLggrIwJibOpGewX7kyEczfOEw,16438
43
+ ECOv003_L2T_STARS/LPDAAC/__init__.py,sha256=o8qP8kTXyBp9dFKErVOwvcZuUo7BTVU0d5UyIsOKG8g,235
44
+ ECOv003_L2T_STARS/LPDAAC/version.txt,sha256=2_CXjsK1h6XWGH_cxBzOn_LA647vrboOtR84QKtu60Y,5
45
+ ECOv003_L2T_STARS/VIIRS/VIIRSDataPool.py,sha256=mht104y3ayLysElKf9IgaqX78I0Q-4NJJmfCxMgxDzs,8781
46
+ ECOv003_L2T_STARS/VIIRS/VIIRSDownloader.py,sha256=NCf3ZItLIBkZOZugYHuQMurziAsH7LbhLKbg-ZbWC7g,616
47
+ ECOv003_L2T_STARS/VIIRS/VIIRS_CMR_LOGIN.py,sha256=Osl7BPV6QsGKATFCmow0oDN-YA98SDBcLRCy3X9XaPQ,1094
48
+ ECOv003_L2T_STARS/VIIRS/VNP09GA.py,sha256=bh8DDVZb9naD2Uk8sf2CIr5os7z3n4nReltYgdpmxBE,44160
49
+ ECOv003_L2T_STARS/VIIRS/VNP43IA4.py,sha256=3qZbDHoLVhoiSr4hoojMxXXuDSNKkN4B9Dan-WMApNs,9881
50
+ ECOv003_L2T_STARS/VIIRS/VNP43MA3.py,sha256=T_1mxdg_SII0vXp_D422aAU7fE0-7TY46IZzRJPGJ1Q,11043
51
+ ECOv003_L2T_STARS/VIIRS/__init__.py,sha256=PVyb97Bg5gVMdcyC7JpErQCjJWSrOFdHJH4rNE__eL8,264
52
+ ECOv003_L2T_STARS/VIIRS/version.txt,sha256=Ke8b6aOkBgjuceFV64cco0Yw4jvu6a8pRBq6nQ6nbVQ,5
53
+ ECOv003_L2T_STARS/VNP43NRT/VNP43NRT.py,sha256=lDnj-TBbtGIGncoRtoB7X7M4NbhOK_1VYUEhxK56g8w,31508
54
+ ECOv003_L2T_STARS/VNP43NRT/__init__.py,sha256=8LkfUUFW0pyaO-1S134RnimfKYAKP6UfvzO7kPAx9mo,24
55
+ ECOv003_L2T_STARS/VNP43NRT/process_VNP43NRT.jl,sha256=pNa5Z0RcyXSul2pysPwEWwl1e6XuTX_XURqgJIsVfT8,7139
56
+ ECOv003_L2T_STARS/VNP43NRT/version.txt,sha256=atlhOkVXmNbZLl9fOQq0uqcFlryGntaxf1zdKyhjXwY,5
57
+ ECOv003_L2T_STARS/VNP43NRT_jl/Manifest.toml,sha256=v0cL68z_Rz5m9KNU2zq-5uteguerx17Ew2MsodSxfls,33665
58
+ ECOv003_L2T_STARS/VNP43NRT_jl/Project.toml,sha256=NLgEYessTTTNfuHIoRdMy0P7yEaB_CuYiLGV64ga2SI,614
59
+ ECOv003_L2T_STARS/VNP43NRT_jl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.jl,sha256=_rS1ZGjihED7hhXem6CE28qsELIouKEH4s7Hg9QKfHU,731
61
+ ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.py,sha256=v9qi4ZS8cMdQMPlqHo-mgmWcmqY5Gi7C-WZqrMBtMxQ,284
62
+ ECOv003_L2T_STARS/VNP43NRT_jl/src/VNP43NRT.jl,sha256=1sPyRKroycyGhj4vt4_KtrBdBB8As8znGEsMJLixA24,14019
63
+ ECOv003_L2T_STARS/VNP43NRT_jl/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
+ ECOv003_L2T_STARS/daterange/__init__.py,sha256=54kYb9tmsm5twxMqjJKeD__5kGkNDz3PppBEfReTfdo,25
65
+ ECOv003_L2T_STARS/daterange/daterange.py,sha256=EHa2Xt9fiJ1gbX7aa_QV_br1rAXjg3pHrLSRasOsOhM,959
66
+ ECOv003_L2T_STARS/timer/__init__.py,sha256=I_MQKp_aamBLUzZv0psEbRgs6GZLOJd4mmJ7bli0Ikc,21
67
+ ECOv003_L2T_STARS/timer/timer.py,sha256=tn5e3NQmsh55Jp9Fstjf-8KJW4F8UIJs-d_ZLooFYE8,1610
68
+ ecov003_l2t_stars-1.1.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
69
+ ecov003_l2t_stars-1.1.0.dist-info/METADATA,sha256=kMinO-30nE5AwzcXmQV_fzeQB-PKlujczuIFgrYvxpk,13306
70
+ ecov003_l2t_stars-1.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
+ ecov003_l2t_stars-1.1.0.dist-info/entry_points.txt,sha256=NuUuom7EwWtbe3ljZ6KxNbSheTFRnHVNT9rd16tuv0E,119
72
+ ecov003_l2t_stars-1.1.0.dist-info/top_level.txt,sha256=lRivA5MjbrabH4sv-LUstMGaLZ865wRQPpz9Kh6-plg,18
73
+ ecov003_l2t_stars-1.1.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.4.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ ECOv003-DL = ECOv003_DL.ECOv003_DL:main
3
+ ECOv003-L2T-STARS = ECOv003_L2T_STARS.ECOv003_L2T_STARS:main
@@ -0,0 +1 @@
1
+ ECOv003_L2T_STARS
@@ -1,5 +0,0 @@
1
- ECOv003_L2T_STARS-1.0.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
2
- ECOv003_L2T_STARS-1.0.1.dist-info/METADATA,sha256=eeVQ_L19HL63dCZiq_BeM0RpSljSqjQwmX6HoDuiw-w,12724
3
- ECOv003_L2T_STARS-1.0.1.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
4
- ECOv003_L2T_STARS-1.0.1.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
5
- ECOv003_L2T_STARS-1.0.1.dist-info/RECORD,,