Chapter 5 Data storage
All kaltoa objects can be stored as serialized R objects with saveRDS() and save().
However, to pass data to non-R users kaltoa provides functions for reading and writing objects to csv files.
Below we’ll show some examples of this.
## Loading required package: archive
# --- Write/read Detections object
# Write to csv
det = exdata_clocksync[[1]]
fname <- tempfile(fileext = ".csv.gz")
fh <- gzfile(fname, open = "w")
write.csv(x = det, file = fh, row.names = F)
close(fh)
# Import from csv
fh <- gzfile(fname, open = "r")
df_det <- read.csv(file = fh)
det_import <- as.Detections(
df_det, name = "1", coord = c(481472, 6243509),
depth = NaN, emit_id = "62041")
close(fh)
# --- Write DetectionsList as tar archived csv files
# Create temp directory
tmp_dir <- tempfile()
dir.create(tmp_dir)
# Write array attributes to csv
write.csv(
file = file.path(tmp_dir, "attributes.csv"),
x = attribute_table(exdata_positioning), row.names = F)
# Write detections tables to csv files
for(det in exdata_positioning){
fname <- sprintf("Detections-%s.csv", attr(det, "name"))
write.csv(
file = file.path(tmp_dir, fname),
x = det, row.names = F)
}
# Archive directory
f_archv <- tempfile(fileext = ".tar.gz")
archive_write_dir(archive = f_archv, dir = tmp_dir, full.names = F)
# Delete temp folder
unlink(tmp_dir, recursive = T)
# --- Write/read TOAMatrix to csv
toa <- get_toa(exdata_positioning, tag_id = "HR-53883", group_thresh = 0.5)
# Export as csv file
fname <- tempfile()
fh <- gzfile(fname, open = "w")
write.csv(x = toa, file = fh, row.names = F)
close(fh)
# Import from csv
fh <- gzfile(fname, open = "r")
df_toa <- read.csv(file = fh, check.names = F)
det_import <- as.TOAMatrix(
df_toa, tag_id = "HR-53883", receiver_positions = positions(toa),
transmission_speed = 1420)
close(fh)