Skip to content
Snippets Groups Projects
Commit c08ea4df authored by Brita Linnestad's avatar Brita Linnestad
Browse files

Use numpy to count number of timesteps

parent 80f33dbd
Branches
No related tags found
No related merge requests found
......@@ -9,6 +9,7 @@ import logging
import pytz
import netCDF4 as nc
import numpy as np
logging.basicConfig(level=logging.INFO)
......@@ -25,8 +26,6 @@ prepareWHS = (f'{tmpfile_path}prepare_WHS.nc')
utc_offset = "+02:00"
local_timezone = pytz.timezone("Europe/Oslo")
subprocess.run(f"rm {tmpfile_path}*", shell=True)
filename = (f'{tmpfile_path}weather_data.nc')
def create_dataset():
......@@ -34,12 +33,13 @@ 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)
print(list_of_files)
if list_of_files:
latest_file = max(list_of_files,key=os.path.getctime)
file_name = os.path.basename(latest_file)
file_date = file_name[file_name.index("final_")+6:file_name.index("final_")+16]
last_final_date=file_date
print(last_final_date)
if last_final_date is None or last_final_date < file_date:
start_date = datetime.strptime(os.getenv("START_DATE"),'%Y-%m-%d')
......@@ -57,7 +57,7 @@ def create_dataset():
end_date = None
end_date = start_date + timedelta(days=5)
if(file_date > start_date.strftime('%Y-%m-%d') and file_date < end_date.strftime('%Y-%m-%d')):
if(file_date >= start_date.strftime('%Y-%m-%d') and file_date <= end_date.strftime('%Y-%m-%d')):
if(os.path.exists(f'{tmpfile_path}weather_data.nc') != True):
subprocess.run(f'cp {file} {tmpfile_path}weather_data.nc', shell=True)
......@@ -66,6 +66,8 @@ 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)
create_saturation()
create_pressure()
create_wvd()
......@@ -103,6 +105,7 @@ def create_warning_status(start_date):
os.rename(f"{tmpfile_path}result_unmasked.nc", f"{tmpfile_path}result{file_date}.nc")
if(file_date > start_date.strftime('%Y-%m-%d')):
with open("/dev/null", "w") as devnull:
subprocess.run(f'gdal_translate -ot Int16 -of GTiff NETCDF:"{tmpfile_path}result_{file_date}.nc":WARNING_STATUS {tmpfile_path}result_WARNING_STATUS_{file_date}.tif', shell=True)
subprocess.run(f'gdal_translate -ot Float32 -of GTiff NETCDF:"{tmpfile_path}result_{file_date}.nc":RISK {tmpfile_path}RISK_result_{file_date}.tif', shell=True)
......@@ -140,11 +143,17 @@ def create_warning_status(start_date):
with open(f"{mapfile_outdir}/NAERSTADMO.map", 'w') as f:
f.write(output)
subprocess.run(f"rm {tmpfile_path}*", shell=True)
def create_matrix():
for time in range(160):
dataset=nc.Dataset(f'{tmpfile_path}background_data.nc', 'r')
data = dataset.variables['time'][:]
ntimesteps = np.size(data)
for time in range(ntimesteps-5): # Need to cut the last day before the end du to WH calculations
# For the first hour, all LastHour values are set to 0
if time==0:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment