Skip to content

Commit 0adf748

Browse files
committed
Add a use_snap_binning CLI option
It's now possible to select binning type without commenting and uncommenting code blocks.
1 parent 52d0cff commit 0adf748

File tree

1 file changed

+35
-23
lines changed

1 file changed

+35
-23
lines changed

run_efast.py

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ def main(
9696
cdse_credentials: dict,
9797
ratio: int,
9898
snap_gpt_path: str = "gpt",
99+
use_snap_binning: bool = False,
99100
):
100101
logger = logging.getLogger(__file__)
101102
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(message)s", datefmt='%Y-%m-%d %I:%M:%S')
@@ -163,6 +164,7 @@ def main(
163164
snap_gpt_path=snap_gpt_path,
164165
mosaic_days=mosaic_days,
165166
step=step,
167+
use_snap_binning=use_snap_binning,
166168
)
167169
timings.append(("Sentinel-3 pre-processing", t.elapsed))
168170

@@ -239,34 +241,38 @@ def s3_preprocessing(
239241
snap_gpt_path,
240242
mosaic_days,
241243
step,
244+
use_snap_binning: bool = False,
242245
):
243-
244246
logger = logging.getLogger(__file__)
245247
s3_timings: list[Tuple[str, float]] = []
246248
# Sentinel-3 pre-processing
247249
with Timer(dsc="S3 binning", logger=logger, add_to=s3_timings):
248-
# s3.binning_s3(
249-
# s3_download_dir,
250-
# s3_binning_dir,
251-
# footprint=footprint,
252-
# s3_bands=s3_bands,
253-
# instrument=instrument,
254-
# aggregator="mean",
255-
# snap_gpt_path=snap_gpt_path,
256-
# snap_memory="24G",
257-
# snap_parallelization=1,
258-
# )
259-
binning.binning_s3_py(
260-
s3_download_dir,
261-
s3_binning_dir,
262-
footprint=footprint,
263-
s3_bands=s3_bands,
264-
instrument=instrument,
265-
aggregator="mean",
266-
snap_gpt_path=snap_gpt_path,
267-
snap_memory="24G",
268-
snap_parallelization=1,
269-
)
250+
if use_snap_binning:
251+
logger.info("Using SNAP binning")
252+
s3.binning_s3(
253+
s3_download_dir,
254+
s3_binning_dir,
255+
footprint=footprint,
256+
s3_bands=s3_bands,
257+
instrument=instrument,
258+
aggregator="mean",
259+
snap_gpt_path=snap_gpt_path,
260+
snap_memory="24G",
261+
snap_parallelization=1,
262+
)
263+
else:
264+
logger.info("Using built-in binning implementation")
265+
binning.binning_s3_py(
266+
s3_download_dir,
267+
s3_binning_dir,
268+
footprint=footprint,
269+
s3_bands=s3_bands,
270+
instrument=instrument,
271+
aggregator="mean",
272+
snap_gpt_path=snap_gpt_path,
273+
snap_memory="24G",
274+
snap_parallelization=1,
275+
)
270276

271277
with Timer(dsc="S3 median composite", logger=logger, add_to=s3_timings):
272278
s3.produce_median_composite(
@@ -404,6 +410,11 @@ def _download(uid):
404410
parser.add_argument("--cdse-credentials", default=CREDENTIALS)
405411
parser.add_argument("--snap-gpt-path", required=False, default="gpt")
406412
parser.add_argument("--ratio", required=False, type=int, default=30)
413+
parser.add_argument(
414+
"--use-snap-binning",
415+
action="store_true",
416+
help="Use SNAP for binning rather than built-in Python implementation"
417+
)
407418
#parser.add_argument("--sigma-doy", type=float, default=20)
408419

409420
args = parser.parse_args()
@@ -420,5 +431,6 @@ def _download(uid):
420431
cdse_credentials=args.cdse_credentials,
421432
snap_gpt_path=args.snap_gpt_path,
422433
ratio=args.ratio,
434+
use_snap_binning=args.use_snap_binning,
423435
#sigma=args.sigma_doy,
424436
)

0 commit comments

Comments
 (0)