|
62 | 62 | from ..io.io_aux import get_datetime, get_file_list, get_scan_list |
63 | 63 | from ..io.io_aux import get_dataset_fields, get_datatype_fields |
64 | 64 | from ..io.io_aux import get_new_rainbow_file_name, get_fieldname_pyart |
| 65 | +from ..io.io_aux import get_file_list_s3 |
65 | 66 | from ..io.trajectory import Trajectory |
66 | 67 | from ..io.read_data_other import read_last_state, read_proc_periods |
67 | 68 |
|
@@ -1067,12 +1068,12 @@ def _create_cfg_dict(cfgfile): |
1067 | 1068 | datatypeID_dict[0] = cfg[key] |
1068 | 1069 | else: |
1069 | 1070 | datatypeID_dict[int(idx) - 1] = cfg[key] |
1070 | | - |
| 1071 | + |
1071 | 1072 | # Assign empty dict to radars where no DataTypeInFiles was assigned |
1072 | 1073 | for i in range(cfg["NumRadars"]): |
1073 | 1074 | if i not in datatypeID_dict: |
1074 | 1075 | datatypeID_dict[i] = {} |
1075 | | - |
| 1076 | + |
1076 | 1077 | cfg["DataTypeIDInFiles"] = datatypeID_dict |
1077 | 1078 |
|
1078 | 1079 | if "MasterScanTimeTol" not in cfg: |
@@ -1295,6 +1296,32 @@ def _create_datacfg_dict(cfg): |
1295 | 1296 | datacfg.update({"MFScale": cfg["MFScale"]}) |
1296 | 1297 | datacfg.update({"DataTypeIDInFiles": cfg["DataTypeIDInFiles"]}) |
1297 | 1298 |
|
| 1299 | + #s3 buckets |
| 1300 | + if "bucket" in cfg: |
| 1301 | + try: |
| 1302 | + datacfg["s3_key"] = os.environ["S3_IN_KEY"] |
| 1303 | + datacfg["s3_secret_key"] = os.environ["S3_IN_SECRET"] |
| 1304 | + except KeyError: |
| 1305 | + warn( |
| 1306 | + 'Define environment variables S3_IN_KEY and S3_IN_SECRET' |
| 1307 | + ' to get input data from S3 buckets.') |
| 1308 | + |
| 1309 | + if "s3path" in cfg: |
| 1310 | + datacfg.update({"s3path": cfg["s3path"]}) |
| 1311 | + else: |
| 1312 | + warn('Unable to read data from s3 bucket. Define s3path') |
| 1313 | + if "s3_url" in cfg: |
| 1314 | + datacfg.update({"s3_url": cfg["s3_url"]}) |
| 1315 | + else: |
| 1316 | + warn('Unable to read data from s3 bucket. Define s3_url') |
| 1317 | + |
| 1318 | + if "rm_s3_file" in cfg: |
| 1319 | + datacfg.update({"rm_s3_file": cfg["rm_s3_file"]}) |
| 1320 | + |
| 1321 | + if ('s3path' in datacfg and 's3_url' in datacfg |
| 1322 | + and 's3_key' in datacfg and 's3_secret_key' in datacfg): |
| 1323 | + datacfg.update({"bucket": cfg["bucket"]}) |
| 1324 | + |
1298 | 1325 | # Modify size of radar or radar spectra object |
1299 | 1326 | datacfg.update({"elmin": cfg.get("elmin", None)}) |
1300 | 1327 | datacfg.update({"elmax": cfg.get("elmax", None)}) |
@@ -1731,9 +1758,14 @@ def _get_masterfile_list(datatypesdescr, starttimes, endtimes, datacfg, scan_lis |
1731 | 1758 | ) |
1732 | 1759 | return [], None, None |
1733 | 1760 |
|
1734 | | - masterfilelist = get_file_list( |
1735 | | - masterdatatypedescr, starttimes, endtimes, datacfg, scan=masterscan |
1736 | | - ) |
| 1761 | + if 'bucket' in datacfg: |
| 1762 | + masterfilelist = get_file_list_s3( |
| 1763 | + masterdatatypedescr, starttimes, endtimes, datacfg, |
| 1764 | + scan=masterscan) |
| 1765 | + else: |
| 1766 | + masterfilelist = get_file_list( |
| 1767 | + masterdatatypedescr, starttimes, endtimes, datacfg, |
| 1768 | + scan=masterscan) |
1737 | 1769 |
|
1738 | 1770 | return masterfilelist, masterdatatypedescr, masterscan |
1739 | 1771 |
|
|
0 commit comments