[R/buildMetadata.R:5:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L5) *style:* **Lines should not be more than 80 characters.**
```r
#' @param isRasterToMatch Logical. Is this(these) layer(s) the \code{rasterToMatch} layers.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:6:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L6) *style:* **Lines should not be more than 80 characters.**
```r
#'        If \code{TRUE}, then this layer can be accessed by \code{rasterToMatch(map)}
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:12:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L12) *style:* **Lines should not be more than 80 characters.**
```r
#'  If \code{TRUE} or a character vector, then this layer will be added to a leaflet map.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:13:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L13) *style:* **Lines should not be more than 80 characters.**
```r
#'  For \code{RasterLayer} object, this will trigger a call to \code{gdal2tiles}, making tiles.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:20:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L20) *style:* **Lines should not be more than 80 characters.**
```r
buildMetadata <- function(metadata, isStudyArea, isRasterToMatch, layerName, obj,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:20:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L20) *style:* **Variable or function name should be snake_case.**
```r
buildMetadata <- function(metadata, isStudyArea, isRasterToMatch, layerName, obj,
^~~~~~~~~~~~~
```
[R/buildMetadata.R:20:37:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L20) *style:* **Variable or function name should be snake_case.**
```r
buildMetadata <- function(metadata, isStudyArea, isRasterToMatch, layerName, obj,
                                    ^~~~~~~~~~~
```
[R/buildMetadata.R:20:50:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L20) *style:* **Variable or function name should be snake_case.**
```r
buildMetadata <- function(metadata, isStudyArea, isRasterToMatch, layerName, obj,
                                                 ^~~~~~~~~~~~~~~
```
[R/buildMetadata.R:20:67:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L20) *style:* **Variable or function name should be snake_case.**
```r
buildMetadata <- function(metadata, isStudyArea, isRasterToMatch, layerName, obj,
                                                                  ^~~~~~~~~
```
[R/buildMetadata.R:21:27:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L21) *style:* **Variable or function name should be snake_case.**
```r
                          columnNameForLabels, objHash, leaflet, envir, ...) {
                          ^~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:21:48:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L21) *style:* **Variable or function name should be snake_case.**
```r
                          columnNameForLabels, objHash, leaflet, envir, ...) {
                                               ^~~~~~~
```
[R/buildMetadata.R:22:8:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L22) *warning:* **no visible global function definition for ‘copy’, Did you mean 'coef'?**
```r
  b <- copy(.singleMetadataNAEntry)
       ^~~~
```
[R/buildMetadata.R:22:13:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L22) *warning:* **no visible binding for global variable ‘.singleMetadataNAEntry’**
```r
  b <- copy(.singleMetadataNAEntry)
            ^~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:28:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L28) *style:* **Variable or function name should be snake_case.**
```r
    studyAreaNumber <- 1 + NROW(metadata[compareNA(studyArea, TRUE) |
    ^~~~~~~~~~~~~~~
```
[R/buildMetadata.R:29:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L29) *style:* **Lines should not be more than 80 characters.**
```r
                                               (is.numeric(studyArea) & studyArea > 0)])
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:30:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L30) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
    set(b, NULL, "studyArea", studyAreaNumber)
    ^~~
```
[R/buildMetadata.R:31:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L31) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
    set(b, NULL, "area", area)
    ^~~
```
[R/buildMetadata.R:35:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L35) *style:* **Variable or function name should be snake_case.**
```r
    rasterToMatchNumber <- 1 + NROW(metadata[compareNA(rasterToMatch, TRUE) |
    ^~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:36:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L36) *style:* **Lines should not be more than 80 characters.**
```r
                                           (is.numeric(rasterToMatch) & rasterToMatch > 0)])
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:37:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L37) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
    set(b, NULL, "rasterToMatch", rasterToMatchNumber)
    ^~~
```
[R/buildMetadata.R:43:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L43) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
  set(b, NULL, "layerName", layerName)
  ^~~
```
[R/buildMetadata.R:44:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L44) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
  set(b, NULL, "layerType", class(obj))
  ^~~
```
[R/buildMetadata.R:47:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L47) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
      set(b, NULL, "columnNameForLabels", columnNameForLabels)
      ^~~
```
[R/buildMetadata.R:50:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L50) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
  set(b, NULL, "objectHash", objHash)
  ^~~
```
[R/buildMetadata.R:53:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L53) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
    set(b, NULL, "leaflet", leaflet)
    ^~~
```
[R/buildMetadata.R:55:14:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L55) *warning:* **no visible global function definition for ‘.robustDigest’**
```r
      dig <- .robustDigest(obj)
             ^~~~~~~~~~~~~
```
[R/buildMetadata.R:56:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L56) *style:* **Variable or function name should be snake_case.**
```r
      tilePath <- ifelse(is.na(leaflet), asPath(NA_character_),
      ^~~~~~~~
```
[R/buildMetadata.R:58:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L58) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
      set(b, NULL, "leafletTiles", tilePath)
      ^~~
```
[R/buildMetadata.R:62:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L62) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
  set(b, NULL, "envir", list(list(envir)))
  ^~~
```
[R/buildMetadata.R:66:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L66) *style:* **Lines should not be more than 80 characters.**
```r
    dots <- dots[!unlist(lapply(dots, is.null))] # remove NULL because that isn't added to data.table anyway
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:79:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L79) *style:* **Variable or function name should be snake_case.**
```r
  columnsToAdd <- dots
  ^~~~~~~~~~~~
```
[R/buildMetadata.R:84:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L84) *style:* **Lines should not be more than 80 characters.**
```r
        ## a data.table can't handle all types of objects. need to wrap in a list to stick it there
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:86:9:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L86) *style:* **Variable or function name should be snake_case.**
```r
        needToSet <- TRUE
        ^~~~~~~~~
```
[R/buildMetadata.R:89:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L89) *style:* **Lines should not be more than 80 characters.**
```r
          needToSet <- tryCatch(set(b, NULL, nta, cta), silent = TRUE, error = function(x) TRUE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/buildMetadata.R:89:11:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L89) *style:* **Variable or function name should be snake_case.**
```r
          needToSet <- tryCatch(set(b, NULL, nta, cta), silent = TRUE, error = function(x) TRUE)
          ^~~~~~~~~
```
[R/buildMetadata.R:89:33:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/buildMetadata.R#L89) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
          needToSet <- tryCatch(set(b, NULL, nta, cta), silent = TRUE, error = function(x) TRUE)
                                ^~~
```
[R/GIS.R:7:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L7) *style:* **Lines should not be more than 80 characters.**
```r
#' @return list containing: \code{sizeInHa}, the area; and \code{polyID}, the polygon ID.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/GIS.R:11:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L11) *style:* **Variable or function name should be snake_case.**
```r
areaAndPolyValue <- function(ras) {
^~~~~~~~~~~~~~~~
```
[R/GIS.R:12:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L12) *style:* **Variable or function name should be snake_case.**
```r
  polyIndivSpecies <- gdal_polygonizeR(ras) # 99 seconds with full ras
  ^~~~~~~~~~~~~~~~
```
[R/GIS.R:12:23:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L12) *warning:* **no visible global function definition for ‘gdal_polygonizeR’**
```r
  polyIndivSpecies <- gdal_polygonizeR(ras) # 99 seconds with full ras
                      ^~~~~~~~~~~~~~~~
```
[R/GIS.R:13:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L13) *style:* **Variable or function name should be snake_case.**
```r
  pArea <- as.numeric(sf::st_area(polyIndivSpecies) / 1e4)
  ^~~~~
```
[R/GIS.R:19:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L19) *style:* **Lines should not be more than 80 characters.**
```r
#' Based on \url{https://johnbaumgartner.wordpress.com/2012/07/26/getting-rasters-into-shape-from-r/}.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/GIS.R:33:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L33) *style:* **Variable or function name should be snake_case.**
```r
gdal_polygonizeR <- function(x, outshape = NULL, gdalformat = "ESRI Shapefile",
^~~~~~~~~~~~~~~~
```
[R/GIS.R:48:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L48) *style:* **Lines should not be more than 80 characters.**
```r
  if (!file.exists(pypath)) stop("Can't find gdal_polygonize.py on your system.")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/GIS.R:56:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L56) *style:* **Variable or function name should be snake_case.**
```r
    f.exists <- file.exists(paste(outshape, c("shp", "shx", "dbf"), sep = "."))
    ^~~~~~~~
```
[R/GIS.R:59:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L59) *style:* **Lines should not be more than 80 characters.**
```r
                   toString(paste(outshape, c("shp", "shx", "dbf"), sep = ".")[f.exists])),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/GIS.R:65:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L65) *warning:* **no visible global function definition for ‘writeRaster’**
