ECOv003-L2T-STARS 1.1.0__py3-none-any.whl → 1.2.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.
@@ -265,33 +265,33 @@ class ECOv003DLConfig(ECOSTRESSRunConfig):
265
265
  runconfig = read_runconfig(filename)
266
266
 
267
267
  # Validate and extract working directory
268
- if "StaticAuxiliaryFileGroup" not in runconfig:
269
- raise MissingRunConfigValue(f"missing StaticAuxiliaryFileGroup in ECOv003_DL run-config: {filename}")
270
- if "ECOv003_DL_WORKING" not in runconfig["StaticAuxiliaryFileGroup"]:
268
+ if "StaticAncillaryFileGroup" not in runconfig:
269
+ raise MissingRunConfigValue(f"missing StaticAncillaryFileGroup in ECOv003_DL run-config: {filename}")
270
+ if "ECOv003_DL_WORKING" not in runconfig["StaticAncillaryFileGroup"]:
271
271
  raise MissingRunConfigValue(
272
- f"missing StaticAuxiliaryFileGroup/ECOv003_DL_WORKING in ECOv003_DL run-config: {filename}")
273
- working_directory = abspath(runconfig["StaticAuxiliaryFileGroup"]["ECOv003_DL_WORKING"])
272
+ f"missing StaticAncillaryFileGroup/ECOv003_DL_WORKING in ECOv003_DL run-config: {filename}")
273
+ working_directory = abspath(runconfig["StaticAncillaryFileGroup"]["ECOv003_DL_WORKING"])
274
274
  logger.info(f"working directory: {cl.dir(working_directory)}")
275
275
 
276
276
  # Validate and extract L2T STARS sources directory
277
- if "L2T_STARS_SOURCES" not in runconfig["StaticAuxiliaryFileGroup"]:
277
+ if "L2T_STARS_SOURCES" not in runconfig["StaticAncillaryFileGroup"]:
278
278
  raise MissingRunConfigValue(
279
- f"missing StaticAuxiliaryFileGroup/L2T_STARS_SOURCES in ECOv003_DL run-config: {filename}")
280
- L2T_STARS_sources_directory = abspath(runconfig["StaticAuxiliaryFileGroup"]["L2T_STARS_SOURCES"])
279
+ f"missing StaticAncillaryFileGroup/L2T_STARS_SOURCES in ECOv003_DL run-config: {filename}")
280
+ L2T_STARS_sources_directory = abspath(runconfig["StaticAncillaryFileGroup"]["L2T_STARS_SOURCES"])
281
281
  logger.info(f"L2T STARS sources directory: {cl.dir(L2T_STARS_sources_directory)}")
282
282
 
283
283
  # Validate and extract L2T STARS indices directory
284
- if "L2T_STARS_INDICES" not in runconfig["StaticAuxiliaryFileGroup"]:
284
+ if "L2T_STARS_INDICES" not in runconfig["StaticAncillaryFileGroup"]:
285
285
  raise MissingRunConfigValue(
286
- f"missing StaticAuxiliaryFileGroup/L2T_STARS_INDICES in ECOv003_DL run-config: {filename}")
287
- L2T_STARS_indices_directory = abspath(runconfig["StaticAuxiliaryFileGroup"]["L2T_STARS_INDICES"])
286
+ f"missing StaticAncillaryFileGroup/L2T_STARS_INDICES in ECOv003_DL run-config: {filename}")
287
+ L2T_STARS_indices_directory = abspath(runconfig["StaticAncillaryFileGroup"]["L2T_STARS_INDICES"])
288
288
  logger.info(f"L2T STARS indices directory: {cl.dir(L2T_STARS_indices_directory)}")
289
289
 
290
290
  # Validate and extract L2T STARS model directory
291
- if "L2T_STARS_MODEL" not in runconfig["StaticAuxiliaryFileGroup"]:
291
+ if "L2T_STARS_MODEL" not in runconfig["StaticAncillaryFileGroup"]:
292
292
  raise MissingRunConfigValue(
293
- f"missing StaticAuxiliaryFileGroup/L2T_STARS_MODEL in ECOv003_DL run-config: {filename}")
294
- L2T_STARS_model_directory = abspath(runconfig["StaticAuxiliaryFileGroup"]["L2T_STARS_MODEL"])
293
+ f"missing StaticAncillaryFileGroup/L2T_STARS_MODEL in ECOv003_DL run-config: {filename}")
294
+ L2T_STARS_model_directory = abspath(runconfig["StaticAncillaryFileGroup"]["L2T_STARS_MODEL"])
295
295
  logger.info(f"L2T STARS model directory: {cl.dir(L2T_STARS_model_directory)}")
