Lecture 28

Local, Focal, Zonal, and Global Operations

Logistics

  • Lab this Week: Lightning Talks, In Person (your final lab assignment)

  • Final Report Due: May 14th, 2025 5PM

  • All regrades have been completed and grades have been updated in Canvas.

  • No more late work accepted after May 9th, 2025 5PM. Email me directly if something needs review!

  • The extra credit opportunity is to compile all of your labs into your personal webpage (complete with image and description or what you did and learned). This is due May 14th, 2025 5PM.

  • “Opps” pass assignments can only be computed after the last assignment is submitted.

Current Grade Breakdown

  • A (57%), B (15%), C (10%), D (11%), F (6%)

Map Algebra

  • Dana Tomlin (Tomlin 1990) defined a framework for the analyizing field data stored as grided values.

  • He called this framework map algebra.

  • Map algebra operations and functions are broken down into four types:

    • local

    • focal

    • zonal

    • global

Data from Last Time

#remotes::install_github("mikejohnson51/climateR")
library(climateR)

AOI = AOI::aoi_get(state = 'CO') 

system.time({ prcp = climateR::getTerraClim(AOI, 
                                            varname = "ppt", 
                                            startDate = "2000-01-01", 
                                            endDate = '2005-12-31') })
#>    user  system elapsed 
#>   0.459   0.041   2.845

Local

  • Local operations and functions are applied to each individual cell and only involve those cells sharing the same location.

  • More than one raster can be involved in a local operation.

  • For example, rasters can be summed ( each overlapping pixels is added)

  • Local operations also include reclassification of values.

s = c(mean(prcp$ppt), app(prcp$ppt, sd), min(prcp$ppt), max(prcp$ppt)) |> 
  setNames(c("Mean", "StDev", "Min", "Max"))

rasterVis::levelplot(s)

Focal

  • Also referred to as “neighborhood” operations.

  • Assigns summary values to the output cells based on the neighboring cells in the input raster.

  • For example, a cell output value can be the average of 9 neighboring input cells (including the center cell) - this acts as a smoothing function.

Focal

  • Focal operations require a window (also known as a kernel) to work over

  • Additionally a kernel also defines the weight each neighboring cell contributes to the summary statistic.

  • For example, all cells in a 3x3 neighbor could each contribute 1/9th of their value to the summarized value (i.e. equal weight).

  • The weight can take on a more complex form defined by a function; such weights are defined by a kernel function.

  • One popular function is a Gaussian weighted function which assigns greater weight to nearby cells than those further away (Toblers first law)

Example: Focal

Lets apply a smoothing kernel to our Fort Collins elevation data over an 25x25 window, using the mean operator

foco = AOI::geocode("Fort Collins", bbox = TRUE) |> 
  st_transform(5070)

foco_elev = crop(rast('/vsis3/lynker-spatial/gridded-resources/dem.vrt'), foco)
f1 <- focal(foco_elev, w= matrix(1,nrow=25,ncol=25), fun=mean)

Results

plot(foco_elev)

plot(f1)

What did we do?

matrix(1,nrow=25,ncol=25)
#>       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
#>  [1,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#>  [2,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#>  [3,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#>  [4,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#>  [5,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#>  [6,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#>  [7,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#>  [8,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#>  [9,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [10,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [11,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [12,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [13,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [14,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [15,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [16,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [17,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [18,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [19,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [20,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [21,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [22,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [23,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [24,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#> [25,]    1    1    1    1    1    1    1    1    1     1     1     1     1
#>       [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25]
#>  [1,]     1     1     1     1     1     1     1     1     1     1     1     1
#>  [2,]     1     1     1     1     1     1     1     1     1     1     1     1
#>  [3,]     1     1     1     1     1     1     1     1     1     1     1     1
#>  [4,]     1     1     1     1     1     1     1     1     1     1     1     1
#>  [5,]     1     1     1     1     1     1     1     1     1     1     1     1
#>  [6,]     1     1     1     1     1     1     1     1     1     1     1     1
#>  [7,]     1     1     1     1     1     1     1     1     1     1     1     1
#>  [8,]     1     1     1     1     1     1     1     1     1     1     1     1
#>  [9,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [10,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [11,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [12,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [13,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [14,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [15,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [16,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [17,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [18,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [19,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [20,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [21,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [22,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [23,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [24,]     1     1     1     1     1     1     1     1     1     1     1     1
#> [25,]     1     1     1     1     1     1     1     1     1     1     1     1
mean(foco_elev[1:25, 1:25][,1])
#> [1] 161072.2

na.omit(values(f1))[1]
#> [1] 161072.2

Zonal

  • Zonal operations compute a summary values (such as the mean) from cells aggregated to some zonal unit.

  • Like focal operations, a zone and a mediating function must be defined

  • The most basis example of a zonal function is aggregation!

aggregate(foco_elev, 10) |> plot()

Zonal Statisics (More advanced)

  • For more complicated object zones, exactextractr is a fast and effiecient R utility that binds the C++ exactextract tool.

  • What is the county level mean January rainfall in California?

AOI = AOI::aoi_get(state = "CO", county = "all")
AOI$janPTT = exactextractr::exact_extract(prcp$ppt$`ppt_2000-01-01_total`, AOI, "mean", progress = FALSE)
plot(AOI['janPTT'])

What about the US?

counties <-  AOI::aoi_get(state = "conus", county = "all")
  
jan <- climateR::getTerraClim(counties, "ppt", startDate = "2000-01-01") 
  
counties$janPTT <-  exactextractr::exact_extract(jan$ppt, counties, "mean", progress = FALSE)
plot(counties['janPTT'], border = NA, key.pos = 4)

Global

  • Global operations make use of some or all input cells when computing an output cell value.

  • They are a special case of zonal operations with the entire raster represents a single zone.

  • Examples include generating descriptive statistics for the entire raster dataset

Summary Values

global: computes statistics for the values of each layer in a Raster* object.

elev <- rast('data/foco-elev.tif')
global(elev, mean)
#>         mean
#> dem 155857.1
mean(values(elev), na.rm = TRUE)
#> [1] 155857.1

Why not just mean()

In the terra package, functions like max, min, and mean, return a new SpatRast* object (with a value computed for each cell).

In contrast, global returns a single value, computed from the all the values of a layer.

s = c(elev, elev^2, elev*.5)
mean(s) |> plot()

global(s, mean)
#>               mean
#> dem   1.558571e+05
#> dem.1 2.433100e+10
#> dem.2 7.792853e+04

Mean Monthly Rainfall for Colorado

global

plot(global(prcp$ppt, max)$max, type = "l", 
     ylab = "rainfall", xlab = "month since 2000-01")
lines(global(prcp$ppt, min)$min, type = "l", col = "blue")
lines(global(prcp$ppt, mean)$mean, type = "l", col = "darkred", lwd = 2)

mean()

plot(mean(prcp$ppt), col = blues9)
plot(AOI, add =TRUE, col = NA, lwd = 2)

Animating Rasters…

Install and load the gifski package

  • save_gif: combines many individual plots

  • A for loop build the plots

  • The plot is what we have been doing all along (if you want a ggplot you must print the object!)

  • gif_file: the path to save the image

  • width/height: the image dimensions

  • delay: the pause between frames

  • loop: should the gif play over and over?

library(gifski)

save_gif(
  {for(i in 1:nlyr(prcp$ppt)) {
      plot(prcp$ppt[[i]], col = blues9, 
           legend = FALSE, 
           main = names(prcp$ppt)[i])}
  }, 
  gif_file = "images/ppt.gif", 
  width = 800, height = 600, delay = .33, loop = TRUE)

Result

Machine Learing in Raster Data

  • To date, we have focused on supervised learning algorithms.

  • As a final example, we will explore an unsupervised learning algorithm: Kmeans clustering.

  • Unsupervised learning is a type of machine learning where the algorithm learns patterns and relationships in the data without any labeled output or target variable.

Kmeans

  • Kmeans groups data into k clusters based on the distance between points in a multi-dimensional space.

ALgorithm

  • The algorithm works by iteratively assigning points to the nearest cluster center and updating the cluster centers based on the mean of the assigned points.

  • The steps are as follows:

    1. Initialize k cluster centers randomly.
    2. Assign each point to the nearest cluster center based on the Euclidean distance.
    3. Update the cluster centers by calculating the mean of the points assigned to each cluster.
    4. Repeat steps 2 and 3 until convergence (i.e., the cluster centers do not change significantly).
  • The algorithm continues until the cluster centers no longer change significantly or a maximum number of iterations is reached.

  • Kmeans is sensitive to the initial placement of the cluster centers, so it is often run multiple times with different initializations to find the best clustering solution.

  • Kmeans is commonly used in image segmentation, where the goal is to group pixels into clusters based on their color or intensity values.

Raster Data: Estimate Colorado climate regions

library(climateR)
params <-  c("ppt", "tmax", "tmin", "srad", "q")
AOI   <-  AOI::aoi_get(state = "CO")

(co <-  getTerraClim(AOI, 
                    params, 
                    startDate = "2018-10-01")  %>% 
  unlist() %>% 
  rast() |> 
  setNames(params))
#> class       : SpatRaster 
#> dimensions  : 99, 170, 5  (nrow, ncol, nlyr)
#> resolution  : 0.04166669, 0.0416667  (x, y)
#> extent      : -109.0833, -102, 36.95833, 41.08334  (xmin, xmax, ymin, ymax)
#> coord. ref. : +proj=longlat +ellps=WGS84 +no_defs 
#> source(s)   : memory
#> names       :   ppt,  tmax,  tmin, srad,    q 
#> min values  :  26.2,   0.3, 112.1,  2.8, -6.7 
#> max values  : 217.4, 118.6, 136.2, 21.3,  4.8 
#> unit        :    mm,    mm, W/m^2, degC, degC 
#> time        : 2018-10-01 UTC

Colorado October 2018 climate

plot(co)

Raster layers are vectors!

Each layer of a SpatRaster is a vector of values.

values = values(co)
head(values)
#>       ppt tmax  tmin srad    q
#> [1,] 37.8  1.9 125.1 12.1 -2.4
#> [2,] 39.2  2.0 124.2 10.8 -2.8
#> [3,] 39.2  2.0 124.3 10.6 -2.9
#> [4,] 37.7  1.9 124.6 11.6 -2.4
#> [5,] 36.3  1.8 125.0 12.2 -2.2
#> [6,] 34.8  1.7 125.0 13.0 -2.1

Data Prep

Like our other examples, we need to prepare the data for clustering.

  • Identify the indices of NA data for latter reference
  • Remove NA values
  • Scale the data
idx <- which(!apply(is.na(values), 1, any))
v   <- na.omit(values)
vs  <- scale(v)

Implementing Kmeans

  • The kmeans() function performs k-means clustering on a dataset.
  • The function takes the following arguments:
    • x: a numeric matrix or data frame containing the data to be clustered.
    • centers: the number of clusters to create or a set of initial cluster centers.
    • iter.max: the maximum number of iterations to run the algorithm.
(E <- kmeans(vs, 5, iter.max = 100))
#> K-means clustering with 5 clusters of sizes 2780, 6387, 582, 4304, 2777
#> 
#> Cluster means:
#>           ppt       tmax       tmin       srad          q
#> 1 -0.14064181 -0.1709533  1.4299785  0.8277612  0.9760000
#> 2 -0.54243458 -0.2358696 -0.1272346  0.6911123  0.7024391
#> 3  3.17949220  4.6155466 -0.5704863 -1.7480514 -1.2250697
#> 4  0.50361300 -0.0780229 -1.0492901 -1.0631595 -1.1094580
#> 5 -0.05851671 -0.1327648  0.6069409 -0.4040712 -0.6163705
#> 
#> Clustering vector:
#>     [1] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>    [37] 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>    [73] 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2
#>   [109] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>   [145] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5
#>   [181] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 5 4
#>   [217] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
#>   [253] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>   [289] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>   [325] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>   [361] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
#>   [397] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>   [433] 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>   [469] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>   [505] 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>   [541] 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>   [577] 4 4 4 4 4 4 4 5 5 5 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2
#>   [613] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>   [649] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5
#>   [685] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4
#>   [721] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
#>   [757] 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>   [793] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>   [829] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5
#>   [865] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
#>   [901] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5
#>   [937] 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>   [973] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1009] 2 2 2 2 2 2 2 2 2 2 2 2 5 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>  [1045] 5 2 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [1081] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 2 2 2 2 2 2
#>  [1117] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1153] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1189] 2 2 5 5 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5 5 5 2 5 5 5 5 5 5 5 5 5
#>  [1225] 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [1261] 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1297] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1333] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 2 2 2 2
#>  [1369] 2 2 2 5 5 5 2 2 2 5 5 5 5 5 5 2 2 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4
#>  [1405] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [1441] 4 4 4 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1477] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1513] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 2 2 2 2 2 2 2 2 5 5 5 2 2 5
#>  [1549] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [1585] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
#>  [1621] 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1657] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1693] 2 2 2 2 2 2 2 2 5 5 5 2 2 5 2 2 2 2 2 2 2 5 2 2 2 2 5 5 5 5 5 5 5 5 5 5
#>  [1729] 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [1765] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2
#>  [1801] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1837] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5
#>  [1873] 2 2 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4
#>  [1909] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [1945] 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [1981] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2017] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5
#>  [2053] 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [2089] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [2125] 4 4 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2161] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2197] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2233] 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [2269] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 2 2
#>  [2305] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2341] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2377] 2 2 2 2 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 4 4 4 4
#>  [2413] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [2449] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2485] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2521] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5
#>  [2557] 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [2593] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [2629] 4 4 4 4 4 4 4 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2665] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2701] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 4 5 2 2 2 2 2 2
#>  [2737] 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [2773] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5
#>  [2809] 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2845] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [2881] 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 4 5 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4
#>  [2917] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [2953] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2
#>  [2989] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3025] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3061] 2 2 2 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [3097] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [3133] 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3169] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3205] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3241] 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [3277] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [3313] 4 4 4 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3349] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3385] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3421] 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [3457] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 2 2
#>  [3493] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3529] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3565] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4
#>  [3601] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [3637] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3673] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3709] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3745] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [3781] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
#>  [3817] 5 5 5 4 4 4 4 4 4 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3853] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3889] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [3925] 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [3961] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 4 4 4 4 4 5 5 5 5 4 4 4 4 4 4 4 4 5
#>  [3997] 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4033] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4069] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4
#>  [4105] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [4141] 4 4 4 4 5 5 5 5 5 5 5 5 4 4 4 5 5 4 4 4 4 4 4 4 4 5 5 5 5 5 2 2 2 2 2 2
#>  [4177] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4213] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4249] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [4285] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
#>  [4321] 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 2 2 2 2 1 1 2 2 2 1 2 2 2 2 2 2
#>  [4357] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4393] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4429] 2 2 2 4 4 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [4465] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [4501] 4 4 4 4 4 5 5 5 5 5 5 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4537] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4573] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 2 2 2 2
#>  [4609] 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [4645] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
#>  [4681] 5 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4717] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4753] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 2 2 2 2 2 4 4 4 4 4 4 4 4 4
#>  [4789] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4
#>  [4825] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 2 2 1 1 1 1 1 1
#>  [4861] 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4897] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [4933] 2 2 2 2 2 2 2 2 2 4 4 4 2 2 4 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [4969] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [5005] 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
#>  [5041] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5077] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5113] 4 4 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [5149] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
#>  [5185] 5 5 5 5 5 5 5 5 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5221] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5257] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4
#>  [5293] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [5329] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 2 2
#>  [5365] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5401] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5437] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [5473] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [5509] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 2 1 1 1 1 1 1 1 1 1 1
#>  [5545] 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5581] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5617] 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [5653] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [5689] 4 4 4 4 4 5 5 4 5 5 5 5 5 5 5 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2
#>  [5725] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5761] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4
#>  [5797] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
#>  [5833] 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
#>  [5869] 5 5 5 5 5 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5905] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [5941] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [5977] 4 4 4 4 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [6013] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 1 1 1 1
#>  [6049] 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6085] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6121] 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2
#>  [6157] 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [6193] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 2 2 1
#>  [6229] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6265] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6301] 2 4 4 4 2 2 2 4 2 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4
#>  [6337] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [6373] 4 4 4 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
#>  [6409] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6445] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 2 2 2 2 2 2 4
#>  [6481] 4 4 4 2 2 2 2 2 2 2 4 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [6517] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5
#>  [6553] 5 5 5 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6589] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6625] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 2 2 2 2 2 2 4 4 2 2 2 4 4 4 4
#>  [6661] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [6697] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1
#>  [6733] 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6769] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6805] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [6841] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [6877] 4 4 5 5 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 2 2 2 2 2
#>  [6913] 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6949] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [6985] 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [7021] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 4 4 4 4
#>  [7057] 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 5 1 2 2 2 2 2 1 1 2 2 2 2 2 2 2
#>  [7093] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7129] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7165] 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [7201] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 4 4 4 4 4 5 5 5 5 5 5 5 5
#>  [7237] 5 5 1 5 5 5 5 5 5 5 5 5 5 5 2 2 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7273] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7309] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4
#>  [7345] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [7381] 4 4 4 4 4 4 4 5 5 5 5 5 5 5 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>  [7417] 5 5 5 5 5 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7453] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7489] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [7525] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
#>  [7561] 5 5 5 5 5 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 2
#>  [7597] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7633] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7669] 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [7705] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 4 5 5
#>  [7741] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
#>  [7777] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7813] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4
#>  [7849] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [7885] 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>  [7921] 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7957] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [7993] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [8029] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [8065] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>  [8101] 5 5 5 1 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [8137] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [8173] 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [8209] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
#>  [8245] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 2 2 2 2
#>  [8281] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [8317] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4
#>  [8353] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [8389] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>  [8425] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2
#>  [8461] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [8497] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4
#>  [8533] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [8569] 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>  [8605] 5 5 5 5 5 5 5 5 1 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [8641] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [8677] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [8713] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 5 5 5 5
#>  [8749] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 5 5 5 5 5 1 1 1 1 1
#>  [8785] 1 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [8821] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 2 2 2 2
#>  [8857] 2 2 2 2 2 4 4 4 2 2 2 2 2 2 2 2 4 4 4 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [8893] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>  [8929] 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
#>  [8965] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [9001] 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [9037] 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [9073] 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4
#>  [9109] 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
#>  [9145] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [9181] 2 2 2 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [9217] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
#>  [9253] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 5 5 5 1 1 1 1 1 1 1
#>  [9289] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [9325] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4
#>  [9361] 4 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4
#>  [9397] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5
#>  [9433] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#>  [9469] 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [9505] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 2 2 2 2 2 2 2
#>  [9541] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [9577] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#>  [9613] 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#>  [9649] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [9685] 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [9721] 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#>  [9757] 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1
#>  [9793] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2
#>  [9829] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>  [9865] 2 2 2 2 4 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4
#>  [9901] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
#>  [9937] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1
#>  [9973] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [10009] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4
#> [10045] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [10081] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 4 5 5 5 5
#> [10117] 5 5 5 5 5 5 1 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [10153] 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [10189] 2 2 2 2 2 2 2 2 2 2 2 2 5 2 2 2 2 2 2 2 2 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2
#> [10225] 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [10261] 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 5 5
#> [10297] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [10333] 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [10369] 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4
#> [10405] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
#> [10441] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [10477] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2
#> [10513] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 2 2 2 2 2 2 2
#> [10549] 2 2 2 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4
#> [10585] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5
#> [10621] 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [10657] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [10693] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4
#> [10729] 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [10765] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1
#> [10801] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [10837] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [10873] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 2 2 2
#> [10909] 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [10945] 4 4 4 4 4 4 4 4 5 5 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1
#> [10981] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [11017] 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [11053] 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 4 4 4 4 4
#> [11089] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5
#> [11125] 5 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [11161] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
#> [11197] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [11233] 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [11269] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 5 5 5 4 4 5 5 5 5 5 5
#> [11305] 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [11341] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [11377] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4
#> [11413] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [11449] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5
#> [11485] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [11521] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [11557] 2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [11593] 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [11629] 4 4 4 4 5 5 5 5 5 5 4 3 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1
#> [11665] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [11701] 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 2
#> [11737] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [11773] 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 4 5 5 5 5 5 5 5
#> [11809] 5 4 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [11845] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
#> [11881] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 2 1 1 2 2 2 2 2 2 2 2 2 2 2
#> [11917] 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 4 4 4 3 3 3 4 4 4 4 4
#> [11953] 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 5 5 5 5 5
#> [11989] 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [12025] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [12061] 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4
#> [12097] 4 4 4 4 4 4 4 4 4 4 3 3 4 4 3 3 4 4 3 3 3 3 4 4 4 4 3 3 4 4 4 4 4 4 4 4
#> [12133] 5 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1
#> [12169] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [12205] 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [12241] 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [12277] 3 3 4 3 3 3 4 4 3 3 3 4 4 4 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5
#> [12313] 5 5 5 5 5 5 5 5 5 3 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1
#> [12349] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
#> [12385] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 1 1 1 1 1 2 2 2
#> [12421] 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 4 4 3 3 3 3 3 3 4 4 3 3 3
#> [12457] 3 3 3 3 3 3 4 3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#> [12493] 3 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [12529] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
#> [12565] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 5 1 5 1 1 1 1 2 2 2 2 2 5 5 4 4 4 4 4
#> [12601] 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 4 4 3 3 3 3 3 4 3 3 3 3 3 3 3 4 4 3 3 3
#> [12637] 3 4 4 3 3 4 3 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 5 5 5 5 5 5
#> [12673] 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [12709] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [12745] 2 2 2 2 2 2 1 5 5 5 5 5 1 1 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [12781] 4 3 3 3 3 3 4 4 3 3 3 3 4 3 3 3 3 4 4 3 3 3 3 4 3 3 3 3 3 3 3 3 4 4 4 4
#> [12817] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1
#> [12853] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [12889] 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 5 5
#> [12925] 5 5 5 5 5 5 2 2 2 5 4 4 4 4 4 3 3 4 4 4 4 4 4 4 4 3 3 4 3 3 3 4 3 4 3 3
#> [12961] 3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 5 5 5 5 5 5 5 5 5 5
#> [12997] 5 5 5 5 5 5 5 5 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [13033] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2
#> [13069] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 5 5 5 5 5 5 5 5 5 2 2
#> [13105] 5 4 4 4 4 4 3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3 3 4 4 3 3 3 3 3 3 4 3 3 3
#> [13141] 4 4 4 3 3 3 3 3 3 3 3 3 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3
#> [13177] 3 5 5 5 5 5 5 1 1 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [13213] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [13249] 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 5 5 5 5 4 4 4 5 5 5 4 4 4 4 4 4 4 3 4 4
#> [13285] 4 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 3 3 3 3 3 4 4 4 3 3 4 4 4 4 4 3 3 3 3 3
#> [13321] 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1
#> [13357] 1 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [13393] 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [13429] 2 2 1 1 1 1 1 1 5 5 5 4 4 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3
#> [13465] 3 3 3 3 3 3 3 4 3 3 4 4 4 4 4 4 4 3 3 4 4 4 3 3 3 3 5 5 5 5 5 5 5 5 5 5
#> [13501] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [13537] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [13573] 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 5
#> [13609] 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 3 3 3 3 3 3 3 3 4 3 4 4 3 3 3 3 4 4
#> [13645] 4 4 3 4 4 4 4 3 3 4 4 3 4 4 4 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#> [13681] 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [13717] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2
#> [13753] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 5 5 4 4 5 5 5 4 4
#> [13789] 4 4 4 4 4 3 3 4 3 4 3 3 3 4 3 3 3 3 4 3 3 3 3 3 3 3 3 3 3 3 4 4 3 3 3 3
#> [13825] 3 3 4 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 5 5 5
#> [13861] 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [13897] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [13933] 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
#> [13969] 4 4 4 4 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 4 3 5 5 5
#> [14005] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 5 5 5 5 5 5 5 5 5 1 1 1 1
#> [14041] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [14077] 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1
#> [14113] 1 1 1 1 1 1 1 1 1 1 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3
#> [14149] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5
#> [14185] 5 5 5 5 5 5 5 5 5 5 5 3 4 4 3 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [14221] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1
#> [14257] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1
#> [14293] 1 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 4 3 3 4 3 4 4 4 4 3 3
#> [14329] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#> [14365] 5 3 3 3 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [14401] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
#> [14437] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 5 4 4 4 4
#> [14473] 4 4 4 4 4 4 4 4 4 4 4 3 3 3 3 4 3 4 4 3 4 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3
#> [14509] 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#> [14545] 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [14581] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [14617] 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4
#> [14653] 4 4 4 3 4 4 4 4 3 4 4 4 4 4 4 4 3 3 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5
#> [14689] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1
#> [14725] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [14761] 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1
#> [14797] 1 1 1 1 1 1 1 1 1 1 5 5 5 5 5 4 4 3 3 3 4 4 4 5 5 4 4 4 4 4 4 4 4 4 4 4
#> [14833] 4 4 4 4 4 4 3 3 3 3 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5
#> [14869] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [14905] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2
#> [14941] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [14977] 1 1 5 5 5 4 4 4 4 3 4 4 4 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 4 4 4 4 4
#> [15013] 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#> [15049] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [15085] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [15121] 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 4 4 4 4
#> [15157] 4 5 5 5 5 4 4 5 4 5 4 4 4 4 4 4 5 4 4 5 5 5 5 5 5 5 5 3 3 3 3 3 3 3 3 3
#> [15193] 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 3 5 5 5
#> [15229] 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [15265] 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [15301] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#> [15337] 5 5 5 4 4 5 4 4 4 5 5 5 5 5 5 5 5 3 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5
#> [15373] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 3 5 5 5 5 5 5 1 1 1 1 1 1 1
#> [15409] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
#> [15445] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
#> [15481] 1 1 1 1 1 1 1 1 1 1 5 5 5 5 5 5 5 5 1 1 5 5 5 5 5 5 5 5 5 5 5 5 5 4 5 5
#> [15517] 5 5 5 5 5 5 5 4 3 3 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#> [15553] 5 5 5 5 5 5 5 5 5 3 3 3 3 3 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [15589] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2
#> [15625] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [15661] 1 1 5 5 5 5 5 5 1 1 1 1 1 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 5
#> [15697] 3 3 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 5 5 1 1 5 1 5 5 5 5 5 5 5 5 5
#> [15733] 3 3 4 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [15769] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [15805] 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5 1 1 1
#> [15841] 1 1 1 1 1 1 1 5 5 5 5 1 1 5 5 5 5 5 5 5 5 5 5 5 5 3 3 3 3 3 3 3 3 3 3 3
#> [15877] 3 5 5 5 5 5 5 5 5 5 5 5 5 1 1 1 1 5 5 5 5 5 5 5 5 5 5 3 3 5 5 5 1 1 1 1
#> [15913] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [15949] 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1
#> [15985] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5
#> [16021] 1 1 1 5 5 5 5 5 5 5 5 5 5 5 3 3 3 5 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5
#> [16057] 5 5 5 1 1 1 1 5 5 5 5 5 5 5 5 5 3 3 3 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [16093] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2
#> [16129] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [16165] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5 1 5 5 5 5 1 5 5 1 1
#> [16201] 5 5 5 5 5 3 3 5 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1
#> [16237] 5 5 5 5 5 5 3 4 3 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [16273] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [16309] 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [16345] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 5 5 5 5 5 5 3 3
#> [16381] 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 5 5 5 5 5 3 3 3 5 5
#> [16417] 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [16453] 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> [16489] 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [16525] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 5 5 5 5 5 5 5 3 3 3 3 3 3 3 3 3 3 5 5
#> [16561] 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 5 3 3 3 5 5 5 5 5 5 5 1 1 1 1 1 1
#> [16597] 1 1 1 1 1 5 5 5 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [16633] 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1
#> [16669] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [16705] 1 1 1 1 1 1 5 1 1 5 5 5 5 5 5 5 3 5 3 3 3 3 3 5 5 5 5 5 5 1 1 1 1 1 1 1
#> [16741] 1 1 1 1 1 1 5 5 5 3 3 3 5 5 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1 5 1 1 1 1
#> [16777] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2
#> [16813] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#> 
#> Within cluster sum of squares by cluster:
#> [1] 2986.731 5393.798 4165.963 8693.721 4258.384
#>  (between_SS / total_SS =  69.7 %)
#> 
#> Available components:
#> 
#> [1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss"
#> [6] "betweenss"    "size"         "iter"         "ifault"

