Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
######################################################################
# Code from Francomano et al. (IBIS 2023) #
######################################################################
# Input List Generation Script for Spectrogram and Index Calculation #
######################################################################
# Created by: Dante Francomano (dfrancomano@alumni.purdue.edu)
# Date: 20200131
######################################################################
######################################################################
# Load package
library(openxlsx)
# Create empty list
inputLists<-sapply(1:7,function(x) list(as.data.frame(matrix(NA,nrow=51552,ncol=8))))
# List sites
siteList<-c("019","Baliza","P53","Rata_Muerta","Zona_Erosionada","Zona_Nueva","Zona_Turistica")
# Determine potential subfolders
subpathOptions<-list()
for(i in 1:7) subpathOptions[[i]]<-list.dirs(paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],sep=""),full.names=TRUE,recursive=FALSE)
subpathBits<-sapply(sapply(subpathOptions,function(x) unlist(strsplit(x,"/"))),function(x) strsplit(x[c(7,14,21,28,35)],"_"))
subpathStartDates<-apply(subpathBits,2,function(x) sapply(x,function(y) as.numeric(y[2])))
subpathStartTimes<-apply(subpathBits,2,function(x) sapply(x,function(y) as.numeric(y[3])))
# Assign sites, sensors, dates, times, hypothetical file paths, channels, and sensitivities
for(i in 1:7)
{
colnames(inputLists[[i]])<-c("Site","Sensor","Date","Time","Hypothetical_Path_Stem","Hypothetical_Path","Channel","Sensitivity")
inputLists[[i]]$Site<-siteList[i]
overallPossibleDateTimes<-read.csv("E:/Dante/Penguins/Data_Coverage_Results/Isla_Martillo_Overall.csv",colClasses=rep("factor",3))
inputLists[[i]]$Date<-overallPossibleDateTimes[,1]
inputLists[[i]]$Time<-overallPossibleDateTimes[,2]
sensorList<-c("S4A03851","S4A03852","S4A00436","S4A00449","S4A03859","S4A00431","S4A03868")
inputLists[[i]]$Sensor<-sensorList[i]
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))<subpathStartDates[2,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[1,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))==subpathStartDates[2,i]&as.numeric(as.character(inputLists[[i]]$Time))<subpathStartTimes[2,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[1,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))==subpathStartDates[2,i]&as.numeric(as.character(inputLists[[i]]$Time))>=subpathStartTimes[2,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[2,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))>subpathStartDates[2,i]&as.numeric(as.character(inputLists[[i]]$Date))<subpathStartDates[3,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[2,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))==subpathStartDates[3,i]&as.numeric(as.character(inputLists[[i]]$Time))<subpathStartTimes[3,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[2,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))==subpathStartDates[3,i]&as.numeric(as.character(inputLists[[i]]$Time))>=subpathStartTimes[3,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[3,i]),collapse="_"),sep="")
if(i<5) inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))>subpathStartDates[3,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[3,i]),collapse="_"),sep="")
if(i>=5)
{
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))>subpathStartDates[3,i]&as.numeric(as.character(inputLists[[i]]$Date))<subpathStartDates[4,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[3,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))==subpathStartDates[4,i]&as.numeric(as.character(inputLists[[i]]$Time))<subpathStartTimes[4,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[3,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))==subpathStartDates[4,i]&as.numeric(as.character(inputLists[[i]]$Time))>=subpathStartTimes[4,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[4,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))>subpathStartDates[4,i]&as.numeric(as.character(inputLists[[i]]$Date))<subpathStartDates[5,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[4,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))==subpathStartDates[5,i]&as.numeric(as.character(inputLists[[i]]$Time))<subpathStartTimes[5,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[4,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))==subpathStartDates[5,i]&as.numeric(as.character(inputLists[[i]]$Time))>=subpathStartTimes[5,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[5,i]),collapse="_"),sep="")
inputLists[[i]]$Hypothetical_Path_Stem[which(as.numeric(as.character(inputLists[[i]]$Date))>subpathStartDates[5,i])]<-paste("J:/Dante/Pinguinos/Datos_Acusticos/Isla_Martillo/",siteList[i],"/",paste(unlist(subpathBits[5,i]),collapse="_"),sep="")
}
inputLists[[i]]$Hypothetical_Path<-apply(inputLists[[i]],1,function(x) paste(x[5],"/",paste(x[2:4],collapse="_"),".wav",sep=""))
calibrationMeasurments<-read.xlsx("E:/Dante/Penguins/Calibration_Measurements.xlsx")
relevantRows<-calibrationMeasurments[which(calibrationMeasurments$Martillo.Site==siteList[i]),]
desiredRow<-which.min(abs(relevantRows$"Post-Martillo.Difference"))
inputLists[[i]]$Channel<-ifelse(desiredRow==1,"left","right")
inputLists[[i]]$Sensitivity<-rowMeans(relevantRows[desiredRow,c(3,7,10)],na.rm=TRUE)
# Write results
write.csv(inputLists[[i]],paste("E:/Dante/Penguins/Input_Lists/IM_",siteList[i],".csv",sep=""))
}