Skip to content

Instantly share code, notes, and snippets.

@dvgodoy
Created October 8, 2022 19:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dvgodoy/5a13a443452ad8e6595867faade66a89 to your computer and use it in GitHub Desktop.
Save dvgodoy/5a13a443452ad8e6595867faade66a89 to your computer and use it in GitHub Desktop.
def surface_stat(data, surface_perc, stat='mean'):
# Average anomaly weighted by surface area, not counting missing data
data_mean = np.array([np.nansum(ev * surface_perc) /
(~np.isnan(ev) * surface_perc).sum()
for ev in data])
if stat == 'mean':
return data_mean
elif stat == 'std':
data_var = [np.nansum((ev - ev_mean) ** 2 * surface_perc) /
(~np.isnan(ev) * surface_perc).sum()
for ev, ev_mean in zip(data, data_mean)]
return np.sqrt(data_var)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment