inst/Assessments/LFA27-33Assessment/ContextualIndicators.r

#6.Indicators
	p = bio.lobster::load.environment()
    p$lfas = c("27", "28", "29", "30", "31A", "31B", "32", "33") # specify lfas for data summary
    p$subareas = c("27N","27S", "28", "29", "30", "31A", "31B", "32", "33E", "33W") # specify lfas for data summary
		

		assessment.year = p$current.assessment.year -1 ########### check the year ############### !!!!!!!!!!!


require(bio.lobster)
require(bio.utilities)
require(PBSmapping)
la()

#mid seseason indicators - median and max size; new recruits

#LOADS of DATA handling....sorry :(
	sl = lobster.db('seasonal.landings')
	al = lobster.db('annual.landings')
	sl = rename.df(sl,'SYEAR','YR')
	sl$YR = as.numeric(substr(sl$YR,6,9))
	sl = subset(sl,YR>=1980)
	al = subset(al,YR>=1980)
	al  = reshape(al,idvar='YR',varying=list(2:ncol(al)),direction='long',times=names(al)[2:ncol(al)])
	al$LFA = substr(al$time,4,8)		
	ad = c(27,28,29,30,'31A','31B',32)
	al = subset(al,LFA %in% ad, select=c(YR,LFA27,LFA))
	al = rename.df(al,'LFA27','Landings')

	sl = sl[,c('YR','LFA33')]
	sl$LFA = '33'
	sl = rename.df(sl,'LFA33','Landings')
	
	pp = rbind(al,sl)



#CPUE raw data
		#load(file=file.path(project.datadirectory('bio.lobster'),'outputs','rawcpueIndicators27-33B.rdata')) 
		CPUE.data<-CPUEModelData(p,redo=T)
		cpueData=    CPUEplot(CPUE.data,lfa= p$lfas,yrs=1981:2018,graphic='R')$annual.data
		hq = rename.df(cpueData,'YEAR','YR')
		pp = merge(hq[,c("LFA","YR","CPUE")],pp,all=T) 
		pp$Effort = pp$Landings * 1000 / pp$CPUE




	load(file.path(project.datadirectory('bio.lobster'),'outputs','atSeaIndicatorsNumbersLandedLFA27-33.rdata'))
		aS = out
		aS = rename.df(aS,'YEAR','YR')
		df = c('LFA','YR','N','expl')
		aS = aS[,df]
		names(aS)[3:ncol(aS)] = paste('AtSea',names(aS)[3:ncol(aS)],sep="." )
	
   load(file = file.path(project.datadirectory('bio.lobster'),'outputs','SummaryatSeaIndicatorsDataLFA27-33.rdata')) #at Sea
		   aSS = outS 
		   aSS = rename.df(aSS,'Year','YR')
	aSS = rename.df(aSS,c('YEAR','quants.50%','quants.97.5%'),c('YR','median','max'))		 
	df = c( "LFA",    "YR", "prop.female" , "PropMating" ,"EggProduction" )
	aSS = aSS[,df]
	 load(file = file.path(project.datadirectory('bio.lobster'),'outputs','SubsetWksSummaryatSeaIndicatorsDataLFA27-33.rdata')) #at Sea
			aSSS = outS	
			aSSS = rename.df(aSSS,'Year','YR')
			aSSS = rename.df(aSSS,c('YEAR','quants.50%','quants.97.5%'),c('YR','median','max'))		 
			df = c( "LFA",    "YR", "median", "max" ,"new.rec" ,"prop.berried")
			aSSS = aSSS[,df]
			aSS = merge(as.data.frame(aSS),aSSS,all=T)
	names(aSS)[3:ncol(aSS)] = paste('AtSea',names(aSS)[3:ncol(aSS)],sep="." )
	aS = merge(aSS,aS,by=c('YR','LFA'),all=T)
	
#FSRS Commercial
	load(file.path(project.datadirectory('bio.lobster'),'outputs','fsrsNumbersLanded33.rdata'))
	fS = out
    	fS = rename.df(fS,'YEAR','YR')
		df = c('LFA','YR','N','expl')
		fS = fS[,df]
		names(fS)[3:ncol(fS)] = paste('FSRSComm',names(fS)[3:ncol(fS)],sep="." )
	

    load(file = file.path(project.datadirectory('bio.lobster'),'outputs','SummaryfsrsCommercialSamplesLanded33.rdata'))
    fSS = outS
    fSS = rename.df(fSS,'Year','YR')
	fSS = rename.df(fSS,c('YEAR','quants.50%','quants.97.5%'),c('YR','median','max'))		 
	df = c( "LFA",    "YR", "median", "max" , "prop.female" , "prop.berried" , "new.rec" )
	fSS = fSS[,df]
	names(fSS)[3:ncol(fSS)] = paste('FSRSComm',names(fSS)[3:ncol(fSS)],sep="." )

	fS = merge(fSS,fS,by=c('YR','LFA'),all=T)

#Port Samples
		load(file.path(project.datadirectory('bio.lobster'),'outputs','portNumbersLanded27-33.rdata'))
	
	pS = out
	pS = rename.df(pS,'YEAR','YR')
		df = c('LFA','YR','N','expl')
		pS = pS[,df]
		names(pS)[3:ncol(pS)] = paste('Port',names(pS)[3:ncol(pS)],sep="." )

	   	load(file.path(project.datadirectory('bio.lobster'),'outputs','portSummaryLFA27-33.rdata'))
			pSS = outS
			pSS = rename.df(pSS,'Year','YR')
	    	pSS = rename.df(pSS,c('YEAR','quants.50%','quants.97.5%'),c('YR','median','max'))		 
	df = c( "LFA",    "YR", "prop.female" , 'PropMating','EggProduction')
	pSS = pSS[,df]

	   load(file.path(project.datadirectory('bio.lobster'),'outputs','subsetweeksportSummaryLFA27-33.rdata'))
	 		pSSS = outS	
			pSSS = rename.df(pSSS,'Year','YR')
			pSSS = rename.df(pSSS,c('YEAR','quants.50%','quants.97.5%'),c('YR','median','max'))		 
			df = c( "LFA",    "YR", "median", "max" ,"new.rec" )
			pSSS = pSSS[,df]

			pSS = merge(pSS,pSSS,all=T)


	names(pSS)[3:ncol(pSS)] = paste('Port',names(pSS)[3:ncol(pSS)],sep="." )

	pS = merge(pSS,pS,by=c('YR','LFA'),all=T)

#Fsrs recruitment
		load(file = file.path(project.datadirectory('bio.lobster'),'outputs','SummaryfsrsrecruitmentSamplesLanded27-33.rdata'))

			fR = outS
    fR = rename.df(fR,'Year','YR')
	fR = rename.df(fR,c('YEAR','quants.50%','quants.97.5%'),c('YR','median','max'))		 
	df = c( "LFA",    "YR", "median", "max" , "prop.female" , "prop.berried" )
	fR = fR[,df]
	names(fR)[3:ncol(fR)] = paste('FSRSRec',names(fR)[3:ncol(fR)],sep="." )

#Merge data sets

#	mls = read.csv(file=file.path(project.datadirectory('bio.lobster'),'data','inputs',paste0('MLS.Changes.all.LFA',assessment.year,'.csv')))
#	mls = rename.df(mls,'Year','YR')
#	mls = mls[,c('YR','LFA','MLS_MM')]
#	mls = subset(mls, LFA %in%  c(27,28,29,30,'31A','31B',32,33))

	load(file=file.path(project.datadirectory('bio.lobster'),'outputs','EstimatedRecruitBiomassLFA27-33.rdata')) 
	
	aa = aa[,c('YEAR','LFA','RecB')]
	aa = rename.df(aa,c("YEAR",'RecB'),c('YR','RecruitmentBiomass'))
 

load(file=file.path(project.datadirectory('bio.lobster'),'outputs','ccir','summary','compiledExploitationCCIR33.rdata'))

oi=oo
oi$LFA <- "33"

load(file=file.path(project.datadirectory('bio.lobster'),'outputs','ccir','summary','compiledExploitationCCIR2732.rdata'))

oi = rbind(oo,oi)

oi = rename.df(oi,'Yr','YR')

oi = oi[grep('LFA',oi$LFA,invert=T),]
oi = subset(oi,ERfl>0,select=c(YR,LFA,ERfm))
oi = rename.df(oi,'ERfm','CCIR.Exploitation')	
	allS = Reduce(function(...) merge(...,all=T),list(aS,fS,pS,fR,pp,aa,oi))



#FSRS temperature 

load(file.path(project.datadirectory('bio.lobster'),'Temperature Data','tempIndicators.rdata'))
tempData = rename.df(tempData,c('area','year','t'),c('LFA','YR','Temperature'))
tempData$t.sd = NULL
allS = merge(allS,tempData,all=T)



#FSRS models

lF=list()
rF=list()
sF=list()

	for(i in c("27", "29", "30", "31A", "31B", "32","33")){

		load(file=file.path(project.datadirectory('bio.lobster'),'outputs',paste0('fsrsModelIndicators',i,'.rdata'))) 


		Fl = rename.df(legals,c('YEAR','Area','mu'),c('YR','LFA','FSRS.Legal.CPUE'))
		lF[[i]] = Fl[,c('YR','LFA','FSRS.Legal.CPUE')]

		Fr = rename.df(recruit,c('YEAR','Area','mu'),c('YR','LFA','FSRS.Recruit.CPUE'))
		rF[[i]] = Fr[,c('YR','LFA','FSRS.Recruit.CPUE')]

		Fs = rename.df(shorts,c('YEAR','Area','mu'),c('YR','LFA','FSRS.Shorts.CPUE'))
		sF[[i]] = Fs[,c('YR','LFA','FSRS.Shorts.CPUE')]
	}

	lF = do.call("rbind",lF)
	rF = do.call("rbind",rF)
	sF = do.call("rbind",sF)

allS = Reduce(function(...) merge(...,all=T),list(allS,lF,rF,sF))
#

allS = subset(allS,YR<assessment.year+1)


	 old = c('YR','LFA','AtSea.prop.female','AtSea.PropMating','AtSea.EggProduction','AtSea.median','AtSea.max','AtSea.new.rec','AtSea.prop.berried','AtSea.N','AtSea.expl','FSRSComm.median','FSRSComm.max','FSRSComm.prop.female','FSRSComm.prop.berried','FSRSComm.new.rec','FSRSComm.N','FSRSComm.expl','Port.prop.female','Port.PropMating','Port.EggProduction','Port.median','Port.max','Port.new.rec','Port.N','Port.expl','FSRSRec.median','FSRSRec.max','FSRSRec.prop.female','FSRSRec.prop.berried','Landings','RecruitmentBiomass','CCIR.Exploitation','Temperature')
	 new = c('YR','LFA','At.Sea.SexRatio','At.Sea.Prop.Mature','At.Sea.Reprod.Pot','At.Sea.Median.CL','At.Sea.Max.CL','At.Sea.Prop.NewRec','At.Sea.Prop.Berried','At.Sea.Landed.Abund.','At.Sea.CA.Exploit','FSRS.Comm.Median.CL','FSRS.Comm.Max.CL','FSRS.Comm.SexRatio','FSRS.Comm.Prop.Berried','FSRS.Comm.Prop.NewRec','FSRS.Comm.Landed.Abund','FSRS.Comm.CA.Exploit','Port.SexRatio','Port.Prop.Mature','Port.Reprod.Pot','Port.Median.CL','Port.Max.CL','Port.Prop.NewRec','Port.Landed.Abund','Port.CA.Exploit','FSRS.Rec.Median.CL','FSRS.Rec.Max.CL','FSRS.Rec.SexRatio','FSRS.Rec.Prop.Berried','Landings.Wt','BiomassRecruits','ExploitationCCIR','Temperature')

allS = rename.df(allS,old,new)

	save(allS,	file=file.path(project.datadirectory('bio.lobster'),'outputs','CompiledIndicatorsLFA2732assessment.rdata')) 
	
load(file=file.path(project.datadirectory('bio.lobster'),'outputs','CompiledIndicatorsLFA2732assessment.rdata')) 


	#id the variables for log trans
	re = c()
	re=c(re,grep('Reprod',names(allS)))
	#re=c(re,grep('Abund',names(allS)))
	re=c(re,grep('Land',names(allS)))
	re=c(re,grep('Bio',names(allS)))
	
	allS[,re] <- log(allS[,re]+1)


	allS = allS[,-grep('CA',names(allS))] # remove cohort analysis

#loop through LFAs
lfa = unique(allS$LFA)
#lfa = 33

colorfun = colorRampPalette ( RColorBrewer::brewer.pal(11,"RdYlBu"))


for(i in lfa[1:7]) {
	dd = subset(allS,LFA==i)
	t0 = 1980
	t1 = assessment.year
	rownames(dd) = t0:t1
	dd$LFA = dd$YR = NULL
	iu = apply(dd,2,function(x) sum(is.na(x)*1)/length(x)<1-5/35)
	dd = dd[,names(iu)[iu]] # removing all indicators with less than 5 values
	iu=c()
	iu = c(iu,which(names(dd)=='FSRS.Rec.Max.CL'))
	iu = c(iu,which(names(dd)=='FSRS.Rec.Median.CL'))
	iu = c(iu,grep('Sex',names(dd)))
	if(i==33) {
	iu = c(iu,which(names(dd)=='FSRS.Comm.MaxCL'))
	iu = c(iu,which(names(dd)=='FSRS.Comm.MedianCL'))
	}
	dd = dd[,-iu]
	fname =  file.path(project.datadirectory("bio.lobster"),"figures","Assessment","Indicators")
	dir.create(fname)
	Y = pcaAnalyseData(dd, t0, t1,fname=fname,OFN = paste('OrdinationLFA',i,sep=""), colscheme=colorfun,addscores=F,wd=c(15,10),ht=c(6,8),labs=F,margins=c(1, 1, 0.3, 1))
	vtable = read.csv(file.path(fname,"fname.csv"))
	vartable = merge(Y$var.table,vtable,all.x=T)
	vartable = vartable[order(vartable$Rank),c("Rank","Variable","PCA1","PCA2","Description")]

	write.csv(vartable,file.path(fname,	paste0("vtable",i,".csv")),row.names=F)

}

  
LobsterScience/bio.lobster documentation built on Feb. 14, 2025, 3:28 p.m.