gfdlvitals 3.0.10__py3-none-any.whl → 3.0.12__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -63,7 +63,7 @@ def xr_average(fyear, tar, modules):
63
63
  )
64
64
 
65
65
  t_bounds = dset.time_bnds
66
- dt = t_bounds[:,:,1] - t_bounds[:,:,0]
66
+ dt = t_bounds.isel(nv=1) - t_bounds.isel(nv=0)
67
67
  weights = dt.astype("float") * _masked_area
68
68
  _dset_weighted = xrtools.xr_weighted_avg(dset, weights)
69
69
  xrtools.xr_to_db(
@@ -137,7 +137,7 @@ def xr_average(fyear, tar, modules):
137
137
  _dset_min = _dset_min.rename(newvars)
138
138
 
139
139
  t_bounds = dset.time_bnds
140
- dt = t_bounds[:,:,1] - t_bounds[:,:,0]
140
+ dt = t_bounds.isel(nv=1) - t_bounds.isel(nv=0)
141
141
  weights = dt.astype("float")
142
142
 
143
143
  _dset_weighted = xrtools.xr_weighted_avg(_dset, weights)
@@ -112,7 +112,7 @@ def xr_average(fyear, tar, modules):
112
112
  # _masked_area = _masked_area.fillna(0)
113
113
 
114
114
  t_bounds = dset.time_bnds
115
- dt = t_bounds[:,:,1] - t_bounds[:,:,0]
115
+ dt = t_bounds.isel(nv=1) - t_bounds.isel(nv=0)
116
116
  weights = dt.astype("float") * _masked_area
117
117
  if _measure == "soil_area":
118
118
  area_x_depth = _masked_area * depth
@@ -58,7 +58,7 @@ def xr_average(fyear, tar, modules):
58
58
  )
59
59
 
60
60
  t_bounds = dset.time_bnds
61
- dt = t_bounds[:,:,1] - t_bounds[:,:,0]
61
+ dt = t_bounds.isel(nv=1) - t_bounds.isel(nv=0)
62
62
  weights = dt.astype("float") * _masked_area
63
63
  _dset_weighted = xrtools.xr_weighted_avg(dset, weights)
64
64
  xrtools.xr_to_db(
@@ -63,7 +63,7 @@ def xr_average(fyear, tar, modules):
63
63
  )
64
64
 
65
65
  t_bounds = dset.time_bnds
66
- dt = t_bounds[:,:,1] - t_bounds[:,:,0]
66
+ dt = t_bounds.isel(nv=1) - t_bounds.isel(nv=0)
67
67
  weights = dt.astype("float") * _masked_area
68
68
  _dset_weighted = xrtools.xr_weighted_avg(dset, weights)
69
69
  xrtools.xr_to_db(
gfdlvitals/models/CM4.py CHANGED
@@ -43,37 +43,57 @@ def routines(args, infile):
43
43
  "aerosol_month_cmip": "AeroCMIP",
44
44
  }
45
45
  if any(comp in comps for comp in ["atmos", "all"]):
46
- averagers.cubesphere.xr_average(fyear, tar, modules)
46
+ try:
47
+ averagers.cubesphere.xr_average(fyear, tar, modules)
48
+ except Exception as exc:
49
+ print("\n\n# -----\n# Atmosphere vitals failed\n# -----\n\n")
50
+ print(exc)
47
51
 
48
52
  # -- Land Fields
49
53
  modules = {"land_month": "Land"}
50
54
  if any(comp in comps for comp in ["land", "all"]):
51
- averagers.land_lm4.xr_average(fyear, tar, modules)
55
+ try:
56
+ averagers.land_lm4.xr_average(fyear, tar, modules)
57
+ except Exception as exc:
58
+ print("\n\n# -----\n# Land vitals failed\n# -----\n\n")
59
+ print(exc)
52
60
 
53
61
  # -- Ice
54
62
  modules = {"ice_month": "Ice"}
55
63
  if any(comp in comps for comp in ["ice", "all"]):
56
- averagers.ice.xr_average(fyear, tar, modules)
64
+ try:
65
+ averagers.ice.xr_average(fyear, tar, modules)
66
+ except Exception as exc:
67
+ print("\n\n# -----\n# Ice vitals failed\n# -----\n\n")
68
+ print(exc)
57
69
 
58
70
  # -- Ice Shelf
59
71
  fname = f"{fyear}.ice_shelf_scalar.nc"
60
72
  if any(comp in comps for comp in ["iceshelf", "all"]):
61
- if tar_member_exists(tar, fname):
62
- print(fname)
63
- fdata = nctools.extract_from_tar(tar, fname, ncfile=True)
64
- extract_ocean_scalar.mom6(
65
- fdata, fyear, "./", outname="globalAveIceShelf.db"
66
- )
67
- fdata.close()
73
+ try:
74
+ if tar_member_exists(tar, fname):
75
+ print(fname)
76
+ fdata = nctools.extract_from_tar(tar, fname, ncfile=True)
77
+ extract_ocean_scalar.mom6(
78
+ fdata, fyear, "./", outname="globalAveIceShelf.db"
79
+ )
80
+ fdata.close()
81
+ except Exception as exc:
82
+ print("\n\n# -----\n# Ice shelf vitals failed\n# -----\n\n")
83
+ print(exc)
68
84
 
69
85
  # -- Ocean
70
86
  fname = f"{fyear}.ocean_scalar_annual.nc"
71
87
  if any(comp in comps for comp in ["ocean", "all"]):
72
- if tar_member_exists(tar, fname):
73
- print(f"{fyear}.ocean_scalar_annual.nc")
74
- fdata = nctools.extract_from_tar(tar, fname, ncfile=True)
75
- extract_ocean_scalar.mom6(fdata, fyear, "./", outname="globalAveOcean.db")
76
- fdata.close()
88
+ try:
89
+ if tar_member_exists(tar, fname):
90
+ print(f"{fyear}.ocean_scalar_annual.nc")
91
+ fdata = nctools.extract_from_tar(tar, fname, ncfile=True)
92
+ extract_ocean_scalar.mom6(fdata, fyear, "./", outname="globalAveOcean.db")
93
+ fdata.close()
94
+ except Exception as exc:
95
+ print("\n\n# -----\n# Ocean vitals failed\n# -----\n\n")
96
+ print(exc)
77
97
 
78
98
  # -- OBGC
79
99
  modules = {
@@ -89,11 +109,19 @@ def routines(args, infile):
89
109
  "ocean_bling_cmip6_omip_tracers_year_z": "OBGC",
90
110
  }
91
111
  if any(comp in comps for comp in ["obgc", "all"]):
92
- averagers.tripolar.xr_average(fyear, tar, modules)
112
+ try:
113
+ averagers.tripolar.xr_average(fyear, tar, modules)
114
+ except Exception as exc:
115
+ print("\n\n# -----\n# OBGC vitals failed\n# -----\n\n")
116
+ print(exc)
93
117
 
94
118
  # -- AMOC
95
119
  if any(comp in comps for comp in ["amoc", "all"]):
96
- diags.amoc.mom6_amoc(fyear, tar)
120
+ try:
121
+ diags.amoc.mom6_amoc(fyear, tar)
122
+ except Exception as exc:
123
+ print("\n\n# -----\n# AMOC vitals failed\n# -----\n\n")
124
+ print(exc)
97
125
 
98
126
  # -- Close out the tarfile handle
99
127
  tar.close()
gfdlvitals/version.py CHANGED
@@ -1,3 +1,3 @@
1
1
  """momlevel: version information"""
2
2
 
3
- __version__ = "3.0.10"
3
+ __version__ = "3.0.12"
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: gfdlvitals
3
- Version: 3.0.10
3
+ Version: 3.0.12
4
4
  Summary: Tools for calculating scalar diagnostics from GFDL models
5
5
  Home-page: https://github.com/jkrasting/gfdlvitals
6
6
  Author: John Krasting
@@ -26,6 +26,7 @@ Requires-Dist: matplotlib
26
26
  Requires-Dist: xarray
27
27
  Requires-Dist: cftime
28
28
  Requires-Dist: nc-time-axis
29
+ Dynamic: license-file
29
30
 
30
31
 
31
32
  **gfdlvitals** is a Python package in the public domain
@@ -4,19 +4,19 @@ gfdlvitals/cli.py,sha256=AKt1hWlhuuSkK8hgpts7OTAxY2B_ZrEH5BuL_CWnbC4,5156
4
4
  gfdlvitals/extensions.py,sha256=gi7Y3n56N_dfGBu4a4ocJxPGF731BEBR0btu5aL27uA,18477
5
5
  gfdlvitals/plot.py,sha256=X5zB5ChxhuBs6OANMdU-9WH_ZUbGEnaNCWXrhllYpT0,12539
6
6
  gfdlvitals/sample.py,sha256=wvjmx--IbvKKT0AIucw5GE1DCYcVQPtAr7VGY4rMUaA,225
7
- gfdlvitals/version.py,sha256=F2vlZ5yqSJLp9JF1dPtCAaYTQZQN1uAl8k2SXEShgDU,60
7
+ gfdlvitals/version.py,sha256=Y_GuiaVvfxLi2ALsEw8x05NMI95GT41PdQoRRjwKrnA,60
8
8
  gfdlvitals/averagers/__init__.py,sha256=q9VRiraniy0-HwrwOZNw7wmGZEgQxYuSeOvpPMz0dYI,248
9
- gfdlvitals/averagers/cubesphere.py,sha256=YLsx8EvSclFtfPjBIeMpRYN3FKIMmCOjMtUTHOwJFBk,2246
10
- gfdlvitals/averagers/ice.py,sha256=XJo6r-jDNsKEJx6Mue1_QdFdeJcVQFoHI5DGs0K8SXA,5699
9
+ gfdlvitals/averagers/cubesphere.py,sha256=q1SF-Qlmxdgia_u_oYXNgw-NtpkgMuZk-ZMKuNSnLbI,2254
10
+ gfdlvitals/averagers/ice.py,sha256=uBZczgBCtxPGv3BnOhAzMDcaCfUKvIZ8P5BQyX5LSVI,5707
11
11
  gfdlvitals/averagers/land_lm3.py,sha256=HfzfGeCCB344kOfYutansuXCkV80uZaDZA7ULw72WHA,1879
12
- gfdlvitals/averagers/land_lm4.py,sha256=h_ISguOlGE4Har9KpQYvKLobtwRMxzJA0tbKI8eyY6I,4856
13
- gfdlvitals/averagers/latlon.py,sha256=HIj6f0KyF2sMDTMNd2FEnGef2dQz0NQQQiYuFUFL3cY,2201
14
- gfdlvitals/averagers/tripolar.py,sha256=pGbnsYzLfU3NUb7m8oDZNYvfFuuUmgHy5NqHm1TKBsA,2343
12
+ gfdlvitals/averagers/land_lm4.py,sha256=S6mtGolA5iY_BFiWh5nO5bWy7vv-T_RSE7u1TO-IrPE,4864
13
+ gfdlvitals/averagers/latlon.py,sha256=5KQSU6jyp5mrIIlE5pAQwYtPZKmJWa3VrD9XD9kI9mY,2209
14
+ gfdlvitals/averagers/tripolar.py,sha256=HOIWI-BWTmouh3VrjSCFBTNNYQtGbHGNX0TPru3lzyk,2351
15
15
  gfdlvitals/diags/__init__.py,sha256=1w_CSncdjJRC6ingsqfAI6EPy0KgK2J2NCTD_ifYpj8,104
16
16
  gfdlvitals/diags/amoc.py,sha256=bDyKfLe0MkNp2nyfyG-yABma1vw5EbWqExN2WfFDXwE,3219
17
17
  gfdlvitals/diags/fms.py,sha256=UDUAxihg9kZGRwxYaSOslLPrhYgNBrtBwJJFSUsLFFg,2568
18
18
  gfdlvitals/diags/m6toolbox.py,sha256=U6Aau5b0QWVvFEblbt4r_9RK9oj23gaXiPwLOtf4gSM,15854
19
- gfdlvitals/models/CM4.py,sha256=0pkgZVv4yoJUjPXZkcY_T1VjJKjSdIeND9u6vpvZQ4s,3322
19
+ gfdlvitals/models/CM4.py,sha256=tLNfN6r8z3KWP_P3zImg4O2UQ_Q-kASOM-_Nls0Acxk,4360
20
20
  gfdlvitals/models/ESM2.py,sha256=TpMGHMmHY_6cuFQziDVdLtdejgSxGU0Uyybp0-1YIy0,2054
