Author: Simon Bonner
Date: 2018-04-05

# Linking Wildbook and marked via RWildbook

#### Simon Bonner

#### 2018-04-05

Here we show how data retrieved from a Wildbook database can be formatted and analysed using the marked package by Jeff Laake (also the creator of the RMark package). In particular, we fit a simple Cormack-Jolly-Seber model to data retrieved from whaleshark.org.

First we load the RWildbook and marked package:

    ## Load other packages
    library(RWildbook)

    ## Loading required package: jsonlite

    ## Loading required package: data.table

    library(marked)

    ## Loading required package: lme4

    ## Loading required package: Matrix

    ## Loading required package: parallel

    ## This is marked 1.2.1

Next we use the searchWB() function from RWildbook to retrieve data for the first 99 whale sharks:

    ## Extract data for individual A-001 through A-099
    vignette_2_data <- searchWB(username="username",
                                password="password",
                                baseURL ="whaleshark.org",
                                object="Encounter",
                                individualID=paste0("A-0",rep(0:9,rep(10,10)),rep(0:9,10))[-1])

This results in the following data frame (not the that the time of encounter has been modified to maintain data privacy):

    data("vignette_2_data",package="RWildbook")
    head(vignette_2_data)[,c("individualID","location","year","month","day")]

    ##   individualID                                        location year month
    ## 1        A-098                Ningaloo Marine Park (Coral Bay) 2003    11
    ## 2        A-052 Exmouth Gulf, Back of Reef in Bundegi Sanctuary 2005    11
    ## 3        A-013                                  North Ningaloo 2014    11
    ## 4        A-003                      north ningaloo marine park 2011     5
    ## 5        A-079                                  North Ningaloo 2013     6
    ## 6        A-063                  coral bay ningaloo marine park 2011     7
    ##   day
    ## 1  10
    ## 2  13
    ## 3  16
    ## 4  13
    ## 5   6
    ## 6   7

Now we can create capture histories by defining the start and end times of the capture occasions. For illustration, we assume that the capture occasions cover January, February, and March of each year from 1998 through 2016.

     ## Define start and end dates of capture occasions
     start.dates1 <- paste0(1998:2016,"-01-01") #Define the start.date value
     end.dates1 <- paste0(1998:2016,"-04-01") #Define the end.date value

     ## Format data for use in marked
     markedData1 <- markedData(data = vignette_2_data,
                                  varname_of_capturetime = "dateInMilliseconds",
                                  varlist = c("individualID"),
                                  start.dates = start.dates1,
                                  end.dates = NULL,
                                  date_format = "%Y-%m-%d",
                                  origin = "1970-01-01")

    ## Note: Removing 25 individuals with no observed captures.

