ECOv003-L2T-STARS 1.0.0__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.
- ECOv003_L2T_STARS/BRDF/BRDF.py +57 -0
- ECOv003_L2T_STARS/BRDF/SZA.py +65 -0
- ECOv003_L2T_STARS/BRDF/__init__.py +1 -0
- ECOv003_L2T_STARS/BRDF/statistical_radiative_transport.txt +90 -0
- ECOv003_L2T_STARS/BRDF/version.txt +1 -0
- ECOv003_L2T_STARS/ECOv003_DL.py +527 -0
- ECOv003_L2T_STARS/ECOv003_DL.xml +47 -0
- ECOv003_L2T_STARS/ECOv003_L2T_STARS.py +162 -0
- ECOv003_L2T_STARS/ECOv003_L2T_STARS.xml +47 -0
- ECOv003_L2T_STARS/L2TSTARSConfig.py +188 -0
- ECOv003_L2T_STARS/L2T_STARS.py +489 -0
- ECOv003_L2T_STARS/LPDAAC/LPDAACDataPool.py +444 -0
- ECOv003_L2T_STARS/LPDAAC/__init__.py +9 -0
- ECOv003_L2T_STARS/LPDAAC/version.txt +1 -0
- ECOv003_L2T_STARS/Manifest.toml +2332 -0
- ECOv003_L2T_STARS/Project.toml +14 -0
- ECOv003_L2T_STARS/VIIRS/VIIRSDataPool.py +294 -0
- ECOv003_L2T_STARS/VIIRS/VIIRSDownloader.py +26 -0
- ECOv003_L2T_STARS/VIIRS/VIIRS_CMR_LOGIN.py +36 -0
- ECOv003_L2T_STARS/VIIRS/VNP09GA.py +1277 -0
- ECOv003_L2T_STARS/VIIRS/VNP43IA4.py +288 -0
- ECOv003_L2T_STARS/VIIRS/VNP43MA3.py +323 -0
- ECOv003_L2T_STARS/VIIRS/__init__.py +9 -0
- ECOv003_L2T_STARS/VIIRS/version.txt +1 -0
- ECOv003_L2T_STARS/VNP43NRT/VNP43NRT.py +863 -0
- ECOv003_L2T_STARS/VNP43NRT/__init__.py +1 -0
- ECOv003_L2T_STARS/VNP43NRT/process_VNP43NRT.jl +169 -0
- ECOv003_L2T_STARS/VNP43NRT/version.txt +1 -0
- ECOv003_L2T_STARS/VNP43NRT_jl/Manifest.toml +995 -0
- ECOv003_L2T_STARS/VNP43NRT_jl/Project.toml +15 -0
- ECOv003_L2T_STARS/VNP43NRT_jl/__init__.py +0 -0
- ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.jl +25 -0
- ECOv003_L2T_STARS/VNP43NRT_jl/instantiate.py +13 -0
- ECOv003_L2T_STARS/VNP43NRT_jl/src/VNP43NRT.jl +411 -0
- ECOv003_L2T_STARS/VNP43NRT_jl/src/__init__.py +0 -0
- ECOv003_L2T_STARS/__init__.py +3 -0
- ECOv003_L2T_STARS/calibrate_fine_to_coarse.py +60 -0
- ECOv003_L2T_STARS/constants.py +38 -0
- ECOv003_L2T_STARS/daterange/__init__.py +1 -0
- ECOv003_L2T_STARS/daterange/daterange.py +35 -0
- ECOv003_L2T_STARS/generate_L2T_STARS_runconfig.py +249 -0
- ECOv003_L2T_STARS/generate_NDVI_coarse_directory.py +21 -0
- ECOv003_L2T_STARS/generate_NDVI_coarse_image.py +30 -0
- ECOv003_L2T_STARS/generate_NDVI_fine_directory.py +14 -0
- ECOv003_L2T_STARS/generate_NDVI_fine_image.py +28 -0
- ECOv003_L2T_STARS/generate_STARS_inputs.py +231 -0
- ECOv003_L2T_STARS/generate_albedo_coarse_directory.py +18 -0
- ECOv003_L2T_STARS/generate_albedo_coarse_image.py +30 -0
- ECOv003_L2T_STARS/generate_albedo_fine_directory.py +17 -0
- ECOv003_L2T_STARS/generate_albedo_fine_image.py +30 -0
- ECOv003_L2T_STARS/generate_filename.py +37 -0
- ECOv003_L2T_STARS/generate_input_staging_directory.py +23 -0
- ECOv003_L2T_STARS/generate_model_state_tile_date_directory.py +28 -0
- ECOv003_L2T_STARS/generate_output_directory.py +28 -0
- ECOv003_L2T_STARS/install_STARS_jl.py +43 -0
- ECOv003_L2T_STARS/instantiate_STARS_jl.py +38 -0
- ECOv003_L2T_STARS/load_prior.py +248 -0
- ECOv003_L2T_STARS/prior.py +56 -0
- ECOv003_L2T_STARS/process_ECOSTRESS_data_fusion_distributed_bias.jl +420 -0
- ECOv003_L2T_STARS/process_STARS_product.py +507 -0
- ECOv003_L2T_STARS/process_julia_data_fusion.py +110 -0
- ECOv003_L2T_STARS/retrieve_STARS_sources.py +101 -0
- ECOv003_L2T_STARS/runconfig.py +70 -0
- ECOv003_L2T_STARS/timer/__init__.py +1 -0
- ECOv003_L2T_STARS/timer/timer.py +77 -0
- ECOv003_L2T_STARS/version.py +8 -0
- ECOv003_L2T_STARS/version.txt +1 -0
- {ECOv003_L2T_STARS-1.0.0.dist-info → ecov003_l2t_stars-1.1.0.dist-info}/METADATA +30 -23
- ecov003_l2t_stars-1.1.0.dist-info/RECORD +73 -0
- {ECOv003_L2T_STARS-1.0.0.dist-info → ecov003_l2t_stars-1.1.0.dist-info}/WHEEL +1 -1
- ecov003_l2t_stars-1.1.0.dist-info/entry_points.txt +3 -0
- ecov003_l2t_stars-1.1.0.dist-info/top_level.txt +1 -0
- ECOv003_L2T_STARS-1.0.0.dist-info/RECORD +0 -5
- ECOv003_L2T_STARS-1.0.0.dist-info/top_level.txt +0 -1
- {ECOv003_L2T_STARS-1.0.0.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
|
+
Metadata-Version: 2.4
|
2
2
|
Name: ECOv003_L2T_STARS
|
3
|
-
Version: 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.
|
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:
|
15
|
-
Requires-Dist:
|
16
|
-
Requires-Dist:
|
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:
|
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:
|
35
|
-
Requires-Dist: pyresample
|
25
|
+
Requires-Dist: pytictoc
|
36
26
|
Requires-Dist: rasters
|
37
|
-
Requires-Dist: scikit-
|
27
|
+
Requires-Dist: scikit-image
|
38
28
|
Requires-Dist: scipy
|
39
29
|
Requires-Dist: sentinel-tiles
|
40
|
-
Requires-Dist:
|
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,,
|
@@ -0,0 +1 @@
|
|
1
|
+
ECOv003_L2T_STARS
|
@@ -1,5 +0,0 @@
|
|
1
|
-
ECOv003_L2T_STARS-1.0.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
2
|
-
ECOv003_L2T_STARS-1.0.0.dist-info/METADATA,sha256=CPg_xIBBTlCsj6GPjNKkFwxEw17WhkYk27hzxFB-pT4,12724
|
3
|
-
ECOv003_L2T_STARS-1.0.0.dist-info/WHEEL,sha256=a7TGlA-5DaHMRrarXjVbQagU3Man_dCnGIWMJr5kRWo,91
|
4
|
-
ECOv003_L2T_STARS-1.0.0.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
5
|
-
ECOv003_L2T_STARS-1.0.0.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
|
File without changes
|