Returns the default metadata tree. Fields are grouped into categories
(#118) — recording, time, space, variables, structure — with
spec_version at the top level. Access stays flat: a field is read
with get_metadata(data, "sampling_rate") and written with
set_metadata(data, sampling_rate = 30) regardless of its category,
and a category name returns the whole category.
The categories:
recording— provenance:source,source_version,source_format,source_sampling_rate,filename.source_sampling_rateis the rate the device recorded at, in Hz, and no processing changes it; seeset_metadata()for how it is filled.time—unit_time,sampling_rate(declared: the rate of the data as it is now, which resampling changes),sampling_interval(derived from the index; read it withget_sampling_interval()),start_datetime.space—coordinate_system,reference_frame,handedness,axis_directions,axis_extents,unit_space,unit_angle, andeuler_sequence/euler_intrinsic: the Euler convention the data's source uses, for showing and entering a quaternion orientation. The one category a class can lack: ananievent()has no spatial component, so its metadata simply has nospace(#73).variables— which columns play which role, as a list of roles each holding named slots:what$keys(identity),when$index+when$keys(temporal; an anievent haswhen$intervalinstead of an index),where$position(the axis-role mapping; names are roles, values are columns),event$state+event$point. The frame groups byc(what$keys, when$keys)and nothing else. These slots are reached throughget_variables(),get_index()andget_axes(), never by flat name —keysappears under two roles.structure— namedanistructure()s, each relating the levels of one variable; seeset_structure().spec_version— named list of semantic version strings, one per class, versioning the full data contract independently of the package version.
Usage
list_default_metadata(class = c("anipoint", "anievent"))