From d097392e1391110d2a424c459485fdd2f5307a7c Mon Sep 17 00:00:00 2001 From: tomrink <rink@ssec.wisc.edu> Date: Tue, 17 Nov 2020 14:07:00 -0600 Subject: [PATCH] snapshot... --- modules/util/gfs_reader.py | 56 ++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/modules/util/gfs_reader.py b/modules/util/gfs_reader.py index 1e4a872f..cafa3794 100644 --- a/modules/util/gfs_reader.py +++ b/modules/util/gfs_reader.py @@ -147,12 +147,14 @@ def get_horz_layer_s(xr_dataset, fld_names, press, lon_range=None, lat_range=Non return sub_fld -def get_time_interpolated_layer(ds_0, ds_1, time_0, time_1, time, fld_name, press, lon_range=None, lat_range=None): - lyr_0 = get_horz_layer(ds_0, fld_name, press, lon_range=lon_range, lat_range=lat_range) - lyr_1 = get_horz_layer(ds_1, fld_name, press, lon_range=lon_range, lat_range=lat_range) +def get_time_interpolated_layer(xr_dataset_s, time_s, time, fld_name, press, lon_range=None, lat_range=None, method='linear'): + layer_s = [] + for ds in xr_dataset_s: + lyr = get_horz_layer(ds, fld_name, press, lon_range=lon_range, lat_range=lat_range) + layer_s.append(lyr) - lyr = xr.concat([lyr_0, lyr_1], 'time') - lyr = lyr.assign_coords(time=[time_0, time_1]) + lyr = xr.concat(layer_s, 'time') + lyr = lyr.assign_coords(time=time_s) intrp_lyr = lyr.interp(time=time, method='linear') intrp_lyr = intrp_lyr.expand_dims('channel') @@ -161,12 +163,14 @@ def get_time_interpolated_layer(ds_0, ds_1, time_0, time_1, time, fld_name, pres return intrp_lyr -def get_time_interpolated_layer_s(ds_0, ds_1, time_0, time_1, time, fld_name_s, press, lon_range=None, lat_range=None): - lyr_s_0 = get_horz_layer_s(ds_0, fld_name_s, press, lon_range=lon_range, lat_range=lat_range) - lyr_s_1 = get_horz_layer_s(ds_1, fld_name_s, press, lon_range=lon_range, lat_range=lat_range) +def get_time_interpolated_layer_s(xr_dataset_s, time_s, time, fld_name_s, press, lon_range=None, lat_range=None, method='linear'): + layer_s = [] + for ds in xr_dataset_s: + lyr = get_horz_layer_s(ds, fld_name_s, press, lon_range=lon_range, lat_range=lat_range, method=method) + layer_s.append(lyr) - lyr = xr.concat([lyr_s_0, lyr_s_1], 'time') - lyr = lyr.assign_coords(time=[time_0, time_1]) + lyr = xr.concat(layer_s, 'time') + lyr = lyr.assign_coords(time=time_s) intrp_lyr = lyr.interp(time=time, method='linear') @@ -230,31 +234,31 @@ def get_point(xr_dataset, fld_name, lons, lats): return intrp_fld -def get_time_interpolated_vert_profile(ds_0, ds_1, time0, time1, fld_name, time, lons, lats): +def get_time_interpolated_vert_profile(xr_dataset_s, time_s, fld_name, time, lons, lats, method='linear'): + prof_s = [] + for ds in xr_dataset_s: + vp = get_vert_profile(ds, fld_name, lons, lats) + prof_s.append(vp) - prof_0 = get_vert_profile(ds_0, fld_name, lons, lats) - prof_1 = get_vert_profile(ds_1, fld_name, lons, lats) - - prof = xr.concat([prof_0, prof_1], 'time') - prof = prof.assign_coords(time=[time0, time1]) - - intrp_prof = prof.interp(time=time, method='linear') + prof = xr.concat(prof_s, 'time') + prof = prof.assign_coords(time=time_s) + intrp_prof = prof.interp(time=time, method=method) intrp_prof = intrp_prof.values return intrp_prof -def get_time_interpolated_vert_profile_s(ds_0, ds_1, time0, time1, fld_name_s, time, lons, lats): - - prof_0 = get_vert_profile_s(ds_0, fld_name_s, lons, lats) - prof_1 = get_vert_profile_s(ds_1, fld_name_s, lons, lats) - - prof = xr.concat([prof_0, prof_1], 'time') - prof = prof.assign_coords(time=[time0, time1]) +def get_time_interpolated_vert_profile_s(xr_dataset_s, time_s, fld_name_s, time, lons, lats, method='linear'): + prof_s = [] + for ds in xr_dataset_s: + vp = get_vert_profile(ds, fld_name_s, lons, lats) + prof_s.append(vp) - intrp_prof = prof.interp(time=time, method='linear') + prof = xr.concat(prof_s, 'time') + prof = prof.assign_coords(time=time_s) + intrp_prof = prof.interp(time=time, method=method) intrp_prof = intrp_prof.values return intrp_prof -- GitLab