Skip to content

Commit f769b6b

Browse files
minor fixes to predictor_data_prep.py
1 parent 19be44c commit f769b6b

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

data_preparation/predictor_data_prep.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,20 @@
88
import logging
99
import argparse
1010
import warnings
11-
import matplotlib.pyplot as plt
1211

13-
from cybench.util.geo import get_shapes_from_polygons, get_area_km2
14-
from cybench.config import PATH_DATA_DIR
12+
from cybench.util.geo import get_shapes_from_polygons
13+
from cybench.config import PATH_DATA_DIR, REPO_DIR
1514

1615
warnings.filterwarnings("ignore")
1716

17+
def init_worker_logging():
18+
"""Disable file logging in worker processes to avoid RotatingFileHandler races."""
19+
root = logging.getLogger()
20+
# remove all handlers inherited from the parent
21+
for h in root.handlers[:]:
22+
root.removeHandler(h)
23+
# optional: silence workers completely
24+
root.addHandler(logging.NullHandler())
1825

1926
log = logging.getLogger(__name__)
2027

@@ -23,9 +30,8 @@
2330
# Directory paths
2431
##################
2532

26-
AGML_ROOT = r"/path_to_raw_data"
27-
DATA_DIR = os.path.join(AGML_ROOT, "predictors")
28-
OUTPUT_DIR = os.path.join(AGML_ROOT, "python-output")
33+
DATA_DIR = r"/path_to_raw_data/predictors"
34+
OUTPUT_DIR = r"/path_to_raw_data/python-output"
2935

3036
#####################
3137
# Start and end years
@@ -847,7 +853,7 @@ def process_file(
847853
else:
848854
crop_mask_file = "crop_mask_generic_asap.tif"
849855

850-
crop_mask_path = os.path.join(AGML_ROOT, "crop_masks", crop_mask_file)
856+
crop_mask_path = os.path.join(REPO_DIR, "data_preparation", "global_crop_AFIs_ESA_WC", crop_mask_file)
851857

852858
basename = os.path.basename(indicator_file)
853859
fname, ext = os.path.splitext(basename)
@@ -952,7 +958,7 @@ def process_indicators(crop, region, sel_indicators):
952958
continue
953959
start_time = time.time()
954960
files = sorted([os.path.join(indicator_dir, f) for f in files])
955-
with mp.Pool(processes=None) as pool:
961+
with mp.Pool(processes=None, initializer=init_worker_logging) as pool:
956962
# NOTE: multiprocessing using a target function with multiple arguments.
957963
# Based on the answer to
958964
# https://stackoverflow.com/questions/5442910/how-to-use-multiprocessing-pool-map-with-multiple-arguments

0 commit comments

Comments
 (0)