This file described dependencies and potential troubleshooting tips.

This paper was run using v1.0.0 of the MeasuringLandscape package. This release reflects the state of the code as of publication. It is the best chance at obtaining identical results as shown in print. Future releases will improve the presentation of the R-Notebooks and refactor the code to be more readable and reusable and may not generate exactly identical figures or messages. This version is archived so that even as the package improves over time, the analysis can be rerun against that specific version of the code.

This package is highly dependent on specific package versions. Many packages updated their interfaces just over the course of writing this paper. These are the specific versions of packages used.

sessionInfo()

# install.packages("devtools") 
#devtools::install_github("rexdouglass/MeasuringLandscape") #@v1.0.0

You may hit an error “`maximal number of DLLs reached…” This is set by an environmental variable in R. We’ve specifcied it in the included “.Renviron” file “R_MAX_NUM_DLLS = 614”" which should work unless your system has a hard fixed lower level or you specifcy it elsehwere.

MeasuringLandscape depends on a number of other packages, some with their own complicated dependencies.

First SF, which requires GDAL. Follow the install instructions for SF which vary depending on your operating system.

install.packages('sf') #will either work or fail depending on when you have GDAL installed

Next we recomend all of tidyverse and tidymodels

install.packages("tidyverse")

In order to use specific fonts in the pdf, we use a system called Cairo. To use Cairo, must also install from https://www.cairographics.org/download/

#configure: error: Cannot find cairo.h! Please install cairo (http://www.cairographics.org/) and/or set CAIRO_CFLAGS/LIBS correspondingly
#sudo apt install r-cran-cairo
install.packages('Cairo', dependencies=T)
if(!require(devtools)) install.packages("devtools")
devtools::install_github("dselivanov/LSHR") 
install.packages('data.table', dependencies=T)
install.packages('sf', dependencies=T)
install.packages('digest', dependencies=T)
install.packages('janitor', dependencies=T)
install.packages('mosaic', dependencies=T)
install.packages('janitor', dependencies=T)
install.packages('here')
install.packages('re2r', dependencies=T)
install.packages('xgboost', dependencies=T)
install.packages('dummies', dependencies=T)
install.packages('fastDummies', dependencies=T)
install.packages('doParallel', dependencies=T)
install.packages('quanteda', dependencies=T)
install.packages('rgdal', dependencies=T)
install.packages('raster', dependencies=T)
install.packages('Metrics', dependencies=T)
install.packages('MLmetrics', dependencies=T)
install.packages('strigr', dependencies=T)
install.packages('cowplot', dependencies=T)
install.packages('units', dependencies=T)
install.packages('ggrepel', dependencies=T)
install.packages('ggmap', dependencies=T)
install.packages('ggformula', dependencies=T)
install.packages('precrec', dependencies=T)
# must download 

devtools::document()

#library("miniCRAN")
#tags <- "MeasuringLandscape"
#pkgDep(tags, availPkgs = cranJuly2014)

require(devtools)
#install_version("backports", version = "1.1.0")
#library(backports)
LS0tCnRpdGxlOiAiMDAgUHJvamVjdCBTZXR1cCIKb3V0cHV0OiBodG1sX25vdGVib29rCmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lCi0tLQo8c3R5bGU+CiAgICBib2R5IC5tYWluLWNvbnRhaW5lciB7CiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOwogICAgfQo8L3N0eWxlPgoKVGhpcyBmaWxlIGRlc2NyaWJlZCBkZXBlbmRlbmNpZXMgYW5kIHBvdGVudGlhbCB0cm91Ymxlc2hvb3RpbmcgdGlwcy4KClRoaXMgcGFwZXIgd2FzIHJ1biB1c2luZyB2MS4wLjAgb2YgdGhlIE1lYXN1cmluZ0xhbmRzY2FwZSBwYWNrYWdlLiBUaGlzIHJlbGVhc2UgcmVmbGVjdHMgdGhlIHN0YXRlIG9mIHRoZSBjb2RlIGFzIG9mIHB1YmxpY2F0aW9uLiBJdCBpcyB0aGUgYmVzdCBjaGFuY2UgYXQgb2J0YWluaW5nIGlkZW50aWNhbCByZXN1bHRzIGFzIHNob3duIGluIHByaW50LiBGdXR1cmUgcmVsZWFzZXMgd2lsbCBpbXByb3ZlIHRoZSBwcmVzZW50YXRpb24gb2YgdGhlIFItTm90ZWJvb2tzIGFuZCByZWZhY3RvciB0aGUgY29kZSB0byBiZSBtb3JlIHJlYWRhYmxlIGFuZCByZXVzYWJsZSBhbmQgbWF5IG5vdCBnZW5lcmF0ZSBleGFjdGx5IGlkZW50aWNhbCBmaWd1cmVzIG9yIG1lc3NhZ2VzLiBUaGlzIHZlcnNpb24gaXMgYXJjaGl2ZWQgc28gdGhhdCBldmVuIGFzIHRoZSBwYWNrYWdlIGltcHJvdmVzIG92ZXIgdGltZSwgdGhlIGFuYWx5c2lzIGNhbiBiZSByZXJ1biBhZ2FpbnN0IHRoYXQgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUgY29kZS4KClRoaXMgcGFja2FnZSBpcyBoaWdobHkgZGVwZW5kZW50IG9uIHNwZWNpZmljIHBhY2thZ2UgdmVyc2lvbnMuIE1hbnkgcGFja2FnZXMgdXBkYXRlZCB0aGVpciBpbnRlcmZhY2VzIGp1c3Qgb3ZlciB0aGUgY291cnNlIG9mIHdyaXRpbmcgdGhpcyBwYXBlci4gVGhlc2UgYXJlIHRoZSBzcGVjaWZpYyB2ZXJzaW9ucyBvZiBwYWNrYWdlcyB1c2VkLiAKCmBgYHtyfQpzZXNzaW9uSW5mbygpCgojIGluc3RhbGwucGFja2FnZXMoImRldnRvb2xzIikgCiNkZXZ0b29sczo6aW5zdGFsbF9naXRodWIoInJleGRvdWdsYXNzL01lYXN1cmluZ0xhbmRzY2FwZSIpICNAdjEuMC4wCmBgYAoKWW91IG1heSBoaXQgYW4gZXJyb3IgImBtYXhpbWFsIG51bWJlciBvZiBETExzIHJlYWNoZWQuLi4iIFRoaXMgaXMgc2V0IGJ5IGFuIGVudmlyb25tZW50YWwgdmFyaWFibGUgaW4gUi4gV2UndmUgc3BlY2lmY2llZCBpdCBpbiB0aGUgaW5jbHVkZWQgIi5SZW52aXJvbiIgZmlsZSAiUl9NQVhfTlVNX0RMTFMgPSA2MTQiIiB3aGljaCBzaG91bGQgd29yayB1bmxlc3MgeW91ciBzeXN0ZW0gaGFzIGEgaGFyZCBmaXhlZCBsb3dlciBsZXZlbCBvciB5b3Ugc3BlY2lmY3kgaXQgZWxzZWh3ZXJlLgoKTWVhc3VyaW5nTGFuZHNjYXBlIGRlcGVuZHMgb24gYSBudW1iZXIgb2Ygb3RoZXIgcGFja2FnZXMsIHNvbWUgd2l0aCB0aGVpciBvd24gY29tcGxpY2F0ZWQgZGVwZW5kZW5jaWVzLgoKRmlyc3QgU0YsIHdoaWNoIHJlcXVpcmVzIEdEQUwuIEZvbGxvdyB0aGUgW2luc3RhbGwgaW5zdHJ1Y3Rpb25zIGZvciBTRl0oaHR0cHM6Ly9naXRodWIuY29tL3Itc3BhdGlhbC9zZikgd2hpY2ggdmFyeSBkZXBlbmRpbmcgb24geW91ciBvcGVyYXRpbmcgc3lzdGVtLgoKYGBgIHIKaW5zdGFsbC5wYWNrYWdlcygnc2YnKSAjd2lsbCBlaXRoZXIgd29yayBvciBmYWlsIGRlcGVuZGluZyBvbiB3aGVuIHlvdSBoYXZlIEdEQUwgaW5zdGFsbGVkCmBgYAoKTmV4dCB3ZSByZWNvbWVuZCBhbGwgb2YgdGlkeXZlcnNlIGFuZCB0aWR5bW9kZWxzCgpgYGAgcgppbnN0YWxsLnBhY2thZ2VzKCJ0aWR5dmVyc2UiKQpgYGAKCgpJbiBvcmRlciB0byB1c2Ugc3BlY2lmaWMgZm9udHMgaW4gdGhlIHBkZiwgd2UgdXNlIGEgc3lzdGVtIGNhbGxlZCBDYWlyby4gVG8gdXNlIENhaXJvLCBtdXN0IGFsc28gaW5zdGFsbCBmcm9tIGh0dHBzOi8vd3d3LmNhaXJvZ3JhcGhpY3Mub3JnL2Rvd25sb2FkLwpgYGB7ciwgZXZhbD1GfQojY29uZmlndXJlOiBlcnJvcjogQ2Fubm90IGZpbmQgY2Fpcm8uaCEgUGxlYXNlIGluc3RhbGwgY2Fpcm8gKGh0dHA6Ly93d3cuY2Fpcm9ncmFwaGljcy5vcmcvKSBhbmQvb3Igc2V0IENBSVJPX0NGTEFHUy9MSUJTIGNvcnJlc3BvbmRpbmdseQojc3VkbyBhcHQgaW5zdGFsbCByLWNyYW4tY2Fpcm8KaW5zdGFsbC5wYWNrYWdlcygnQ2Fpcm8nLCBkZXBlbmRlbmNpZXM9VCkKYGBgCgoKYGBge3IsIGV2YWw9Rn0KaWYoIXJlcXVpcmUoZGV2dG9vbHMpKSBpbnN0YWxsLnBhY2thZ2VzKCJkZXZ0b29scyIpCmRldnRvb2xzOjppbnN0YWxsX2dpdGh1YigiZHNlbGl2YW5vdi9MU0hSIikgCmBgYAoKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoJ2RhdGEudGFibGUnLCBkZXBlbmRlbmNpZXM9VCkKYGBgCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygnc2YnLCBkZXBlbmRlbmNpZXM9VCkKYGBgCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygnZGlnZXN0JywgZGVwZW5kZW5jaWVzPVQpCmBgYAoKCmBgYHtyfQppbnN0YWxsLnBhY2thZ2VzKCdqYW5pdG9yJywgZGVwZW5kZW5jaWVzPVQpCmBgYAoKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoJ21vc2FpYycsIGRlcGVuZGVuY2llcz1UKQppbnN0YWxsLnBhY2thZ2VzKCdqYW5pdG9yJywgZGVwZW5kZW5jaWVzPVQpCmBgYAoKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoJ2hlcmUnKQpgYGAKCmBgYHtyfQppbnN0YWxsLnBhY2thZ2VzKCdyZTJyJywgZGVwZW5kZW5jaWVzPVQpCmBgYAoKYGBge3J9Cmluc3RhbGwucGFja2FnZXMoJ3hnYm9vc3QnLCBkZXBlbmRlbmNpZXM9VCkKYGBgCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygnZHVtbWllcycsIGRlcGVuZGVuY2llcz1UKQppbnN0YWxsLnBhY2thZ2VzKCdmYXN0RHVtbWllcycsIGRlcGVuZGVuY2llcz1UKQoKYGBgCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygnZG9QYXJhbGxlbCcsIGRlcGVuZGVuY2llcz1UKQppbnN0YWxsLnBhY2thZ2VzKCdxdWFudGVkYScsIGRlcGVuZGVuY2llcz1UKQpgYGAKCmBgYHtyfQppbnN0YWxsLnBhY2thZ2VzKCdyZ2RhbCcsIGRlcGVuZGVuY2llcz1UKQppbnN0YWxsLnBhY2thZ2VzKCdyYXN0ZXInLCBkZXBlbmRlbmNpZXM9VCkKYGBgCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygnTWV0cmljcycsIGRlcGVuZGVuY2llcz1UKQppbnN0YWxsLnBhY2thZ2VzKCdNTG1ldHJpY3MnLCBkZXBlbmRlbmNpZXM9VCkKaW5zdGFsbC5wYWNrYWdlcygnc3RyaWdyJywgZGVwZW5kZW5jaWVzPVQpCmluc3RhbGwucGFja2FnZXMoJ2Nvd3Bsb3QnLCBkZXBlbmRlbmNpZXM9VCkKaW5zdGFsbC5wYWNrYWdlcygndW5pdHMnLCBkZXBlbmRlbmNpZXM9VCkKaW5zdGFsbC5wYWNrYWdlcygnZ2dyZXBlbCcsIGRlcGVuZGVuY2llcz1UKQppbnN0YWxsLnBhY2thZ2VzKCdnZ21hcCcsIGRlcGVuZGVuY2llcz1UKQppbnN0YWxsLnBhY2thZ2VzKCdnZ2Zvcm11bGEnLCBkZXBlbmRlbmNpZXM9VCkKaW5zdGFsbC5wYWNrYWdlcygncHJlY3JlYycsIGRlcGVuZGVuY2llcz1UKQoKYGBgCgpgYGB7cn0KIyBtdXN0IGRvd25sb2FkIAoKZGV2dG9vbHM6OmRvY3VtZW50KCkKCiNsaWJyYXJ5KCJtaW5pQ1JBTiIpCiN0YWdzIDwtICJNZWFzdXJpbmdMYW5kc2NhcGUiCiNwa2dEZXAodGFncywgYXZhaWxQa2dzID0gY3Jhbkp1bHkyMDE0KQoKcmVxdWlyZShkZXZ0b29scykKI2luc3RhbGxfdmVyc2lvbigiYmFja3BvcnRzIiwgdmVyc2lvbiA9ICIxLjEuMCIpCiNsaWJyYXJ5KGJhY2twb3J0cykKCmBgYAo=