We can now fit the Cormack-Jolly-Seber model using the functions in mark to first format the data:

     ## Fit simple CJS model in marked
     markedData1.proc=process.data(markedData1,model="cjs",begin.time=1)

    ## 74 capture histories collapsed into 74

     markedData1.ddl=make.design.data(markedData1.proc)
     markedData1.cjs=crm(markedData1.proc,markedData1.ddl,model.parameters=list(Phi=list(formula=~time),p=list(formula=~time)))

    ## Fitting model

    ## Computing initial parameter estimates

    ## Starting optimization for 36 parameters...

    ##
     Number of evaluations:  100  -2lnl: 661.4810565
     Number of evaluations:  200  -2lnl: 657.6593186
     Number of evaluations:  300  -2lnl:  654.738069
     Number of evaluations:  400  -2lnl: 654.2391281
     Number of evaluations:  500  -2lnl:  653.862695
     Number of evaluations:  600  -2lnl: 653.4780271
     Number of evaluations:  700  -2lnl: 653.3505049
     Number of evaluations:  800  -2lnl:  653.126154
     Number of evaluations:  900  -2lnl:  652.916061
     Number of evaluations:  1000  -2lnl:   652.85315
     Number of evaluations:  1100  -2lnl: 652.7996062
     Number of evaluations:  1200  -2lnl: 652.7025896
     Number of evaluations:  1300  -2lnl:  652.668327
     Number of evaluations:  1400  -2lnl: 652.5942031
     Number of evaluations:  1500  -2lnl: 652.5536496
     Number of evaluations:  1600  -2lnl: 652.5443796
     Number of evaluations:  1700  -2lnl: 652.5235439
     Number of evaluations:  1800  -2lnl: 652.5164447
     Number of evaluations:  1900  -2lnl: 652.5126744
     Number of evaluations:  2000  -2lnl: 652.5075915
     Number of evaluations:  2100  -2lnl: 652.5068583
     Number of evaluations:  2200  -2lnl: 652.5059795
     Number of evaluations:  2300  -2lnl:  652.502895
     Number of evaluations:  2400  -2lnl: 652.5016548
     Number of evaluations:  2500  -2lnl: 652.4991583
     Number of evaluations:  2600  -2lnl:  652.498644
     Number of evaluations:  2700  -2lnl: 652.4983563
     Number of evaluations:  2800  -2lnl: 652.4975948
     Number of evaluations:  2900  -2lnl: 652.4968093
     Number of evaluations:  3000  -2lnl: 652.4957483
     Number of evaluations:  3100  -2lnl:   652.49337
     Number of evaluations:  3200  -2lnl: 652.4913842
     Number of evaluations:  3300  -2lnl: 652.4884967
     Number of evaluations:  3400  -2lnl: 652.4840881
     Number of evaluations:  3500  -2lnl: 652.4834014
     Number of evaluations:  3600  -2lnl: 652.4825869
     Number of evaluations:  3700  -2lnl: 652.4822268
     Number of evaluations:  3800  -2lnl: 652.4820066
     Number of evaluations:  3900  -2lnl: 652.4819051
     Number of evaluations:  4000  -2lnl: 652.4818957
     Number of evaluations:  4100  -2lnl: 652.4818741
     Number of evaluations:  4200  -2lnl: 652.4818424
     Number of evaluations:  4300  -2lnl: 652.5423162
     Number of evaluations:  4400  -2lnl:  652.483646
     Number of evaluations:  4500  -2lnl: 652.4878773
     Number of evaluations:  4600  -2lnl: 652.5380763
     Number of evaluations:  4700  -2lnl: 652.4848939
     Number of evaluations:  4800  -2lnl: 652.4858153
     Number of evaluations:  4900  -2lnl: 652.4839405
     Number of evaluations:  5000  -2lnl: 652.4822173
     Number of evaluations:  5100  -2lnl: 652.5428697
     Number of evaluations:  5200  -2lnl: 652.4858546
     Number of evaluations:  5300  -2lnl: 652.5422815
     Number of evaluations:  5400  -2lnl: 652.4821965
     Number of evaluations:  5500  -2lnl: 652.4819787
     Number of evaluations:  5600  -2lnl:  652.482424
     Number of evaluations:  5700  -2lnl:  652.513276
     Number of evaluations:  5800  -2lnl: 652.4872118
     Number of evaluations:  5900  -2lnl: 652.5201534
     Number of evaluations:  6000  -2lnl: 652.4848467
     Number of evaluations:  6100  -2lnl: 652.4901234
     Number of evaluations:  6200  -2lnl: 652.4827419
     Number of evaluations:  6300  -2lnl: 652.4845256
     Number of evaluations:  6400  -2lnl: 652.5361715
     Number of evaluations:  6500  -2lnl: 652.4900906
     Number of evaluations:  6600  -2lnl: 652.4857628
     Number of evaluations:  6700  -2lnl: 652.4918907
     Number of evaluations:  6800  -2lnl: 652.4857677
     Number of evaluations:  6900  -2lnl: 652.5087466
     Number of evaluations:  7000  -2lnl:  652.481842
     Number of evaluations:  7100  -2lnl: 652.5200702
     Number of evaluations:  7200  -2lnl:  652.481838
     Number of evaluations:  7300  -2lnl: 652.5200059
     Number of evaluations:  7400  -2lnl: 652.4856887
     Number of evaluations:  7500  -2lnl: 652.5075832
     Number of evaluations:  7600  -2lnl: 652.4864769
     Number of evaluations:  7700  -2lnl: 652.5031411
     Number of evaluations:  7800  -2lnl: 652.5360589
     Number of evaluations:  7900  -2lnl: 652.4926024
     Number of evaluations:  8000  -2lnl: 652.4823632
     Number of evaluations:  8100  -2lnl: 652.4878746
     Number of evaluations:  8200  -2lnl: 652.4823879
     Number of evaluations:  8300  -2lnl: 652.4931355
     Number of evaluations:  8400  -2lnl: 652.4829153
     Number of evaluations:  8500  -2lnl: 652.4982733
     Number of evaluations:  8600  -2lnl: 652.4828685
     Number of evaluations:  8700  -2lnl:  652.489097
     Number of evaluations:  8800  -2lnl: 652.4856823
     Number of evaluations:  8900  -2lnl: 652.4906435
     Number of evaluations:  9000  -2lnl: 652.4826364
     Number of evaluations:  9100  -2lnl: 652.4847457
     Number of evaluations:  9200  -2lnl: 652.4822262
     Number of evaluations:  9300  -2lnl: 652.4826786
     Number of evaluations:  9400  -2lnl: 652.4818565
     Number of evaluations:  9500  -2lnl: 652.4821469
     Number of evaluations:  9600  -2lnl: 652.4818359
     Number of evaluations:  9700  -2lnl: 652.4818359
     Number of evaluations:  9800  -2lnl: 652.4818359
    ## Elapsed time in minutes:  0.0414

and plot the estimated capture and survival probabilities:

    ## Plot parameter estimates
    plot(1998:2015,markedData1.cjs$results$reals$Phi$estimate,
            pch=16,col="green",
            main="Estimated Capture and Survival Probabilities",
            xlab="Occasion",ylab="Estimate",ylim=c(0,1))
    points(1999:2016,markedData1.cjs$results$reals$p$estimate,pch=16,col="blue")
    legend("bottomright",pch=16,col=c("green","blue"),legend=c("Survival","Capture"))