296
296
 
297
297
  # Validate ProductPathGroup
@@ -28,7 +28,7 @@
28
28
  <element>L2T_LSTE_filename1</element>
29
29
  </vector>
30
30
  </group>
31
- <group name="StaticAuxiliaryFileGroup">
31
+ <group name="StaticAncillaryFileGroup">
32
32
  <scalar name="ECOv003_DL_WORKING">working_directory</scalar>
33
33
  <scalar name="L2T_STARS_SOURCES">L2T_STARS_sources_directory</scalar>
34
34
  <scalar name="L2T_STARS_INDICES">L2T_STARS_indices_directory</scalar>
@@ -26,6 +26,7 @@ def main():
26
26
  " python {sys.argv[0]} --runconfig /path/to/RunConfig.xml\n"
27
27
  " python {sys.argv[0]} --runconfig /path/to/RunConfig.xml --date 2023-01-15\n"
28
28
  " python {sys.argv[0]} --runconfig /path/to/RunConfig.xml --sources-only\n"
29
+ " python {sys.argv[0]} --runconfig /path/to/RunConfig.xml --overwrite\n" # Added example usage
29
30
  )
30
31
 
31
32
  # Positional argument for the runconfig file
@@ -128,6 +129,11 @@ def main():
128
129
  help=f"Number of Julia workers for distributed processing. Defaults to 4.",
129
130
  metavar="COUNT"
130
131
  )
132
+ parser.add_argument(
133
+ "--overwrite", # New argument for overwrite option
134
+ action="store_true",
135
+ help="Reproduce the output files even if they already exist.",
136
+ )
131
137
  parser.add_argument(
132
138
  "--version",
133
139
  action="version",
@@ -153,10 +159,11 @@ def main():
153
159
  remove_posterior=args.remove_posterior,
154
160
  threads=args.threads,
155
161
  num_workers=args.num_workers,
162
+ overwrite=args.overwrite, # Pass the new overwrite argument
156
163
  )
157
164
 
158
165
  sys.exit(exit_code)
159
166
 
160
167
 
161
168
  if __name__ == "__main__":
162
- main()
169
+ main()
@@ -22,7 +22,7 @@
22
22
  <scalar name="L2T_LSTE">L2T_LSTE_filename</scalar>
23
23
  <scalar name="L2T_STARS_PRIOR">prior_L2T_STARS_filename</scalar>
24
24
  </group>
25
- <group name="StaticAuxiliaryFileGroup">
25
+ <group name="StaticAncillaryFileGroup">
26
26
  <scalar name="L2T_STARS_MODEL">model_directory</scalar>
27
27
  <scalar name="L2T_STARS_INDICES">indices_directory</scalar>
28
28
  <scalar name="L2T_STARS_SOURCES">sources_directory</scalar>
@@ -37,48 +37,50 @@ class L2TSTARSConfig(ECOSTRESSRunConfig):
37
37
  # Read the run-config XML into a dictionary
38
38
  runconfig = self.read_runconfig(filename)
39
39
 
40
+ # reverting to StaticAncillaryFileGroup for now instead of StaticAuxiliaryFileGroup
41
+
40
42
  try:
41
- # Validate and extract working directory from StaticAuxiliaryFileGroup
42
- if "StaticAuxiliaryFileGroup" not in runconfig:
43
+ # Validate and extract working directory from StaticAncillaryFileGroup
44
+ if "StaticAncillaryFileGroup" not in runconfig:
43
45
  raise MissingRunConfigValue(
44
- f"Missing StaticAuxiliaryFileGroup in L2T_STARS run-config: {filename}"
46
+ f"Missing StaticAncillaryFileGroup in L2T_STARS run-config: {filename}"
45
47
  )
46
- if "L2T_STARS_WORKING" not in runconfig["StaticAuxiliaryFileGroup"]:
48
+ if "L2T_STARS_WORKING" not in runconfig["StaticAncillaryFileGroup"]:
47
49
  raise MissingRunConfigValue(
48
- f"Missing StaticAuxiliaryFileGroup/L2T_STARS_WORKING in L2T_STARS run-config: {filename}"
50
+ f"Missing StaticAncillaryFileGroup/L2T_STARS_WORKING in L2T_STARS run-config: {filename}"
49
51
  )
50
52
  self.working_directory = abspath(
51
- runconfig["StaticAuxiliaryFileGroup"]["L2T_STARS_WORKING"]
53
+ runconfig["StaticAncillaryFileGroup"]["L2T_STARS_WORKING"]
52
54
  )
53
55
  logger.info(f"Working directory: {cl.dir(self.working_directory)}")
54
56
 
55
57
  # Validate and extract sources directory
56
- if "L2T_STARS_SOURCES" not in runconfig["StaticAuxiliaryFileGroup"]:
58
+ if "L2T_STARS_SOURCES" not in runconfig["StaticAncillaryFileGroup"]:
57
59
  raise MissingRunConfigValue(
58
- f"Missing StaticAuxiliaryFileGroup/L2T_STARS_SOURCES in L2T_STARS run-config: {filename}"
60
+ f"Missing StaticAncillaryFileGroup/L2T_STARS_SOURCES in L2T_STARS run-config: {filename}"
59
61
  )
60
62
  self.sources_directory = abspath(
61
- runconfig["StaticAuxiliaryFileGroup"]["L2T_STARS_SOURCES"]
63
+ runconfig["StaticAncillaryFileGroup"]["L2T_STARS_SOURCES"]
62
64
  )
63
65
  logger.info(f"Sources directory: {cl.dir(self.sources_directory)}")
64
66
 
65
67
  # Validate and extract indices directory
66
- if "L2T_STARS_INDICES" not in runconfig["StaticAuxiliaryFileGroup"]:
68
+ if "L2T_STARS_INDICES" not in runconfig["StaticAncillaryFileGroup"]:
67
69
  raise MissingRunConfigValue(
68
- f"Missing StaticAuxiliaryFileGroup/L2T_STARS_INDICES in L2T_STARS run-config: {filename}"
70
+ f"Missing StaticAncillaryFileGroup/L2T_STARS_INDICES in L2T_STARS run-config: {filename}"
69
71
  )
70
72
  self.indices_directory = abspath(
71
- runconfig["StaticAuxiliaryFileGroup"]["L2T_STARS_INDICES"]
73
+ runconfig["StaticAncillaryFileGroup"]["L2T_STARS_INDICES"]
72
74
  )
73
75
  logger.info(f"Indices directory: {cl.dir(self.indices_directory)}")
74
76
 
75
77
  # Validate and extract model directory
76
- if "L2T_STARS_MODEL" not in runconfig["StaticAuxiliaryFileGroup"]:
78
+ if "L2T_STARS_MODEL" not in runconfig["StaticAncillaryFileGroup"]:
77
79
  raise MissingRunConfigValue(
78
- f"Missing StaticAuxiliaryFileGroup/L2T_STARS_MODEL in L2T_STARS run-config: {filename}"
80
+ f"Missing StaticAncillaryFileGroup/L2T_STARS_MODEL in L2T_STARS run-config: {filename}"
79
81
  )
80
82
  self.model_directory = abspath(
81
- runconfig["StaticAuxiliaryFileGroup"]["L2T_STARS_MODEL"]
83
+ runconfig["StaticAncillaryFileGroup"]["L2T_STARS_MODEL"]
82
84
  )
83
85
  logger.info(f"Model directory: {cl.dir(self.model_directory)}")
84
86
 
@@ -60,6 +60,7 @@ def L2T_STARS(
60
60
  remove_posterior: bool = True,
61
61
  threads: Union[int, str] = "auto",
62
62
  num_workers: int = 4,
63
+ overwrite: bool = False, # New parameter for overwriting existing files
63
64
  ) -> int:
64
65
  """
65
66
  ECOSTRESS Collection 3 L2T_STARS PGE (Product Generation Executive).
@@ -98,6 +99,8 @@ def L2T_STARS(
98
99
  Defaults to "auto".
99
100
  num_workers (int, optional): Number of Julia workers for distributed processing.
100
101
  Defaults to 4.
102
+ overwrite (bool, optional): If True, existing output files will be overwritten.
103
+ Defaults to False.
101
104
 
102
105
  Returns:
103
106
  int: An exit code indicating the success or failure of the PGE execution.
@@ -127,11 +130,17 @@ def L2T_STARS(
127
130
  L2T_STARS_browse_filename = runconfig.L2T_STARS_browse_filename
128
131
  logger.info(f"Browse filename: " + cl.file(L2T_STARS_browse_filename))
129
132
 
130
- # Check if the final product already exists to avoid reprocessing
131
- if exists(L2T_STARS_zip_filename) and exists(L2T_STARS_browse_filename):
133
+ # Check if the final product already exists and 'overwrite' is not enabled
134
+ if not overwrite and exists(L2T_STARS_zip_filename) and exists(L2T_STARS_browse_filename):
132
135
  logger.info(f"Found existing L2T STARS file: {L2T_STARS_zip_filename}")
133
136
  logger.info(f"Found existing L2T STARS preview: {L2T_STARS_browse_filename}")
137
+ logger.info("Overwrite option is not enabled, skipping reprocessing.")
134
138
  return SUCCESS_EXIT_CODE
139
+ elif overwrite and exists(L2T_STARS_zip_filename) and exists(L2T_STARS_browse_filename):
140
+ logger.info(f"Found existing L2T STARS file: {L2T_STARS_zip_filename}")
141
+ logger.info(f"Found existing L2T STARS preview: {L2T_STARS_browse_filename}")
142
+ logger.info("Overwrite option is enabled, proceeding with reprocessing.")
143
+
135
144
 
136
145
  logger.info(f"Working directory: {cl.dir(working_directory)}")
137
146
  logger.info(f"Log file: {cl.file(log_filename)}")
@@ -232,12 +241,17 @@ def L2T_STARS(
232
241
  VNP43NRT_products_directory = join(sources_directory, DEFAULT_VNP43NRT_PRODUCTS_DIRECTORY)
233
242
  logger.info(f"VNP43NRT products directory: {cl.dir(VNP43NRT_products_directory)}")
234
243
 
235
- # Re-check for existing product (double-check in case another process created it)
236
- if exists(L2T_STARS_zip_filename):
244
+ # Re-check for existing product (double-check in case another process created it) with overwrite option
245
+ if not overwrite and exists(L2T_STARS_zip_filename):
237
246
  logger.info(
238
- f"Found L2T STARS product zip: {cl.file(L2T_STARS_zip_filename)}"
247
+ f"Found L2T STARS product zip: {cl.file(L2T_STARS_zip_filename)}. Overwrite is False, returning."
239
248
  )
240
249
  return exit_code
250
+ elif overwrite and exists(L2T_STARS_zip_filename):
251
+ logger.info(
252
+ f"Found L2T STARS product zip: {cl.file(L2T_STARS_zip_filename)}. Overwrite is True, proceeding."
253
+ )
254
+
241
255
 
242
256
  # Initialize HLS data connection
243
257
  logger.info(f"Connecting to CMR Search server: {CMR_SEARCH_URL}")
@@ -54,7 +54,7 @@ class LPDAACServerUnreachable(ConnectionError):
54
54
  class LPDAACDataPool:
55
55
  logger = logging.getLogger(__name__)
56
56
  DEFAULT_CHUNK_SIZE = 2 ** 20
57
- DATE_REGEX = re.compile('^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$')
57
+ DATE_REGEX = re.compile(r'^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$')
58
58
  DEFAULT_REMOTE = DEFAULT_REMOTE
59
59
 
60
60
  def __init__(self, username: str = None, password: str = None, remote: str = None, offline_ok: bool = False):
@@ -1019,7 +1019,8 @@ def latest_datetime(date_in: Union[date, str]) -> datetime:
1019
1019
  return parser.parse(f"{date_string}T23:59:59Z")
1020
1020
 
1021
1021
 
1022
- VIIRS_FILENAME_REGEX = re.compile("^VNP09GA\.[^.]+\.([^.]+)\.002\.\d+\.h5$")
1022
+ VIIRS_FILENAME_REGEX = re.compile(r"^VNP09GA\.[^.]+\.([^.]+)\.002\.\d+\.h5$")
1023
+
1023
1024
  def modland_tile_from_filename(filename: str) -> str:
1024
1025
  match = VIIRS_FILENAME_REGEX.match(filename)
1025
1026
  if match is None:
@@ -246,4 +246,4 @@ def generate_L2T_STARS_runconfig(
246
246
  f"Finished generating L2T_STARS run-config for orbit {cl.val(orbit)} scene {cl.val(scene)} ({timer.tocvalue():.2f} seconds)"
247
247
  )
248
248
 
249
- return
249
+ return runconfig_filename
@@ -1,6 +1,8 @@
1
1
  from os.path import exists
2
2
  import logging
3
3
 
4
+ import colored_logging as cl
5
+
4
6
  from ECOv003_granules import L2TSTARS
5
7
 
6
8
  from .prior import Prior
@@ -235,12 +237,12 @@ def load_prior(
235
237
  L2T_STARS_prior_filename=L2T_STARS_prior_filename,
236
238
  prior_NDVI_filename=prior_NDVI_filename,
237
239
  prior_NDVI_UQ_filename=prior_NDVI_UQ_filename,
238
- prior_NDVI_flag_filename=prior_NDVI_flag_filename,
240
+ # prior_NDVI_flag_filename=prior_NDVI_flag_filename,
239
241
  prior_NDVI_bias_filename=prior_NDVI_bias_filename,
240
242
  prior_NDVI_bias_UQ_filename=prior_NDVI_bias_UQ_filename,
241
243
  prior_albedo_filename=prior_albedo_filename,
242
244
  prior_albedo_UQ_filename=prior_albedo_UQ_filename,
243
- prior_albedo_flag_filename=prior_albedo_flag_filename,
245
+ # prior_albedo_flag_filename=prior_albedo_flag_filename,
244
246
  prior_albedo_bias_filename=prior_albedo_bias_filename,
245
247
  prior_albedo_bias_UQ_filename=prior_albedo_bias_UQ_filename,
246
248
  )
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
- Name: ECOv003_L2T_STARS
3
- Version: 1.1.0
2
+ Name: ECOv003-L2T-STARS
3
+ Version: 1.2.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,15 +1,15 @@
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
1
+ ECOv003_L2T_STARS/ECOv003_DL.py,sha256=7ECuYIPMDsgptcAIcC2lgfvn-ljvPJHQ9tNPnMRxkIQ,24590
2
+ ECOv003_L2T_STARS/ECOv003_DL.xml,sha256=TQxOlTJHnjcRf9RiAGVJe2mIS-ks6WL32Ze33z0_kxA,2032
3
+ ECOv003_L2T_STARS/ECOv003_L2T_STARS.py,sha256=Jgiwd2TRCMq37FiEA-JECJZQKLBm34oytIWS9PG_x30,5891
4
+ ECOv003_L2T_STARS/ECOv003_L2T_STARS.xml,sha256=Sg6GJx5PO1TVMIpGCDb4gatcShLRa6yBMwxwHKAWNKw,2084
5
+ ECOv003_L2T_STARS/L2TSTARSConfig.py,sha256=pH5WAzjfUdlam8Ngi2hxmT8Sect5bi2D6cP9HbpM_Tw,8849
6
+ ECOv003_L2T_STARS/L2T_STARS.py,sha256=3_eu2Yh8RZi5WQqat5sjwNfc2Kzhh-T_DhLAG5dn38A,25401
7
7
  ECOv003_L2T_STARS/Manifest.toml,sha256=k6dzN8jpePGBIPqTkKFsYDv5ezV3DgO4ChHss_cI524,84043
8
8
  ECOv003_L2T_STARS/Project.toml,sha256=Ywo_YsreqwgpbuNP3NWMsXw3VY2m8NTUrBwKCyBUbuM,657
9
9
  ECOv003_L2T_STARS/__init__.py,sha256=C-Ut4I9wJrxVgLjpktu50trMuQNd73wS_gPJNxhp9UM,104
10
10
  ECOv003_L2T_STARS/calibrate_fine_to_coarse.py,sha256=2YQHo0hO5EuvGt6TOF_1WypiqNDAR5gjvs0cYe9F_vQ,2345
11
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
12
+ ECOv003_L2T_STARS/generate_L2T_STARS_runconfig.py,sha256=gyU0-xjkC0bZcK9NeoFwLaXjNJhsSrVD2YnxLVLVLJs,11142
13
13
  ECOv003_L2T_STARS/generate_NDVI_coarse_directory.py,sha256=i1pFHFyMuj2e6aQ2wTgrF2-rAQXWe8LE2mbCRksj3c8,590
14
14
  ECOv003_L2T_STARS/generate_NDVI_coarse_image.py,sha256=9XBBV1FFqjxkEFnr61xr9R2tnHQAlx2XN9KzLN8RApc,1215
15
15
  ECOv003_L2T_STARS/generate_NDVI_fine_directory.py,sha256=rCYfGd_X1fLYsOfl9LtfS3E57FLDa-a_8G46ToQFM2U,531
@@ -25,7 +25,7 @@ ECOv003_L2T_STARS/generate_model_state_tile_date_directory.py,sha256=U9d7vcuA1Ud
25
25
  ECOv003_L2T_STARS/generate_output_directory.py,sha256=Dr1zX6ljYzxFgC9XkocYBiF5aMGggHJejtpI9hbLwlM,889
26
26
  ECOv003_L2T_STARS/install_STARS_jl.py,sha256=EBJYvEokDxVDW6UxcCCaGSbDVtUiUz29QJxntdMYqCM,1738
27
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
28
+ ECOv003_L2T_STARS/load_prior.py,sha256=rVu3ImvReFxARalICCiZcMQ9ML_ehmQ9mc8HmXoHdm0,11335
29
29
  ECOv003_L2T_STARS/prior.py,sha256=fLE54pBIOG6sCas1G60nhn8LcHa2AqZ_eSY_J-MB4eM,2867
30
30
  ECOv003_L2T_STARS/process_ECOSTRESS_data_fusion_distributed_bias.jl,sha256=LrFBCQp4ovJ6wI-oIIbvpdZEiSQtt0YmScbPmxlaSoA,15400
31
31
  ECOv003_L2T_STARS/process_STARS_product.py,sha256=d26HdxcY9XBXa_MFCJfFm7BMCtmCaUrNdSVXiY0-D6Y,22406
@@ -33,19 +33,19 @@ ECOv003_L2T_STARS/process_julia_data_fusion.py,sha256=D4zSkihn6EC19009gFD3lXXxiC
33
33
  ECOv003_L2T_STARS/retrieve_STARS_sources.py,sha256=s6026PQ5PRQTPFgjrDa4vgbHa8OqUanBqn0Wdoq0DbA,3838
34
34
  ECOv003_L2T_STARS/runconfig.py,sha256=TLaB3w6Y0qEZPqMa-YXuUzKSACrdpKmrozUNLh70aQw,1519
35
35
  ECOv003_L2T_STARS/version.py,sha256=CcCeNt2pNqb8AQ_vHLUbLJciE8hxTMeGmN79vAYObYQ,354
36
- ECOv003_L2T_STARS/version.txt,sha256=f70hDr7BH2WpcZDvkAeVxLjaOAWvP1objR0nJVaykso,5
36
+ ECOv003_L2T_STARS/version.txt,sha256=n3cDSx61fSTyGsfetlycyZ9jtyd14xHx8oCrK2wuBqI,5
37
37
  ECOv003_L2T_STARS/BRDF/BRDF.py,sha256=41MCtcddMEd8cmW2K9wWyg71nkKjnom3Z64KX5NMehg,1532
38
38
  ECOv003_L2T_STARS/BRDF/SZA.py,sha256=_J5ybmrg8ASVglXp4OvSoVutkDVeSxDBygfTe848sww,2529
39
39
  ECOv003_L2T_STARS/BRDF/__init__.py,sha256=7HYw9eTuudpkgtpXAjFN1CpPjr6R9JsnW3bLtNBdRSM,20
40
40
  ECOv003_L2T_STARS/BRDF/statistical_radiative_transport.txt,sha256=KHIGS6afnY7m0CzHki4zeuwqttjK38jgZg8-oYDn68o,26999
41
41
  ECOv003_L2T_STARS/BRDF/version.txt,sha256=atlhOkVXmNbZLl9fOQq0uqcFlryGntaxf1zdKyhjXwY,5
42
- ECOv003_L2T_STARS/LPDAAC/LPDAACDataPool.py,sha256=T4x43HdfUnnToYaabJLggrIwJibOpGewX7kyEczfOEw,16438
42
+ ECOv003_L2T_STARS/LPDAAC/LPDAACDataPool.py,sha256=OoJy2_W7tCJG7zJA6bfrozmyf4SKsa2ESjIsdJgfM_M,16439
43
43
  ECOv003_L2T_STARS/LPDAAC/__init__.py,sha256=o8qP8kTXyBp9dFKErVOwvcZuUo7BTVU0d5UyIsOKG8g,235
44
44
  ECOv003_L2T_STARS/LPDAAC/version.txt,sha256=2_CXjsK1h6XWGH_cxBzOn_LA647vrboOtR84QKtu60Y,5
45
45
  ECOv003_L2T_STARS/VIIRS/VIIRSDataPool.py,sha256=mht104y3ayLysElKf9IgaqX78I0Q-4NJJmfCxMgxDzs,8781
46
46
  ECOv003_L2T_STARS/VIIRS/VIIRSDownloader.py,sha256=NCf3ZItLIBkZOZugYHuQMurziAsH7LbhLKbg-ZbWC7g,616
47
47
  ECOv003_L2T_STARS/VIIRS/VIIRS_CMR_LOGIN.py,sha256=Osl7BPV6QsGKATFCmow0oDN-YA98SDBcLRCy3X9XaPQ,1094
48
- ECOv003_L2T_STARS/VIIRS/VNP09GA.py,sha256=bh8DDVZb9naD2Uk8sf2CIr5os7z3n4nReltYgdpmxBE,44160
48
+ ECOv003_L2T_STARS/VIIRS/VNP09GA.py,sha256=hRJF47KLqCxerwjQQY3wfCbotxW2qAKbe1BxCleyUAo,44162
49
49
  ECOv003_L2T_STARS/VIIRS/VNP43IA4.py,sha256=3qZbDHoLVhoiSr4hoojMxXXuDSNKkN4B9Dan-WMApNs,9881
50
50
  ECOv003_L2T_STARS/VIIRS/VNP43MA3.py,sha256=T_1mxdg_SII0vXp_D422aAU7fE0-7TY46IZzRJPGJ1Q,11043
51
51
  ECOv003_L2T_STARS/VIIRS/__init__.py,sha256=PVyb97Bg5gVMdcyC7JpErQCjJWSrOFdHJH4rNE__eL8,264
@@ -65,9 +65,9 @@ ECOv003_L2T_STARS/daterange/__init__.py,sha256=54kYb9tmsm5twxMqjJKeD__5kGkNDz3Pp
65
65
  ECOv003_L2T_STARS/daterange/daterange.py,sha256=EHa2Xt9fiJ1gbX7aa_QV_br1rAXjg3pHrLSRasOsOhM,959
66
66
  ECOv003_L2T_STARS/timer/__init__.py,sha256=I_MQKp_aamBLUzZv0psEbRgs6GZLOJd4mmJ7bli0Ikc,21
67
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,,
68
+ ecov003_l2t_stars-1.2.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
69
+ ecov003_l2t_stars-1.2.0.dist-info/METADATA,sha256=VYXsZQfVGnh6vih-AXQ79DeXcr5GOTa81Di5trFdHMI,13306
70
+ ecov003_l2t_stars-1.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
+ ecov003_l2t_stars-1.2.0.dist-info/entry_points.txt,sha256=NuUuom7EwWtbe3ljZ6KxNbSheTFRnHVNT9rd16tuv0E,119
72
+ ecov003_l2t_stars-1.2.0.dist-info/top_level.txt,sha256=lRivA5MjbrabH4sv-LUstMGaLZ865wRQPpz9Kh6-plg,18
73
+ ecov003_l2t_stars-1.2.0.dist-info/RECORD,,