MyNixOS website logo
Description

Analyse Soil Tillage Depth and Erosion Over Time.

Provides tools to record, validate, and analyse soil tillage depth and erosion across years and field treatments. Includes functions for year-wise tillage operation summaries, erosion depth tracking, compaction detection, soil loss estimation, and visualisation of temporal changes in tillage and erosion profiles. Methods follow Lal (2001) <doi:10.1201/9780203739280> and Renard et al. (1997) "Predicting Soil Erosion by Water: A Guide to Conservation Planning with the Revised Universal Soil Loss Equation (RUSLE)" <https://ntrl.ntis.gov/NTRL/dashboard/searchResults/titleDetail/PB97153704.xhtml>.

soiltillr

CRAN status License: MIT

Overview

soiltillr provides tools to record, validate, and analyse soil tillage depth and erosion across years and field treatments. It is designed for agronomists, soil scientists, and conservation researchers who need to:

  • Summarise year-wise tillage operations by field
  • Detect trends in tillage depth over time
  • Identify soil compaction risk from tillage records
  • Track annual erosion depth and cumulative soil loss
  • Estimate soil loss using a mass-balance approach
  • Visualise tillage and erosion changes over time

Methods follow Lal (2001) and Renard et al. (1997) RUSLE guidelines.

Installation

Install the released version from CRAN:

install.packages("soiltillr")

Or install the development version from GitHub:

# install.packages("devtools")
devtools::install_github("sadikul-islam/soiltillr")

Functions

FunctionCategoryDescription
validate_soil_data()ValidationCheck data quality before analysis
summarise_tillage()TillageYear × field operation summary
tillage_depth_trend()TillageYear-on-year depth change and trend
detect_compaction()TillageCompaction risk and plow pan depth
track_erosion_depth()ErosionAnnual erosion tracking and cumulative loss
estimate_soil_loss()ErosionMass-balance soil loss in t/ha
compare_fields()ErosionSide-by-side field comparison
plot_tillage_timeline()VisualisationLine plot of tillage depth by year
plot_erosion_trend()VisualisationErosion depth trend (+ optional cumulative panel)
plot_om_trend()VisualisationOrganic matter trend by field
plot_tillage_erosion()VisualisationDual-panel tillage vs erosion comparison

Built-in Datasets

  • tillage_operations — 20 rows, 6 columns. Hypothetical year-wise tillage records for Field_A and Field_B (2018–2023).
  • erosion_profile — 12 rows, 8 columns. Annual erosion depth, soil loss, bulk density, organic matter, rainfall, and slope.

Usage

library(soiltillr)

# Load built-in data
data(tillage_operations)
data(erosion_profile)

# Validate data quality
chk <- validate_soil_data(tillage_operations, "year", "field_id", "depth_cm")
chk$valid  # TRUE

# Summarise tillage operations by year and field
till_sum <- summarise_tillage(tillage_operations, "year", "field_id",
                              "depth_cm", op_col = "operation")
print(till_sum)

# Detect year-on-year depth trends
till_trend <- tillage_depth_trend(tillage_operations, "year",
                                  "field_id", "depth_cm")
till_trend[till_trend$trend == "decreasing", ]

# Detect compaction risk
risk <- detect_compaction(tillage_operations, "year", "field_id",
                          "depth_cm", compaction_threshold_cm = 20)
risk[risk$compaction_risk == "high", ]

# Track erosion depth
erosion <- track_erosion_depth(erosion_profile, "year",
                               "field_id", "erosion_depth_mm")

# Estimate soil loss (mass-balance with McCool LS factor)
loss <- estimate_soil_loss(erosion_profile, "year", "field_id",
                           "erosion_depth_mm", "bulk_density_g_cm3",
                           slope_col = "slope_pct")

# Compare fields side by side
comp <- compare_fields(erosion_profile, "year", "field_id",
                       "erosion_depth_mm", "organic_matter_pct")

# Visualise
plot_tillage_timeline(tillage_operations, "year", "field_id", "depth_cm")
plot_erosion_trend(erosion_profile, "year", "field_id",
                   "erosion_depth_mm", show_cumulative = TRUE)
plot_om_trend(erosion_profile, "year", "field_id", "organic_matter_pct")
plot_tillage_erosion(tillage_operations, erosion_profile,
                     "year", "field_id", "depth_cm", "erosion_depth_mm")

References

Lal, R. (2001). Soil degradation by erosion. Land Degradation and Development, 12(6), 519–539. https://doi.org/10.1002/ldr.472

McCool, D. K., Brown, L. C., Foster, G. R., Mutchler, C. K., & Meyer, L. D. (1987). Revised slope steepness factor for the Universal Soil Loss Equation. Transactions of the ASAE, 30(5), 1387–1396. https://doi.org/10.13031/2013.30576

Renard, K. G., Foster, G. R., Weesies, G. A., McCool, D. K., & Yoder, D. C. (1997). Predicting Soil Erosion by Water: A Guide to Conservation Planning with the Revised Universal Soil Loss Equation (RUSLE). USDA Agriculture Handbook No. 703. https://ntrl.ntis.gov/NTRL/dashboard/searchResults/titleDetail/PB97153704.xhtml

License

MIT © Sadikul Islam.

Metadata

Version

0.1.0

License

Unknown

Platforms (80)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arc-linux
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • sh4-linux
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows