| Title: | Crop Water Requirement and Irrigation Scheduling Across Multiple Locations |
|---|---|
| Description: | Estimates reference evapotranspiration, crop evapotranspiration, effective rainfall, crop water requirements, root-zone water balance, and irrigation schedules across multiple locations. The calculations use temperature-based procedures described in Food and Agriculture Organization Irrigation and Drainage Paper No. 56 and a workflow inspired by the 'CROPWAT' software for monthly-to-daily interpolation, aggregation into 10-day periods, and irrigation scheduling. Further details of the evapotranspiration calculations are provided by Allen, R.G., Pereira, L.S., Raes, D. and Smith, M. (1998, ISBN:92-5-104219-5) "Crop Evapotranspiration: Guidelines for Computing Crop Water Requirements" <https://www.fao.org/4/X0490E/X0490E00.htm>. The package is an independent implementation and is not affiliated with or endorsed by the Food and Agriculture Organization of the United Nations. |
| Authors: | Manish Naskar [aut, cre, cph] (ORCID: <https://orcid.org/0000-0003-1919-192X>), Debasish Chakraborty [aut] (ORCID: <https://orcid.org/0000-0002-1799-6188>), Koushik Bag [aut] (ORCID: <https://orcid.org/0009-0008-6433-951X>), Shariti Syiem [aut] (ORCID: <https://orcid.org/0009-0003-7377-6686>), Akmaul Hoque [aut] (ORCID: <https://orcid.org/0009-0002-4475-566X>) |
| Maintainer: | Manish Naskar <[email protected]> |
| License: | GPL (>= 3) |
| Version: | 0.1.0 |
| Built: | 2026-09-24 08:00:54 UTC |
| Source: | https://github.com/cran/cropwatMUL |
A synthetic example generated with rnorm() for demonstrating the required
input structure. The object is a named list containing climate, soil,
and crop data frames.
cropwat_example_datacropwat_example_data
A list with three components:
Monthly maximum and minimum temperature, rainfall, coordinates, altitude, wind speed, and radiation coefficient for three fictional locations.
Soil texture and available water capacity for each location.
Planting date, growth-stage duration, crop coefficients, and maximum rooting depth for potato.
Simulated specifically for cropwatMUL; not observed data.
Estimates daily reference evapotranspiration using the FAO-56 Penman–Monteith equation with vapour pressure and solar radiation inferred from minimum and maximum air temperature.
pm_temp_estimated( tmax, tmin, lat, doy, altitude_m = 0, u2 = 2, krs = 0.16, albedo = 0.23 )pm_temp_estimated( tmax, tmin, lat, doy, altitude_m = 0, u2 = 2, krs = 0.16, albedo = 0.23 )
tmax |
Numeric maximum air temperature in degrees Celsius. |
tmin |
Numeric minimum air temperature in degrees Celsius. |
lat |
Numeric latitude in decimal degrees. |
doy |
Integer day of year, from 1 to 365 or 366. |
altitude_m |
Numeric elevation above mean sea level in metres. |
u2 |
Numeric wind speed at 2 m height in m s-1. |
krs |
Numeric temperature-based radiation adjustment coefficient. |
albedo |
Numeric surface albedo. |
A numeric vector of reference evapotranspiration in mm day-1.
pm_temp_estimated(25, 15, 25.7, 15, altitude_m = 1000)pm_temp_estimated(25, 15, 25.7, 15, altitude_m = 1000)
Reads climate, soil, and crop worksheets from an Excel workbook and
calculates daily, dekadal, monthly, and seasonal crop-water and irrigation
indicators for one crop across multiple locations.
run_cropwat_one_crop_multilocation( input_file, crop_name = "Potato", output_year = NULL, irrigation_efficiency = 0.7, critical_depletion = 0.35, root_initial_m = 0.15, u2 = 2, krs = 0.16, altitude_m = 0, initial_depletion_mm = 0 )run_cropwat_one_crop_multilocation( input_file, crop_name = "Potato", output_year = NULL, irrigation_efficiency = 0.7, critical_depletion = 0.35, root_initial_m = 0.15, u2 = 2, krs = 0.16, altitude_m = 0, initial_depletion_mm = 0 )
input_file |
Path to an Excel workbook containing the required sheets. |
crop_name |
Crop name appearing in the |
output_year |
Optional simulation year. Defaults to the planting year. |
irrigation_efficiency |
Fractional field application efficiency. |
critical_depletion |
Fraction of total available water that triggers irrigation. |
root_initial_m |
Initial effective rooting depth in metres. |
u2 |
Wind speed at 2 m height in m s-1 when not supplied in the workbook. |
krs |
Radiation adjustment coefficient when not supplied in the workbook. |
altitude_m |
Elevation in metres when not supplied in the workbook. |
initial_depletion_mm |
Initial root-zone water depletion in millimetres. |
A named list containing input data, settings, and simulation outputs.
input <- system.file("extdata", "cropwat_example.xlsx", package = "cropwatMUL") if (nzchar(input)) { result <- run_cropwat_one_crop_multilocation(input, crop_name = "Potato") result$summaries }input <- system.file("extdata", "cropwat_example.xlsx", package = "cropwatMUL") if (nzchar(input)) { result <- run_cropwat_one_crop_multilocation(input, crop_name = "Potato") result$summaries }
Applies the USDA Soil Conservation Service monthly effective rainfall relationship used in CROPWAT-style calculations.
usda_scs_effective_rain(P)usda_scs_effective_rain(P)
P |
Numeric monthly rainfall in millimetres. |
Numeric effective rainfall in millimetres.
usda_scs_effective_rain(c(50, 150, 300))usda_scs_effective_rain(c(50, 150, 300))
Checks worksheet names, required columns, monthly completeness, location matching, crop-stage parameters, and the principal numeric constraints required by the simulation.
validate_cropwat_input(input_file, crop_name = NULL)validate_cropwat_input(input_file, crop_name = NULL)
input_file |
Path to the input Excel workbook. |
crop_name |
Optional crop to validate. |
Invisibly returns TRUE; otherwise stops with an informative error.
input <- system.file("extdata", "cropwat_example.xlsx", package = "cropwatMUL") if (nzchar(input)) validate_cropwat_input(input, "Potato")input <- system.file("extdata", "cropwat_example.xlsx", package = "cropwatMUL") if (nzchar(input)) validate_cropwat_input(input, "Potato")
Writes one Excel workbook and location-specific text files from an object
returned by run_cropwat_one_crop_multilocation().
write_cropwat_outputs( results, output_dir, prefix = "CROPWAT_one_crop_multiple_locations" )write_cropwat_outputs( results, output_dir, prefix = "CROPWAT_one_crop_multiple_locations" )
results |
A cropwatMUL result object. |
output_dir |
Character path to the directory in which outputs will be written. This argument must be supplied explicitly. The directory is created recursively when it does not already exist. |
prefix |
File-name prefix. |
Invisibly returns paths to the Excel workbook and text directory.
input <- system.file( "extdata", "cropwat_example.xlsx", package = "cropwatMUL" ) if (nzchar(input)) { result <- run_cropwat_one_crop_multilocation( input_file = input, crop_name = "Potato" ) output_dir <- tempfile("cropwatMUL-example-") dir.create(output_dir) output_files <- write_cropwat_outputs( results = result, output_dir = output_dir, prefix = "potato_example" ) output_files }input <- system.file( "extdata", "cropwat_example.xlsx", package = "cropwatMUL" ) if (nzchar(input)) { result <- run_cropwat_one_crop_multilocation( input_file = input, crop_name = "Potato" ) output_dir <- tempfile("cropwatMUL-example-") dir.create(output_dir) output_files <- write_cropwat_outputs( results = result, output_dir = output_dir, prefix = "potato_example" ) output_files }