Skip to content
Snippets Groups Projects
Commit 69674809 authored by tomrink's avatar tomrink
Browse files

snapshot...

parent 2a63cf40
Branches
No related tags found
No related merge requests found
...@@ -232,7 +232,7 @@ def get_vert_profile_s(xr_dataset, fld_name_s, lons, lats, method='linear'): ...@@ -232,7 +232,7 @@ def get_vert_profile_s(xr_dataset, fld_name_s, lons, lats, method='linear'):
return intrp_fld return intrp_fld
def get_point(xr_dataset, fld_name, lons, lats, method='nearest'): def get_point(xr_dataset, fld_name, lons, lats, pres_s=None, method='nearest'):
if lon360: # convert -180/+180 to 0,360 if lon360: # convert -180/+180 to 0,360
lons = np.where(lons < 0, lons + 360, lons) # convert -180,180 to 0,360 lons = np.where(lons < 0, lons + 360, lons) # convert -180,180 to 0,360
...@@ -240,17 +240,24 @@ def get_point(xr_dataset, fld_name, lons, lats, method='nearest'): ...@@ -240,17 +240,24 @@ def get_point(xr_dataset, fld_name, lons, lats, method='nearest'):
lon_coords = np.linspace(0, 359.5, xr_dataset.fakeDim2.size) lon_coords = np.linspace(0, 359.5, xr_dataset.fakeDim2.size)
fld = xr_dataset[fld_name] fld = xr_dataset[fld_name]
fld = fld.assign_coords(fakeDim2=lon_coords, fakeDim1=lat_coords)
if pres_s is not None:
fld = fld.assign_coords(fakeDim2=lon_coords, fakeDim1=lat_coords, fakeDim0=plevs)
else:
fld = fld.assign_coords(fakeDim2=lon_coords, fakeDim1=lat_coords)
dim1 = xr.DataArray(lats, dims='k') dim1 = xr.DataArray(lats, dims='k')
dim2 = xr.DataArray(lons, dims='k') dim2 = xr.DataArray(lons, dims='k')
if pres_s is not None:
intrp_fld = fld.interp(fakeDim1=dim1, fakeDim2=dim2, method=method) dim0 = xr.DataArray(pres_s, dims='k')
intrp_fld = fld.interp(fakeDim0=dim0, fakeDim1=dim1, fakeDim2=dim2, method=method)
else:
intrp_fld = fld.interp(fakeDim1=dim1, fakeDim2=dim2, method=method)
return intrp_fld return intrp_fld
def get_point_s(xr_dataset, fld_name_s, lons, lats, method='nearest'): def get_point_s(xr_dataset, fld_name_s, lons, lats, pres_s=None, method='nearest'):
if lon360: # convert -180/+180 to 0,360 if lon360: # convert -180/+180 to 0,360
lons = np.where(lons < 0, lons + 360, lons) # convert -180,180 to 0,360 lons = np.where(lons < 0, lons + 360, lons) # convert -180,180 to 0,360
...@@ -260,14 +267,20 @@ def get_point_s(xr_dataset, fld_name_s, lons, lats, method='nearest'): ...@@ -260,14 +267,20 @@ def get_point_s(xr_dataset, fld_name_s, lons, lats, method='nearest'):
fld_s = [] fld_s = []
for fld_name in fld_name_s: for fld_name in fld_name_s:
fld = xr_dataset[fld_name] fld = xr_dataset[fld_name]
fld = fld.assign_coords(fakeDim2=lon_coords, fakeDim1=lat_coords) if pres_s is not None:
fld = fld.assign_coords(fakeDim2=lon_coords, fakeDim1=lat_coords, fakeDim0=plevs)
else:
fld = fld.assign_coords(fakeDim2=lon_coords, fakeDim1=lat_coords)
fld_s.append(fld) fld_s.append(fld)
fld = xr.concat(fld_s, 'fld_dim') fld = xr.concat(fld_s, 'fld_dim')
dim1 = xr.DataArray(lats, dims='k') dim1 = xr.DataArray(lats, dims='k')
dim2 = xr.DataArray(lons, dims='k') dim2 = xr.DataArray(lons, dims='k')
if pres_s is not None:
intrp_fld = fld.interp(fakeDim1=dim1, fakeDim2=dim2, method=method) dim0 = xr.DataArray(pres_s, dims='k')
intrp_fld = fld.interp(fakeDim0=dim0, fakeDim1=dim1, fakeDim2=dim2, method=method)
else:
intrp_fld = fld.interp(fakeDim1=dim1, fakeDim2=dim2, method=method)
return intrp_fld return intrp_fld
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment