diff --git a/.github/workflows/check-standard.yaml b/.github/workflows/check-standard.yaml index dec2daf..308a0d5 100644 --- a/.github/workflows/check-standard.yaml +++ b/.github/workflows/check-standard.yaml @@ -2,9 +2,9 @@ # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: - branches: [main, master] + branches: [main, master, dev] pull_request: - branches: [main, master] + branches: [main, master, dev] name: R-CMD-check diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index f60d047..da54e13 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -2,9 +2,9 @@ # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: - branches: [main, master] + branches: [main, master, dev] pull_request: - branches: [main, master] + branches: [main, master, dev] name: lint diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 184ae64..f57508e 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -2,9 +2,9 @@ # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: - branches: [main, master] + branches: [main, master, dev] pull_request: - branches: [main, master] + branches: [main, master, dev] release: types: [published] workflow_dispatch: diff --git a/.github/workflows/test-container-dl-calc.yaml b/.github/workflows/test-container-dl-calc.yaml new file mode 100644 index 0000000..4ce7e76 --- /dev/null +++ b/.github/workflows/test-container-dl-calc.yaml @@ -0,0 +1,73 @@ +name: Test Coverage for Download and Calculate via Apptainer + +on: + push: + branches: [main, master, dev] + pull_request: + branches: [main, master, dev] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Create run_dl_calc_tests.R dynamically + run: | + mkdir -p tests/testthat # Ensure the directory exists + echo 'testthat::test_file("tests/testthat/test_download.R")' > tests/testthat/run_dl_calc_tests.R + echo 'testthat::test_file("tests/testthat/test_calculate.R")' >> tests/testthat/run_dl_calc_tests.R + + - name: Install Apptainer dependencies + run: | + sudo apt-get update && sudo apt-get install -y \ + libseccomp-dev \ + squashfs-tools \ + cryptsetup \ + wget + + - name: Install Apptainer + run: | + wget https://github.com/apptainer/apptainer/releases/download/v1.1.0/apptainer-1.1.0.tar.gz + tar -xvf apptainer-1.1.0.tar.gz + cd apptainer-1.1.0 + ./mconfig && make -C builddir && sudo make -C builddir install + + - name: Restore .sif file from cache + id: cache-sif + uses: actions/cache@v3 + with: + path: beethoven_dl_calc.sif + key: sif-cache-${{ runner.os }}-${{ hashFiles('container/beethoven_dl_calc.def') }} + restore-keys: | + sif-cache-${{ runner.os }}- + + - name: Build the Apptainer container (if cache miss) + if: steps.cache-sif.outputs.cache-hit != 'true' + run: | + apptainer build --fakeroot beethoven_dl_calc.sif container/beethoven_dl_calc.def + + - name: Cache the .sif file + if: steps.cache-sif.outputs.cache-hit != 'true' + uses: actions/cache@v3 + with: + path: beethoven_dl_calc.sif + key: sif-cache-${{ runner.os }}-${{ hashFiles('container/beethoven_dl_calc.def') }} + + - name: Check if .sif file exists + run: | + if [ ! -f beethoven_dl_calc.sif ]; then + echo "Error: .sif file not found!" + exit 1 + fi + + - name: Run R tests + run: | + apptainer exec \ + --bind $PWD/inst:/pipeline \ + --bind $PWD/input:/input \ + --bind $PWD:/mnt \ + beethoven_dl_calc.sif \ + Rscript /mnt/tests/testthat/run_dl_calc_tests.R diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml index 220709d..51f2bbb 100644 --- a/.github/workflows/test-coverage.yaml +++ b/.github/workflows/test-coverage.yaml @@ -3,9 +3,9 @@ # Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help on: push: - branches: [main, master] + branches: [main, master, dev] pull_request: - branches: [main, master] + branches: [main, master, dev] name: test-coverage-local diff --git a/.gitignore b/.gitignore index a961705..593e14a 100644 --- a/.gitignore +++ b/.gitignore @@ -106,4 +106,8 @@ slurm_error.log /doc/ # interactive targets -targets_start.Rout \ No newline at end of file +targets_start.Rout + +.netrc +.urs_cookies +beethoven_branching_notes.txt \ No newline at end of file diff --git a/NAMESPACE b/NAMESPACE index 5733c21..d82ed22 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -9,6 +9,7 @@ export(calc_geos_strict) export(calc_gmted_direct) export(calc_narr2) export(calculate) +export(convert_cv_index_rset) export(feature_raw_download) export(fit_base_learner) export(fit_base_tune) diff --git a/R/base_learner.R b/R/base_learner.R index 7f5de0a..a4f0fa1 100644 --- a/R/base_learner.R +++ b/R/base_learner.R @@ -506,6 +506,7 @@ assign_learner_cv <- #' training-test data.frames and a column of labels. #' @author Insang Song #' @importFrom rsample make_splits manual_rset +#' @export convert_cv_index_rset <- function( cvindex, diff --git a/_targets.R b/_targets.R index e90e030..1cc6de4 100755 --- a/_targets.R +++ b/_targets.R @@ -1,123 +1,80 @@ library(targets) library(tarchetypes) -library(future) -library(future.batchtools) library(dplyr) -library( - beethoven, - lib.loc = "/ddn/gs1/home/manwareme/R/x86_64-pc-linux-gnu-library/4.3" -) -library(tidymodels) -library(bonsai) -# library( -# torch, -# lib.loc = "/ddn/gs1/biotools/R/lib64/R/library" -# ) +library(crew) +library(future) +library(beethoven) +library(amadeus) -Sys.setenv("LD_LIBRARY_PATH" = paste("/ddn/gs1/biotools/R/lib64/R/customlib", Sys.getenv("LD_LIBRARY_PATH"), sep = ":")) -# replacing yaml file. +# targets store location corresponds to _targets/ in the root of the project tar_config_set( - store = "/ddn/gs1/home/manwareme/beethoven/beethoven_targets" + store = "/opt/_targets" +) + +# crew contollers +# For now, one is set, but we can explore the use of multiple controllers +# Can also explore making the workers input for bash script or Rscript +geo_controller <- crew_controller_local( + name = "geo_controller", + workers = 16L, + launch_max = 8L, + seconds_idle = 120 ) -# maximum future exportable object size is set 50GB -# TODO: the maximum size error did not appear until recently -# and suddenly appeared. Need to investigate the cause. -# Should be removed after the investigation. -# options(future.globals.maxSize = 50 * 2^30) -options(future.globals.maxSize = 60 * 1024^3) # 60 GiB -generate_list_download <- FALSE +# Setting up the NASA Earthdata token inside the container +# This needs to be tested +if (!nzchar(Sys.getenv("NASA_EARTHDATA_TOKEN"))){ + tar_source("/mnt/NASA_token_setup.R") + file.exists(".netrc") + file.exists(".urs_cookies") + file.exists(".dodsrc") +} + arglist_download <- set_args_download( char_period = c("2018-01-01", "2022-12-31"), - char_input_dir = "input", - nasa_earth_data_token = NULL,#Sys.getenv("NASA_EARTHDATA_TOKEN"), - mod06_filelist = "inst/targets/mod06_links_2018_2022.csv", - export = generate_list_download, - path_export = "inst/targets/download_spec.qs" + char_input_dir = "/input", + nasa_earth_data_token = Sys.getenv("NASA_EARTHDATA_TOKEN"), + mod06_filelist = "/pipeline/targets/mod06_links_2018_2022.csv", + export = TRUE, + path_export = "/pipeline/targets/download_spec.qs" ) -generate_list_calc <- FALSE -arglist_common <- - set_args_calc( - char_siteid = "site_id", - char_timeid = "time", - char_period = c("2018-01-01", "2022-12-31"), - num_extent = c(-126, -62, 22, 52), - char_user_email = paste0(Sys.getenv("USER"), "@nih.gov"), - export = generate_list_calc, - path_export = "inst/targets/calc_spec.qs", - char_input_dir = "/ddn/gs1/group/set/Projects/NRT-AP-Model/input" - ) -tar_source("inst/targets/targets_initialize.R") -tar_source("inst/targets/targets_download.R") -tar_source("inst/targets/targets_calculate_fit.R") -tar_source("inst/targets/targets_calculate_predict.R") -tar_source("inst/targets/targets_baselearner.R") -tar_source("inst/targets/targets_metalearner.R") -tar_source("inst/targets/targets_predict.R") -# bypass option -Sys.setenv("BTV_DOWNLOAD_PASS" = "TRUE") -# -# bind custom built GDAL -# Users should export the right path to the GDAL library -# by export LD_LIBRARY_PATH=.... command. +### NOTE: It is important to source the scipts after the global variables are defined from the set_args functions + #tar_source("/pipeline/targets/targets_aqs.R") + tar_source("/pipeline/targets/targets_download.R") -# arglist_common is generated above -plan( - list( - tweak( - future.batchtools::batchtools_slurm, - template = "inst/targets/template_slurm.tmpl", - resources = - list( - memory = 8, - log.file = "slurm_run.log", - ncpus = 1, partition = "geo", ntasks = 1, - email = arglist_common$char_user_email, - error.file = "slurm_error.log" - ) - ), - multicore - ) -) +# Toy test files - note we will not have functions defined like this directly in +# the _targets.R file +my_fun_a <- function(n) { + rnorm(n) +} + +my_fun_b <- function(x) { + x^2 +} -# # invalidate any nodes older than 180 days: force running the pipeline -# tar_invalidate(any_of(tar_older(Sys.time() - as.difftime(180, units = "days")))) -# # nullify download target if bypass option is set -if (Sys.getenv("BTV_DOWNLOAD_PASS") == "TRUE") { - target_download <- NULL -} -# targets options -# For GPU support, users should be aware of setting environment -# variables and GPU versions of the packages. -# TODO: check if the controller and resources setting are required tar_option_set( - packages = c( - "beethoven", "amadeus", "chopin", "targets", "tarchetypes", - "data.table", "sf", "terra", "exactextractr", - #"crew", "crew.cluster", - "tigris", "dplyr", - "future.batchtools", "qs", "collapse", "bonsai", - "tidymodels", "tune", "rsample", "torch", "brulee", - "glmnet", "xgboost", - "future", "future.apply", "future.callr", "callr", - "stars", "rlang", "parallelly" - ), - library = c("/ddn/gs1/group/set/isong-archive/r-libs"), - repository = "local", + packages = + c( "amadeus", "targets", "tarchetypes", + "data.table", "sf", "terra", "exactextractr", + "dplyr", "qs", "callr", "stars", "rlang"), + controller = crew_controller_group(geo_controller), + resources = tar_resources( + crew = tar_resources_crew(controller = "geo_controller") + ), error = "abridge", memory = "transient", format = "qs", @@ -127,15 +84,65 @@ tar_option_set( seed = 202401L ) -# should run tar_make_future() + list( + tar_target(name = A, command = my_fun_a(100)), + tar_target(name = B, command = my_fun_b(A), pattern = A), + tar_target(name = save_input, command = saveRDS(B, "/input/input.rds")), + tar_target( # Test download data with amadeus + download_test, + amadeus::download_narr( + variables = c("weasd", "omega"), + year = c(2023, 2023), + directory_to_save = "/input/narr_monolevel", + acknowledgement = TRUE, + download = TRUE, + remove_command = TRUE + ) + ), + target_download + ) + + +# Style below that uses sources scripts for targets by pipeline step +# Note that variables created in _targets.R are in the same local +# environment as the sourced scripts + +# list( +# target_init, +# target_download + # target_calculate_fit, + # target_baselearner#, + # target_metalearner, + # target_calculate_predict, + # target_predict, + # # documents and summary statistics + # targets::tar_target( + # summary_urban_rural, + # summary_prediction( + # grid_filled, + # level = "point", + # contrast = "urbanrural")) + # , + # targets::tar_target( + # summary_state, + # summary_prediction( + # grid_filled, + # level = "point", + # contrast = "state" + # ) + # ) +# ) + +# targets::tar_visnetwork(targets_only = TRUE) +# END OF FILE -list( - target_init, - target_download, - target_calculate_fit, - target_baselearner, - target_metalearner, - target_calculate_predict#, +# list( +# target_init, +# target_download, +# target_calculate_fit, +# target_baselearner, +# target_metalearner, +# target_calculate_predict#, # target_predict, # # documents and summary statistics # targets::tar_target( diff --git a/init_targets_storage.sh b/archive/init_targets_storage.sh similarity index 100% rename from init_targets_storage.sh rename to archive/init_targets_storage.sh diff --git a/run_interactive.sh b/archive/run_interactive.sh similarity index 100% rename from run_interactive.sh rename to archive/run_interactive.sh diff --git a/run_slurm.sh b/archive/run_slurm.sh similarity index 100% rename from run_slurm.sh rename to archive/run_slurm.sh diff --git a/setup_hook.sh b/archive/setup_hook.sh similarity index 100% rename from setup_hook.sh rename to archive/setup_hook.sh diff --git a/container/beethoven_dl_calc.def b/container/beethoven_dl_calc.def new file mode 100644 index 0000000..5b5227d --- /dev/null +++ b/container/beethoven_dl_calc.def @@ -0,0 +1,42 @@ +BootStrap: docker +From: rocker/geospatial:latest + +%post + # Update package list + apt-get update + + # Install locales and generate the necessary locale + apt-get install -y locales + locale-gen en_US.UTF-8 + + # Install fonts for Unicode support + apt-get install -y fonts-dejavu fonts-liberation fonts-noto fonts-unifont + + # Set locale for the environment + echo "LANG=en_US.UTF-8" >> /etc/default/locale + echo "LC_ALL=en_US.UTF-8" >> /etc/default/locale + export LANG=en_US.UTF-8 + export LC_ALL=en_US.UTF-8 + + + mkdir /pipeline + mkdir /input + mkdir /opt/_targets + + Rscript -e "install.packages(c('pak','targets','tarchetypes','crew','crew.cluster','testthat'))" + Rscript -e "pak::pkg_install('NIEHS/amadeus')" + Rscript -e "remotes::install_github('NIEHS/beethoven')" + + + + +%environment + # Set locale for the container environment + export LANG=en_US.UTF-8 + export LC_ALL=en_US.UTF-8 + export TERM=xterm-256color + +%runscript + +%labels + basic geospatial with targets and crew plus unicode text so the target progress prints nicely \ No newline at end of file diff --git a/container/build_dl_calc.sh b/container/build_dl_calc.sh new file mode 100644 index 0000000..b66b1a0 --- /dev/null +++ b/container/build_dl_calc.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# usage: build_apptainer_image.sh [full file path] +# where full file path ends with .sif, with full directory path to save the image +# after the image is built, group write/execution privileges are given + +# Recommended to run this script interactively via `sh build_dl_calc.sh` +apptainer build --fakeroot beethoven_dl_calc.sif beethoven_dl_calc.def \ No newline at end of file diff --git a/container/run_container_dl_calc.sh b/container/run_container_dl_calc.sh new file mode 100644 index 0000000..5d0909b --- /dev/null +++ b/container/run_container_dl_calc.sh @@ -0,0 +1,23 @@ +#!/bin/bash +#SBATCH --job-name=download_calc +#SBATCH --partition=geo +#SBATCH --mem=128G +#SBATCH --cpus-per-task=4 +#SBATCH --ntasks=16 +#SBATCH --output=../slurm_messages/slurm-%j.out +#SBATCH --error=../slurm_messages/slurm-%j.err +#SBATCH --mail-user=kyle.messier@nih.gov +#SBATCH --mail-type=ALL + + +# Run the container +# .sif file sites in "root/container", thus we need to go up one level with bind mounts +apptainer exec \ + --bind $PWD/inst:/pipeline \ + --bind $PWD/input:/input \ + --bind $PWD/_targets:/opt/_targets \ + --bind $PWD:/mnt \ + beethoven_dl_calc.sif \ + Rscript /mnt/run.R + + diff --git a/container/run_dl_calc_local_tests.sh b/container/run_dl_calc_local_tests.sh new file mode 100644 index 0000000..72c81a2 --- /dev/null +++ b/container/run_dl_calc_local_tests.sh @@ -0,0 +1,23 @@ +#!/bin/bash +#SBATCH --job-name=dl_calc_tests +#SBATCH --partition=geo +#SBATCH --mem=128G +#SBATCH --cpus-per-task=4 +#SBATCH --ntasks=16 +#SBATCH --output=../slurm_messages/slurm-%j.out +#SBATCH --error=../slurm_messages/slurm-%j.err +#SBATCH --mail-user=kyle.messier@nih.gov +#SBATCH --mail-type=ALL + + + + +apptainer exec \ + --bind $PWD/../inst:/pipeline \ + --bind $PWD/../input:/input \ + --bind $PWD/../_targets:/opt/_targets \ + --bind $PWD/..:/mnt \ + beethoven_dl_calc.sif \ + Rscript /mnt/tests/testthat/test_download.R + + diff --git a/tests/testthat/test-calculate.R b/tests/testthat/test-calculate.R index 91e6e62..4b6e49e 100644 --- a/tests/testthat/test-calculate.R +++ b/tests/testthat/test-calculate.R @@ -5,6 +5,7 @@ ################################################################################ ##### par_narr testthat::test_that("par_narr (weasd + omega)", { + testthat::skip_on_ci() withr::local_package("rlang") # sample location diff --git a/tests/testthat/test-injection.R b/tests/testthat/test-injection.R index aa4403e..dfa6e68 100644 --- a/tests/testthat/test-injection.R +++ b/tests/testthat/test-injection.R @@ -123,7 +123,7 @@ testthat::test_that("set_target_years", { ################################################################################ ##### inject_calc -testthat::test_that("inject_calc (hms + hms)", { +testthat::test_that("inject_calc (hms + nei)", { withr::local_package("rlang") @@ -188,6 +188,7 @@ testthat::test_that("inject_calc (hms + hms)", { crs = "EPSG:4326" ) + testthat::skip_on_ci() # expect no errors (nei) testthat::expect_no_error( nei_injected <- inject_calculate( diff --git a/tests/testthat/test-meta.R b/tests/testthat/test-meta.R index 056ad75..4c96426 100644 --- a/tests/testthat/test-meta.R +++ b/tests/testthat/test-meta.R @@ -257,7 +257,7 @@ testthat::test_that("predict_meta_learner", { ) # expect no error for meta fit - testthat::expect_no_error( + testthat::expect_warning( meta4 <- fit_meta_learner( data = dt_meta, p_col_sel = 0.5, diff --git a/tests/testthat/test_calculate.R b/tests/testthat/test_calculate.R new file mode 100644 index 0000000..94a4871 --- /dev/null +++ b/tests/testthat/test_calculate.R @@ -0,0 +1,13 @@ +################################################################################ +##### unit and integration tests for covariate calculations +##### Currently arbitrary placeholders +##### + +################################################################################ +##### +testthat::test_that("calculate targets work", { + + a <- 1 + testthat::expect_equal(a, 1) + +}) diff --git a/tests/testthat/test_download.R b/tests/testthat/test_download.R new file mode 100644 index 0000000..fc706b8 --- /dev/null +++ b/tests/testthat/test_download.R @@ -0,0 +1,16 @@ +################################################################################ +##### unit and integration tests for data download +##### Currently arbitrary placeholders +##### + +################################################################################ +##### loadargs +testthat::test_that("download targets work", { + + a <- 1 + testthat::expect_equal(a, 1) + + b <- 2 + testthat::expect_equal(b, 2) + +}) diff --git a/tools/targets-old/targets_configuration.csv b/tools/targets-old/targets_configuration.csv index c3a3fe0..00b1dd7 100644 --- a/tools/targets-old/targets_configuration.csv +++ b/tools/targets-old/targets_configuration.csv @@ -1,71 +1,3 @@ -"index","last_updated","command","name_targets_short","value","class","name_targets_long","rclass","role_suffix","stage","source","spacetime","remarks" -0,"2024/3/15","paste0","root_custom","../../../../group/set/Projects/NRT-AP-Model/","path","character_feature_userroot","character","feature_userroot","","","","" -1,"2024/3/15","getwd","root_absolute","missing","path","character_feature_absoluteroot","character","feature_absoluteroot","","","","" -2,"2024/3/15","paste0","root_relative",".","path","character_feature_relativeroot","character","feature_relativeroot","","","","" -3,"2024/3/15","file.path","dir_input","input","path","character_feature_raw","character","feature","raw","","","" -4,"2024/3/15","file.path","dir_output","output","path","character_feature_base_fit","character","feature_base","fit","","","" -5,"2024/3/15","file.path","dir_input_aqs","input/aqs","path","character_feature_raw_aqs","character","feature","raw","aqs","","" -6,"2024/3/15","file.path","dir_input_nei","input/nei","path","character_feature_raw_nei","character","feature","raw","nei","","" -7,"2024/3/15","file.path","dir_input_narr","input/narr","path","character_feature_raw_narr","character","feature","raw","narr","","" -8,"2024/3/15","read.csv","file_narr_variables","inst/targets/narr_variables.csv","path","character_feature_lookup_raw_narr","character","feature_lookup","raw","narr","","" -9,"2024/3/15","file.path","dir_input_modis","input/modis","path","character_feature_raw_modis","character","feature","raw","modis","","" -10,"2024/3/15","file.path","dir_input_nlcd","input/nlcd/raw","path","character_feature_raw_nlcd","character","feature","raw","nlcd","","" -11,"2024/3/15","file.path","dir_input_ecoregions","input/ecoregions","path","character_feature_raw_ecoregions","character","feature","raw","ecoregions","","" -12,"2024/3/15","file.path","dir_input_koppen","input/koppen_geiger","path","character_feature_raw_koppengeiger","character","feature","raw","koppengeiger","","" -13,"2024/3/15","file.path","dir_input_gmted","input/gmted","path","character_feature_raw_gmted","character","feature","raw","gmted","","" -14,"2024/3/15","file.path","dir_input_sedac_population","input/sedac_population","path","character_feature_raw_population","character","feature","raw","population","","" -15,"2024/3/15","file.path","dir_input_sedac_groads","input/sedac_groads","path","character_feature_raw_groads","character","feature","raw","groads","","" -16,"2024/3/15","file.path","dir_input_hms","input/HMS_Smoke","path","character_feature_raw_hms","character","feature","raw","hms","","" -17,"2024/3/15","file.path","dir_input_tri","input/tri","path","character_feature_raw_tri","character","feature","raw","tri","","" -18,"2024/3/15","file.path","dir_input_geoscf","input/geos","path","character_feature_raw_geoscf","character","feature","raw","geoscf","","" -19,"2024/3/15","file.path","dir_input_modis_mod11","input/modis/raw/61/MOD11A1","path","character_feature_dir_raw_modis_mod11","character","feature_dir","raw","modis_mod11","","" -20,"2024/3/15","file.path","dir_input_modis_mod13","input/modis/raw/61/MOD13A2","path","character_feature_dir_raw_modis_mod13","character","feature_dir","raw","modis_mod13","","" -21,"2024/3/15","file.path","dir_input_modis_mcd19","input/modis/raw/61/MCD19A2","path","character_feature_dir_raw_modis_mcd19","character","feature_dir","raw","modis_mcd19","","" -22,"2024/3/15","file.path","dir_input_modis_mod09","input/modis/raw/61/MOD09GA","path","character_feature_dir_raw_modis_mod09","character","feature_dir","raw","modis_mod09","","" -23,"2024/3/15","file.path","dir_input_modis_mod06","input/modis/raw/61/MOD06_L2","path","character_feature_dir_raw_modis_mod06","character","feature_dir","raw","modis_mod06","","" -24,"2024/3/15","file.path","dir_input_viirs","input/modis/raw/5000/VNP46A2","path","character_feature_dir_raw_viirs","character","feature_dir","raw","viirs","","" -30,"2024/3/15","paste0","fileext_aqs","*.csv$","extension","character_feature_fileext_calc_aqs","character","feature_fileext","calc","aqs","","" -31,"2024/3/15","paste0","fileext_nei","*.csv$","extension","character_feature_fileext_calc_nei","character","feature_fileext","calc","nei","","" -32,"2024/3/15","paste0","fileext_narr","*.nc$","extension","character_feature_fileext_calc_narr","character","feature_fileext","calc","narr","","" -34,"2024/3/15","paste0","fileext_modis","*.hdf$","extension","character_feature_fileext_calc_modis","character","feature_fileext","calc","modis","","" -35,"2024/3/15","paste0","fileext_viirs","*.h5$","extension","character_feature_fileext_calc_viirs","character","feature_fileext","calc","viirs","","" -36,"2024/3/15","paste0","fileext_nlcd","*.img$","extension","character_feature_fileext_calc_nlcd","character","feature_fileext","calc","nlcd","","" -37,"2024/3/15","paste0","fileext_ecoregions","*.shp$","extension","character_feature_fileext_calc_ecoregions","character","feature_fileext","calc","ecoregions","","" -38,"2024/3/15","paste0","fileext_koppen","*.tif$","extension","character_feature_fileext_calc_koppengeiger","character","feature_fileext","calc","koppengeiger","","" -39,"2024/3/15","paste0","fileext_gmted","*.nc$","extension","character_feature_fileext_calc_gmted","character","feature_fileext","calc","gmted","","" -40,"2024/3/15","paste0","fileext_sedac_population","*.shp$","extension","character_feature_fileext_calc_population","character","feature_fileext","calc","population","","" -41,"2024/3/15","paste0","fileext_sedac_groads","*.tif$","extension","character_feature_fileext_calc_groads","character","feature_fileext","calc","groads","","" -42,"2024/3/15","paste0","fileext_hms","*.shp$","extension","character_feature_fileext_calc_hms","character","feature_fileext","calc","hms","","" -43,"2024/3/15","paste0","fileext_tri","*.nc$","extension","character_feature_fileext_calc_tri","character","feature_fileext","calc","tri","","" -44,"2024/3/15","paste0","fileext_geoscf","*.nc$","extension","character_feature_fileext_calc_geoscf","character","feature_fileext","calc","geoscf","","" -45,"2024/3/15","paste0","file_list_mod11","mod11_static_list.txt","status","character_feature_list_calc_modis_mod11","character","feature_list","calc","modis_mod11","","" -46,"2024/3/15","paste0","file_list_mod13","mod13_static_list.txt","status","character_feature_list_calc_modis_mod13","character","feature_list","calc","modis_mod13","","" -47,"2024/3/15","paste0","file_list_mcd19","mcd19_static_list.txt","status","character_feature_list_calc_modis_mcd19","character","feature_list","calc","modis_mcd19","","" -48,"2024/3/15","paste0","file_list_mod06","mod06_static_list.txt","status","character_feature_list_calc_modis_mod06","character","feature_list","calc","modis_mod06","","" -49,"2024/3/15","paste0","file_list_mod09","mod09_static_list.txt","status","character_feature_list_calc_modis_mod09","character","feature_list","calc","modis_mod09","","" -50,"2024/3/15","paste0","file_list_tri","tri_static_list.txt","status","character_feature_list_calc_tri","character","feature_list","calc","tri","","" -67,"2024/3/15","paste0","char_siteid","site_id","identifier","character_feature_pointid_calc","character","feature_pointid","calc","","","" -68,"2024/3/15","paste0","char_timeid","time","identifier","character_feature_timeid_calc","character","feature_timeid","calc","","","" -69,"2024/3/15","paste0","file_feat_dummies","feature_dummies.rds","status","datatable_feature_timedummy_calc","datatable","feature_timedummy","calc","","","" -70,"2024/3/15","paste0","file_aqs_pm","aqs_cleaned.rds","status","datatable_feature_pm25_calc_aqs","datatable","feature_pm25","calc","aqs","","" -71,"2024/3/15","paste0","name_dep","pm25","label","character_feature_pm25name_process","character","feature_pm25name","process","","","" -72,"2024/3/15","readLines","file_name_indep","list_covariate_names.txt","label","","","","","","","deprecated?" -73,"2024/3/15","paste0","file_grid_prediction","prediction_grid.rds","status","datatable_prediction_locs_calc","datatable","prediction_locs","calc","","grid","" -74,"2024/3/15","as.integer","nthreads","16","setting","integer_feature_nthreads_calc","integer","feature_nthreads","calc","","","" -91,"2024/3/15","file.path","dir_input_nei2017","input/nei/nei_onroad_byregions_2017","path","character_feature_dir_calc_nei_2017","character","feature_dir","calc","nei","2017","" -92,"2024/3/15","file.path","dir_input_nei2020","input/nei/nei_onroad_byregions_2020","path","character_feature_dir_calc_nei_2020","character","feature_dir","calc","nei","2020","" -96,"2024/3/15","paste0","file_input_sedac_groads","groads-v1-americas-gdb/gROADS-v1-americas.gdb","path","character_feature_dir_calc_groads","character","feature_dir","calc","groads","","" -97,"2024/3/15","paste0","file_input_sedac_population","gpw_v4_population_density_adjusted_to_2015_unwpp_country_totals_rev11_2020_30_sec.tif","path","character_feature_dir_calc_population","character","feature_dir","calc","population","","" -93,"2024/4/1","as.Date","date_start","2020-01-01","domain","character_feature_calcdate_start","character","feature","calc","","date_start","" -94,"2024/4/1","as.Date","date_end","2020-12-31","domain","character_feature_calcdate_end","character","feature","calc","","date_end","" -95,"2024/3/15","strsplit","extent","-126|-62|22|52","domain","character_feature_calcextent","character","feature","calc","","extent","" -98,"2024/3/29","strsplit","nei_year_sequence","2017|2017|2020|2020|2020","domain","character_feature_calc_nei_years","character","feature","calc","nei","years","" -99,"2024/3/29","strsplit","nlcd_year_sequence","2019|2019|2019|2021|2021","domain","character_feature_calc_nlcd_years","character","feature","calc","nlcd","years","" -101,"2024/3/29","strsplit","sedac_population_year","2020|2020|2020|2020|2020","domain","character_feature_calc_population_years","character","feature","calc","population","years","" -1001,"2024/3/29","paste0","nei_year_sequence_test","2020","domain","character_feature_calc_test_nei_years","character","feature","calc_test","nei","years","" -1002,"2024/3/29","paste0","nlcd_year_sequence_test","2019","domain","character_feature_calc_test","character","feature","calc_test","","","" -1003,"2024/3/29","as.integer","sedac_population_year_test","2020","domain","character_feature_calc_test_population_year","character","feature","calc_test","","","" -1004,"2024/3/29","strsplit","tri_year_sequence_test","2020|2020","domain","character_feature_calc_test_tri_year","character","feature","calc_test","","","" -100,"2024/3/29","as.integer","nthreads_calc","20","setting","","","","","","","deprecated" -102,"2024/3/29","strsplit","tri_year_sequence","2018|2019|2020|2021|2022","domain","character_feature_calc_tri","character","feature","calc","tri","","" -103,"2024/3/29","paste0","slurm_user_email","songi2@nih.gov","setting","character_config_calc_useremail","character","config","calc","useremail","","" +version https://git-lfs.github.com/spec/v1 +oid sha256:4340251ee65e4b1de71596e095ada2c7210d7a21b523e09852a87d0a8bb5fa8d +size 10898 diff --git a/tools/targets-old/targets_lookup.csv b/tools/targets-old/targets_lookup.csv index a9fadc8..1cfcdb8 100644 --- a/tools/targets-old/targets_lookup.csv +++ b/tools/targets-old/targets_lookup.csv @@ -1 +1,3 @@ -"target","description" +version https://git-lfs.github.com/spec/v1 +oid sha256:4dfd0967ceb612d6feacc355f2b17395a141f60112654202b5ccae6e4d656002 +size 23