Repository navigation
Expand file tree
/
Copy pathgetMetaData.r
More file actions
124 lines (108 loc) · 3.65 KB
/
Copy pathgetMetaData.r
File metadata and controls
124 lines (108 loc) · 3.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
##############################
## Designed for MotusData.r ##
##############################
loadMeta <- function() {
dataDir <- "data/banding/"
fileNames <- c("2016 ABO-FALL BANDED Bandit Aux.CSV",
"2016 ABO-FALL RETRAPS Bandit Aux.CSV",
"2016 SUMMER BANDED Bandit Aux.CSV",
"2016 SUMMER RETRAPS Bandit Aux.CSV",
"ABO FALL 2017 BANDED bandit_FIX.CSV",
"ABO FALL 2017 RETRAPS bandit_FIX.CSV",
"BANDING-SUMMER-2017-BP bandit_FIX.CSV")
# Load the files and lump them into a single tibble
splitRawData <- lapply(paste(dataDir, fileNames, sep = ''), function(x) {
read_csv(x, col_types = cols(DISPOSITION = col_character())) %>%
separate(TIME.CAUGHT, into = c('HOUR','MINUTE','SECOND')) %>%
select(DISPOSITION,
BAND.NUMBER,
SPECIES.NAME,
SPECIES.CODE,
STATUS,
AGE,
SEX,
WING,
FAT,
WEIGHT,
DAY,
MONTH,
YEAR,
HOUR,
MINUTE,
LOCATION)
})
# Read in IPSP data
IPSPData <- read_tsv(paste0(dataDir,"IPSP SPRING 2016 BANDED.txt"),
col_types = cols(DISPOSITION = col_character(),
DAY = col_integer(),
MONTH = col_integer(),
YEAR = col_integer(),
'HOUR TRAPPED' = col_integer(),
'MINUTE TRAPPED' = col_integer()))
names(IPSPData) <- gsub(" ",".",names(IPSPData),fixed=TRUE)
IPSPData <- IPSPData %>%
mutate(
TIME.CAUGHT = hm(paste(HOUR.TRAPPED, MINUTE.TRAPPED, sep = ':'))
) %>%
select(
DISPOSITION,
BAND.NUMBER,
SPECIES.NAME,
SPECIES.CODE,
STATUS,
AGE,
SEX,
WING,
FAT,
WEIGHT,
DAY,
MONTH,
YEAR,
TIME.CAUGHT,
LOCATION
) %>% mutate(All_Marker_info_at_release = '')
# Bind all data together
rawData <- bind_rows(splitRawData)
# Replace spaces in variable names with '.'
names(rawData) <- gsub(" ",".",names(rawData), fixed=TRUE)
# Create a date object
rawData <- mutate(rawData, DATE.BANDED = as.POSIXct(paste(DAY, MONTH, YEAR,HOUR, MINUTE, sep = '-'), format="%d-%m-%Y-%H-%M"))
# Codes to Join AGE and SEX
sexes <- tibble(
SEX = c(0:5),
SEX.ch = c('Unknown','','','','Male','Female')
)
ages <- tibble(
AGE = c(0:6),
AGE.ch = c('Unknown','Adult','Hatch-year','Juvenile','Local','Second-year','After Second-year')
)
# Prepare SWTH data
rawData %>%
left_join(sexes,by = "SEX") %>%
left_join(ages,by = "AGE")
}
checkSex <- function(sex) {
matches <- unique(sex[grep("Male|Female", sex)])
ifelse(length(matches) > 0, ifelse(length(matches) == 1, matches, 'Male?Female'), 'Unknown')
}
checkAge <- function(age) {
matches <- unique(age[grep("Adult|Hatch-year|Juvenile|Local|Second-year|After Second-year|After Third-year", age)])
ifelse(length(matches) > 0, matches, 'Unknown')
}
getBandingMeta <- function(bn, bData) { # bn = band number
# if (nrow(bData[bData$BAND.NUMBER == bn,]) >= 0) {
bData %>%
filter(BAND.NUMBER == bn) %>%
group_by(BAND.NUMBER) %>%
arrange(DATE.BANDED) %>%
summarise(
SPECIES.NAME = SPECIES.NAME[1],
SPECIES.CODE = SPECIES.CODE[1],
AGE.ch = checkAge(AGE.ch),
SEX.ch = checkSex(SEX.ch),
WING = mean(WING),
FAT = paste(FAT, collapse = ','),
WEIGHT = mean(WEIGHT),
TIMES.TRAPPED = n()
)
}