diff --git a/NAERSTADMO.py b/NAERSTADMO.py index 035ce094a51538d7c3016aa64d06feec3c0de40f..5c25d713b801ccfdd31cf8fa53a4fbb96c7dedb6 100644 --- a/NAERSTADMO.py +++ b/NAERSTADMO.py @@ -17,6 +17,7 @@ load_dotenv() infile_path = os.getenv("WEATHER_DATA_DIR") outfile_path = os.getenv("DATA_DIR") +outtmp_path = "out/" tmpfile_path = "tmp/" bg_filename = (f'{tmpfile_path}background_data.nc') @@ -32,7 +33,7 @@ def create_dataset(): # Find the latest file from previous run to create a start date last_final_date = None - list_of_files = glob.glob(f"{outfile_path}final_2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9].nc", recursive=True) + list_of_files = glob.glob(f"{outtmp_path}final_2[0-9][0-9][0-9]-[01][0-9]-[0123][0-9].nc", recursive=True) print(list_of_files) if list_of_files: latest_file = max(list_of_files,key=os.path.getctime) @@ -66,7 +67,7 @@ def create_dataset(): subprocess.run(f'cdo -f nc2 mergetime {file} {tmpfile_path}tmpfile.nc {tmpfile_path}weather_data.nc', shell=True) subprocess.run(f'rm {tmpfile_path}tmpfile.nc',shell=True) - subprocess.run(f'rm {outfile_path}final_*',shell=True) + subprocess.run(f'rm {outtmp_path}final_*',shell=True) create_saturation() create_pressure() @@ -78,7 +79,7 @@ def create_dataset(): def create_warning_status(start_date): - risk_files = glob.glob(f"{outfile_path}/final_*.nc") + risk_files = glob.glob(f"{outtmp_path}/final_*.nc") # Classifying warning status for the WHS model # 0 == RISK --> Grey @@ -185,13 +186,13 @@ def create_matrix(): date = datetime.fromtimestamp(timestep[0]).astimezone(local_timezone).strftime('%Y-%m-%d') hour = datetime.fromtimestamp(timestep[0]).astimezone(local_timezone).strftime('%H') - subprocess.run(f'cdo -expr,"TSWH=(WHS==0)?0:sumWHTM;IR=(TSWH>=40?1:0);RISK=(IR==1?(TSWH/40)*VRS:0);VRS=(VRS==0?0:VRS);" {tmpfile_path}bg_final_{str(time)}.nc {outfile_path}final_{str(date)}_{str(hour)}.nc' , shell=True) + subprocess.run(f'cdo -expr,"TSWH=(WHS==0)?0:sumWHTM;IR=(TSWH>=40?1:0);RISK=(IR==1?(TSWH/40)*VRS:0);VRS=(VRS==0?0:VRS);" {tmpfile_path}bg_final_{str(time)}.nc {tmpfile_path}final_{str(date)}_{str(hour)}.nc' , shell=True) if (str(hour) == '00' or time == 1): - subprocess.run(f'cp {tmpfile_path}final_{str(date)}_{str(hour)}.nc {outfile_path}final_{str(date)}.nc', shell=True) + subprocess.run(f'cp {tmpfile_path}final_{str(date)}_{str(hour)}.nc {outtmp_path}final_{str(date)}.nc', shell=True) else: - subprocess.run(f'cp {outfile_path}final_{str(date)}.nc {tmpfile_path}tmp_{str(date)}.nc', shell=True) - subprocess.run(f'cdo -O -mergetime {tmpfile_path}tmp_{str(date)}.nc {tmpfile_path}final_{str(date)}_{str(hour)}.nc {outfile_path}final_{str(date)}.nc', shell=True) + subprocess.run(f'cp {outtmp_path}final_{str(date)}.nc {tmpfile_path}tmp_{str(date)}.nc', shell=True) + subprocess.run(f'cdo -O -mergetime {tmpfile_path}tmp_{str(date)}.nc {tmpfile_path}final_{str(date)}_{str(hour)}.nc {outtmp_path}final_{str(date)}.nc', shell=True) subprocess.run(f'rm {tmpfile_path}tmp_{str(date)}.nc {tmpfile_path}final_{str(date)}_{str(hour)}.nc', shell=True) # Create last hour values