The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Package {MoonShineR}


Title: Predict Moonlight, Sunlight, and/or Twilight Ground Illuminance
Version: 1.1.0
Description: Predicts ground-level illuminance from moonlight, sunlight, and twilight for specified locations and time periods. The package is intended for field studies in ecology and behavior where natural light levels are used as predictor variables. See Poon et al. (2024) <doi:10.1111/2041-210X.14299>. Calculations use astronomical quantities from 'suncalc' and published illuminance models, including Austin et al. (1976) <doi:10.2307/2402251> and Seidelmann (1992) <ISBN:0935702687>.
License: GPL-3
Encoding: UTF-8
RoxygenNote: 7.3.1
Depends: R (≥ 3.5.0)
Imports: suncalc, magrittr, dplyr, lubridate, REdaS, ggplot2, progress
NeedsCompilation: no
Packaged: 2026-06-09 23:08:25 UTC; lokpoon
Author: Lok Poon ORCID iD [aut, cre]
Maintainer: Lok Poon <poonchiulok@gmail.com>
Repository: CRAN
Date/Publication: 2026-06-17 13:40:14 UTC

MoonShineR Package

Description

Predict and plot light levels (ground illuminance) from moonlight, sunlight, and twilight.

Author(s)

Maintainer: Lok Poon poonchiulok@gmail.com (ORCID)


Create a plot from the illuminance prediction dataframe

Description

Usage

plot_lux(
  df = NULL,
  illuminance_type_plot = "total_illuminance_all",
  plot_y_max = 0.3,
  plot_daytime_gray_mask = TRUE,
  plot_eclipse_red_mask = TRUE,
  plot_twilight = "astro",
  vertical_time_label = TRUE,
  time_label_interval_hr = 24,
  time_label_shift_hr = 0
)

Arguments

df

data.frame. Data frame created by predict_lux().

illuminance_type_plot

character. Choose one type of illuminance to plot. See options in the next section. Default is "moon_final_lux_nighttime".

plot_y_max

numeric or "AUTO". Upper limit of the y-axis. Use "AUTO" to let ggplot choose the scale automatically. Default is 0.3.

plot_daytime_gray_mask

logical. TRUE to mask daytime plot line in gray. Affects both the plot in the plot window and the exported .pdf. FALSE to disable (plot line always black). Default is TRUE.

plot_eclipse_red_mask

logical. TRUE to add a red shade during times of lunar eclipse as a warning that those illuminance prediction might be overestimating. FALSE to disable (plot line always black). Default is TRUE.

plot_twilight

character. Set the twilight period to plot as a gray area. "astro" is astronomical twilight (longest). "nautic" is nautical twilight (intermediate). "civil" is civil twilight (shortest). "none" to disable plotting of twilight period. Default is "astro".

vertical_time_label

logical. Rotate datetime label to be vertical.

time_label_interval_hr

numeric. Set the datetime label in number of hours.

time_label_shift_hr

numeric. Shift the x-axis start time by certain number of hours for a more tidy datetime label. Use negative values to shift the start time to a time before the first data point (i.e., add a blank space to the left), as to avoid cutting out data.

Value

A ggplot object showing predicted ground illuminance through time. The type of illuminance plotted, corresponding to a specific combination of moonlight, sunlight, and twilight, depends on the illuminance_type_plot argument in the plot_lux() function and corresponds to one of the illuminance columns in the data frame produced by predict_lux().

illuminance_type_plot options:

Notes:

Examples

# Plot a predict_lux generated dataframe named moonlight_output

# First create a set of data with predict_lux()
moonlight_output <- predict_lux(latitude = -4.21528, longitude = -69.94056, site_elev = 0,
                    time_zone = "EST", date_start = "2023-02-27", time_start = "18:00:00",
                    duration_day = 10.5, time_interval_minutes = 30, darksky_value = 0.0008,
                    output_directory = NULL, export_table = FALSE)

# Proceed to plotting
plot_lux(df = moonlight_output, illuminance_type_plot = "total_illuminance_all",
         plot_y_max = 0.3,  plot_daytime_gray_mask = TRUE, plot_eclipse_red_mask = TRUE,
         plot_twilight = "astro", vertical_time_label = TRUE, time_label_interval_hr = 24,
         time_label_shift_hr = -1)

Predict moonlight, sunlight, and twilight ground illuminance

Description

Usage

predict_lux(
  latitude = NULL,
  longitude = NULL,
  site_elev = 0,
  time_zone = NULL,
  date_start = NULL,
  time_start = "00:00:00",
  duration_day = NULL,
  time_interval_minutes = 5,
  darksky_value = 8e-04,
  output_directory = NULL,
  export_table = FALSE,
  show_progress = TRUE
)

Arguments

latitude

numeric. Latitude in decimal degrees (e.g., -4.21528).

longitude

numeric. Longitude in decimal degrees (e.g., -69.94056).

site_elev

numeric. Site elevation in meters (e.g., 0 is sea level). Default is 0. Elevation correction only applies to moonlight but not sunlight and twilight. Site elevation of a coordinate location can be obtained from https://www.dcode.fr/earth-elevation.

time_zone

character. Time zone for the location set (e.g., "EST"). Remember to change time_zone to correspond it to the location set. For a list of time zone names, enter OlsonNames(tzdir = NULL) in R console. Use a time zone without DST to avoid confusion (e.g., use "EST" instead of "America/New_York").

date_start

character. Starting date of the simulation ("YYYY-MM-DD").

time_start

character. Starting time of the simulation ("hh:mm:ss"). Default is "00:00:00".

duration_day

numeric. Duration of the simulation in days.

time_interval_minutes

numeric.The temporal resolution of the simulation in minutes. E.g., 5 calculates the illuminance every 5 minutes. Using small time interval requires longer computation time. Default is 5.

darksky_value

numeric. A baseline illuminance (in lux) added to the model to represent other constant nocturnal light sources (e.g., starlight and airglow). Default is 0.0008. Change it to zero if a completely dark sky is preferred.

output_directory

character. Directory to save the output table (.csv) and plot (.pdf). Ignore output_directory if the export options are turned OFF (i.e., export_table = FALSE).

export_table

logical. TRUE to export output .csv table to the output_directory. FALSE to disable. Default is FALSE.

show_progress

logical. TRUE to show a progress bar. FALSE to disable. Default is TRUE.

Value

A data frame containing predicted ground illuminance values for each time step, based on different combinations of moonlight, sunlight, and twilight. Other columns include various astronomical values.

Columns found in the output data.frame/.csv table:

Attribution

References

Examples

# Predict the nighttime moonlight illuminance in Leticia, Colombia,
# for 14 days starting on 2023-02-27 at 6pm.

moonlight_output <- predict_lux(latitude = -4.21528, longitude = -69.94056, site_elev = 0,
                    time_zone = "EST", date_start = "2023-02-27", time_start = "18:00:00",
                    duration_day = 2, time_interval_minutes = 15, darksky_value = 0.0008,
                    output_directory = NULL, export_table = FALSE, show_progress = TRUE)

moonlight_output #return completed data frame

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.