Copying a raster structure

  • The co$tmax raster is used as a template for the new raster.
  • The values() function is used to set the values of the new raster to NA.
clus_raster <- co$tmax
values(clus_raster) <- NA

Assign values

  • The values() function is used to assign the cluster labels to the new raster to all cells that DID NOT have an NA value in the origional data.

  • The plot() function is used to visualize the new raster with a color palette.

clus_raster[idx] <- E$cluster
plot(clus_raster, col = RColorBrewer::brewer.pal(5, "Spectral"))

Merging across data sources

# Get elevations data
elev = elevatr::get_elev_raster(AOI, z = 5) %>% 
  crop(AOI) |> 
  rast()
#> Mosaicing & Projecting
#> Note: Elevation units are in meters.

# Align Raster extents and resolutions
elev = project(elev, co$ppt)

# Extract Values
values = c(co$ppt, elev) %>% values()

# Prep data
idx = which(!apply(is.na(values), 1, any))
v = na.omit(values)
vs = scale(v)

# Cluster
E = kmeans(vs, 5, iter.max = 100)

clus_raster_elev = elev
values(clus_raster_elev) = NA
clus_raster_elev[idx] <- E$cluster

plot(clus_raster, col = RColorBrewer::brewer.pal(5, "Spectral"))

plot(clus_raster_elev, col = RColorBrewer::brewer.pal(5, "Spectral"))

