Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement#305 gridded global datav5 #323

Open
wants to merge 76 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 69 commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
23b6834
Started integrating new soil data (100m)
nip5 Jun 26, 2018
33a4e93
extracts sand/clay/bd successfully
nip5 Jul 5, 2018
8943c9b
Integrated gravel data from 250m
nip5 Jul 5, 2018
cdd2294
Refactored code to run without as much user guidance
nip5 Jul 6, 2018
f49e3e4
Improved some soil calculations, added some environment changes
nip5 Jul 6, 2018
680ddfe
Moved the assignment in certain fields out of new function to be more…
nip5 Jul 9, 2018
8497ff5
starting integrating 250m depth
nip5 Jul 11, 2018
20341ed
made adjustments for rSFSW2 tests
nip5 Jul 12, 2018
246d291
some performance enhancements
nip5 Jul 16, 2018
bcdebb4
started merge with decadel aggregations
nip5 Jul 16, 2018
6063ecf
Merged with feature_DecadelAggregations, implemented cell soil extrac…
nip5 Jul 17, 2018
0eca671
Removed database comparisions in TestPrj4 to allow passing of all uni…
nip5 Jul 18, 2018
c1e8dc9
Added unit test file for testing soil extraction related functions
nip5 Jul 19, 2018
c14507c
Added unit tests for get_datasource_masterfield and get_datasource_in…
nip5 Jul 19, 2018
5a1cee0
Added test for prepare_ExtractData_Soils
nip5 Jul 19, 2018
41630f9
Some print statements only used during development
nip5 Jul 20, 2018
b1df9f5
Added Roxygen documentation to do_ExtractSoilDataFrom100m
nip5 Jul 20, 2018
6af2dc7
Remove extra comment weight
nip5 Jul 20, 2018
9229243
Fix issue with unit tests getting hung up after conversion from = to <-
nip5 Jul 20, 2018
4c0bf91
Fix extracted gravel data being unusually low
nip5 Jul 23, 2018
e7d332e
Add depth tif integration
nip5 Jul 23, 2018
1a75875
Add unit test for update_soils_input
nip5 Jul 23, 2018
91d1f53
Add unit test for new extraction function
nip5 Jul 24, 2018
575e35b
Fix testPrj4 now works again
nip5 Jul 24, 2018
bea0f35
Add resume functionality to function
nip5 Jul 25, 2018
71b714b
Remove print statements and debug comments
nip5 Jul 25, 2018
7ae6713
Change back models flag for CI tests
nip5 Jul 25, 2018
367b6aa
Remove 250m extaction unit test for CI
nip5 Jul 26, 2018
d73f71b
Delete .RData
nip5 Jul 26, 2018
0775cb0
Delete rSFSW2.Rproj
nip5 Jul 26, 2018
4b76ef7
Remove unecessary files
nip5 Jul 26, 2018
e3e37a4
Merge branch 'Enhancement#305_GriddedGlobalDatav5' of https://github.…
nip5 Jul 26, 2018
5f9f3b3
comment out extract soil unit tests for CI debugging
nip5 Jul 26, 2018
dbe6fb0
Remove extract soil data unit test
nip5 Jul 26, 2018
77dcc0f
Lots of code cleanup
nip5 Jul 26, 2018
684481b
Modify verbose messages to only show once each
nip5 Jul 26, 2018
0cbec09
Add layers done info when in verbose mode
nip5 Jul 26, 2018
afc2c78
Add test file back in but skip on CIs
nip5 Jul 27, 2018
364edc9
Change NRCS to Isric source
nip5 Aug 6, 2018
bc1c92a
Merge branch 'master' into Enhancement#305_GriddedGlobalDatav5
nip5 Aug 6, 2018
4b87610
Modify to improve code coverage
nip5 Aug 7, 2018
ccd634d
Several spacing changes, add files back in from master
nip5 Aug 13, 2018
49bb5a2
modify to address review
nip5 Aug 13, 2018
d4caa3a
modify spacnig to be standardized with master
nip5 Aug 13, 2018
f6e42ef
fix to address review
nip5 Aug 14, 2018
9e35388
add man/rSFSW2.Rd
nip5 Aug 14, 2018
383f251
fix program crashing if run when soils data was already available
nip5 Aug 17, 2018
7bf10da
more elegant fix to previous commit
nip5 Aug 17, 2018
0b4d749
performance enhancements
nip5 Aug 17, 2018
1ae4703
modify for review and staying <= 80 chars per line
nip5 Aug 20, 2018
304e609
fix spelling and format test failing
nip5 Aug 24, 2018
29981ff
fix soil extract test failing
nip5 Aug 27, 2018
3bbfdda
remove test_ExtractData_Soils.R, this branch is ready for review
nip5 Aug 27, 2018
b21e3e3
fixes to address code review
nip5 Sep 10, 2018
b28734c
Update package-level linter settings
dschlaep Sep 12, 2018
1b1a3fd
add performance enhancements
nip5 Sep 12, 2018
79c758b
Merge branch 'Enhancement#305_GriddedGlobalDatav5' of https://github.…
nip5 Sep 12, 2018
87101ff
fix for crashing and lintr failing
nip5 Sep 12, 2018
f5b3473
merge with master
nip5 Jan 30, 2019
9e87219
lintr compliance fixes
nip5 Jan 30, 2019
2b163e3
moved verbose message out of main loop
nip5 Jan 30, 2019
f1bb913
modify extract_soilISRIC250m function description
nip5 Jan 30, 2019
be96b2c
modify MMC usage in ISRIC extraction function
nip5 Jan 30, 2019
2be512b
add extract soil test with on/off flag
nip5 Jan 30, 2019
3731d90
Merge branch 'master' into Enhancement#305_GriddedGlobalDatav5
nip5 Mar 8, 2019
1e62d13
add catch if file to extract is found but has bad content
nip5 Mar 8, 2019
6c772c7
Merge branch 'master' into Enhancement#305_GriddedGlobalDatav5
nip5 Mar 8, 2019
ca1f319
Merge branch 'Enhancement#305_GriddedGlobalDatav5' of https://github.…
nip5 Mar 8, 2019
4e9a4cb
lintr compliance
nip5 Mar 8, 2019
349a4e8
remove semicolons in extract soils unit test
nip5 Mar 13, 2019
2d978b8
add spaces between ) and { in some instances
nip5 Mar 13, 2019
b5daa1d
fix odd indenting
nip5 Mar 13, 2019
df084f4
pulled out percent_div to set it as a default value
nip5 Mar 13, 2019
1696fda
remove SSURGO soils data flag as it is not implemented
nip5 Mar 13, 2019
9226360
change CI fix format
nip5 Mar 14, 2019
5f2c10d
add check for file configurations in unit test
nip5 Mar 14, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,3 @@
# CRAN stuff
^cran-comments\.md$
^NEWS\.md$

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,4 @@ testthat_results.rds
src/*.o
src/*.so
src/*.dll
.Rproj.user
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove this line of code. I think it is best just not to ever put a Rproj in Git folder. All of that development (integration tests, etc.) should take place in a non-git location.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the idea of having this in the .gitignore and would vote to keep it. It doesn't bother here and prevents any potential issues with people creating a Rstudio project inside their git clone of rSWSF2 and attempting to push it up to remote.

212 changes: 211 additions & 1 deletion R/ExtractData_Soils.R
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,209 @@ extract_soil_CONUSSOIL <- function(MMC, sim_size, sim_space, dir_ex_soil,
MMC
}

#' Extracts soils data (clay, sand, \var{bd}, gravel, depth, ...) from ISRIC's SoilGrids250m dataset.
#' @param \var{MMC} A list containing the structure for extracted data to be
#' extracted to
#' @param sim_size A list containing information on the runs.
#' @param sim_space A list containing information on site locations and
#' extraction type, i.e. cell or point.
#' @param \var{dir_ex_soil} String for the location of the soil files to be
#' extracted.
#' @param fnames_in A list containing output file locations.
#' @param resume Logical whether or not to resume the project if it failed
#' partially through before.
#' @param verbose Logical whether to see additional messages or not as the
#' function executes.
#' @param default_TOC_GperKG A numeric value. The default value is
#' 0 g \var{TOC} per kg soil.
#' @return \var{MMC} A list containing the extracted data.
#' @references Hengl. T. et al, 2017. SoilGrids250m: Global gridded soil
nip5 marked this conversation as resolved.
Show resolved Hide resolved
#' information based on machine learning.
#' @references Shangguan, W. et al, 2016. Mapping the global depth to bedrock
#' for land surface modeling.
#' @author Nathan Payton- McCauslin. July 2018.
#' @section Note: \enumerate{
#' \item All data is taken at a resolution of 250m, downloadable at
#' \var{ftp://ftp.soilgrids.org/data/recent/}
#' \item Data Extracted Using Hengl. T. et al, 2017: \itemize{
#' \item Sand
#' \item Clay
#' \item Bulk Density
#' \item Gravel
#' }
#' \item Data Extracted Using Shangguan, W. et al, 2016: \itemize{
#' \item Depth to Bedrock
#' }
#' \item Filenames expected to be in format
#' \var{soiltype_M_sllayernumber_250m.tif}
#' Examples: \itemize{
#' \item Layer 2 clay = \var{clay_M_sl2_250m.tif}
#' \item Layer 4 bulk density = \var{bd_M_sl4_250m.tif}
#' }
#' }
extract_soil_ISRIC250m <- function(MMC, sim_size, sim_space,
dir_ex_soil, fnames_in, resume, verbose,
default_TOC_GperKG = 0) {
# print stats
if (verbose) {
t1 <- Sys.time()
temp_call <- shQuote(match.call()[1])
print(paste0("rSFSW2's ", temp_call, ": started at ", t1))
on.exit({
print(paste0("rSFSW2's ", temp_call, ": ended after ",
round(difftime(Sys.time(), t1, units = "secs"), 2),
" s"))
cat("\n")}, add = TRUE)
}
# set up data files for extraction =============================
nip5 marked this conversation as resolved.
Show resolved Hide resolved
soil_layer <- 1
dir.ex.gridded <- file.path(dir_ex_soil, "ISRIC", "GriddedGlobalV5")
# stop program execution if folder path is incorrect
if (!dir.exists(dir.ex.gridded)) stop(paste0("Folder '", dir.ex.gridded,
"' does not exist"))
file_in_gridded <- list.files(dir.ex.gridded, pattern = ".tif$")
ldepth_gridded <- c(0, 5, 15, 30, 60, 100, 200) #in cm
todos <- is.na(MMC[["source"]]) | MMC[["source"]] == "ISRIC_SoilGrids250m"
stopifnot(requireNamespace("rgdal"))
# set the todo list to only extract data that doesn't already exist
if (resume) {
todos <- adjust_soils_todos(todos, MMC, sim_size)
}
names(todos) <- NULL
# get locations of simulation runs
sites_conus <- sim_space[["run_sites"]][todos, ]
# set this once now to avoid extracting data that already exists
n_extract <- sum(todos)
if (n_extract > 0) {
if (verbose) {
print(paste("Soils data from 'ISRIC_SoilGrids250m' will be extracted",
"for n =", n_extract, "sites"))
}
# main loop, does extraction for matricd, clay, sand, gravel, depth
for (tif in seq_along(file_in_gridded)) {
# get next tif file
tif_file <- file_in_gridded[tif]
# set soil types based on tif filenames
if (grepl("^bd", tif_file)) {
file_type <- "matricd"
} else if (grepl("^gravel", tif_file)) {
# switch file_type to match with MMC for insertion
file_type <- "GravelContent"
} else {
file_type <- substr(tif_file, 1, regexpr("_", tif_file) - 1)
}
# find the layer number of the current file ===================
ltemp <- strsplit(tif_file, "")
found_layer <- FALSE
i <- 1
while (!found_layer) {
if (grepl("[[:digit:]]", ltemp[[1]][i])) {
soil_layer <- type.convert(ltemp[[1]][i]) - 1
found_layer <- TRUE
} else {
i <- i + 1
}
}
# start extraction process =============================
tif_file <- file.path(dir.ex.gridded, tif_file)
nip5 marked this conversation as resolved.
Show resolved Hide resolved
if (!file.exists(tif_file)) stop(paste0("File '", tif_file,
"' does not exist"))
layer_N <- length(ldepth_gridded) - 1
ils <- seq_len(layer_N)
g <- tryCatch({
raster::brick(tif_file)},
error = function(e) {
print(paste(e))
stop(paste0("Please verify the file contents of '",
tif_file, "'"))
})
soil_data <- raster::crs(g)

if (!raster::compareCRS(sim_space[["crs_sites"]], soil_data)) {
#transform graphics::points to grid-coords
sites_conus <- sp::spTransform(sites_conus, CRS = soil_data)
}
if (sim_space[["scorp"]] == "point") {
cell_res_conus <- NULL
args_extract <- list(y = sites_conus, type = sim_space[["scorp"]])
} else if (sim_space[["scorp"]] == "cell") {
cell_res_conus <- align_with_target_res(
res_from = sim_space[["sim_res"]],
crs_from = sim_space[["sim_crs"]],
sp = sim_space[["run_sites"]][todos, ],
crs_sp = sim_space[["crs_sites"]],
crs_to = soil_data)
args_extract <- list(y = cell_res_conus, coords = sites_conus,
method = "block", type = sim_space[["scorp"]])
}
cond30 <- compiler::cmpfun(function(v) ifelse(is.na(v) | v < 30, NA,
v))
g <- if (file.exists(tif_file)) {
raster::brick(tif_file)
} else {
raster::calc(g, fun = cond30, filename = tif_file)
}
if (file_type != "depth") {
# get soil data as a dataframe
soil_frame <- do.call("extract_rSFSW2", args = c(args_extract,
x = list(g)))
# write density data, MMC[["data"]] requires a different column
# name to be written then the rest
if (file_type == "matricd") {
percent_div <- 1000
MMC[["data"]][todos, grep("density", MMC[["cn"]])[ils]][,
soil_layer] <- soil_frame / percent_div
} else if (file_type == "GravelContent") {
percent_div <- 100
nip5 marked this conversation as resolved.
Show resolved Hide resolved
soil_frame <- pmax(pmin(soil_frame / percent_div, 1), 0)
# write gravel data to "data
# gravel is already in form we want so no need to divide
MMC[["data"]][todos, grep("rock",
MMC[["cn"]])[ils]][, soil_layer] <- soil_frame
} else {
# write sand or clay data to "data
nip5 marked this conversation as resolved.
Show resolved Hide resolved
MMC[["data"]][todos, grep(file_type, MMC[["cn"]])[ils]][,
soil_layer] <- soil_frame / percent_div
}
# There is no organic carbon data, set all values to a default
MMC[["data"]][todos, grep("carbon",
MMC[["cn"]])[ils]] <- default_TOC_GperKG
MMC[["idone"]]["ISRIC_SoilGrids250m"] <- TRUE
} else {
# get max depths for site soil profiles
nip5 marked this conversation as resolved.
Show resolved Hide resolved
ftemp_d <- file.path(dir.ex.gridded, "depth_M_250m.tif")
gd <- if (file.exists(ftemp_d)) {
raster::brick(ftemp_d)
} else {
raster::calc(gd, fun = cond30, filename = ftemp_d)
}
soil_frame_depth <- do.call("extract_rSFSW2", args = c(args_extract,
x = list(gd)))
MMC[["data"]][todos, grep("depth", MMC[["cn"]])] <- soil_frame_depth
}
}
# Determine successful extractions =============================
i_good <- stats::complete.cases(MMC[["data"]][todos, "depth"])
MMC[["source"]][which(todos)[!i_good]] <- NA
lys <- seq_len(max(findInterval(MMC[["data"]][todos, "depth"],
ldepth_gridded[-1]), na.rm = TRUE))
if (any(i_good)) {
i_Done <- rep(FALSE, times = sim_size[["runsN_sites"]])
i_Done[which(todos)[i_good]] <- TRUE
MMC[["source"]][i_Done] <- "ISRIC_SoilGrids250m"
MMC <- update_soils_input(MMC, sim_size, digits = 2, i_Done,
ldepths_cm = ldepth_gridded[-1], lys,
fnames_in)
}
# print stats
if (verbose) {
print(paste("Soil data from 'ISRIC_SoilGrids250m' was extracted for",
soil_layer, "layers and n =", sum(i_good), "out of",
n_extract, "sites"))
}
}
MMC
}

#' A wrapper for \code{reaggregate_raster} designed to work with the rasters of
#' the \var{\sQuote{ISRIC-WISE}} datasets versions 5-arcmin v1.2 and 30-arcsec
Expand Down Expand Up @@ -377,7 +580,7 @@ max_depth_byPRIDs <- function(this_soil, var_ids, val_rocks) {
#' returned by \code{\link{ISRICWISE_extract_SUIDs}}.
#' @param sim_soils A named numeric vector. First element is 'i' and second is
#' 'depth'. The following elements represent the soil variables (currently,
#' "density", "sand", "clay", "rock", "carbon"; see
#' "density", "sand", "clay", "rock", "carbon" see
#' \code{\link{prepare_ExtractData_Soils}}) for each of the maximally possible
#' soil layers (see \code{SFSW2_glovars[["slyrs_maxN"]]}). Input is an empty
#' template.
Expand Down Expand Up @@ -819,6 +1022,13 @@ ExtractData_Soils <- function(exinfo, SFSW2_prj_meta, SFSW2_prj_inputs,
fnames_in = SFSW2_prj_meta[["fnames_in"]], resume, verbose)
}

if (exinfo$ExtractSoilDataFromISRICSoilGrid_Global_250m){
nip5 marked this conversation as resolved.
Show resolved Hide resolved
MMC <- extract_soil_ISRIC250m(MMC, sim_size = SFSW2_prj_meta[["sim_size"]],
sim_space = SFSW2_prj_meta[["sim_space"]],
dir_ex_soil = SFSW2_prj_meta[["project_paths"]][["dir_ex_soil"]],
fnames_in = SFSW2_prj_meta[["fnames_in"]], resume, verbose)
}

if (exinfo$ExtractSoilDataFromISRICWISE30secV1a_Global) {
MMC <- extract_soil_ISRICWISE(MMC,
sim_size = SFSW2_prj_meta[["sim_size"]],
Expand Down
1 change: 0 additions & 1 deletion R/Miscellaneous_Functions.R
Original file line number Diff line number Diff line change
Expand Up @@ -1079,7 +1079,6 @@ get_datasource_includefield <- function(SWRunInformation, field_include,
}
}


get_datasource_masterfield <- function(SWRunInformation, field_sources,
sim_size, how_determine_sources) {

Expand Down
6 changes: 4 additions & 2 deletions R/Simulation_Project.R
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,7 @@ gather_project_inputs <- function(SFSW2_prj_meta, use_preprocin = TRUE,
SFSW2_prj_meta[["use_sim_spatial"]] <-
(todo_intracker(SFSW2_prj_meta, "soil_data", "prepared") &&
(SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromCONUSSOILFromSTATSGO_USA"]] ||
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICSoilGrid_Global_250m"]] ||
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICWISEv12_Global"]] ||
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICWISE30secV1a_Global"]])) ||
(todo_intracker(SFSW2_prj_meta, "elev_data", "prepared") &&
Expand Down Expand Up @@ -666,8 +667,9 @@ populate_rSFSW2_project_with_data <- function(SFSW2_prj_meta, opt_behave, # noli
#--- Soil data
# nolint start
if (SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromCONUSSOILFromSTATSGO_USA"]] ||
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICWISEv12_Global"]] ||
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICWISE30secV1a_Global"]]) {
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICWISEv12_Global"]] ||
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICSoilGrid_Global_250m"]] ||
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICWISE30secV1a_Global"]]) {
# nolint end

if (todo_intracker(SFSW2_prj_meta, "soil_data", "prepared")) {
Expand Down
2 changes: 1 addition & 1 deletion R/Simulation_Run.R
Original file line number Diff line number Diff line change
Expand Up @@ -827,7 +827,7 @@ do_OneSite <- function(i_sim, i_SWRunInformation, i_sw_input_soillayers,
icol_excl <- which(soil_cols %in% "soilTemp_c")
icols <- seq_along(soil_cols)[-icol_excl]
bad_data <- !check_soil_data(soildat[, -icol_excl, drop = FALSE])

if (any(bad_data)) for (l in ld) {
lbad <- bad_data[l, ]
if (any(lbad)) {
Expand Down
7 changes: 4 additions & 3 deletions R/Testproject_Functions.R
Original file line number Diff line number Diff line change
Expand Up @@ -161,10 +161,11 @@ run_test_projects <- function(dir_tests, dir_prj_tests = NULL, dir_ref = NULL,
}

if (SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromCONUSSOILFromSTATSGO_USA"]] ||
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICWISEv12_Global"]]) {
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICSoilGrid_Global_250m"]] ||
SFSW2_prj_meta[["exinfo"]][["ExtractSoilDataFromISRICWISEv12_Global"]]) {

temp <- c(temp, SFSW2_prj_meta[["fnames_in"]][["fslayers"]],
SFSW2_prj_meta[["fnames_in"]][["fsoils"]])
temp <- c(temp, SFSW2_prj_meta[["fnames_in"]][["fslayers"]],
SFSW2_prj_meta[["fnames_in"]][["fsoils"]])
}
# nolint end

Expand Down
9 changes: 9 additions & 0 deletions demo/SFSW2_project_descriptions.R
Original file line number Diff line number Diff line change
Expand Up @@ -206,10 +206,19 @@ opt_input <- list(
# - Harmonized World Soil Database: 1-km re-gridded; data expected
# at project_paths[["dir_ex_soil"]], "CONUSSoil", "output", "albers")
"ExtractSoilDataFromCONUSSOILFromSTATSGO_USA", 0,
# Soil texture
# - Soil data from penn state for the United States; data expected
# at: project_paths[["dir_ex_soil"]], "ISRIC", GriddedGlobalV5
"ExtractSoilDataFromISRICSoilGrid_Global_250m", 0,
# - ISRIC-WISE 5-arcmin v1.2 (2012): 5-arcmin re-gridded; data expected
# at project_paths[["dir_ex_soil"]], "WISE", "wise5by5min_v1b",
# "Grid", "smw5by5min")
"ExtractSoilDataFromISRICWISEv12_Global", 0,
# - Contains information about soil as collected by the
# National Cooperative Soil Survey. Data was collected at scales
# ranging from 1:12,000 to 1:63,360. Site-specific data will be
# checked for and downloaded to at project_paths[["dir_to_SSURGO"]]
"ExtractSoilDataFromSSURGO", 0,
nip5 marked this conversation as resolved.
Show resolved Hide resolved
# - ISRIC-WISE 30-arsec v1.0 (2016): 30-arcsec re-gridded; data expected
# at project_paths[["dir_ex_soil"]], "WISE", "WISE30sec_v1a")
"ExtractSoilDataFromISRICWISE30secV1a_Global", 0
Expand Down
6 changes: 5 additions & 1 deletion inst/WORDLIST
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ Gudmundsson
Habets
Hardegree
Haugen
Hengl
Hopkinson
Hornberger
Itenfisu
Expand All @@ -131,6 +132,7 @@ Livneh
Lounsbury
Matonse
Maurer
McCauslin
McGraw
McKenney
Milchunas
Expand All @@ -142,14 +144,17 @@ Odhiambo
Oecologia
Papadopol
Paruelo
Payton
Pedlar
Pierson
Saha
Salathe
Saxton
Schlaepfer
Schneiderman
Shangguan
Skaugen
SoilGrids
SOILWAT
Technometrics
Teeri
Expand All @@ -164,4 +169,3 @@ Wilby
Wythers
Yoder
Zach

2 changes: 1 addition & 1 deletion man/calc_cell_ISRICWISE.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading