Browse Source

No longer references DataArray where it shouldn't, so that things work again without xarray installed. Fixes #15

lon0
Bill Ladwig 8 years ago
parent
commit
f2f672151e
  1. 23
      src/wrf/decorators.py
  2. 8
      src/wrf/specialdec.py

23
src/wrf/decorators.py

@ -186,26 +186,29 @@ def left_iteration(ref_var_expected_dims,
# Skip the possible empty/missing arrays for the join method # Skip the possible empty/missing arrays for the join method
skip_missing = False skip_missing = False
for arg in new_args: for arg in new_args:
if isinstance(arg, DataArray): try:
arr = to_np(arg) _ = arg.ndim
elif isinstance(arg, np.ndarray): except AttributeError:
arr = arg continue # Not an array object
else: else:
continue arr = to_np(arg)
if isinstance(arr, np.ma.MaskedArray):
if arr.mask.all():
try:
all_masked = arr.mask.all()
except AttributeError:
pass # Not a masked array
else:
if all_masked:
for output in viewvalues(outd): for output in viewvalues(outd):
output[left_and_slice_idxs] = ( output[left_and_slice_idxs] = (
Constants.DEFAULT_FILL) Constants.DEFAULT_FILL)
skip_missing = True skip_missing = True
mask_output = True mask_output = True
break
if skip_missing: if skip_missing:
continue continue
# Insert the output views if one hasn't been provided # Insert the output views if one hasn't been provided
if "outview" not in new_kargs: if "outview" not in new_kargs:
for outkey,output in viewitems(outd): for outkey,output in viewitems(outd):

8
src/wrf/specialdec.py

@ -70,13 +70,9 @@ def uvmet_left_iter(alg_dtype=np.float64):
mode = 2 # probably 3D with 2D lat/lon plus Time mode = 2 # probably 3D with 2D lat/lon plus Time
has_missing = False has_missing = False
u_arr = u u_arr = to_np(u)
if isinstance(u, DataArray):
u_arr = to_np(u)
v_arr = v v_arr = to_np(v)
if isinstance(v, DataArray):
v_arr = to_np(v)
umissing = Constants.DEFAULT_FILL umissing = Constants.DEFAULT_FILL
if isinstance(u_arr, np.ma.MaskedArray): if isinstance(u_arr, np.ma.MaskedArray):

Loading…
Cancel
Save