Clustering at larger scales: Tie it all together

counties <-  AOI::aoi_get(state = "conus", county = "all")
params   <-  c("tmax", "tmin", "ppt", "srad", "swe", "ws", "vpd", "pet")

spring_rast  <- rast(getTerraClim(counties,  params, startDate = "2023-03-01"))
spring <-  exact_extract(spring_rast, counties, "mean", progress = FALSE)


summer  <- rast(getTerraClim(counties,  params, startDate = "2023-07-01")) |> 
  exact_extract(counties, "mean", progress = FALSE)

fall    <- rast(getTerraClim(counties,  params, startDate = "2023-10-01")) |> 
  exact_extract(counties, "mean", progress = FALSE)

winter  <- rast(getTerraClim(counties,  params, startDate = "2023-01-01")) |> 
  exact_extract(counties, "mean", progress = FALSE)

ncell(spring_rast) * 4 # values processed
#> [1] 3847488
nrow(counties) # units summarized extracted
#> [1] 3108

counties$clust_spring <- kmeans(scale(spring), 5)$cluster
counties$clust_summer <- kmeans(scale(summer), 5)$cluster
counties$clust_fall   <- kmeans(scale(fall),   5)$cluster
counties$clust_winter <- kmeans(scale(winter), 5)$cluster