21
21
  gfdlvitals/models/__init__.py,sha256=0A7Sf8iA5xpy_hSLTtmS9Nw8SULj62uaOerUG2y90qk,91
22
22
  gfdlvitals/resources/LM3_variable_dictionary.pkl,sha256=y8vYQWGAvAaEhDNSAJexGSI5tBLpp1MyF8ro3cI3wK0,15915
@@ -50,14 +50,14 @@ gfdlvitals/util/gmeantools.py,sha256=dy-ZeQPv7V5TBWm6EKZtZvrEjtAQJOax3B_gm8vdxcE
50
50
  gfdlvitals/util/merge.py,sha256=pzihnvME1ym2MCyc2BeeQq7Jk10GECSoFBcvTubTY-g,1120
51
51
  gfdlvitals/util/netcdf.py,sha256=CYmP8HQ4iwTvC3HltjF_6_C2FrEEGocWoSiCfHWETQA,2217
52
52
  gfdlvitals/util/xrtools.py,sha256=4gIDkBIG_tW-lBHUfETmsOoDy3oKO0eUoGFaWOmvtEY,2924
53
- gfdlvitals-3.0.10.data/scripts/db2nc,sha256=htD-aVKLHGeszfvx_3gH1iYs2bXyCIRRZ_BZYvAjxyQ,5793
54
- gfdlvitals-3.0.10.data/scripts/gfdlvitals,sha256=z7jnQIebmlz6eo0qv0X2UWgVU9TAERJ9a38YIbucVjA,172
55
- gfdlvitals-3.0.10.data/scripts/plotdb,sha256=m_QS96umb3aFIfr1fdfDa81pT8RP-AJ9LhP9Bbr4LQs,1632
53
+ gfdlvitals-3.0.12.data/scripts/db2nc,sha256=htD-aVKLHGeszfvx_3gH1iYs2bXyCIRRZ_BZYvAjxyQ,5793
54
+ gfdlvitals-3.0.12.data/scripts/gfdlvitals,sha256=z7jnQIebmlz6eo0qv0X2UWgVU9TAERJ9a38YIbucVjA,172
55
+ gfdlvitals-3.0.12.data/scripts/plotdb,sha256=m_QS96umb3aFIfr1fdfDa81pT8RP-AJ9LhP9Bbr4LQs,1632
56
+ gfdlvitals-3.0.12.dist-info/licenses/LICENSE,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
57
  scripts/db2nc,sha256=_KqHUowYB8Ff1td6Cb0isWtwlNbnJrMUNri9Ge8kd1E,5807
57
58
  scripts/gfdlvitals,sha256=k5RYzFXWN_2Ckr2mdRbJ-IyMdCQAxuE3RBkGpIXvp3U,186
58
59
  scripts/plotdb,sha256=Rf79UOCwGy9f5HxtgSeiYUiiotS2Bqh-Unr0G4yykyg,1645
59
- gfdlvitals-3.0.10.dist-info/LICENSE,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
- gfdlvitals-3.0.10.dist-info/METADATA,sha256=R99mR6xvqTiW_xAWngmQ8qJSGEve7KdHzM1TJdxacIs,1293
61
- gfdlvitals-3.0.10.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
62
- gfdlvitals-3.0.10.dist-info/top_level.txt,sha256=_nlHTn5dcU38mu0h1NZouDSBQouNvihfTSmua76bwLs,24
63
- gfdlvitals-3.0.10.dist-info/RECORD,,
60
+ gfdlvitals-3.0.12.dist-info/METADATA,sha256=lvCfUa5UmH4p8AMj2HZ3yUUN5esdrP_YqwOYCFfh2j8,1315
61
+ gfdlvitals-3.0.12.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
62
+ gfdlvitals-3.0.12.dist-info/top_level.txt,sha256=_nlHTn5dcU38mu0h1NZouDSBQouNvihfTSmua76bwLs,24
63
+ gfdlvitals-3.0.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5