Releases: DrylandEcology/rSOILWAT2
v6.1.0
-
This version produces the same output as the previous version.
-
SOILWAT2
updated to v8.0.0 which now includes a simulation domain; however, this has no impact onrSOILWAT2
(@niteflyunicorns, @dschlaep, @N1ckP3rsl3y ).
New features
- SOILWAT2 gained spin-up functionality (@niteflyunicorns, @dschlaep). A user-requested sequence of (random) years is simulated (without output) before the actual simulation run to provide better starting values (e.g., soil moisture, soil temperature).
What's Changed
Full Changelog: v6.0.4...v6.1.0
v6.0.4
- This version produces the same output as the previous version.
New features
- New
upgrade_weatherDF()
adds requested weather columns to a data frame (@dschlaep). - Improved rounding of weather functionality (@dschlaep):
dbW_weatherData_round()
now rounds both"weatherList"
and"weatherDF"
objects; argument"digits"
can now also be logical (ifTRUE
, then digits takes the default value of 4) or not finite (e.g.,NA
; not finite values return the input without rounding).- Argument
"round"
ofdbW_dataframe_to_weatherData()
is deprecated and changed the default value from rounding to 2 digits to no rounding (NA
); recommended replacement is a separate call todbW_weatherData_round()
. - Argument
"digits"
ofdbW_generateWeather()
changed the default value from rounding to 4 digits to no rounding (NA
).
dbW_generateWeather()
gained"return_weatherDF"
and now returns a user requested weather object type (@dschlaep). Ifreturn_weatherDF
isTRUE
, then the result is converted to a data frame where columns represent weather variables; otherwise, a list of elements of classswWeatherData
is returned (as previously).- New
dbW_imputeWeather()
replaces missing weather values using using the weather generator and using functionality byrSW2utils::impute_df()
(@dschlaep). - New
dbW_substituteWeather()
replaces missing weather values in one weather data object with values from a second weather data object (@dschlaep). - New
dbW_fixWeather()
fixes missing weather values using a sequence of approaches including linear interpolation for short missing spells, a fixed value for short spells of missing precipitation (optionally), substitution from a second weather data object, and replacement with long term daily mean values (@dschlaep). - New family of functions
sw_meteo_obtain
that obtain (download) weather data from external sources and prepare for use by"rSOILWAT2"
(@dschlaep):
* Newsw_meteo_obtain_DayMet()
obtains and formats data from"Daymet"
* Newsw_meteo_obtain_SCAN()
obtains and formats data from"SCAN"
Full Changelog: v6.0.3...v6.0.4
v6.0.3
- This version produces the same output as the previous version.
- Update
SOILWAT2
to v7.2.0 which improves error handling and fixes memory leaks on error (#239; @dschlaep, @N1ckP3rsl3y). - Code no longer requires (unused)
pcg
header (@dschlaep).
Full Changelog: v6.0.2...v6.0.3
v6.0.2
- This version produces the same output as the previous version.
- Update
SOILWAT2
to v7.1.0 which prepares for thread-safety and reentrancy (@N1ckP3rsl3y, @dschlaep) - C-side of
rSOILWAT2
gains new globals of the four main abstract types inSOILWAT2
- SW_ALL, SW_OUTPUT_POINTERS, LOG_INFO, and PATH_INFO - to interact withSOILWAT2
(@N1ckP3rsl3y, @dschlaep)
What's Changed
Full Changelog: v6.0.1...v6.0.2
v6.0.1
Bugfix
dbW_dataframe_to_weatherData()
is now compatible with data frames that contain a subset of all possible weather variables, e.g., weather data frames from previous versions (#236; @dschlaep).
Other
lintr
updated tov3.1.0
Full Changelog: v6.0.0...v6.0.1
v6.0.0
Breaking changes
SOILWAT2
updated to v7.0.0- This version produces nearly identical simulation output
as the previous release under default values.
Small deviations arise due to- a fix in the handling of soil moisture values
between field capacity and saturation; - a fix in the calculation of potential natural vegetation; and
- a fix in the calculation of climate variables (if used).
- a fix in the handling of soil moisture values
New features
-
New method
sw_upgrade()
upgrades objects with
outdatedrSOILWAT2
S4 classes to the current version;
newupgrade_weatherHistory()
upgrades outdated weather history objects. -
New
get_soilmoisture()
to consistently extract soil moisture content,
volumetric water content (bulk soil), or
volumetric water content for the matric component.
The function calculates the requested type if not stored in the output
from those that are available. -
Derived output functions
get_XXX()
gain new argumentkeep_time
;
ifkeep_time
is requested (TRUE
), then year and sub-year time step values
are added as first one or two columns to the returned matrix. -
New
time_columns()
returns the output column indices with time information. -
New
nrow_output()
returns the number of time steps in output. -
Daily weather inputs, in addition to the previous variables
maximum air temperature, minimum air temperature, and precipitation amount,
can now process the following variables (issue #229; @dschlaep, @N1ckP3rsl3y):- Cloud cover (can be replaced by shortwave radiation)
- Wind speed (can be replaced by wind components)
- Wind speed eastward component (optional)
- Wind speed northward component (optional)
- Relative humidity (can be replaced by max/min humidity, specific humidity
dew point temperature, or vapor pressure) - Maximum relative humidity (optional)
- Minimum relative humidity (optional)
- Specific humidity (optional)
- Dew point temperature (optional)
- Actual vapor pressure (optional)
- Downward surface shortwave radiation (optional)
-
This version now handles a variety of soil water retention curves
SWRC
and pedotransfer functionsPTF
(issue #207, @dschlaep).- New inputs are required to select a
SWRC
andPTF
as well as to provide
parameter values of the selectedSWRC
for each soil layer.
Default values are backwards compatible, i.e.,
defaultSWRC
is"Campbell1974"
and
defaultPTF
is"Cosby1984AndOthers"
. - If these new inputs are missing in an
rSOILWAT2
swInputData
object,
then they are automatically set to their default values. - New functionality for working with
SWRCs
andPTFs
includecheck_SWRC_vs_PTF()
checks ifPTF
andSWRC
are compatible and implemented.check_ptf_availability()
checks availability ofPTFs
.list_matched_swrcs_ptfs()
lists matching pairs of
implementedSWRCs
andPTFs
.ptf_estimate()
estimatesSWRC
parameters from soil texture
with a pedotransfer function.ptf_names()
lists pedotransfer functionsPTFs
.swrc_conversion()
,swrc_swp_to_vwc()
, andswrc_vwc_to_swp()
convert between bulk soil water content and soil water potential.swrc_names()
lists soil water retention curvesSWRCs
.
- Documentation for code developers can be found in comment sections
"Notes for implementing a new PTF"
and
"Notes for implementing a new SWRC"
.
- New inputs are required to select a
-
Soil density inputs can now represent either matric or bulk density
(issue #280; @dschlaep).- Automatic conversion by
SOILWAT2
between matric and bulk density
as needed using the new slot"SoilDensityInputType"
.
- Automatic conversion by
-
calc_SiteClimate()
is now implemented viaSOILWAT2
(issue #205; @N1ckP3rsl3y, @dschlaep).
The old implementation in R is still available as non-exported and deprecated
calc_SiteClimate_old()
.- This version fixes issues from the previous R version:
- Mean annual temperature is now the mean across years of
means across days within year of mean daily temperature. - Years at locations in the southern hemisphere are now adjusted to start
on July 1 of the previous calendar year. - The cheatgrass-related variables, i.e.,
Month7th_PPT_mm
,
MeanTemp_ofDriestQuarter_C
, andMinTemp_of2ndMonth_C
,
are now adjusted for location by hemisphere.
- Mean annual temperature is now the mean across years of
- This version fixes issues from the previous R version:
-
estimate_PotNatVeg_composition()
is now implemented viaSOILWAT2
(issues #206, #218, #219; @N1ckP3rsl3y, @dschlaep).
The old implementation in R is still available as non-exported and deprecated
estimate_PotNatVeg_composition_old()
.
Changes to interface
- Class
swSite
gains new slots"swrc_flags"
and"has_swrcp"
and associated
methodsswSite_SWRCflags()
andswSite_hasSWRCp()
for names of selectedSWRC
andPTF
as well as indicating
whetherSWRC
parameters are provided as inputs or to be calculated
at run time (issue #207, @dschlaep). - Class
swSoils
gains new slot"SWRCp"
and associated methods
swSoils_SWRCp()
forSWRC
parameters by soil layer (issue #207, @dschlaep). - Class
swFiles
gains a new file name for theSWRC
parameter input file and
associated methodsswFiles_SWRCp()
(issue #207, @dschlaep). - Class
swSite
gains new slot"SoilDensityInputType"
and associated
methodsswSite_SoilDensityInputType()
(issue #209, @dschlaep).
This encodes whether soil density inputs represent
matric soil or bulk soil values. - Class
swProd
gains new slot"veg_method"
(issue #206, @N1ckP3rsl3y).
This encodes if land cover is estimated at run-time bySOILWAT2
via
estimatePotNatVegComposition()
(value 1) or if land cover values are passed
as inputs (value 0, as previously). SWPtoVWC()
andVWCtoSWP()
are deprecated in favor of
swrc_swp_to_vwc()
andswrc_vwc_to_swp()
respectively.- Class
swWeather
gains new slots (issue #229)"use_cloudCoverMonthly"
,"use_windSpeedMonthly"
, and
"use_humidityMonthly"
which determine whether mean monthly values
(fromswCloud
) or daily values (fromswWeatherData
) are utilized;"dailyInputFlags"
which indicates which of the 14 possible daily
weather variables are present in the inputs;"desc_rsds"
which describes units of input shortwave radiation.
- Class
swWeatherData
gains new columns in slot"data"
that accommodate
all 14 possible daily weather variables (issue #229).
Full Changelog: v5.4.1...v6.0.0
v5.4.1
v5.4.0
SOILWAT2
is updated to v6.7.0 which fixed vegetation establishment.- This version produces identical simulation output as the previous release under default values (i.e., vegetation establishment is turned off).
- Functionality to calculate and output establishment/recruitment of species now works and is covered by tests (issue #225, @dschlaep). Note that this functionality assesses yearly the chances of species to recruit/establish based on simulated daily conditions; however, establishment/recruitment outcomes are not utilized to inform the simulation.
Full Changelog: v5.3.3...v5.4.0
v5.3.3
- This version produces identical simulation output as the previous release.
get_soiltemp()
now correctly locates soil temperature output for allrSOILWAT2
output objects (even if created withrSOILWAT2
beforev5.3.0
andsoillayers
is specified; issue #221, @dschlaep).r-lib
Github Actions updated tov2
; separate workflows forR-CMD-check
andtest-coverage
(issue #202, @dschlaep).
Full Changelog: v5.3.2...v5.3.3
v5.3.2
- This version produces identical simulation output as the previous release.
SOILWAT2
is updated tov6.6.0
which updated random number functionality; however, none of those updates affectrSOILWAT2
becauserSOILWAT2
utilizes R API random number functionality which has not changed.
Full Changelog: v5.3.1...v5.3.2