plot(counties[grepl("clust", names(counties))], border = NA)

Congrats

  • You have made it through the course!

Unit 1: Your computer & Tools

  • Files and file systems
  • Memory and storage
  • Data types and structures
  • file extenstions and formats
  • R and RStudio + project managment
  • Git and Github for version control
  • Quarto for reproducible research

Data Science

  • Data wrangling: tidyverse
    • Data import and export (readr)
    • Data cleaning and transformation (dplyr, tidyr)
    • Data visualization (ggplot2, flextable)
    • Data exploration and analysis (EDA, visdat, skimr, janitor)
    • Functional programming, nests, maps (purrr)
  • Fondational statistics and linear modeling

Machine Learning

  • tidymodels framework for the “Whole Picture”
    • feature engineering / data splitting
    • classification / regression problems
    • model selction: trees (RF, boost, DT), logistic regression, neural nets, SVM
    • resampling
    • cross validation
    • hyperparameter tuning
    • model evaluation
    • model interpretation

Space and Time data

  • Timeseries
  • dates, time, timezones (lubridate)
  • decomposing time series (feasts, fable, tsibble)
  • time series models: prophet, ARIMA, modeltime
  • forecasting


  • sf for vector data
    • The big libraries: GDAL, PROJ, GEOS
    • Simple features and the OGC
    • CRS and spatial primatives
    • DE9IM and spatial relations


  • terra for gridded data
    • Raster data models and image files
    • Raster manipualtion (crop, extract, mask, classify, algebra)
    • Zonal, local, focal, global operations
    • Unsupervised classification (kmeans)

Data discovery

  • Access to a wide range of data sources (web, local, package)
  • Pacakges for access
    • dataRetrieval for USGS data
    • climateR for climate data
    • AOI for spatial data
    • elevatr for elevation data
    • osmdata for OSM data

Thank you!

  • Thank you for your time and attention this semester!

  • Thank you for your patience:

    • First time teaching this material and building it out
    • Upheaval at NOAA and job hunting
    • Birth of our little guy (Mason circa Jan 31)

Thank you!

  • I hope you learned something new and useful.

  • I’m always available as a resource after this class (mikecp11@gmail.com).

  • Please fill out the course evals and let me know how I can improve.

  • If you found the content relevant to your career, and something you believe should be part of your curriculum (either as this class or as a year-long course), please let the department know!

  • I’ll be around for the next few weeks if you have any questions about your final project or anything else.