Source code for pedophysics.predict.temperature
import numpy as np
[docs]def Temperature(soil):
"""
Set missing values of soil.df.temperature and return
If any value of the temperature attribute is missing (NaN),
it will be set to a default value of 298.15. Corresponding information
in the soil's info dataframe will be updated accordingly.
Parameters
----------
soil : object
A custom soil object that contains:
- temperature : array-like
Soil bulk temperature [K]
- df : DataFrame
Data Frame containing all the quantitative information of soil array-like attributes for each state
- info : DataFrame
Data Frame containing descriptive information about how each array-like attribute was determined or modified.
- n_states : int
Number of states or records in the dataframe.
Returns
-------
np.ndarray
soil.df.temperature.values: an array of updated soil bulk temperature values
Example
-------
>>> sample = Soil()
>>> sample.df.temperature
0 NaN
Name: temperature, dtype: float64
>>> Temperature(sample)
>>> sample.df.temperature
0 298.15
Name: temperature, dtype: float64
"""
# Check if any value of solid_ec is missing
if (np.isnan(soil.df.temperature)).any():
soil.info['temperature'] = ["Set as 298.15 K by default" if np.isnan(soil.df.temperature[x]) or soil.info.temperature[x] == "Set as 298.15 K by default"
else soil.info.temperature[x] for x in range(soil.n_states)]
soil.df.loc[(np.isnan(soil.df['temperature'])), ['temperature']] = 298.15
return soil.df.temperature.values