{
  "_id": "6ad8adb0c230b829876fcf36",
  "Package": "soilcnn",
  "Title": "Convolutional Neural Networks for Digital Soil Mapping",
  "Version": "0.1.0",
  "Authors@R": "c(\nperson(c(\"Cássio\", \"Marques\"), \"Moquedace\", , \"cassiomoquedace@gmail.com\",\nrole = c(\"aut\", \"cre\", \"cph\")),\nperson(c(\"Clara\", \"Glória\", \"Oliveira\"), \"Baldi\", role = c(\"aut\", \"cph\")))",
  "Description": "A framework, built on 'torch', for mapping a soil property\nfrom point observations and a stack of aligned rasters with a\nconvolutional network that reads the neighbourhood of each\npoint. It extracts the patches; resamples by spatial blocks or\nby k-fold nearest neighbour distance matching, after\nLinnenbrink et al. (2024) <doi:10.5194/gmd-17-5897-2024>; tunes\nand selects under a noise floor and the one-standard-error\nrule; refits the selected configuration under several seeds;\nand predicts median, mean and interval maps over rasters of any\nextent. The map's centre is the ensemble median over seeds; the\nmean corrects its back-transformation by smearing, after Duan\n(1983) <doi:10.1080/01621459.1983.10478017>. The intervals are\nconformal, calibrated three ways and each checked on the test\nset: on the cross-validated residuals; on a calibration set\nheld out of every fold, as split conformal, after Lei et al.\n(2018) <doi:10.1080/01621459.2017.1307116>; or with every\nfold's model at each pixel, as CV+, after Barber et al. (2021)\n<doi:10.1214/20-AOS1965> -- with points, or whole groups of\nthem, weighing alike, after Dunn et al. (2023)\n<doi:10.1080/01621459.2022.2060112>. The area of applicability\nof Meyer and Pebesma (2021) <doi:10.1111/2041-210X.13650> is\nmapped beside them. What a model learned is read by\npermutation, by SHAP values from expected gradients, after\nErion et al. (2021) <doi:10.1038/s42256-021-00343-w>, by SAGE,\nafter Covert et al. (2020) <doi:10.48550/arXiv.2004.00668>, by\naccumulated local effects, after Apley and Zhu (2020)\n<doi:10.1111/rssb.12377>, and by refits without each variable.\nRandom forest and multilayer perceptron baselines run under the\nsame folds.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/moquedace/soilcnn,\nhttps://moquedace.github.io/soilcnn/",
  "BugReports": "https://github.com/moquedace/soilcnn/issues",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "Config/roxygen2/version": "8.1.0",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-21 12:14:30 UTC",
    "User": "root"
  },
  "Author": "Cássio Marques Moquedace [aut, cre, cph], Clara Glória Oliveira\nBaldi [aut, cph]",
  "Maintainer": "Cássio Marques Moquedace <cassiomoquedace@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-21 10:19:38 UTC",
  "RemoteUrl": "https://github.com/cran/soilcnn",
  "RemoteRef": "HEAD",
  "RemoteSha": "2379c381d2cc1dea08270023c35fab0d5565455e",
  "_user": "cran",
  "_type": "src",
  "_file": "soilcnn_0.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/522bdd57ea7abbeb16458c93200dfac5b21ec21511db330636c0254fdcf1ca8d",
  "_filesize": 3567167,
  "_sha256": "522bdd57ea7abbeb16458c93200dfac5b21ec21511db330636c0254fdcf1ca8d",
  "_expires": "2027-01-29T12:18:50.000Z",
  "_created": "2026-10-21T12:14:30.000Z",
  "_published": "2026-10-21T12:18:56.410Z",
  "_upstream": "https://github.com/cran/soilcnn",
  "_status": "success",
  "_maintainer": {
    "name": "Cássio Marques Moquedace",
    "email": "cassiomoquedace@gmail.com",
    "login": "moquedace",
    "twitter": "@CMoquedace",
    "description": "Agroecologist • Forestry Engineer • Ph.D. in Soil Science • Postdoctoral Researcher at ESALQ/USP 🌱 🍂🌳📏🌎",
    "uuid": 67038094
  },
  "_jobs": [
    {
      "job": 119215390422,
      "time": 198,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12344533175"
    },
    {
      "job": 119215390400,
      "time": 208,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12345081392"
    },
    {
      "job": 119213084654,
      "time": 310,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12344841298"
    },
    {
      "job": 119215390262,
      "time": 144,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12344826356"
    },
    {
      "job": 119215390367,
      "time": 146,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12344488147"
    },
    {
      "job": 119215390339,
      "time": 146,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12344846350"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/39597366527",
  "_commit": {
    "id": "2379c381d2cc1dea08270023c35fab0d5565455e",
    "author": "Cássio Marques Moquedace <cassiomoquedace@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.1.0\n",
    "time": 1792577978
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.5.0",
      "role": "Depends"
    },
    {
      "package": "callr",
      "role": "Imports"
    },
    {
      "package": "coro",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "graphics",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "janitor",
      "role": "Imports"
    },
    {
      "package": "matrixStats",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "ps",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "terra",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "torch",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "caret",
      "role": "Suggests"
    },
    {
      "package": "CAST",
      "role": "Suggests"
    },
    {
      "package": "FNN",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "pkgload",
      "role": "Suggests"
    },
    {
      "package": "randomForest",
      "role": "Suggests"
    },
    {
      "package": "ranger",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "sf",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-43",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.1.0",
      "date": "2026-10-21"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "moquedace",
      "count": 1,
      "uuid": 67038094
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 634,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/soilcnn"
  },
  "_devurl": "https://github.com/moquedace/soilcnn",
  "_pkgdown": "https://moquedace.github.io/soilcnn/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/soilcnn.html",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "ale_effect",
    "aoa_di",
    "aoa_reference",
    "aoa_threshold",
    "block_bootstrap",
    "block_bootstrap_by_size",
    "calc_metrics",
    "caret_available",
    "caret_spec",
    "ccc",
    "check_fold_plan",
    "compare_importance",
    "conformal_calibrate",
    "conformal_cv",
    "conformal_interval",
    "conformal_scale_fit",
    "conformal_scaled_calibrate",
    "conformal_scaled_interval",
    "context_importance",
    "cv_plus_calibrate",
    "cv_plus_interval",
    "cv_residuals",
    "cv_residuals_for_config",
    "di_reference",
    "dissimilarity_index",
    "dsm_final",
    "dsm_importance",
    "dsm_load",
    "dsm_predict",
    "dsm_prepare",
    "dsm_report_final",
    "dsm_train",
    "equal_area_blocks",
    "example_landscape",
    "example_run",
    "fold_leakage_report",
    "freeze_selection",
    "get_model",
    "holdout",
    "holdout_cv",
    "importance_groups",
    "importance_map",
    "importance_points",
    "importance_weights",
    "inside_aoa",
    "knndm_cv",
    "knndm_folds",
    "latest_run_dir",
    "list_models",
    "make_manual_tune_grid",
    "make_tune_grid",
    "model_spec",
    "occlusion_report",
    "one_se",
    "paired_family_test",
    "permutation_importance",
    "picp_report",
    "prediction_sample",
    "print_aoa",
    "print_noise_floor",
    "print_one_se",
    "random_cv",
    "random_folds",
    "refit_importance",
    "region_cv",
    "region_folds",
    "register_model",
    "resolve_resampling",
    "sage_importance",
    "score_test_grid",
    "seed_noise_floor",
    "selected_config_id",
    "set_torch_threads",
    "setup_torch_device",
    "shap_importance",
    "smear",
    "smear_map",
    "smearing_check",
    "smearing_factor",
    "smearing_from_run",
    "spatial_correlogram",
    "spatial_cv",
    "spatial_folds",
    "summarise_resamples",
    "target_transform_spec"
  ],
  "_help": [
    {
      "page": "ale_effect",
      "title": "ALE: how the prediction changes along each variable's range.",
      "topics": [
        "ale_effect"
      ]
    },
    {
      "page": "aoa_di",
      "title": "The DI of new rows of RAW predictor values, QC'd and scaled as the reference was.",
      "topics": [
        "aoa_di"
      ]
    },
    {
      "page": "aoa_reference",
      "title": "The dissimilarity reference of a fitted model.",
      "topics": [
        "aoa_reference"
      ]
    },
    {
      "page": "aoa_threshold",
      "title": "The DI threshold that separates the area of applicability.",
      "topics": [
        "aoa_threshold"
      ]
    },
    {
      "page": "block_bootstrap",
      "title": "A metric, or two models' difference in it, with an interval from whole blocks.",
      "topics": [
        "block_bootstrap"
      ]
    },
    {
      "page": "block_bootstrap_by_size",
      "title": "The interval as the blocks grow.",
      "topics": [
        "block_bootstrap_by_size"
      ]
    },
    {
      "page": "calc_metrics",
      "title": "Compute all regression metrics for one obs/pred pair.",
      "topics": [
        "calc_metrics"
      ]
    },
    {
      "page": "caret_available",
      "title": "Every caret method that could be borrowed here.",
      "topics": [
        "caret_available"
      ]
    },
    {
      "page": "caret_spec",
      "title": "Turn a caret method into a model_spec.",
      "topics": [
        "caret_spec"
      ]
    },
    {
      "page": "ccc",
      "title": "Lin's Concordance Correlation Coefficient.",
      "topics": [
        "ccc"
      ]
    },
    {
      "page": "check_fold_plan",
      "title": "Check a plan's folds are well formed, and describe them.",
      "topics": [
        "check_fold_plan"
      ]
    },
    {
      "page": "compare_importance",
      "title": "Several importances, side by side.",
      "topics": [
        "compare_importance"
      ]
    },
    {
      "page": "conformal_calibrate",
      "title": "Calibrate a conformal interval from held-out residuals.",
      "topics": [
        "conformal_calibrate"
      ]
    },
    {
      "page": "conformal_cv",
      "title": "Calibrate on the folds of a resampling run, then report coverage.",
      "topics": [
        "conformal_cv"
      ]
    },
    {
      "page": "conformal_interval",
      "title": "Turn predictions into intervals.",
      "topics": [
        "conformal_interval"
      ]
    },
    {
      "page": "conformal_scale_fit",
      "title": "Fit the scale of an interval: |residual| on covariates that say how wrong.",
      "topics": [
        "conformal_scale_fit"
      ]
    },
    {
      "page": "conformal_scaled_calibrate",
      "title": "Calibrate an interval whose width is a fitted scale.",
      "topics": [
        "conformal_scaled_calibrate"
      ]
    },
    {
      "page": "conformal_scaled_interval",
      "title": "Turn predictions into intervals with a fitted scale.",
      "topics": [
        "conformal_scaled_interval"
      ]
    },
    {
      "page": "context_importance",
      "title": "Context importance: how far from the point, and at which scale, the model reads.",
      "topics": [
        "context_importance"
      ]
    },
    {
      "page": "cv_plus_calibrate",
      "title": "Calibrate a CV+ interval from the folds of a cross-validation.",
      "topics": [
        "cv_plus_calibrate"
      ]
    },
    {
      "page": "cv_plus_interval",
      "title": "Turn the fold models' predictions into CV+ intervals.",
      "topics": [
        "cv_plus_interval"
      ]
    },
    {
      "page": "cv_residuals",
      "title": "Cross-validated residuals from a tuning run, for calibration.",
      "topics": [
        "cv_residuals"
      ]
    },
    {
      "page": "cv_residuals_for_config",
      "title": "Cross-validated residuals of a configuration, from any tuning run.",
      "topics": [
        "cv_residuals_for_config"
      ]
    },
    {
      "page": "di_reference",
      "title": "Summarise a training set for dissimilarity-index computation.",
      "topics": [
        "di_reference"
      ]
    },
    {
      "page": "dissimilarity_index",
      "title": "The dissimilarity index of new data.",
      "topics": [
        "dissimilarity_index"
      ]
    },
    {
      "page": "dsm_final",
      "title": "Refit the configuration a tuning run selects, under N seeds.",
      "topics": [
        "dsm_final"
      ]
    },
    {
      "page": "dsm_importance",
      "title": "Variable importance of a fitted model, by the method you choose.",
      "topics": [
        "dsm_importance"
      ]
    },
    {
      "page": "dsm_load",
      "title": "Load everything a run needs, and check that it fits together.",
      "topics": [
        "dsm_load"
      ]
    },
    {
      "page": "dsm_predict",
      "title": "Predict a map from a final model.",
      "topics": [
        "dsm_predict"
      ]
    },
    {
      "page": "dsm_prepare",
      "title": "Build a patch store from a point table and a folder of aligned rasters.",
      "topics": [
        "dsm_prepare"
      ]
    },
    {
      "page": "dsm_report_final",
      "title": "The declaration of a final model that already exists.",
      "topics": [
        "dsm_report_final"
      ]
    },
    {
      "page": "dsm_train",
      "title": "Fit and tune a model over a resampling plan.",
      "topics": [
        "dsm_train"
      ]
    },
    {
      "page": "equal_area_blocks",
      "title": "Square blocks of equal area, in kilometres.",
      "topics": [
        "equal_area_blocks"
      ]
    },
    {
      "page": "example_landscape",
      "title": "A small synthetic landscape, for the examples and the tests.",
      "topics": [
        "example_landscape"
      ]
    },
    {
      "page": "example_run",
      "title": "A small fitted run on the example landscape, made once a session.",
      "topics": [
        "example_run"
      ]
    },
    {
      "page": "fold_leakage_report",
      "title": "How much does each fold still leak?",
      "topics": [
        "fold_leakage_report"
      ]
    },
    {
      "page": "freeze_selection",
      "title": "Record which config was chosen, and when.",
      "topics": [
        "freeze_selection"
      ]
    },
    {
      "page": "get_model",
      "title": "Fetch a registered model.",
      "topics": [
        "get_model"
      ]
    },
    {
      "page": "holdout",
      "title": "A single train/validation/test split of a point table.",
      "topics": [
        "holdout"
      ]
    },
    {
      "page": "holdout_cv",
      "title": "A single train/validation/test split.",
      "topics": [
        "holdout_cv"
      ]
    },
    {
      "page": "importance_groups",
      "title": "Which channels the importance treats as one variable.",
      "topics": [
        "importance_groups"
      ]
    },
    {
      "page": "importance_map",
      "title": "Maps of SHAP values, from an importance computed at points of the map.",
      "topics": [
        "importance_map"
      ]
    },
    {
      "page": "importance_points",
      "title": "Points of the map to explain: a regular grid of the model's raster cells.",
      "topics": [
        "importance_points"
      ]
    },
    {
      "page": "importance_weights",
      "title": "One weight per channel, for the area of applicability, from an importance.",
      "topics": [
        "importance_weights"
      ]
    },
    {
      "page": "inside_aoa",
      "title": "Is each row inside the area of applicability?",
      "topics": [
        "inside_aoa"
      ]
    },
    {
      "page": "knndm_cv",
      "title": "Folds matched to where the map will be predicted (kNNDM).",
      "topics": [
        "knndm_cv"
      ]
    },
    {
      "page": "knndm_folds",
      "title": "Fold plan from k-fold Nearest Neighbour Distance Matching.",
      "topics": [
        "knndm_folds"
      ]
    },
    {
      "page": "latest_run_dir",
      "title": "The most recent run under 'base', by time, and only if it finished.",
      "topics": [
        "latest_run_dir"
      ]
    },
    {
      "page": "list_models",
      "title": "Every registered model, as a table.",
      "topics": [
        "list_models"
      ]
    },
    {
      "page": "make_manual_tune_grid",
      "title": "Build a manual grid from explicit lists of values per parameter.",
      "topics": [
        "make_manual_tune_grid"
      ]
    },
    {
      "page": "make_tune_grid",
      "title": "Generate a random hyperparameter grid (like caret's tuneLength).",
      "topics": [
        "make_tune_grid"
      ]
    },
    {
      "page": "model_spec",
      "title": "Describe a model the framework can fit.",
      "topics": [
        "model_spec"
      ]
    },
    {
      "page": "occlusion_report",
      "title": "What each part of the patch is worth to one trained unit of a tuning run.",
      "topics": [
        "occlusion_report"
      ]
    },
    {
      "page": "one_se",
      "title": "Pick the simplest config within one standard error of the best.",
      "topics": [
        "one_se"
      ]
    },
    {
      "page": "paired_family_test",
      "title": "Paired comparison between two model families.",
      "topics": [
        "paired_family_test"
      ]
    },
    {
      "page": "permutation_importance",
      "title": "Permutation importance: how much a fitted model relies on each variable.",
      "topics": [
        "permutation_importance"
      ]
    },
    {
      "page": "picp_report",
      "title": "Coverage, and whether it holds where it is needed.",
      "topics": [
        "picp_report"
      ]
    },
    {
      "page": "plot.block_bootstrap_by_size",
      "title": "Plot the interval as the blocks grow.",
      "topics": [
        "plot.block_bootstrap_by_size"
      ]
    },
    {
      "page": "plot.dsm_importance",
      "title": "Plot a variable importance.",
      "topics": [
        "plot.dsm_importance"
      ]
    },
    {
      "page": "plot.importance_comparison",
      "title": "Plot importances side by side.",
      "topics": [
        "plot.importance_comparison"
      ]
    },
    {
      "page": "plot.importance_map",
      "title": "Plot maps of SHAP values.",
      "topics": [
        "plot.importance_map"
      ]
    },
    {
      "page": "plot.spatial_correlogram",
      "title": "Plot a spatial correlogram.",
      "topics": [
        "plot.spatial_correlogram"
      ]
    },
    {
      "page": "prediction_sample",
      "title": "A regular sample of the prediction area, as kNNDM's 'predpoints'.",
      "topics": [
        "prediction_sample"
      ]
    },
    {
      "page": "print_aoa",
      "title": "Report what an AOA covers.",
      "topics": [
        "print_aoa"
      ]
    },
    {
      "page": "print_noise_floor",
      "title": "Print a noise-floor report in the terms it should be read in.",
      "topics": [
        "print_noise_floor"
      ]
    },
    {
      "page": "print_one_se",
      "title": "Say what one_se() did, including when it did nothing.",
      "topics": [
        "print_one_se"
      ]
    },
    {
      "page": "random_cv",
      "title": "Random k-fold. Ignores geography by construction.",
      "topics": [
        "random_cv"
      ]
    },
    {
      "page": "random_folds",
      "title": "Random k-fold over the train+validation pool.",
      "topics": [
        "random_folds"
      ]
    },
    {
      "page": "refit_importance",
      "title": "Refit importance: what the model loses when trained without a variable.",
      "topics": [
        "refit_importance"
      ]
    },
    {
      "page": "region_cv",
      "title": "Leave-region-out, on a grouping that already exists (biome, catchment, ...).",
      "topics": [
        "region_cv"
      ]
    },
    {
      "page": "region_folds",
      "title": "Fold by a grouping column: no group is split across folds.",
      "topics": [
        "region_folds"
      ]
    },
    {
      "page": "register_model",
      "title": "Add a model to the registry.",
      "topics": [
        "register_model"
      ]
    },
    {
      "page": "resolve_resampling",
      "title": "Turn a spec into a fold plan against real points.",
      "topics": [
        "resolve_resampling"
      ]
    },
    {
      "page": "sage_importance",
      "title": "SAGE: how much of the model's skill each variable carries, shared fairly.",
      "topics": [
        "sage_importance"
      ]
    },
    {
      "page": "score_test_grid",
      "title": "Score every trained unit of a tuning run on the held-out test set.",
      "topics": [
        "score_test_grid"
      ]
    },
    {
      "page": "seed_noise_floor",
      "title": "How much does a metric move when ONLY the seed changes?",
      "topics": [
        "seed_noise_floor"
      ]
    },
    {
      "page": "selected_config_id",
      "title": "The configuration a final run deployed.",
      "topics": [
        "selected_config_id"
      ]
    },
    {
      "page": "set_torch_threads",
      "title": "Set torch's thread pools.",
      "topics": [
        "set_torch_threads"
      ]
    },
    {
      "page": "setup_torch_device",
      "title": "Configure torch threads and select compute device.",
      "topics": [
        "setup_torch_device"
      ]
    },
    {
      "page": "shap_importance",
      "title": "SHAP importance: how each variable pushes each prediction, up or down.",
      "topics": [
        "shap_importance"
      ]
    },
    {
      "page": "smear",
      "title": "The conditional MEAN surface, from transform-space predictions.",
      "topics": [
        "smear"
      ]
    },
    {
      "page": "smear_map",
      "title": "The mean surface of a median map already made.",
      "topics": [
        "smear_map"
      ]
    },
    {
      "page": "smearing_check",
      "title": "The smearing factors on held-out points: which one unbiases the mean surface.",
      "topics": [
        "smearing_check"
      ]
    },
    {
      "page": "smearing_factor",
      "title": "The smearing factor, from held-out residuals in transform space.",
      "topics": [
        "smearing_factor"
      ]
    },
    {
      "page": "smearing_from_run",
      "title": "The smearing factor from a tuning run's out-of-fold predictions.",
      "topics": [
        "smearing_from_run"
      ]
    },
    {
      "page": "spatial_correlogram",
      "title": "Moran's I by distance class: how far apart two points stop resembling each other.",
      "topics": [
        "spatial_correlogram"
      ]
    },
    {
      "page": "spatial_cv",
      "title": "Spatially blocked k-fold: whole blocks of ground go to one fold.",
      "topics": [
        "spatial_cv"
      ]
    },
    {
      "page": "spatial_folds",
      "title": "Spatially blocked folds of a point table.",
      "topics": [
        "spatial_folds"
      ]
    },
    {
      "page": "summarise_resamples",
      "title": "Aggregate a unit-level comparison table into one row per config.",
      "topics": [
        "summarise_resamples"
      ]
    },
    {
      "page": "target_transform_spec",
      "title": "The forward and inverse functions for a named target transform.",
      "topics": [
        "target_transform_spec"
      ]
    }
  ],
  "_rundeps": [
    "bit",
    "bit64",
    "callr",
    "cli",
    "clipr",
    "coro",
    "cpp11",
    "crayon",
    "desc",
    "dplyr",
    "farver",
    "generics",
    "glue",
    "hms",
    "janitor",
    "jsonlite",
    "labeling",
    "lifecycle",
    "lubridate",
    "magrittr",
    "matrixStats",
    "otel",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "processx",
    "progress",
    "ps",
    "purrr",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "readr",
    "rlang",
    "safetensors",
    "scales",
    "snakecase",
    "stringi",
    "stringr",
    "terra",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "torch",
    "tzdb",
    "utf8",
    "vctrs",
    "viridisLite",
    "vroom",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "soilcnn.Rmd",
      "filename": "soilcnn.html",
      "title": "Getting started with soilcnn",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Prepare and load the patch store",
        "2. Understand the multiscale inputs",
        "3. Decide who trains and who scores",
        "4. Tune",
        "Tutorial example: choosing a supported level of complexity",
        "Application example: model selection",
        "5. The baselines that give the number a scale",
        "6. The test set, once",
        "Application example: validation designs on one test set",
        "7. Refit the chosen configuration",
        "Application example: coverage and interval width",
        "8. The map",
        "Where the map may be believed",
        "Application example: reading the final maps together",
        "9. What the model learned",
        "Application example: importance by theme",
        "A reference for your own run",
        "About the illustrations"
      ],
      "created": "2026-10-21 10:19:38",
      "modified": "2026-10-21 10:19:38",
      "commits": 1
    }
  ],
  "_score": 2,
  "_indexed": false,
  "_nocasepkg": "soilcnn",
  "_universes": [
    "cran",
    "moquedace"
  ],
  "_indexurl": "https://moquedace.r-universe.dev/soilcnn",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-10-21T12:17:10.000Z",
      "distro": "resolute",
      "commit": "2379c381d2cc1dea08270023c35fab0d5565455e",
      "fileid": "https://r2.ropensci.org/3ab5d88014e2ede6786eda6dc1a8ab393eaba1c6262cde23d83f56e0f4f6d49f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39597366527"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-10-21T12:17:25.000Z",
      "distro": "resolute",
      "commit": "2379c381d2cc1dea08270023c35fab0d5565455e",
      "fileid": "https://r2.ropensci.org/210c74fbbc5fb9baba86d1dfb71caa2e4dfc091ddf7c8a288b1cff47f1c9df31",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39597366527"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-10-21T12:17:20.000Z",
      "commit": "2379c381d2cc1dea08270023c35fab0d5565455e",
      "fileid": "https://r2.ropensci.org/be1af4690d2c16c11cea5169b809ddf54de21f1488c869a8194617432b8d864a",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39597366527"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-10-21T12:16:05.000Z",
      "commit": "2379c381d2cc1dea08270023c35fab0d5565455e",
      "fileid": "https://r2.ropensci.org/5aedc61a293b4fc8239bfa367ffcc86a521892a0f75b59e572684fdf4775cbee",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39597366527"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-10-21T12:16:23.000Z",
      "commit": "2379c381d2cc1dea08270023c35fab0d5565455e",
      "fileid": "https://r2.ropensci.org/015315fecb27bd58d472c552a2112d0c56ce8d902c6c1ed3662396e15d0d3794",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39597366527"
    }
  ]
}