PyESPER 1.0.0__py3-none-any.whl → 1.0.2__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.
PyESPER/emlr_estimate.py CHANGED
@@ -96,38 +96,37 @@ def emlr_estimate(Equations, DesiredVariables, Path, OutputCoordinates={}, Predi
96
96
  DUCu2 = [safe_fill(duncdfs[k], -9999.0) for k in keys]
97
97
 
98
98
  # Compute uncertainty estimates
99
- for eq in Equations:
100
- EM = []
101
-
102
- for cucombo in range(len(Coefs["US"])):
103
- # Grab each coefficient
104
- s = Coefs["US"][cucombo]
105
- t = Coefs["UT"][cucombo]
106
- a = Coefs["UA"][cucombo]
107
- b = Coefs["UB"][cucombo]
108
- c = Coefs["UC"][cucombo]
109
-
110
- # Main uncertainty components
111
- s1 = (s * USu2[0][cucombo]) ** 2
112
- t1 = (t * UTu2[1][cucombo]) ** 2
113
- a1 = (a * UAu2[2][cucombo]) ** 2
114
- b1 = (b * UBu2[3][cucombo]) ** 2
115
- c1 = (c * UCu2[4][cucombo]) ** 2
116
- sum2 = s1 + t1 + a1 + b1 + c1
117
-
118
- # Delta uncertainties
119
- ds1 = (s * DUSu2[0][cucombo]) ** 2
120
- dt1 = (t * DUTu2[1][cucombo]) ** 2
121
- da1 = (a * DUAu2[2][cucombo]) ** 2
122
- db1 = (b * DUBu2[3][cucombo]) ** 2
123
- dc1 = (c * DUCu2[4][cucombo]) ** 2
124
- dsum2 = ds1 + dt1 + da1 + db1 + dc1
125
-
126
- # Final uncertainty
127
- uncestimate = np.sqrt(sum2 - dsum2 + emlr[cucombo] ** 2)
128
- EM.append(uncestimate)
129
-
130
- EqM.append(EM)
99
+ EM = []
100
+
101
+ for cucombo in range(len(Coefs["US"])):
102
+ # Grab each coefficient
103
+ s = Coefs["US"][cucombo]
104
+ t = Coefs["UT"][cucombo]
105
+ a = Coefs["UA"][cucombo]
106
+ b = Coefs["UB"][cucombo]
107
+ c = Coefs["UC"][cucombo]
108
+
109
+ # Main uncertainty components
110
+ s1 = (s * USu2[0][cucombo]) ** 2
111
+ t1 = (t * UTu2[1][cucombo]) ** 2
112
+ a1 = (a * UAu2[2][cucombo]) ** 2
113
+ b1 = (b * UBu2[3][cucombo]) ** 2
114
+ c1 = (c * UCu2[4][cucombo]) ** 2
115
+ sum2 = s1 + t1 + a1 + b1 + c1
116
+
117
+ # Delta uncertainties
118
+ ds1 = (s * DUSu2[0][cucombo]) ** 2
119
+ dt1 = (t * DUTu2[1][cucombo]) ** 2
120
+ da1 = (a * DUAu2[2][cucombo]) ** 2
121
+ db1 = (b * DUBu2[3][cucombo]) ** 2
122
+ dc1 = (c * DUCu2[4][cucombo]) ** 2
123
+ dsum2 = ds1 + dt1 + da1 + db1 + dc1
124
+
125
+ # Final uncertainty
126
+ uncestimate = np.sqrt(sum2 - dsum2 + emlr[cucombo] ** 2)
127
+ EM.append(uncestimate)
128
+
129
+ EqM.append(EM)
131
130
 
132
131
  # Post-process and apply nan masks
133
132
  EqM2 = []
PyESPER/mixed.py CHANGED
@@ -24,8 +24,8 @@ def mixed(DesiredVariables, Path, OutputCoordinates={}, PredictorMeasurements={}
24
24
 
25
25
  Estimates, Uncertainties = {}, {}
26
26
  for est_type in EstimatesLIR.keys():
27
- estimates_lir = np.array(EstimatesLIR[est_type])
28
- estimates_nn = np.array(EstimatesNN[est_type])
27
+ estimates_lir = np.array(EstimatesLIR[est_type]).flatten() # need to flatten to match nn output shape
28
+ estimates_nn = np.array(EstimatesNN[est_type]).astype(np.float64) # DICx - where x = equation number - returns string values which prevents proper averaging with LIR estimates
29
29
  uncertainties_lir = np.array(UncertaintiesLIR[est_type])
30
30
  uncertainties_nn = np.array(UncertaintiesNN[est_type])
31
31
  Estimates[est_type] = np.mean([estimates_lir, estimates_nn], axis=0).tolist()
@@ -259,8 +259,8 @@ def organize_nn_output(Path, DesiredVariables, OutputCoordinates={}, PredictorMe
259
259
  total_uncertainty = np.sqrt(np.sum(u) - np.sum(du) + eu**2)
260
260
  sumu.append(total_uncertainty)
261
261
  dvu.append(sumu)
262
-
263
- Uncertainties[name] = dvu[0]
264
-
262
+
263
+ Uncertainties[name] = sumu
264
+
265
265
  return Uncertainties
266
266
 
PyESPER/run_nets.py CHANGED
@@ -33,32 +33,32 @@ def run_nets(DesiredVariables, Equations, code={}):
33
33
  Bd[name] = value["B"].astype(float).tolist()
34
34
  Cd[name] = value["C"].astype(float).tolist()
35
35
 
36
- # Define a mapping from equations to the list of variables
36
+ # Define a mapping from equations to the list of variable dictionaries
37
37
  equation_map = {
38
- 1: ["Sd", "Td", "Ad", "Bd", "Cd"],
39
- 2: ["Sd", "Td", "Ad", "Cd"],
40
- 3: ["Sd", "Td", "Bd", "Cd"],
41
- 4: ["Sd", "Td", "Cd"],
42
- 5: ["Sd", "Td", "Ad", "Bd"],
43
- 6: ["Sd", "Td", "Ad"],
44
- 7: ["Sd", "Td", "Bd"],
45
- 8: ["Sd", "Td"],
46
- 9: ["Sd", "Ad", "Bd", "Cd"],
47
- 10: ["Sd", "Ad", "Cd"],
48
- 11: ["Sd", "Bd", "Cd"],
49
- 12: ["Sd", "Cd"],
50
- 13: ["Sd", "Ad", "Bd"],
51
- 14: ["Sd", "Ad"],
52
- 15: ["Sd", "Bd"],
53
- 16: ["Sd"]
38
+ 1: [Sd, Td, Ad, Bd, Cd],
39
+ 2: [Sd, Td, Ad, Cd],
40
+ 3: [Sd, Td, Bd, Cd],
41
+ 4: [Sd, Td, Cd],
42
+ 5: [Sd, Td, Ad, Bd],
43
+ 6: [Sd, Td, Ad],
44
+ 7: [Sd, Td, Bd],
45
+ 8: [Sd, Td],
46
+ 9: [Sd, Ad, Bd, Cd],
47
+ 10: [Sd, Ad, Cd],
48
+ 11: [Sd, Bd, Cd],
49
+ 12: [Sd, Cd],
50
+ 13: [Sd, Ad, Bd],
51
+ 14: [Sd, Ad],
52
+ 15: [Sd, Bd],
53
+ 16: [Sd]
54
54
  }
55
-
55
+
56
56
  # Create the correct vector for each equation case
57
57
  for e in Equations:
58
58
  for v in DesiredVariables:
59
59
  name = v + str(e)
60
60
  # Get the corresponding variables for the equation
61
- variables = [locals()[var][name] for var in equation_map[e]]
61
+ variables = [var[name] for var in equation_map[e]]
62
62
  P[name] = [[[cosd, sind, lat, depth] + variables]]
63
63
  netstimateAtl, netstimateOther = [], []
64
64
  for n in range(1, 5):
@@ -0,0 +1,228 @@
1
+ Metadata-Version: 2.4
2
+ Name: PyESPER
3
+ Version: 1.0.2
4
+ Summary: Python version of ESPERv1
5
+ Author: LMD
6
+ Author-email: lmdias@uw.edu
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: numpy
9
+ Requires-Dist: seawater
10
+ Requires-Dist: scipy
11
+ Requires-Dist: matplotlib
12
+ Requires-Dist: PyCO2SYS
13
+ Requires-Dist: pandas
14
+ Dynamic: author
15
+ Dynamic: author-email
16
+ Dynamic: description
17
+ Dynamic: description-content-type
18
+ Dynamic: requires-dist
19
+ Dynamic: summary
20
+
21
+ # PyESPER
22
+ version 1.0.2
23
+
24
+ <ins>Note:</ins>
25
+ This is for use of the [PyESPER](https://github.com/LarissaMDias/PyESPER/blob/main) package. This package is being developed in parallel with [pyTRACE](https://github.com/d-sandborn/pyTRACE/tree/main).
26
+
27
+ ## Quick Start
28
+ Please see the associated [Examples](https://github.com/LarissaMDias/PyESPER/blob/main/examples.py) for a quick example of use of the preliminary PyESPER. To run this code, you will need to first make sure that you have downloaded the required associated files from the GitHub page as follows. You will also need to ensure that the installed package [requirements](https://github.com/LarissaMDias/PyESPER/blob/main/requirements.txt) are met. The example uses the [GLODAPv2.2023](https://glodap.info) dataset and requires the [glodap](https://github.com/BjerknesClimateDataCentre/glodap/tree/master) package be installed.
29
+
30
+ To install PyESPER to your remote repository, clone this repository and navigate to the PyESPER folder. It is recommended that you create a virtual environment and install all packages listed in the requirements.txt file. Then simply run the following in your terminal:
31
+
32
+ pip install PyESPER
33
+
34
+ Mat_fullgrid folder:
35
+ Folder of .mat files needed for each variable to be estimated, necessary for PyESPER_LIR or PyESPER_Mixed
36
+
37
+ NeuralNetworks folder:
38
+ Folder of .py files needed for each variable to be estimated, necessary for running PyESPER_NN or PyESPER_Mixed. These currently must be unpacked into the main directory.
39
+
40
+ Uncertainty_Polys folder:
41
+ Folder of .mat files needed for ach variable to be estimated, necessary for running PyESPER_NN or PyESPER_Mixed
42
+
43
+ SimpleCantEstimateLR.csv:
44
+ File necessary for estimating anthropogenic carbon component for pH or DIC
45
+
46
+ ## Introduction
47
+ PyESPER is a Python implementation of MATLAB Empirical Seawater Property Estimation Routines ([ESPERs](https://github.com/BRCScienceProducts/ESPER)), and the present version consists of a preliminary package which implements these routines. These routines provide estimates of seawater biogeochemical properties at user-provided sets of coordinates, depth, and available biogeochemical properties. Three algorithm options are available through these routines:
48
+
49
+ 1. Locally interpolated regressions (LIRs)
50
+ 2. Neural networks (NNs)
51
+ 3. Mixed
52
+
53
+ The routines predict coefficient and intercept values for a set of up to 16 equations, as follows:
54
+ (S=salinity, T=temperature, oxygen=dissolved oxygen molecule... see "PredictorMeasurements" for units).
55
+ 1. S, T, A, B, C
56
+ 2. S, T, A, C
57
+ 3. S, T, B, C
58
+ 4. S, T, C
59
+ 5. S, T, A, B
60
+ 6. S, T, A
61
+ 7. S, T, B
62
+ 8. S, T
63
+ 9. S, A, B, C
64
+ 10. S, A, C
65
+ 11. S, B, C
66
+ 12. S, C
67
+ 13. S, A, B
68
+ 14. S, A
69
+ 15. S, B
70
+ 16. S
71
+
72
+ <ins>DesiredVariable: A, B, C</ins>
73
+
74
+ -TA: nitrate, oxygen, silicate
75
+
76
+ -DIC: nitrate, oxygen, silicate
77
+
78
+ -pH: nitrate, oxygen, silicate
79
+
80
+ -phosphate: nitrate, oxygen, silicate
81
+
82
+ -nitrate: phosphate, oxygen, silicate
83
+
84
+ -silicate: phosphate, oxygen, nitrate
85
+
86
+ -oxygen: phosphate, nitrate, silicate
87
+
88
+ ### Documentation and citations:
89
+ LIARv1: Carter et al., 2016, doi: 10.1002/lom3.10087
90
+
91
+ LIARv2, LIPHR, LINR citation: Carter et al., 2018, doi: 10.1002/lom3.10232
92
+
93
+ LIPR, LISIR, LIOR, first described/used: Carter et al., 2021, doi: 10.1002/lom3/10232
94
+
95
+ LIRv3 and ESPER_NN (ESPERv1.1): Carter, 2021, doi: 10.5281/ZENODO.5512697
96
+
97
+ PyESPER is a Python implementation is ESPER:
98
+ Carter et al., 2021, doi: 10.1002/lom3/10461
99
+
100
+ ESPER_NN is inspired by CANYON-B, which also uses neural networks:
101
+ Bittig et al., 2018, doi: 10.3389/fmars.2018.00328
102
+
103
+ ### PyESPER_LIR
104
+ These are the first version of Python implementation of LIRv.3; ESPERv1.1, which use collections of interpolated linear networks.
105
+
106
+ ### PyESPER_NN
107
+ These are the first version of Python implementation of ESPERv1.1, which uses neural networks.
108
+
109
+ ### PyESPER_Mixed
110
+ These are the first version of Python implementation of ESPERv1.1, which is an average of the LIR and NN estimates.
111
+
112
+ ## Basic Use
113
+
114
+ ### Requirements
115
+ For the present version, you will need to download the repository along with the affiliated neural network files within the [NeuralNetworks](https://github.com/LarissaMDias/PyESPER/tree/main/NeuralNetworks) folder, and the [SimpleCantEstimateLR_full.csv](https://github.com/LarissaMDias/PyESPER/blob/main/SimpleCantEstimateLR_full.csv) file for estimates involving anthropogenic carbon calculations (pH and dissolved inorganic carbon).
116
+
117
+ To run the code, you will need numpy, pandas, seawater (now deprecated but necessary for consistency with ESPERv1), scipy, time, matplotlib, PyCO2SYS, importlib, statistics, and os packages.
118
+
119
+ Please refer to the examples .py file for proper use.
120
+
121
+ ### Organization and Units
122
+ The measurements are provided in molar units or if potential temperature or AOU are needed but not provided by the user. Scale differences from TEOS-10 are a negligible component of alkalinity estimate error. PyCO2SYS is required if pH on the total scale is a desired output variable.
123
+
124
+ #### Input/Output dimensions:
125
+ p: Integer number of desired property estimate types (e.g., TA, pH, NO3-)
126
+
127
+ n: Integer number of desired estimate locations
128
+
129
+ e: Integer number of equations used at each location
130
+
131
+ y: Integer number of parameter measurement types provided by the user
132
+
133
+ n*e: Total number of estimates returned as an n by e array
134
+
135
+ #### Required Inputs:
136
+
137
+ ##### DesiredVariables (required 1 by p list, where p specifies the desired variable(x) in string format):
138
+ List elements specify which variables will be returned. Excepting unitless pH, all outputs are in micromol per kg seawater. Naming of list elements must be exactly as demonstrated below (excamples ["TA"], ["DIC", "phosphate", "oxygen"]).
139
+
140
+ <ins>Desired Variable: List Element Name (String Format):</ins>
141
+
142
+ Total Titration Seawater Alkalinity: TA
143
+
144
+ Total Dissolved Inorganic Carbon: DIC
145
+
146
+ in situ pH on the total scale: pH
147
+
148
+ Phosphate: phosphate
149
+
150
+ Nitrate: nitrate
151
+
152
+ Silicate: silicate
153
+
154
+ Dissolved Oxygen (O<sub>2</sub>): oxygen
155
+
156
+ ##### Path (required string):
157
+ Path directing Python to the location of saved/downloaded LIR files on the user's computer, if not in the current working directory (otherwise blank; e.g., '/Users/lara/Documents/Python' or '').
158
+
159
+ ##### OutputCoordinates (required n by 3 dictionary, where n are the number of desired estimate locations and the three dicstionary keys are longitude, latitude, and depth):
160
+ Coordinates at which estimates are desired. The keys should be longitude (degrees E), latitude (degrees N), and positive integer depth (m), with dictionary keys named 'longitude', 'latitude', and 'depth' (ex: OutputCoordinates={"longitude": [0, 180, -50, 10], "latitude": [85, -20, 18, 0.5], "depth": [10, 1000, 0, 0]} or OutputCoordinates={"longitude": long, "latitude": lat, "depth": depth} when referring to a set of predefined lists or numpy arrays of latitude, longitude, and depth information.
161
+
162
+ ##### PredictorMeasurements (required n by y dictionary, where n are the number of desired estimate locations and y are the dictionary keys representing each possible input):
163
+ Parameter measurements that will be used to estimate desired variables. Concentrations should be expressed as micromol per kg seawater unless PerKgSwTF is set to false in which case they should be expressed as micromol per L, temperature should be expressed as degrees C, and salinity should be specified with the unitless convention. NaN inputs are acceptable, but will lead to NaN estimates for any equations that depend on that parameter. The key order (y columns) is arbitrary, but naming of keys must adhere to the following convention (ex: PredictorMeasurements={"salinity": [35, 34.1, 32, 33], "temperature": [0.1, 10, 0.5, 2], "oxygen": [202.3, 214.7, 220.5, 224.2]} or PredictorMeasurements={'salinity': sal, 'temperature: temp, 'phosphate': phos, 'nitrate': nitrogen} when referring to predefined lists or numpy arrays of measurements:
164
+
165
+ <ins>Input Parameter: Dictionary Key Name</ins>
166
+
167
+ -Salinity: salinity
168
+
169
+ -Temperature: temperature
170
+
171
+ -Phosphate: phosphate
172
+
173
+ -Nitrate: nitrate
174
+
175
+ -Silicate: silicate
176
+
177
+ -O<sub>2</sub>: oxygen
178
+
179
+ #### Optional Inputs:
180
+ All remaining inputs must be specified as sequential input argument pairs (e.g., "EstDates"=EstDates when referring to a predefined list of dates, 'Equations'=[1:16], pHCalcTF=True, etc.)
181
+
182
+ ##### EstDates (optional but recommended n by 1 list or 1 by 1 value, default 2002.0):
183
+ A list of decimal dates for the estimates (e.g., July 1 2020 would be 2020.5). If only a single date is supplied that value is used for all estimates. It is highly recommended that date(s) be provided for estimates of DIC and pH. This version of the code will accept 1 by n inputs as well.
184
+
185
+ ##### Equations (optional 1 by e list, default [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]):
186
+ List indicating which equations will be used to estimate desired variables. If [] is input or the input is not specified then all 16 equations will be used.
187
+
188
+ #### Optional Inputs
189
+
190
+ ##### MeasUncerts (Optional n by y dictionary or 1 by y dictionary, default: [0.003 S, 0.003 degrees C T or potential temperature, 2% phosphate, 2% nitrate, 2% silicate, 1% AOU or O<sub>2</sub>]):
191
+ Dictionary of measurement uncertainties (see 'PredictorMeasurements' for units). Providing these estimates will improve PyESPER estimate uncertainties. Measurement uncertainties are a small p0art of PyESPER estimate uncertainties for WOCE-quality measurements. However, estimate uncertainty scales with measurement uncertainty, so it is recommended that measurement uncertainties be specified for sensor measurements. If this optional input argument is not provided, the default WOCE-quality uncertainty is assumed. If a 1 by y array is provided then the uncertainty estimates are assumed to apply uniformly to all input parameter measurements. Uncertainties should be presented with the following naming convention:
192
+
193
+ <ins>Input Uncertainties: Key Name</ins>
194
+
195
+ -Salinity: sal_u
196
+
197
+ -Temperature: temp_u
198
+
199
+ -Phosphate: phosphate_u
200
+
201
+ -Nitrate: nitrate_u
202
+
203
+ -Silicate: silicate_u
204
+
205
+ -Oxygen: oxygen_u
206
+
207
+ ##### pHCalcTF (Optional boolean, default false):
208
+ If set to true, PyESPER will recalculate the pH to be a better estimate of what the seawater pH value would be if calculated from TA and DIC instead of measured with purified m-cresol dye. This is arguably also a better estimate of the pH than would be obtained from pre-2011 measurements with impure dyes. See LIPHR paper for details.
209
+
210
+ ##### PerKgSwTF (Optional boolean, default true):
211
+ Many sensors provide measurements in micromol per L (molarity) instead of micromol per kg seawater. Indicate false if provided measurements are expressed in molar units (concentrations must be micromol per L if so). Outputs will remain in molal units regardless.
212
+
213
+ ##### VerboseTF (Optional boolean, default true):
214
+ Setting this to false will reduce the number of updates, warnings, and errors printed by PyESPER. An additional step can be taken before executing the PyESPER function (see examples) that will further reduce updates, warnings, and errors, if desired.
215
+
216
+ #### Outputs:
217
+
218
+ ##### Estimates:
219
+ An n by e dictionary of estimates specific to the coordinates and parameter measurements provided as inputs. Units are micromoles per kg (equivalent to the deprecated microeq per kg seawater). Column names are the unique desired variable-equation combinations requested by the user.
220
+
221
+ ##### Coefficients (LIRs only):
222
+ An n by e dictionary of dictionaries of equation intercepts and coefficients specific to the coordinates and parameter measurements provided as inputs. Column names are the unique desired variable-equation combinations requested by the user.
223
+
224
+ ##### Uncertainties:
225
+ An n by e dictionary of uncertainty estimates specific to the coordinates, parameter measurements, and parameter uncertaineis provided. Units are micromoles per kg (equivalent to the deprecated microeq per kg seawater). Column names are the unique desired variable-equation combinations requested by the user.
226
+
227
+ #### Missing Data:
228
+ Should be indicated with a NaN. A NaN coordinate will yield NaN estimates for all equations at that coordinate. A NaN parameter value will yield NaN esitmates for all equations that require that parameter.
@@ -3,7 +3,7 @@ PyESPER/adjust_pH_DIC.py,sha256=k5VVI-QxOF2ySQjevvph8V769QoJ-gXo7RwpS8whLv8,3278
3
3
  PyESPER/coefs_AAinds.py,sha256=ay8VWvd2ijYl4Z8w6PJqrNqz2V_BxBLzFJAgLMFHLXM,2091
4
4
  PyESPER/defaults.py,sha256=-8oX8Zc43ga74DZDgR3isOcBDpeVP_wLHQILfCtQTio,3141
5
5
  PyESPER/define_polygons.py,sha256=c3DbtwrdF5HhZ3WAqp76h3Xt22sRitZ-HkP7iT6QsuQ,2798
6
- PyESPER/emlr_estimate.py,sha256=ZErziQzl1oVoYXMr0Q7JZ5ruYy1kLq4TBjVBhSElfd0,6177
6
+ PyESPER/emlr_estimate.py,sha256=ZA49tsP-EYhiXMJ-SxQk9XwGdkhcALi8Qc13NGs31zM,5994
7
7
  PyESPER/emlr_nn.py,sha256=o2tDMXMKyDTvIBjvw4UBQKJQZU-POet1uobcXYcCGhw,1583
8
8
  PyESPER/errors.py,sha256=ApDeJOdXyDNMj2dgcL1JI6QLuXD7AYfWntHe1lM5qTA,2486
9
9
  PyESPER/fetch_data.py,sha256=GpLRRCzBboZ8h61ZE7kE-SFSBjk-xc0YbLipxyvDQ_A,1698
@@ -15,19 +15,19 @@ PyESPER/interpolate.py,sha256=yL-4ePBQRbujq6aSeudlh65ArFsu5SxfuiGFtBRajLg,2283
15
15
  PyESPER/iterations.py,sha256=UgInZxYIZEjlbLhhDCxHAAqu492wyjLOV4RQN7wHhz0,11016
16
16
  PyESPER/lir.py,sha256=uKOMCMZeeKu69mO0Cj4m8ctz7U5BhzmxGUctwtryIpI,5966
17
17
  PyESPER/lir_uncertainties.py,sha256=PbedM_F-G1vQa1kdx9B6LdnYQ1NZV5vxZxRqItiyacI,4212
18
- PyESPER/mixed.py,sha256=TO1VVF0nBBAYzLuSwqVL4s7-5RN0gq_NUH9W_T2cUzY,1877
18
+ PyESPER/mixed.py,sha256=4NK17v7070gbCzqrRo8U5ezaKyjrweseiLC7FmIUFnw,2059
19
19
  PyESPER/nn.py,sha256=tJX2ziBe2zg7uqHD6w0trdkpwl6UnJ2_EFV48ZWKqlI,4244
20
20
  PyESPER/organize_data.py,sha256=40rBZT7PUWXnO2PzhniOjzGgYT5rRxzr3RNAN4OgqEE,15422
21
- PyESPER/organize_nn_output.py,sha256=j2gZyrDOUq3x7RU9G3XyVhYNrsrJctU3EFvJBOh33OE,8754
21
+ PyESPER/organize_nn_output.py,sha256=jeC4K0ldHRsuUlX90nJFd2LuDxgPHXRAfejFkoa7WVo,8732
22
22
  PyESPER/pH_DIC_nn_adjustment.py,sha256=hE6tcW0ma-5MChycWC0I1wArmgg7ccOHTgaqBhKy6V4,8346
23
23
  PyESPER/pH_adjcalc.py,sha256=hj-dm4RAQFChzK0OS2tmVmkr3B_c5kb60EVSuNakQQw,1392
24
24
  PyESPER/pH_adjustment.py,sha256=JattOCeBY5lle0KXYOlVI4IXuAeU9EqKelscMKxWYbQ,7806
25
25
  PyESPER/process_netresults.py,sha256=8azrlkL8UrXmIBgQusXnQjaCNRAOkk1g92HfuvW9H28,4064
26
- PyESPER/run_nets.py,sha256=vD-cnIe0gmOkLwun1dI6o3Ima7WoLDdmxg1ns7rwP00,3221
26
+ PyESPER/run_nets.py,sha256=8zU-z_t6zQlTAwMfVWEiZmiiXHZF7kuPSeDJ4b2PcZA,3119
27
27
  PyESPER/simplecantestimatelr.py,sha256=tKLbP8INYYgngfqHSOL_nhqYFXVIAi4BG4HGBpDArp0,1202
28
28
  PyESPER/temperature_define.py,sha256=d6iEVwtvDLPNPQKWN4e-pWmI4E8i10aTVnQDQiann4A,1879
29
- pyesper-1.0.0.dist-info/METADATA,sha256=lmdWzuq2oSR5yj7QKnovay4B6QVCGfVAjs3_7D1S-XI,342
30
- pyesper-1.0.0.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
31
- pyesper-1.0.0.dist-info/entry_points.txt,sha256=HUU4cSedQ0gjEPqylS2XRZyJYlfQorLWqz7Giyj-H20,74
32
- pyesper-1.0.0.dist-info/top_level.txt,sha256=TlLY5TlArHVpCWb0rItFEzqlQtDSwpNU-Aq1NcZeUMI,8
33
- pyesper-1.0.0.dist-info/RECORD,,
29
+ pyesper-1.0.2.dist-info/METADATA,sha256=AQYx3PRwY1H-KuAhw1mL-e2_AWt-QxYAMB6MEmVAkps,12669
30
+ pyesper-1.0.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
31
+ pyesper-1.0.2.dist-info/entry_points.txt,sha256=HUU4cSedQ0gjEPqylS2XRZyJYlfQorLWqz7Giyj-H20,74
32
+ pyesper-1.0.2.dist-info/top_level.txt,sha256=TlLY5TlArHVpCWb0rItFEzqlQtDSwpNU-Aq1NcZeUMI,8
33
+ pyesper-1.0.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,16 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: PyESPER
3
- Version: 1.0.0
4
- Summary: Python version of ESPERv1
5
- Author: LMD
6
- Author-email: lmdias@uw.edu
7
- Requires-Dist: numpy
8
- Requires-Dist: seawater
9
- Requires-Dist: scipy
10
- Requires-Dist: matplotlib
11
- Requires-Dist: PyCO2SYS
12
- Requires-Dist: pandas
13
- Dynamic: author
14
- Dynamic: author-email
15
- Dynamic: requires-dist
16
- Dynamic: summary