load_vmdb_rates() and load_vmdb_magnitudes() now correctly request
the per-magnitude-class frequencies from the imo-vmdb REST API.
Previously with_magnitudes = TRUE sent include=magnitudes, which on
/magnitudes returned HTTP 400 and on /rates produced a response
shape that .parse_magnitudes() could not handle. The functions now
send include=magnitude_details, restoring the documented behaviour.period_start and period_end columns of the observations
data.frame returned by load_vmdb_rates() and load_vmdb_magnitudes()
are now POSIXct (UTC), matching the behaviour of vismeteor 2.x.
They were inadvertently returned as character after the switch to
httr2 in 3.0.0.period argument of load_vmdb_rates() and
load_vmdb_magnitudes() is now serialised to the strict ISO 8601
form (YYYY-MM-DDTHH:MM:SS, UTC) that imo-vmdb 2.0 expects. Date,
POSIXct, and character (full datetime or date-only) inputs are all
accepted; date-only inputs are expanded to midnight (lower) and
23:59:59 (upper) of the given day.include=magnitude_details parameter and the strict ISO 8601
wire format (T separator, no timezone marker) for period_start /
period_end; both are required by this release.select_knots() performs forward/backward stepwise selection of spline
knots from a candidate set, scoring each fit with a user-supplied function
(e.g. AIC/BIC). Backward selection supports a "bulk removal" mode, and
scoring can run in parallel via the parallel package. See
?select_knots and vignette("select_knots").All public identifiers were migrated from dotted / camelCase to snake_case to
match the tidyverse / r-lib convention and to remove visual confusion with S3
dispatch (print.foo). This affects exported functions, function parameters,
and data.frame columns returned by load_vmdb_*() and the example datasets
PER_2015_rates / PER_2015_magn (which were regenerated).
The d/p/q/r distribution prefixes (dvmgeom, pvmideal, ...) are unchanged,
and lower.tail is preserved to match base R conventions.
Renamed exported functions:
| 2.1.0 | 3.0.0 |
|----------------------|--------------------------|
| freq.quantile | freq_quantile |
| vmgeomVstFromMagn | vmgeom_vst_from_magn |
| vmgeomVstToR | vmgeom_vst_to_r |
| vmidealVstFromMagn | vmideal_vst_from_magn |
| vmidealVstToPsi | vmideal_vst_to_psi |
Renamed parameters: lim.magn, magn.id, rate.id, session.id,
perception.fun, sun.alt.max, moon.alt.max, deriv.degree, withSessions,
withMagnitudes → their snake_case forms.
The imo-vmdb API already uses snake_case, so column remapping is reduced to a
few semantic renames: id → rate_id / magn_id / session_id (so foreign
keys in the same data frame stay unambiguous) and mean → magn_mean (to
avoid shadowing base R mean()). Three columns that previously carried
R-specific names now pass through unchanged from the API:
| 2.1.0 | 3.0.0 |
|-----------------|-------------|
| shower.code | shower |
| radiant.alt | rad_alt |
| radiant.az | rad_az |
perception_fun now defaults to vmperception instead of NULL with an
internal fallback. Callers that explicitly passed perception.fun = NULL
must drop the argument or supply a function.vmperception(m) is now vmperception(dm) — the parameter is the
difference between the limiting magnitude and the meteor magnitude, and
the new name reflects that. Positional calls remain compatible.A sed sweep of your scripts is usually sufficient:
sed -i '' -E '
s/\bfreq\.quantile\b/freq_quantile/g;
s/\bvmgeomVstFromMagn\b/vmgeom_vst_from_magn/g;
s/\bvmgeomVstToR\b/vmgeom_vst_to_r/g;
s/\bvmidealVstFromMagn\b/vmideal_vst_from_magn/g;
s/\bvmidealVstToPsi\b/vmideal_vst_to_psi/g;
s/\blim\.magn\b/lim_magn/g;
s/\bmagn\.id\b/magn_id/g;
s/\brate\.id\b/rate_id/g;
s/\bsession\.id\b/session_id/g;
s/\bperception\.fun\b/perception_fun/g;
s/\bderiv\.degree\b/deriv_degree/g;
s/\bwithSessions\b/with_sessions/g;
s/\bwithMagnitudes\b/with_magnitudes/g;
s/\bshower\.code\b/shower/g;
s/\bperiod\.start\b/period_start/g;
s/\bperiod\.end\b/period_end/g;
s/\bsl\.start\b/sl_start/g;
s/\bsl\.end\b/sl_end/g;
s/\bt\.eff\b/t_eff/g;
s/\btime\.sidereal\b/sidereal_time/g;
s/\bsun\.alt\b/sun_alt/g;
s/\bsun\.az\b/sun_az/g;
s/\bmoon\.alt\b/moon_alt/g;
s/\bmoon\.az\b/moon_az/g;
s/\bmoon\.illum\b/moon_illum/g;
s/\bfield\.alt\b/field_alt/g;
s/\bfield\.az\b/field_az/g;
s/\bradiant\.alt\b/rad_alt/g;
s/\bradiant\.az\b/rad_az/g;
s/\bmagn\.mean\b/magn_mean/g;
s/\blocation\.name\b/location_name/g;
s/\bobserver\.id\b/observer_id/g;
s/\bobserver\.name\b/observer_name/g;
' your-script.R
load_vmdb_rates() and load_vmdb_magnitudes() now connect to an
imo-vmdb REST API instead of a
direct database connection.period, sl, and lim_magn (previously a
matrix with multiple rows that were OR-joined) are no longer supported.
Each filter is collapsed to a single bounding min/max. Use multiple calls
combined with rbind() if disjoint ranges are needed.|> and \().vmgeom and vmideal models, including improved mathematical notation and explanations.vmgeom_vst_from_magn() and vmideal_vst_from_magn() by tightening the interpolation steps used during the variance-stabilising transforms.vmtable() rounding routine to reduce allocations.inst/derivation/ to improve reproducibility.load_vmdb() regression tests.This release introduces variance-stabilizing transformations for the ideal distribution of visual meteor magnitudes (vmideal_vst_from_magn()) as well as for visual meteor magnitudes under a geometric distribution (vmgeom_vst_from_magn()).
The function vmperception() now better matches the perception probabilities of Koschack & Rendtel (1990b).
The argument deriv_degree has been removed, as it was only intended for internal testing and had no practical relevance for regular use.
Laplace-transformed perception probabilities have been replaced by variance-stabilizing transformations, which also means that the function vmperception.l() has been removed.
Note: This release includes breaking changes and is not fully backward compatible due to the removal of parameters and functions.