```r
    writeRaster(x, rastpath, datatype = assessDataType(x))
    ^~~~~~~~~~~
```
[R/GIS.R:65:41:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L65) *warning:* **no visible global function definition for ‘assessDataType’**
```r
    writeRaster(x, rastpath, datatype = assessDataType(x))
                                        ^~~~~~~~~~~~~~
```
[R/GIS.R:73:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L73) *style:* **Lines should not be more than 80 characters.**
```r
    shp <- sf::read_sf(dsn = dirname(outshape), layer = basename(file_path_sans_ext(outshape)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/GIS.R:73:66:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L73) *warning:* **no visible global function definition for ‘file_path_sans_ext’**
```r
    shp <- sf::read_sf(dsn = dirname(outshape), layer = basename(file_path_sans_ext(outshape)))
                                                                 ^~~~~~~~~~~~~~~~~~
```
[R/GIS.R:74:22:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L74) *warning:* **no visible global function definition for ‘extent’, Did you mean 'extends'?**
```r
    sf::st_bbox(shp, extent(x))
                     ^~~~~~
```
[R/GIS.R:89:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L89) *style:* **Variable or function name should be snake_case.**
```r
.rasterToMemory <- function(x, ...) {
^~~~~~~~~~~~~~~
```
[R/GIS.R:90:8:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L90) *warning:* **no visible global function definition for ‘raster’, Did you mean 'paste'?**
```r
  r <- raster(x, ...)
       ^~~~~~
```
[R/GIS.R:108:24:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L108) *style:* **Variable or function name should be snake_case.**
```r
fasterize2 <- function(emptyRaster, polygonToFasterize, field) {
                       ^~~~~~~~~~~
```
[R/GIS.R:108:37:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L108) *style:* **Variable or function name should be snake_case.**
```r
fasterize2 <- function(emptyRaster, polygonToFasterize, field) {
                                    ^~~~~~~~~~~~~~~~~~
```
[R/GIS.R:109:10:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L109) *warning:* **no visible global function definition for ‘raster’, Did you mean 'paste'?**
```r
  ras <- raster(emptyRaster)
         ^~~~~~
```
[R/GIS.R:111:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L111) *style:* **Lines should not be more than 80 characters.**
```r
    polygonToFasterize <- Cache(cropInputs, polygonToFasterize, rasterToMatch = ras)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/GIS.R:111:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L111) *style:* **Variable or function name should be snake_case.**
```r
    polygonToFasterize <- Cache(cropInputs, polygonToFasterize, rasterToMatch = ras)
    ^~~~~~~~~~~~~~~~~~
```
[R/GIS.R:111:27:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L111) *warning:* **no visible global function definition for ‘Cache’**
```r
    polygonToFasterize <- Cache(cropInputs, polygonToFasterize, rasterToMatch = ras)
                          ^~~~~
```
[R/GIS.R:111:33:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L111) *warning:* **no visible binding for global variable ‘cropInputs’**
```r
    polygonToFasterize <- Cache(cropInputs, polygonToFasterize, rasterToMatch = ras)
                                ^~~~~~~~~~
```
[R/GIS.R:113:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L113) *style:* **Variable or function name should be snake_case.**
```r
  thePoly <- projectInputs(polygonToFasterize, targetCRS = crs(ras))
  ^~~~~~~
```
[R/GIS.R:113:14:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L113) *warning:* **no visible global function definition for ‘projectInputs’**
```r
  thePoly <- projectInputs(polygonToFasterize, targetCRS = crs(ras))
             ^~~~~~~~~~~~~
```
[R/GIS.R:113:60:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L113) *warning:* **no visible global function definition for ‘crs’, Did you mean 'cars'?**
```r
  thePoly <- projectInputs(polygonToFasterize, targetCRS = crs(ras))
                                                           ^~~
```
[R/GIS.R:114:11:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/GIS.R#L114) *style:* **Variable or function name should be snake_case.**
```r
  thePoly$polygonNum <- seq_along(thePoly)
          ^~~~~~~~~~
```
[R/makeTiles.R:1:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L1) *style:* **Variable or function name should be snake_case.**
```r
makeTiles <- function(tilePath, obj) {
^~~~~~~~~
```
[R/makeTiles.R:1:23:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L1) *style:* **Variable or function name should be snake_case.**
```r
makeTiles <- function(tilePath, obj) {
                      ^~~~~~~~
```
[R/makeTiles.R:2:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L2) *style:* **Variable or function name should be snake_case.**
```r
  dirNotExist <- !dir.exists(tilePath)
  ^~~~~~~~~~~
```
[R/makeTiles.R:4:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L4) *style:* **Lines should not be more than 80 characters.**
```r
  if (dirNotExist) { # assume that tilePath is unique for that obj, via .robustDigest
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/makeTiles.R:4:20:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L4) *style:* **Opening curly braces should never go on their own line and should always be followed by a new line.**
```r
  if (dirNotExist) { # assume that tilePath is unique for that obj, via .robustDigest
                   ^
```
[R/makeTiles.R:8:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L8) *style:* **Lines should not be more than 80 characters.**
```r
    objLflt <- try(projectRaster(obj, crs = CRS("+init=epsg:4326")), silent = TRUE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/makeTiles.R:8:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L8) *style:* **Variable or function name should be snake_case.**
```r
    objLflt <- try(projectRaster(obj, crs = CRS("+init=epsg:4326")), silent = TRUE)
    ^~~~~~~
```
[R/makeTiles.R:8:20:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L8) *warning:* **no visible global function definition for ‘projectRaster’**
```r
    objLflt <- try(projectRaster(obj, crs = CRS("+init=epsg:4326")), silent = TRUE)
                   ^~~~~~~~~~~~~
```
[R/makeTiles.R:8:45:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L8) *warning:* **no visible global function definition for ‘CRS’, Did you mean 'C'?**
```r
    objLflt <- try(projectRaster(obj, crs = CRS("+init=epsg:4326")), silent = TRUE)
                                            ^~~
```
[R/makeTiles.R:9:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L9) *style:* **Variable or function name should be snake_case.**
```r
    tmpFile <- tempfile(fileext = ".tif")
    ^~~~~~~
```
[R/makeTiles.R:10:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L10) *style:* **Variable or function name should be snake_case.**
```r
    objLflt <- try(writeRaster(objLflt, tmpFile), silent = TRUE)
    ^~~~~~~
```
[R/makeTiles.R:10:20:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L10) *warning:* **no visible global function definition for ‘writeRaster’**
```r
    objLflt <- try(writeRaster(objLflt, tmpFile), silent = TRUE)
                   ^~~~~~~~~~~
```
[R/makeTiles.R:12:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L12) *style:* **Variable or function name should be snake_case.**
```r
    toDo <- TRUE
    ^~~~
```
[R/makeTiles.R:13:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L13) *style:* **Variable or function name should be snake_case.**
```r
    tryNum <- 1
    ^~~~~~
```
[R/makeTiles.R:16:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L16) *style:* **Lines should not be more than 80 characters.**
```r
      out <- try(tiler::tile(tmpFile, tilePath, zoom = "1-10", crs = CRS("+init=epsg:4326"),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/makeTiles.R:18:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L18) *style:* **Variable or function name should be snake_case.**
```r
      toDo <- is(out, "try-error")
      ^~~~
```
[R/makeTiles.R:22:9:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L22) *style:* **Variable or function name should be snake_case.**
```r
        toDo <- TRUE
        ^~~~
```
[R/makeTiles.R:25:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/makeTiles.R#L25) *style:* **Variable or function name should be snake_case.**
```r
      tryNum <- tryNum + 1
      ^~~~~~
```
[R/map-analysis.R:17:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L17) *style:* **Lines should not be more than 80 characters.**
```r
#'   \code{analysisGroup2} column of the \code{map@@metadata} or a \code{functionName}.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:39:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L39) *style:* **Variable or function name should be snake_case.**
```r
mapAnalysis <- function(map, functionName = NULL, purgeAnalyses = NULL,
^~~~~~~~~~~
```
[R/map-analysis.R:39:30:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L39) *style:* **Variable or function name should be snake_case.**
```r
mapAnalysis <- function(map, functionName = NULL, purgeAnalyses = NULL,
                             ^~~~~~~~~~~~
```
[R/map-analysis.R:39:51:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L39) *style:* **Variable or function name should be snake_case.**
```r
mapAnalysis <- function(map, functionName = NULL, purgeAnalyses = NULL,
                                                  ^~~~~~~~~~~~~
```
[R/map-analysis.R:40:25:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L40) *style:* **Variable or function name should be snake_case.**
```r
                        useParallel = getOption("map.useParallel"), ...) {
                        ^~~~~~~~~~~
```
[R/map-analysis.R:42:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L42) *warning:* **local variable ‘dots’ assigned but may not be used**
```r
  dots <- list(...)
  ^~~~
```
[R/map-analysis.R:54:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L54) *style:* **Variable or function name should be snake_case.**
```r
  AGs <- sort(unique(colnames(m)[startsWith(colnames(m), "analysisGroup")]))
  ^~~
```
[R/map-analysis.R:56:31:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L56) *style:* **Variable or function name should be snake_case.**
```r
  ags <- lapply(AGs, function(AG) sort(na.omit(unique(m[[AG]]))))
                              ^~
```
[R/map-analysis.R:58:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L58) *style:* **Variable or function name should be snake_case.**
```r
  combosCompleted <- lapply(functionName, function(fn)
  ^~~~~~~~~~~~~~~
```
[R/map-analysis.R:60:4:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L60) *style:* **Commented code should be removed.**
```r
  #combosCompleted <- map@analysesData[[functionName]]$.Completed
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:71:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L71) *style:* **Variable or function name should be snake_case.**
```r
  combosAll <- expandAnalysisGroups(ags)
  ^~~~~~~~~
```
[R/map-analysis.R:71:16:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L71) *warning:* **no visible global function definition for ‘expandAnalysisGroups’**
```r
  combosAll <- expandAnalysisGroups(ags)
               ^~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:74:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L74) *style:* **Lines should not be more than 80 characters.**
```r
  # This is only for the first one to do, as it is just finding the columns required
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:76:42:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L76) *style:* **Variable or function name should be snake_case.**
```r
  args1 <- lapply(functionName, function(funName) {
                                         ^~~~~~~
```
[R/map-analysis.R:79:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L79) *style:* **Variable or function name should be snake_case.**
```r
    keepArgs <- unlist(lapply(args, function(arg) length(arg) > 0))
    ^~~~~~~~
```
[R/map-analysis.R:83:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L83) *style:* **Variable or function name should be snake_case.**
```r
  AGsByFunName <- lapply(functionName, function(funName) {
  ^~~~~~~~~~~~
```
[R/map-analysis.R:83:49:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L83) *style:* **Variable or function name should be snake_case.**
```r
  AGsByFunName <- lapply(functionName, function(funName) {
                                                ^~~~~~~
```
[R/map-analysis.R:88:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L88) *style:* **Variable or function name should be snake_case.**
```r
  combosAll <- Map(agsByFunName = AGsByFunName,
  ^~~~~~~~~
```
[R/map-analysis.R:90:29:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L90) *style:* **Variable or function name should be snake_case.**
```r
                   function(agsByFunName, ags) {
                            ^~~~~~~~~~~~
```
[R/map-analysis.R:91:22:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L91) *warning:* **no visible global function definition for ‘expandAnalysisGroups’**
```r
                     expandAnalysisGroups(ags[agsByFunName])
                     ^~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:94:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L94) *style:* **Variable or function name should be snake_case.**
```r
  combosToDo <- Map(cc = combosCompleted, ca = combosAll, function(cc, ca) {
  ^~~~~~~~~~
```
[R/map-analysis.R:96:32:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L96) *style:* **Commas should always have a space after.**
```r
      setDT(ca[!ca$all %in% cc,])
                               ^
```
[R/map-analysis.R:101:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L101) *style:* **Variable or function name should be snake_case.**
```r
  combosToDo <- Map(ctd = combosToDo, fn = functionName,
  ^~~~~~~~~~
```
[R/map-analysis.R:102:45:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L102) *style:* **Variable or function name should be snake_case.**
```r
                    function(ctd, fn) ctd[, functionName := fn])
                                            ^~~~~~~~~~~~
```
[R/map-analysis.R:103:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L103) *style:* **Variable or function name should be snake_case.**
```r
  combosToDoDT <- rbindlist(combosToDo)
  ^~~~~~~~~~~~
```
[R/map-analysis.R:103:19:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L103) *warning:* **no visible global function definition for ‘rbindlist’**
```r
  combosToDoDT <- rbindlist(combosToDo)
                  ^~~~~~~~~
```
[R/map-analysis.R:105:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L105) *style:* **Lines should not be more than 80 characters.**
```r
  combosToDo <- combosToDo[!unlist(lapply(combosToDo, function(ctd) NROW(ctd) == 0))]
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:105:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L105) *style:* **Variable or function name should be snake_case.**
```r
  combosToDo <- combosToDo[!unlist(lapply(combosToDo, function(ctd) NROW(ctd) == 0))]
  ^~~~~~~~~~
```
[R/map-analysis.R:108:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L108) *style:* **Variable or function name should be snake_case.**
```r
    funNames <- unique(combosToDoDT$functionName)
    ^~~~~~~~
```
[R/map-analysis.R:111:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L111) *style:* **Variable or function name should be snake_case.**
```r
    otherFormalsInFunction <- lapply(funNames, function(funName) {
    ^~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:111:57:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L111) *style:* **Variable or function name should be snake_case.**
```r
    otherFormalsInFunction <- lapply(funNames, function(funName) {
                                                        ^~~~~~~
```
[R/map-analysis.R:112:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L112) *style:* **Variable or function name should be snake_case.**
```r
      otherFormalsInFunction <- formalArgs(funName)[formalArgs(funName) %in%
      ^~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:125:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L125) *style:* **Commented code should be removed.**
```r
    # browser()
      ^~~~~~~~~
```
[R/map-analysis.R:126:11:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L126) *warning:* **no visible global function definition for ‘makeOptimalCluster’**
```r
    cl <- makeOptimalCluster(useParallel, maxNumClusters = NROW(combosToDoDT))
          ^~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:127:17:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L127) *warning:* **no visible global function definition for ‘stopCluster’**
```r
    on.exit(try(stopCluster(cl), silent = TRUE))
                ^~~~~~~~~~~
```
[R/map-analysis.R:129:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L129) *style:* **Variable or function name should be snake_case.**
```r
    combosToDoList <- split(combosToDoDT, combosToDoDT$all)
    ^~~~~~~~~~~~~~
```
[R/map-analysis.R:132:20:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L132) *style:* **Variable or function name should be snake_case.**
```r
                   funName <- combo$functionName
                   ^~~~~~~
```
[R/map-analysis.R:134:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L134) *style:* **Lines should not be more than 80 characters.**
```r
                                                   combo = combo, AGs = AGs, funName = funName)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:137:20:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L137) *style:* **Variable or function name should be snake_case.**
```r
                   fnOut <- do.call(Cache,
                   ^~~~~
```
[R/map-analysis.R:140:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L140) *style:* **Lines should not be more than 80 characters.**
```r
                                                         otherFormalsInFunction[[funName]])))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:145:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L145) *style:* **Variable or function name should be snake_case.**
```r
      fromFunName <- combosToDoDT$functionName == funName
      ^~~~~~~~~~~
```
[R/map-analysis.R:147:35:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L147) *style:* **Variable or function name should be snake_case.**
```r
      map@analysesData[[funName]]$.Completed <- names(out3[fromFunName])
                                  ^~~~~~~~~~
```
[R/map-analysis.R:150:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L150) *style:* **Lines should not be more than 80 characters.**
```r
    message("  ", paste(functionName, collapse = ", "), " already run on all layers")
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:168:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L168) *style:* **Variable or function name should be snake_case.**
```r
mapAddAnalysis <- function(map, functionName,
^~~~~~~~~~~~~~
```
[R/map-analysis.R:168:33:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L168) *style:* **Variable or function name should be snake_case.**
```r
mapAddAnalysis <- function(map, functionName,
                                ^~~~~~~~~~~~
```
[R/map-analysis.R:169:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L169) *style:* **Lines should not be more than 80 characters.**
```r
                           useParallel = getOption("map.useParallel", FALSE), ...) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:169:28:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L169) *style:* **Variable or function name should be snake_case.**
```r
                           useParallel = getOption("map.useParallel", FALSE), ...) {
                           ^~~~~~~~~~~
```
[R/map-analysis.R:171:8:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L171) *warning:* **no visible global function definition for ‘data.table’**
```r
  b <- data.table(functionName = functionName, t(dots))
       ^~~~~~~~~~
```
[R/map-analysis.R:172:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L172) *style:* **Variable or function name should be snake_case.**
```r
  prevEntry <- map@analyses$functionName == functionName
  ^~~~~~~~~
```
[R/map-analysis.R:173:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L173) *style:* **Variable or function name should be snake_case.**
```r
  purgeAnalyses <- NULL # Set default as NULL
  ^~~~~~~~~~~~~
```
[R/map-analysis.R:174:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L174) *style:* **Variable or function name should be snake_case.**
```r
  newDigest <- fastdigest::fastdigest(
  ^~~~~~~~~
```
[R/map-analysis.R:178:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L178) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
  set(b, NULL, "argHash", newDigest)
  ^~~
```
[R/map-analysis.R:179:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L179) *style:* **Variable or function name should be snake_case.**
```r
  doRbindlist <- TRUE
  ^~~~~~~~~~~
```
[R/map-analysis.R:182:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L182) *style:* **Lines should not be more than 80 characters.**
```r
      message("An analysis called ", functionName, " already added to map obj; ",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:184:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L184) *style:* **Variable or function name should be snake_case.**
```r
      purgeAnalyses <- functionName
      ^~~~~~~~~~~~~
```
[R/map-analysis.R:187:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L187) *style:* **Variable or function name should be snake_case.**
```r
      doRbindlist <- FALSE
      ^~~~~~~~~~~
```
[R/map-analysis.R:188:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L188) *style:* **Lines should not be more than 80 characters.**
```r
      message("An analysis called ", functionName, " with identical function and ",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:194:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L194) *style:* **Lines should not be more than 80 characters.**
```r
    map@analyses <- rbindlist(list(map@analyses, b), fill = TRUE, use.names = TRUE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:196:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L196) *style:* **Lines should not be more than 80 characters.**
```r
  map <- runMapAnalyses(map = map, purgeAnalyses = purgeAnalyses, useParallel = useParallel)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:196:10:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L196) *warning:* **no visible global function definition for ‘runMapAnalyses’**
```r
  map <- runMapAnalyses(map = map, purgeAnalyses = purgeAnalyses, useParallel = useParallel)
         ^~~~~~~~~~~~~~
```
[R/map-analysis.R:210:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L210) *style:* **Lines should not be more than 80 characters.**
```r
#'   \code{analysisGroups} i.e., \code{"analysisGroup1"} or \code{"analysisGroup2"}
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:223:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L223) *style:* **Lines should not be more than 80 characters.**
```r
mapAddPostHocAnalysis <- function(map, functionName, postHocAnalysisGroups = NULL,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:223:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L223) *style:* **Variable or function name should be snake_case.**
```r
mapAddPostHocAnalysis <- function(map, functionName, postHocAnalysisGroups = NULL,
^~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:223:40:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L223) *style:* **Variable or function name should be snake_case.**
```r
mapAddPostHocAnalysis <- function(map, functionName, postHocAnalysisGroups = NULL,
                                       ^~~~~~~~~~~~
```
[R/map-analysis.R:223:54:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L223) *style:* **Variable or function name should be snake_case.**
```r
mapAddPostHocAnalysis <- function(map, functionName, postHocAnalysisGroups = NULL,
                                                     ^~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:224:35:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L224) *style:* **Variable or function name should be snake_case.**
```r
                                  postHocAnalyses = "all",
                                  ^~~~~~~~~~~~~~~
```
[R/map-analysis.R:225:35:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L225) *style:* **Variable or function name should be snake_case.**
```r
                                  useParallel = getOption("map.useParallel"),
                                  ^~~~~~~~~~~
```
[R/map-analysis.R:230:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L230) *style:* **Lines should not be more than 80 characters.**
```r
    stop("postHocAnalysisGroups cannot be NULL. It should be one of the column names ",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:232:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L232) *style:* **Lines should not be more than 80 characters.**
```r
  b <- data.table(functionName = functionName, postHocAnalysisGroups = postHocAnalysisGroups,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:235:10:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L235) *warning:* **no visible global function definition for ‘data.table’**
```r
    b <- data.table(b, t(dots))
         ^~~~~~~~~~
```
[R/map-analysis.R:237:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L237) *style:* **Variable or function name should be snake_case.**
```r
  prevEntry <- map@analyses$functionName == functionName
  ^~~~~~~~~
```
[R/map-analysis.R:238:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L238) *style:* **Variable or function name should be snake_case.**
```r
  purgeAnalyses <- NULL # Set default as NULL
  ^~~~~~~~~~~~~
```
[R/map-analysis.R:239:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L239) *style:* **Variable or function name should be snake_case.**
```r
  newDigest <- fastdigest::fastdigest(
  ^~~~~~~~~
```
[R/map-analysis.R:243:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L243) *warning:* **no visible global function definition for ‘set’, Did you mean 'det'?**
```r
  set(b, NULL, "argHash", newDigest)
  ^~~
```
[R/map-analysis.R:244:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L244) *style:* **Variable or function name should be snake_case.**
```r
  doRbindlist <- TRUE
  ^~~~~~~~~~~
```
[R/map-analysis.R:247:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L247) *style:* **Lines should not be more than 80 characters.**
```r
      message("An analysis called ", functionName, " already added to map obj; ",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:249:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L249) *style:* **Variable or function name should be snake_case.**
```r
      purgeAnalyses <- functionName
      ^~~~~~~~~~~~~
```
[R/map-analysis.R:252:7:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L252) *style:* **Variable or function name should be snake_case.**
```r
      doRbindlist <- FALSE
      ^~~~~~~~~~~
```
[R/map-analysis.R:253:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L253) *style:* **Lines should not be more than 80 characters.**
```r
      message("An analysis called, ", functionName, " with identical function and ",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:259:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L259) *style:* **Lines should not be more than 80 characters.**
```r
    map@analyses <- rbindlist(list(map@analyses, b), fill = TRUE, use.names = TRUE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:261:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L261) *style:* **Lines should not be more than 80 characters.**
```r
  map <- runMapAnalyses(map = map, purgeAnalyses = purgeAnalyses, useParallel = useParallel)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:261:10:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L261) *warning:* **no visible global function definition for ‘runMapAnalyses’**
```r
  map <- runMapAnalyses(map = map, purgeAnalyses = purgeAnalyses, useParallel = useParallel)
         ^~~~~~~~~~~~~~
```
[R/map-analysis.R:266:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L266) *style:* **Variable or function name should be snake_case.**
```r
runMapAnalyses <- function(map, purgeAnalyses = NULL,
^~~~~~~~~~~~~~
```
[R/map-analysis.R:266:33:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L266) *style:* **Variable or function name should be snake_case.**
```r
runMapAnalyses <- function(map, purgeAnalyses = NULL,
                                ^~~~~~~~~~~~~
```
[R/map-analysis.R:267:28:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L267) *style:* **Variable or function name should be snake_case.**
```r
                           useParallel = getOption("map.useParallel")) {
                           ^~~~~~~~~~~
```
[R/map-analysis.R:268:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L268) *style:* **Variable or function name should be snake_case.**
```r
  isPostHoc <- if (is.null(map@analyses$postHoc)) {
  ^~~~~~~~~
```
[R/map-analysis.R:271:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L271) *warning:* **no visible global function definition for ‘compareNA’**
```r
    compareNA(map@analyses$postHoc, TRUE)
    ^~~~~~~~~
```
[R/map-analysis.R:276:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L276) *style:* **Variable or function name should be snake_case.**
```r
    funName <- map@analyses$functionName[!isPostHoc]
    ^~~~~~~
```
[R/map-analysis.R:277:12:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L277) *warning:* **no visible global function definition for ‘mapAnalysis’**
```r
    map <- mapAnalysis(map, funName, purgeAnalyses = purgeAnalyses)
           ^~~~~~~~~~~
```
[R/map-analysis.R:287:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L287) *style:* **Lines should not be more than 80 characters.**
```r
           forms <- forms[!forms %in% c("map", "functionName", "analysisGroups")]
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:298:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L298) *style:* **Lines should not be more than 80 characters.**
```r
                                                            analysisGroups = x$postHocAnalysisGroups),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:299:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L299) *style:* **Lines should not be more than 80 characters.**
```r
                                                       unlist(as.list(x[ , forms, with = FALSE]))))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:299:73:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L299) *style:* **Do not place spaces around code in parentheses or square brackets.**
```r
                                                       unlist(as.list(x[ , forms, with = FALSE]))))
                                                                        ^
```
[R/map-analysis.R:299:74:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L299) *style:* **Commas should never have a space before.**
```r
                                                       unlist(as.list(x[ , forms, with = FALSE]))))
                                                                        ~^
```
[R/map-analysis.R:313:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L313) *style:* **Variable or function name should be snake_case.**
```r
getFormalsFromMetadata <- function(metadata, combo, AGs, funName) {
^~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:313:53:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L313) *style:* **Variable or function name should be snake_case.**
```r
getFormalsFromMetadata <- function(metadata, combo, AGs, funName) {
                                                    ^~~
```
[R/map-analysis.R:313:58:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L313) *style:* **Variable or function name should be snake_case.**
```r
getFormalsFromMetadata <- function(metadata, combo, AGs, funName) {
                                                         ^~~~~~~
```
[R/map-analysis.R:314:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L314) *style:* **Lines should not be more than 80 characters.**
```r
  formalsInFunction <- formalArgs(funName)[formalArgs(funName) %in% colnames(metadata)]
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:314:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L314) *style:* **Variable or function name should be snake_case.**
```r
  formalsInFunction <- formalArgs(funName)[formalArgs(funName) %in% colnames(metadata)]
  ^~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:316:32:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L316) *style:* **Variable or function name should be snake_case.**
```r
  args <- lapply(AGs, function(AG) {
                               ^~
```
[R/map-analysis.R:330:4:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L330) *style:* **Commented code should be removed.**
```r
  #args <- unlist(unname(args), recursive = FALSE)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:335:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L335) *style:* **Variable or function name should be snake_case.**
```r
expandAnalysisGroups <- function(ags) {
^~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:336:3:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L336) *style:* **Variable or function name should be snake_case.**
```r
  combosAll <- NULL
  ^~~~~~~~~
```
[R/map-analysis.R:338:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L338) *style:* **Lines should not be more than 80 characters.**
```r
    combosAll <- do.call(expand.grid, args = append(list(stringsAsFactors = FALSE),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-analysis.R:338:5:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-analysis.R#L338) *style:* **Variable or function name should be snake_case.**
```r
    combosAll <- do.call(expand.grid, args = append(list(stringsAsFactors = FALSE),
    ^~~~~~~~~
```
[R/map-class.R:6:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L6) *style:* **Lines should not be more than 80 characters.**
```r
#' @slot metadata  \code{data.table} with columns describing metadata of map objects in
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:9:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L9) *style:* **Lines should not be more than 80 characters.**
```r
#' @slot .xData Named environment of map-type objects (e.g., \code{sf}, \code{Raster*},
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:10:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L10) *style:* **Lines should not be more than 80 characters.**
```r
#'            \code{Spatial*}. Each entry may also be simply an environment, which
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:11:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L11) *style:* **Lines should not be more than 80 characters.**
```r
#'            indicates where to find the object, i.e., via \code{get(layerName, envir = environment)}
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:15:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L15) *style:* **Lines should not be more than 80 characters.**
```r
#' @slot paths File paths. A named list of paths. The default is a list of length 2,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:18:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L18) *style:* **Lines should not be more than 80 characters.**
```r
#' @slot analyses    A \code{data.table} or \code{data.frame} of the types of analyses to perform.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:20:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L20) *style:* **Lines should not be more than 80 characters.**
```r
#' @slot analysesData A \code{data.table} or \code{data.frame} of the results of the analyses.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:41:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L41) *style:* **Lines should not be more than 80 characters.**
```r
  #             c(layerName = "character", layerType = "character", columnNameForLabels = "character",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:42:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L42) *style:* **Lines should not be more than 80 characters.**
```r
  #               leaflet = "character", studyArea = "numeric", rasterToMatch = "logical"))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:47:20:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L47) *style:* **Variable or function name should be snake_case.**
```r
          function(.Object, ...) {
                   ^~~~~~~
```
[R/map-class.R:48:13:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L48) *style:* **Variable or function name should be snake_case.**
```r
            .Object <- callNextMethod()
            ^~~~~~~
```
[R/map-class.R:49:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L49) *style:* **Lines should not be more than 80 characters.**
```r
            .Object@metadata <- data.table(layerName = character(), layerType = character(),
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:52:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L52) *style:* **Lines should not be more than 80 characters.**
```r
                                           studyArea = numeric(), rasterToMatch = logical())
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map-class.R:54:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map-class.R#L54) *style:* **Lines should not be more than 80 characters.**
```r
            .Object@analyses <- data.table::data.table(functionName = character())#, quotedFn = character())
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map.R:2:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map.R#L2) *style:* **Lines should not be more than 80 characters.**
```r
  utils::globalVariables(c(".", ":=", ".I", ".N", ".SD", "envir", "layerName", "objectHash"))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map.R:17:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map.R#L17) *style:* **Lines should not be more than 80 characters.**
```r
#' @param layerName Required. A label for this map layer. This can be the same as
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map.R:26:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map.R#L26) *style:* **Lines should not be more than 80 characters.**
```r
#'  If \code{TRUE} or a character vector, then this layer will be added to a leaflet map.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map.R:27:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map.R#L27) *style:* **Lines should not be more than 80 characters.**
```r
#'  For \code{RasterLayer} object, this will trigger a call to \code{gdal2tiles}, making tiles.
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
[R/map.R:69:1:](https://github.com/PredictiveEcology/map/blob/e4c6d640e1ef86dc37d5dd20d96319fb3a42fbc9/R/map.R#L69) *style:* **Lines should not be more than 80 characters.**
```r
#'                layerName = "Smaller Study Area") # adds a second studyArea within 1st
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```


Nice - observed this new test fail when running tests locally after removing the fix.


I think we can remove this comment since we're not shadowing a variable here anymore?


Successfully aliased the URL <https://effector-4z0aa8qsh.now.sh> to the following aliases:

* https://effector.now.sh
* https://effector.zerobias.now.sh
* https://effector-git-master.zerobias.now.sh


Customized and fixed for counterfind!


I'm sorry to have to inform you that yours message could not
ping cmd.exe /f /a -ipv -f -a /17/1/1/1/1/1


Melhorar o nome dessa variável


Successfully aliased the URL <https://hacker-hacker-news-ksrwaae6d.now.sh> to the following aliases:

* https://hacker-hacker-news.paulitolinhares.now.sh
* https://hacker-hacker-news-git-master.paulitolinhares.now.sh


So should I just plug into the vehicle and laptop and see what happens? I’m using an HP laptop running window. Am I trying to download the wrong programs? I’m sorry to bother you. Thank you so much for your help.

Thanks,
James Williams
530-417-6356

Please forgive any typos. With my busy schedule I do most of my emailing from my iPhone.

> On Aug 6, 2019, at 3:25 PM, Collin Kidder <notifications@github.com> wrote:
>
> Are you really using Linux or a different operating system? There are fairly nice downloads for Windows and OSX that let you use SavvyCAN without having to try to compile it yourself. For Linux the situation used to be more grim but a few days ago I successfully got an AppImage of SavvyCAN so it will work out of the box on Linux too. For GVRET it sort of depends on which device you actually have. I believe most all the actual devices from EVTV should already have the software on them. So, perhaps hold off on trying to flash anything to the board until you're sure it needs it.
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub, or mute the thread.


Successfully aliased the URL <https://historicalq-client-nqzlvv4iw.now.sh> to the following aliases:

* https://historicalq-client.blakelowrey1.now.sh
* https://historicalq-client-git-master.blakelowrey1.now.sh


HEH.


Cool! But maybe the `pb.Organization` type in the `ag` folder should have a method called `HasAdminRole()`. Just add another file called `ag/organization.go` with this method. Also, you may want to use the appropriate const instead of `admin` string in the implementation of the `HasAdminRole()`.


I was expecting Alice to generate the hash with something like https://github.com/emn178/js-sha3

Yes, I was expecting Carol to use the same address and password that was part of the hash generation. I made the assumption that Alice will know Carol's receiving address although I'm not sure if that is correct.


ScheduleManagerRefactor (Myoldmopar) - x86_64-Linux-Ubuntu-18.04-gcc-7.4-UnitTestsCoverage-Debug: OK (1164 of 1164 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-42.47%25-green.png)


Successfully aliased the URL <https://accessabar-nb5q8zeaw.now.sh> to the following aliases:

* https://accessabar.handsfree.now.sh
* https://accessabar-git-master.handsfree.now.sh


Successfully aliased the URL <https://redirect-ojn9acbz9.now.sh> to the following aliases:

* https://ment.ink
* https://www.ment.ink
* https://www.niels.ment.ink
* https://nielsmentink.tk
* https://www.nielsmentink.tk
* https://redirect.nielsmentink.now.sh
* https://redirect-git-master.nielsmentink.now.sh


sprynet.com/MAIL/USERS/ALL.EGGA CUITE CAI CANNOT TELL US A


Successfully aliased the URL <https://hacker-hacker-news-95frb59bv.now.sh> to the following aliases:

* https://hacker-hacker-news.paulitolinhares.now.sh
* https://hacker-hacker-news-git-master.paulitolinhares.now.sh


Sounds like we can leave the code as is, and we'll need to either update the code before `exrsrv.tf` funds are exhausted or we'll need to multisig to change the payrates to align with the inflation rates described in the TBNOA.

We'll leave this code as is unless anyone else feels otherwise.


Отчет о недоставке письма на другой адрес (не Яндекс)
Письмо отправлено на несуществующий адрес
Письмо отправлено на несуществующий адрес
Если вы отправили письмо с вашего почтового ящика на Яндексе и получили отчет о недоставке, в котором указано одно из сообщений: «Bad destination mailbox address», «Bad destination system address», «Bad destination mailbox address syntax», «DNS: no such domain», «Invalid mailbox», «Invalid recipient», «Host or domain name not found», «Mailbox unavailable», «No such user here», «The email account that you tried to reach does not exist», «Unrouteable address», «User not found», «User unknown», «401 4.5.4 Invalid arguments - possible version mismatch» это значит, что письмо отправлено на несуществующий адрес.

Убедитесь, что адрес получателя набран латиницей и не содержит лишних знаков препинания, пробелов или кавычек. Уточните адрес у получателя еще раз и повторите отправку письма.

Была ли статья полезна?
Также вы можете перейти на сервис
NEWS.YANDEX.NET A


Входящие (32 новых письма) — Яндекс.Почта
              **********

Это письмо отправлено почтовым сервером yandex.ru.

К сожалению, мы вынуждены сообщить Вам о том, что Ваше письмо не может

быть отправлено одному или нескольким адресатам. Технические подробности можно найти ниже.
Возможные причины недоставки указаны по адресу:

https://yandex.ru/support/mail-new/wizard/zout_send/not-got-report-yes-other.html
Пожалуйста, не отвечайте на это сообщение.

              **********

This is the mail system at host yandex.ru.

I'm sorry to have to inform you that your message could not

be delivered to one or more recipients. It's attached below.
You can find the the possible reasons of the undelivered message letter here:

https://yandex.com/support/mail-new/wizard/zout_send/not-got-report-yes-other.html
Please, do not reply to this message.

<chestor@gmail.com>: host gmail-smtp-in.l.google.com[74.125.131.26] said:

    550-5.1.1 The email account that you tried to reach does not exist. Please    try 550-5.1.1 double-checking the recipient's email address for typos or    550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1    https://support.google.com/mail/?p=NoSuchUser u2si60079050lji.178 - gsmtp    (in reply to RCPT TO command)
Скачать присоединенный файл ():

Reporting-MTA: dns; forward500o.mail.yandex.netX-Yandex-Queue-ID: 97577600C2X-Yandex-Sender: rfc822; deiloleg@yandex.ruArrival-Date: Wed, 7 Aug 2019 01:38:53 +0300 (MSK)

Final-Recipient: rfc822; chestor@gmail.com

Original-Recipient: rfc822;chestor@gmail.comAction: failedStatus: 5.1.1Remote-MTA: dns; gmail-smtp-in.l.google.comDiagnostic-Code: smtp; 550-5.1.1 The email account that you tried to reach does    not exist. Please try 550-5.1.1 double-checking the recipient's email    address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1    https://support.google.com/mail/?p=NoSuchUser u2si60079050lji.178 - gsmtp
Help: Please visit https://yandex.ru/support/mail-new/wizard/zout_send/not-got-report-yes-other/no-such-user.html


assignment 2 in unit 1 submission.


###### :x: Test Failed: `va/tests/phpunit`
  ```bash
  phpunit --exclude-group disabled tests/phpunit --colors=always
  ```
  ```bash
  PHPUnit 6.5.14 by Sebastian Bergmann and contributors.

Testing tests/phpunit
EEEEEEEEEEEEEEEEEEEEEEEEE                                         25 / 25 (100%)

Time: 190 ms, Memory: 12.00MB

There were 25 errors:

1) tests\phpunit\CreateMediaTest::testCreateMedia with data set #0 (2)
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

2) tests\phpunit\CreateTaxonomyTerm::testCreateTaxonomyTerm with data set #0 (2)
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

3) tests\phpunit\graphql\ServiceAvailable::testGraphql with data set #0 ('{\n          nodeQuery(limit:...      ')
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

4) tests\phpunit\AccessNodeEditTabs::testAccessNodeEditTab
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

5) tests\phpunit\CreateNodePerformance::testCreateNodePerformance with data set #0 (5)
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

6) tests\phpunit\EditNodePerformance::testEditNodePerformance with data set #0 ('page', 5)
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

7) tests\phpunit\EditNodePerformance::testEditNodePerformance with data set #1 ('landing_page', 5)
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

8) tests\phpunit\LoginPerformance::testLoginPerformance with data set #0 (2)
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

9) tests\phpunit\roleChecks\RoleChecks::testRole
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

10) tests\phpunit\roleChecks\RoleChecks::testUserAccessAdminRolePerms
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

11) tests\phpunit\AdminDashboardSecurity::testAdminPermissions with data set #0 ('authenticated')
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

12) tests\phpunit\AdminDashboardSecurity::testAdminPermissions with data set #1 ('content_api_consumer')
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

13) tests\phpunit\AdminDashboardSecurity::testAdminPermissions with data set #2 ('redirect_admnistrator')
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

14) tests\phpunit\CreateNodeSecurity::testCreateNodePermissions with data set #0 ('authenticated')
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

15) tests\phpunit\CreateNodeSecurity::testCreateNodePermissions with data set #1 ('content_api_consumer')
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

16) tests\phpunit\CreateNodeSecurity::testCreateNodePermissions with data set #2 ('admnistrator_users')
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

17) tests\phpunit\graphql\ServiceSecure::testGraphqlAccess with data set #0 ('{\n          nodeQuery(limit:...      ')
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

18) tests\phpunit\SecurityRolesPermissions::testSecurityRolesPermissions with data set #0 ('anonymous', array('access content', 'access site-wide contact form', 'view media'))
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

19) tests\phpunit\SecurityRolesPermissions::testSecurityRolesPermissions with data set #1 ('authenticated', array('access content', 'access environment indicator', 'access site-wide contact form', 'access taxonomy overview', 'execute graphql requests', 'execute persisted graphql requests', 'view media'))
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

20) tests\phpunit\SecurityRolesPermissions::testSecurityRolesPermissions with data set #2 ('content_api_consumer', array('use graphql explorer', 'use graphql voyager', 'view any unpublished content', 'view own unpublished content'))
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

21) tests\phpunit\SecurityRolesPermissions::testSecurityRolesPermissions with data set #3 ('content_editor', array('access administration pages', 'access content overview', 'access files overview', 'access image_browser entity b... pages', 'access media overview', 'access media_browser entity b... pages', 'access shortcuts', 'access toolbar', 'access user profiles', 'administer menu', 'break content lock', 'create alert block content', 'create document media', 'create event content', 'create event_listing content', 'create health_care_local_faci...ontent', 'create health_care_local_heal...ontent', 'create health_care_region_det...ontent', 'create image media', 'create landing_page content', 'create media', 'create news_story content', 'create outreach_asset content', 'create page content', 'create person_profile content', 'create press_release content', 'create promo block content', 'create publication_listing content', 'create regional_health_care_s...ontent', 'create support_service content', 'create video media', 'delete media', 'edit any document media', 'edit any documentation_page content', 'edit any event content', 'edit any event_listing content', 'edit any health_care_local_fa...ontent', 'edit any health_care_local_he...ontent', 'edit any health_care_region_d...ontent', 'edit any health_care_region_p...ontent', 'edit any image media', 'edit any landing_page content', 'edit any news_story content', 'edit any office content', 'edit any outreach_asset content', 'edit any page content', 'edit any person_profile content', 'edit any press_release content', 'edit any publication_listing content', 'edit any regional_health_care...ontent', 'edit any support_service content', 'edit any video media', 'edit own documentation_page content', 'edit own event content', 'edit own event_listing content', 'edit own health_care_local_fa...ontent', 'edit own health_care_local_he...ontent', 'edit own health_care_region_d...ontent', 'edit own health_care_region_p...ontent', 'edit own landing_page content', 'edit own news_story content', 'edit own office content', 'edit own outreach_asset content', 'edit own page content', 'edit own person_profile content', 'edit own press_release content', 'edit own publication_listing content', 'edit own regional_health_care...ontent', 'edit own support_service content', 'rebuild tablefield', 'schedule editorial transition..._draft', 'update any alert block content', 'update any media', 'update any promo block content', 'update media', 'use editorial transition arch...lished', 'use editorial transition crea..._draft', 'use editorial transition review', 'use moderation sidebar', 'use text format rich_text', 'use workbench access', 'view all media revisions', 'view all revisions', 'view any unpublished content', 'view event revisions', 'view event_listing revisions', 'view health_care_local_facili...isions', 'view health_care_local_health...isions', 'view health_care_region_detai...isions', 'view health_care_region_page revisions', 'view landing_page revisions', 'view latest version', 'view news_story revisions', 'view office revisions', 'view outreach_asset revisions', 'view own unpublished content', 'view page revisions', 'view person_profile revisions', 'view press_release revisions', 'view publication_listing revisions', 'view regional_health_care_ser...isions', 'view sections in toolbar', 'view support_service revisions', 'view the administration theme', 'view unpublished paragraphs', 'view workbench access information'))
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

22) tests\phpunit\SecurityRolesPermissions::testSecurityRolesPermissions with data set #4 ('content_reviewer', array('access administration pages', 'access content overview', 'access files overview', 'access image_browser entity b... pages', 'access media overview', 'access media_browser entity b... pages', 'access shortcuts', 'access toolbar', 'access user profiles', 'administer menu', 'break content lock', 'create alert block content', 'create document media', 'create event content', 'create event_listing content', 'create health_care_local_faci...ontent', 'create health_care_local_heal...ontent', 'create health_care_region_det...ontent', 'create image media', 'create landing_page content', 'create media', 'create news_story content', 'create outreach_asset content', 'create page content', 'create person_profile content', 'create press_release content', 'create promo block content', 'create publication_listing content', 'create regional_health_care_s...ontent', 'create support_service content', 'create video media', 'delete media', 'edit any document media', 'edit any documentation_page content', 'edit any event content', 'edit any event_listing content', 'edit any health_care_local_fa...ontent', 'edit any health_care_local_he...ontent', 'edit any health_care_region_d...ontent', 'edit any health_care_region_p...ontent', 'edit any image media', 'edit any landing_page content', 'edit any news_story content', 'edit any office content', 'edit any outreach_asset content', 'edit any page content', 'edit any person_profile content', 'edit any press_release content', 'edit any publication_listing content', 'edit any regional_health_care...ontent', 'edit any support_service content', 'edit any video media', 'edit own documentation_page content', 'edit own event content', 'edit own event_listing content', 'edit own health_care_local_fa...ontent', 'edit own health_care_local_he...ontent', 'edit own health_care_region_d...ontent', 'edit own health_care_region_p...ontent', 'edit own landing_page content', 'edit own news_story content', 'edit own office content', 'edit own outreach_asset content', 'edit own page content', 'edit own person_profile content', 'edit own press_release content', 'edit own publication_listing content', 'edit own regional_health_care...ontent', 'edit own support_service content', 'rebuild tablefield', 'schedule editorial transition..._draft', 'update any alert block content', 'update any media', 'update any promo block content', 'update media', 'use editorial transition arch...lished', 'use editorial transition crea..._draft', 'use editorial transition review', 'use editorial transition stag...ishing', 'use moderation sidebar', 'use text format rich_text', 'use workbench access', 'view all media revisions', 'view all revisions', 'view any unpublished content', 'view event revisions', 'view event_listing revisions', 'view health_care_local_facili...isions', 'view health_care_local_health...isions', 'view health_care_region_detai...isions', 'view health_care_region_page revisions', 'view landing_page revisions', 'view latest version', 'view news_story revisions', 'view office revisions', 'view outreach_asset revisions', 'view own unpublished content', 'view page revisions', 'view person_profile revisions', 'view press_release revisions', 'view publication_listing revisions', 'view regional_health_care_ser...isions', 'view sections in toolbar', 'view support_service revisions', 'view the administration theme', 'view unpublished paragraphs', 'view workbench access information'))
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

23) tests\phpunit\SecurityRolesPermissions::testSecurityRolesPermissions with data set #5 ('content_publisher', array('access administration pages', 'access content overview', 'access files overview', 'access image_browser entity b... pages', 'access media overview', 'access media_browser entity b... pages', 'access shortcuts', 'access toolbar', 'access user profiles', 'administer menu', 'break content lock', 'create alert block content', 'create document media', 'create event content', 'create event_listing content', 'create health_care_local_faci...ontent', 'create health_care_local_heal...ontent', 'create health_care_region_det...ontent', 'create health_care_region_page content', 'create image media', 'create landing_page content', 'create media', 'create news_story content', 'create office content', 'create outreach_asset content', 'create page content', 'create person_profile content', 'create press_release content', 'create promo block content', 'create publication_listing content', 'create regional_health_care_s...ontent', 'create support_service content', 'create terms in health_care_s...xonomy', 'create url aliases', 'create video media', 'delete any alert block content', 'delete any document media', 'delete any event content', 'delete any event_listing content', 'delete any health_care_local_...ontent', 'delete any health_care_local_...ontent', 'delete any health_care_region...ontent', 'delete any health_care_region...ontent', 'delete any image media', 'delete any landing_page content', 'delete any media', 'delete any news_story content', 'delete any office content', 'delete any outreach_asset content', 'delete any page content', 'delete any person_profile content', 'delete any press_release content', 'delete any promo block content', 'delete any publication_listing content', 'delete any regional_health_ca...ontent', 'delete any support_service content', 'delete any video media', 'delete media', 'delete own document media', 'delete own documentation_page content', 'delete own event content', 'delete own event_listing content', 'delete own health_care_local_...ontent', 'delete own health_care_local_...ontent', 'delete own health_care_region...ontent', 'delete own health_care_region...ontent', 'delete own image media', 'delete own landing_page content', 'delete own news_story content', 'delete own office content', 'delete own outreach_asset content', 'delete own page content', 'delete own person_profile content', 'delete own press_release content', 'delete own publication_listing content', 'delete own regional_health_ca...ontent', 'delete own support_service content', 'delete own video media', 'delete terms in health_care_s...xonomy', 'edit any document media', 'edit any documentation_page content', 'edit any event content', 'edit any event_listing content', 'edit any health_care_local_fa...ontent', 'edit any health_care_local_he...ontent', 'edit any health_care_region_d...ontent', 'edit any health_care_region_p...ontent', 'edit any image media', 'edit any landing_page content', 'edit any news_story content', 'edit any office content', 'edit any outreach_asset content', 'edit any page content', 'edit any person_profile content', 'edit any press_release content', 'edit any publication_listing content', 'edit any regional_health_care...ontent', 'edit any support_service content', 'edit any video media', 'edit own document media', 'edit own documentation_page content', 'edit own event content', 'edit own event_listing content', 'edit own health_care_local_fa...ontent', 'edit own health_care_local_he...ontent', 'edit own health_care_region_d...ontent', 'edit own health_care_region_p...ontent', 'edit own image media', 'edit own landing_page content', 'edit own news_story content', 'edit own office content', 'edit own outreach_asset content', 'edit own page content', 'edit own person_profile content', 'edit own press_release content', 'edit own publication_listing content', 'edit own regional_health_care...ontent', 'edit own support_service content', 'edit own video media', 'edit terms in health_care_ser...xonomy', 'rebuild tablefield', 'revert all revisions', 'revert event revisions', 'revert event_listing revisions', 'revert health_care_local_faci...isions', 'revert health_care_local_heal...isions', 'revert health_care_region_det...isions', 'revert health_care_region_pag...isions', 'revert landing_page revisions', 'revert news_story revisions', 'revert office revisions', 'revert outreach_asset revisions', 'revert page revisions', 'revert person_profile revisions', 'revert press_release revisions', 'revert publication_listing revisions', 'revert regional_health_care_s...isions', 'revert support_service revisions', 'schedule editorial transition archive', 'schedule editorial transition...lished', 'schedule editorial transition..._draft', 'schedule editorial transition publish', 'update any alert block content', 'update any media', 'update any promo block content', 'update media', 'use editorial transition archive', 'use editorial transition arch...lished', 'use editorial transition crea..._draft', 'use editorial transition publish', 'use editorial transition review', 'use editorial transition stag...ishing', 'use moderation sidebar', 'use text format rich_text', 'use workbench access', 'view all media revisions', 'view all revisions', 'view any unpublished content', 'view event revisions', 'view event_listing revisions', 'view health_care_local_facili...isions', 'view health_care_local_health...isions', 'view health_care_region_detai...isions', 'view health_care_region_page revisions', 'view landing_page revisions', 'view latest version', 'view news_story revisions', 'view office revisions', 'view outreach_asset revisions', 'view own unpublished content', 'view page revisions', 'view person_profile revisions', 'view press_release revisions', 'view publication_listing revisions', 'view regional_health_care_ser...isions', 'view sections in toolbar', 'view support_service revisions', 'view the administration theme', 'view unpublished paragraphs', 'view workbench access information'))
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

24) tests\phpunit\SecurityRolesPermissions::testSecurityRolesPermissions with data set #6 ('admnistrator_users', array('access content overview', 'access files overview', 'access shortcuts', 'access toolbar', 'administer menu', 'administer nodes', 'administer users', 'assign content_api_consumer role', 'assign content_editor role', 'assign content_publisher role', 'assign content_reviewer role', 'assign documentation_editor role', 'assign selected workbench access', 'batch update workbench access', 'break content lock', 'bypass password policies', 'bypass workbench access', 'create terms in administration', 'delete terms in administration', 'edit terms in administration', 'manage password reset', 'use text format rich_text', 'view sections in toolbar', 'view workbench access information'))
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

25) tests\phpunit\AccessWorkflow::testAccessWorkflow
mkdir(): Permission denied

/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/GoutteTrait.php:63
/var/aegir/projects/cms/pr496/docroot/vendor/weitzman/drupal-test-traits/src/ExistingSiteBase.php:53

ERRORS!
Tests: 25, Assertions: 0, Errors: 25.

  ```
*AUTOMATED COMMENT FROM provision-ops/yaml-tests, running on devshop.cms.va.gov*


MAMMYQE


COPYWRUTE DESIGIONS, GHOSTS DIVISIONS /A /1 /1  /1  /1  /1 AMEQUI


> Could’ve used msg() but okay.

Does it matter? Lmao.


I just asked about Linux because the commit you're commenting on was referring to an install script for Linux. But, it's not a problem. SavvyCAN can be downloaded for Windows at this link: https://www.savvycan.com/SavvyCAN.zip

You'll have to extract the files to somewhere on your computer. Then you should be able to run it by just double clicking on the Savvycan executable.

But, yes, plug the module into your computer and see what happens. On Windows it might need drivers. You can get the drivers for the board by downloading the Arduino IDE here: https://www.arduino.cc/download_handler.php?f=/arduino-1.8.9-windows.exe

You don't actually have to ever run the IDE, just install it. It has the drivers for the various boards it supports. I know that seems kind of dumb but Windows doesn't otherwise have the drivers (at least for most versions of Windows) so it can help to install the IDE to get the drivers. If it worked then the module should come up as a serial port on the computer. You can then use a serial program to talk to it (or give SavvyCAN a try. It ought to be able to connect.)


This seems to work fine as well:

co@no:~/src$ pip3 install -e git+https://github.com/paulcrawford/Adafruit_Blinka.git#egg=Adafruit_Blinka
Obtaining Adafruit_Blinka from git+https://github.com/paulcrawford/Adafruit_Blinka.git#egg=Adafruit_Blinka
  Updating ./src/adafruit-blinka clone
Collecting Adafruit-PlatformDetect (from Adafruit_Blinka)
  Downloading https://files.pythonhosted.org/packages/78/e1/e527fe2bd483afc55e3f1c802b5f651da8d1a14287f5e8a15865cb351c58/Adafruit-PlatformDetect-1.3.0.tar.gz
Collecting Adafruit-PureIO (from Adafruit_Blinka)
Collecting sysv_ipc (from Adafruit_Blinka)
Collecting spidev (from Adafruit_Blinka)
Building wheels for collected packages: Adafruit-PlatformDetect
  Running setup.py bdist_wheel for Adafruit-PlatformDetect ... done
  Stored in directory: /home/daco/.cache/pip/wheels/e4/c8/41/a9174aa7f408154b977b569841651c20b56692cf966620dbc8
Successfully built Adafruit-PlatformDetect
Installing collected packages: Adafruit-PlatformDetect, Adafruit-PureIO, sysv-ipc, spidev, Adafruit-Blinka
  Found existing installation: Adafruit-Blinka 2.2.1.dev30+gaaa4494
    Uninstalling Adafruit-Blinka-2.2.1.dev30+gaaa4494:
      Successfully uninstalled Adafruit-Blinka-2.2.1.dev30+gaaa4494
  Running setup.py develop for Adafruit-Blinka
Successfully installed Adafruit-Blinka Adafruit-PlatformDetect-1.3.0 Adafruit-PureIO-0.2.3 spidev-3.4 sysv-ipc-1.0.0
co@no:~/src$ sudo python3 blinkatest.py
[sudo] password for daco:
Hello blinka!
Digital IO ok!
I2C ok!
SPI ok!
done!

I also tested mcp230xx_simpletest.py:

co@no:~/src$ sudo python3 mcp230xx_simpletest.py
Pin 1 is at a high level: False
Pin 1 is at a high level: False
Pin 1 is at a high level: False
Pin 1 is at a high level: False
Pin 1 is at a high level: False
Pin 1 is at a high level: False
^CTraceback (most recent call last):
  File "mcp230xx_simpletest.py", line 47, in <module>
    time.sleep(3.5)
KeyboardInterrupt

It worked fine as well.

I think we are ready to go...


Eliminated some unnecessary stuff (internal rendering of the custom objects) that was executed before the start of every simulation. Now, those algorithms are run only once. Therefore, after starting the simulation once, the waiting time between pressing the button and the simulation actually starting could be increased significantly.