gfdlvitals 3.0.10__tar.gz → 3.0.12__tar.gz

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.
Files changed (66) hide show
  1. {gfdlvitals-3.0.10/gfdlvitals.egg-info → gfdlvitals-3.0.12}/PKG-INFO +3 -2
  2. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/averagers/cubesphere.py +1 -1
  3. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/averagers/ice.py +1 -1
  4. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/averagers/land_lm4.py +1 -1
  5. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/averagers/latlon.py +1 -1
  6. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/averagers/tripolar.py +1 -1
  7. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/models/CM4.py +45 -17
  8. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/version.py +1 -1
  9. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12/gfdlvitals.egg-info}/PKG-INFO +3 -2
  10. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/LICENSE +0 -0
  11. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/README.md +0 -0
  12. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/docs/source/conf.py +0 -0
  13. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/__init__.py +0 -0
  14. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/averagers/__init__.py +0 -0
  15. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/averagers/land_lm3.py +0 -0
  16. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/cli.py +0 -0
  17. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/diags/__init__.py +0 -0
  18. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/diags/amoc.py +0 -0
  19. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/diags/fms.py +0 -0
  20. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/diags/m6toolbox.py +0 -0
  21. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/extensions.py +0 -0
  22. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/models/ESM2.py +0 -0
  23. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/models/__init__.py +0 -0
  24. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/plot.py +0 -0
  25. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/LM3_variable_dictionary.pkl +0 -0
  26. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/LICENSE.txt +0 -0
  27. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-Black.ttf +0 -0
  28. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
  29. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-Bold.ttf +0 -0
  30. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
  31. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-Italic.ttf +0 -0
  32. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-Light.ttf +0 -0
  33. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
  34. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-Medium.ttf +0 -0
  35. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  36. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-Regular.ttf +0 -0
  37. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-Thin.ttf +0 -0
  38. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
  39. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto_Condensed/LICENSE.txt +0 -0
  40. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf +0 -0
  41. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto_Condensed/RobotoCondensed-BoldItalic.ttf +0 -0
  42. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto_Condensed/RobotoCondensed-Italic.ttf +0 -0
  43. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto_Condensed/RobotoCondensed-Light.ttf +0 -0
  44. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto_Condensed/RobotoCondensed-LightItalic.ttf +0 -0
  45. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf +0 -0
  46. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/historical.db +0 -0
  47. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/resources/picontrol.db +0 -0
  48. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/sample.py +0 -0
  49. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/util/__init__.py +0 -0
  50. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/util/average.py +0 -0
  51. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/util/extract_ocean_scalar.py +0 -0
  52. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/util/git.py +0 -0
  53. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/util/gmeantools.py +0 -0
  54. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/util/merge.py +0 -0
  55. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/util/netcdf.py +0 -0
  56. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals/util/xrtools.py +0 -0
  57. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals.egg-info/SOURCES.txt +0 -0
  58. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals.egg-info/dependency_links.txt +0 -0
  59. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals.egg-info/not-zip-safe +0 -0
  60. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals.egg-info/requires.txt +0 -0
  61. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/gfdlvitals.egg-info/top_level.txt +0 -0
  62. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/scripts/db2nc +0 -0
  63. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/scripts/gfdlvitals +0 -0
  64. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/scripts/plotdb +0 -0
  65. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/setup.cfg +0 -0
  66. {gfdlvitals-3.0.10 → gfdlvitals-3.0.12}/setup.py +0 -0
@@ -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
@@ -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(
@@ -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()
@@ -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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes