{
  "_id": "6a23c0aa530b9bc726bdbcc4",
  "Package": "forestr",
  "Type": "Package",
  "Version": "2.1.0",
  "Title": "Ecosystem and Canopy Structural Complexity Metrics from LiDAR",
  "Authors@R": "c(person(\"Jeff\", \"Atkins\", email = \"jwatkins6@vcu.edu\",\nrole = c(\"aut\", \"cre\")),\nperson(\"Gil\", \"Bohrer\", role = \"aut\"),\nperson(\"Robert\", \"Fahey\", role = \"aut\"),\nperson(\"Brady\", \"Hardiman\", role = \"aut\"),\nperson(\"Christopher\", \"Gough\", role = \"aut\"),\nperson(\"Timothy\", \"Morin\", role = \"aut\"),\nperson(\"Atticus\", \"Stovall\", role = \"aut\"),\nperson(\"Naupaka\", \"Zimmerman\", role = c(\"ctb\", \"aut\")),\nperson(\"Chris\", \"Black\", role = \"ctb\"))",
  "Author": "Jeff Atkins [aut, cre], Gil Bohrer [aut], Robert Fahey [aut],\nBrady Hardiman [aut], Chrisopher Gough [aut], Timothy Morin\n[aut], Atticus Stovall [aut], Naupaka Zimmerman [ctb, aut],\nChris Black [ctb]",
  "URL": "https://github.com/atkinsjeff/forestr",
  "Maintainer": "Jeff Atkins <jwatkins6@vcu.edu>",
  "Description": "Provides a toolkit for calculating forest and canopy\nstructural complexity metrics from terrestrial LiDAR (light\ndetection and ranging). References: Atkins et al. 2018\n<doi:10.1111/2041-210X.13061>; Hardiman et al. 2013\n<doi:10.3390/f4030537>; Parker et al. 2004\n<doi:10.1111/j.0021-8901.2004.00925.x>.",
  "License": "GPL-3",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "RoxygenNote": "7.1.1",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://atkinsjeff.r-universe.dev",
  "Date/Publication": "2023-11-28 20:17:02 UTC",
  "RemoteUrl": "https://github.com/atkinsjeff/forestr",
  "RemoteRef": "HEAD",
  "RemoteSha": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-06 06:36:22 UTC",
    "User": "root"
  },
  "MD5sum": "b126fc8cbbec3c0bdba0ecc0a9e205ec",
  "_user": "atkinsjeff",
  "_type": "src",
  "_file": "forestr_2.1.0.tar.gz",
  "_fileid": "f94d5b9361bf4072d5911e91991d71c25f99baa8d3d775f7071b8986bd094132",
  "_filesize": 1292777,
  "_sha256": "f94d5b9361bf4072d5911e91991d71c25f99baa8d3d775f7071b8986bd094132",
  "_created": "2026-06-06T06:36:22.000Z",
  "_published": "2026-06-06T06:39:38.475Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79858072820,
      "time": 123,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7452052129"
    },
    {
      "job": 79858072826,
      "time": 130,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7452053196"
    },
    {
      "job": 79858072821,
      "time": 155,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7452052831"
    },
    {
      "job": 79858072824,
      "time": 138,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7452051631"
    },
    {
      "job": 79857804008,
      "time": 287,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7452037721"
    },
    {
      "job": 79858072817,
      "time": 112,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7452050795"
    },
    {
      "job": 79858072822,
      "time": 86,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7452047880"
    },
    {
      "job": 79858072825,
      "time": 71,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7452046124"
    },
    {
      "job": 79858072819,
      "time": 74,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7452046470"
    }
  ],
  "_buildurl": "https://github.com/r-universe/atkinsjeff/actions/runs/27055070472",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/atkinsjeff/forestr",
  "_commit": {
    "id": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
    "author": "Jeff Atkins <jwatkins6@vcu.edu>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Update README.md",
    "time": 1701202622
  },
  "_maintainer": {
    "name": "Jeff Atkins",
    "email": "jwatkins6@vcu.edu",
    "login": "atkinsjeff",
    "description": "Assistant Professor, VCU, School of Life Science and Sustainability.\nFormer Research Biologist with the USDA Forest Service, Southern Research Station\n",
    "uuid": 8354517
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.1.2",
      "role": "Depends"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "plyr",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "viridis",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "moments",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "atkinsjeff",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [],
  "_tags": [],
  "_stars": 31,
  "_contributors": [
    {
      "user": "atkinsjeff",
      "count": 209,
      "uuid": 8354517
    },
    {
      "user": "infotroph",
      "count": 5,
      "uuid": 1256435
    },
    {
      "user": "naupaka",
      "count": 2,
      "uuid": 1428071
    }
  ],
  "_userbio": {
    "uuid": 8354517,
    "type": "user",
    "name": "Jeff Atkins",
    "description": "Assistant Professor, VCU, School of Life Science and Sustainability.\r\nFormer Research Biologist with the USDA Forest Service, Southern Research Station\r\n"
  },
  "_downloads": {
    "count": 141,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/forestr"
  },
  "_devurl": "https://github.com/atkinsjeff/forestr",
  "_searchresults": 32,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/forestr.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/atkinsjeff/forestr",
  "_realowner": "atkinsjeff",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.1",
      "date": "2018-03-05"
    },
    {
      "version": "2.0.1",
      "date": "2020-01-31"
    },
    {
      "version": "2.0.2",
      "date": "2020-04-14"
    }
  ],
  "_exports": [
    "adjust_by_user",
    "calc_enl",
    "calc_fhd",
    "calc_gap_fraction",
    "calc_gini",
    "calc_intensity",
    "calc_rugosity",
    "calc_rumple",
    "calc_tls_mean_leaf_ht",
    "calc_vai",
    "code_hits",
    "csc_metrics",
    "get_transect_length",
    "make_matrix",
    "make_summary_matrix",
    "normalize_pcl",
    "normalize_pcl_mh",
    "pcl_diagnostic_plot",
    "plot_hit_grid",
    "plot_pavd",
    "process_multi_pcl",
    "process_pcl",
    "process_tls",
    "read_pcl",
    "read_pcl_multi",
    "split_transects_from_pcl",
    "write_hit_matrix_to_csv",
    "write_pcl_to_csv",
    "write_summary_matrix_to_csv"
  ],
  "_datasets": [
    {
      "name": "osbs",
      "title": "PCL transect from Ordway-Swisher Biological Station, Florida, US.",
      "object": "osbs",
      "class": [
        "data.frame"
      ],
      "fields": [
        "index",
        "return_distance",
        "intensity"
      ],
      "rows": 10506,
      "table": true,
      "tojson": true
    },
    {
      "name": "pcl_adjusted",
      "title": "a data frame LiDAR returns that have been split to x and z position and coded and adjusted for user height",
      "object": "pcl_adjusted",
      "class": [
        "data.frame"
      ],
      "fields": [
        "index",
        "return_distance",
        "intensity",
        "sky_hit",
        "can_hit",
        "marker"
      ],
      "rows": 14576,
      "table": true,
      "tojson": true
    },
    {
      "name": "pcl_coded",
      "title": "a data frame LiDAR returns that have been split to x and z position and coded",
      "object": "pcl_coded",
      "class": [
        "data.frame"
      ],
      "fields": [
        "index",
        "return_distance",
        "intensity",
        "sky_hit",
        "can_hit",
        "marker"
      ],
      "rows": 14576,
      "table": true,
      "tojson": true
    },
    {
      "name": "pcl_data",
      "title": "PCL transect from the University of Virginia",
      "object": "pcl_data",
      "class": [
        "data.frame"
      ],
      "fields": [
        "index",
        "return_distance",
        "intensity"
      ],
      "rows": 14576,
      "table": true,
      "tojson": true
    },
    {
      "name": "pcl_matrix",
      "title": "a LiDAR hit density by x, z position",
      "object": "pcl_matrix",
      "class": [
        "data.frame"
      ],
      "fields": [
        "xbin",
        "zbin",
        "bin.hits",
        "sky.hits",
        "can.hits",
        "lidar.pulses",
        "Freq"
      ],
      "rows": 1120,
      "table": true,
      "tojson": true
    },
    {
      "name": "pcl_norm",
      "title": "a data frame of normalized LiDAR return density",
      "object": "pcl_norm",
      "class": [
        "data.frame"
      ],
      "fields": [
        ".id",
        "xbin",
        "zbin",
        "bin.hits",
        "sky.hits",
        "can.hits",
        "lidar.pulses",
        "Freq",
        "hit.count",
        "phi",
        "dee",
        "x.counter",
        "sum.dee",
        "fee"
      ],
      "rows": 1120,
      "table": true,
      "tojson": true
    },
    {
      "name": "pcl_split",
      "title": "a data frame LiDAR returns that have been split to x and z position",
      "object": "pcl_split",
      "class": [
        "data.frame"
      ],
      "fields": [
        "index",
        "return_distance",
        "intensity",
        "sky_hit",
        "can_hit",
        "marker",
        "seg_num",
        "chunk_num",
        "xbin",
        "zbin"
      ],
      "rows": 13982,
      "table": true,
      "tojson": true
    },
    {
      "name": "pcl_summary",
      "title": "summary matrix",
      "object": "pcl_summary",
      "class": [
        "data.frame"
      ],
      "fields": [
        "xbin",
        "mean.ht",
        "sd.ht",
        "max.ht",
        "max.vai",
        "sum.vai",
        "sd.vai",
        "vai.z.sum",
        "max.vai.z",
        "height.bin"
      ],
      "rows": 40,
      "table": true,
      "tojson": true
    },
    {
      "name": "pcl_vai",
      "title": "a data frame of vegetation area index (VAI)",
      "object": "pcl_vai",
      "class": [
        "data.frame"
      ],
      "fields": [
        ".id",
        "xbin",
        "zbin",
        "bin.hits",
        "sky.hits",
        "can.hits",
        "lidar.pulses",
        "Freq",
        "hit.count",
        "phi",
        "dee",
        "x.counter",
        "sum.dee",
        "fee",
        "cvr",
        "olai",
        "vai"
      ],
      "rows": 1120,
      "table": true,
      "tojson": true
    },
    {
      "name": "red_pine",
      "title": "PCL transect from a red pine plantation in Northern Michigan, US.",
      "object": "red_pine",
      "class": [
        "data.frame"
      ],
      "fields": [
        "index",
        "return_distance",
        "intensity"
      ],
      "rows": 17559,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "pipe",
      "title": "'read_pcl' imports PCL or portable canopy LiDAR files into the workspace and formats them.",
      "topics": [
        "%>%",
        "read_pcl",
        "read_pcl_multi"
      ]
    },
    {
      "page": "adjust_by_user",
      "title": "Adjust by user height",
      "topics": [
        "adjust_by_user"
      ]
    },
    {
      "page": "calc_enl",
      "title": "Calculate rugosity and other higher level complexity metrics",
      "topics": [
        "calc_enl"
      ]
    },
    {
      "page": "calc_fhd",
      "title": "foliar height diversity",
      "topics": [
        "calc_fhd"
      ]
    },
    {
      "page": "calc_gap_fraction",
      "title": "Calculate gap fraction",
      "topics": [
        "calc_gap_fraction"
      ]
    },
    {
      "page": "calc_gini",
      "title": "Gini coefficient",
      "topics": [
        "calc_gini"
      ]
    },
    {
      "page": "calc_intensity",
      "title": "Intensity Statistics",
      "topics": [
        "calc_intensity"
      ]
    },
    {
      "page": "calc_rugosity",
      "title": "Calculate rugosity and other higher level complexity metrics",
      "topics": [
        "calc_rugosity"
      ]
    },
    {
      "page": "calc_rumple",
      "title": "Calculates rumple",
      "topics": [
        "calc_rumple"
      ]
    },
    {
      "page": "calc_tls_csc",
      "title": "Calculates rumple",
      "topics": [
        "calc_tls_csc"
      ]
    },
    {
      "page": "calc_tls_mean_leaf_ht",
      "title": "Process single PCL transects.",
      "topics": [
        "calc_tls_mean_leaf_ht"
      ]
    },
    {
      "page": "calc_vai",
      "title": "Calculate vegetation area index (VAI) from normalized PCL data matrix",
      "topics": [
        "calc_vai"
      ]
    },
    {
      "page": "code_hits",
      "title": "Code hits",
      "topics": [
        "code_hits"
      ]
    },
    {
      "page": "csc_metrics",
      "title": "Canopy cover and sky fraction estimates",
      "topics": [
        "csc_metrics"
      ]
    },
    {
      "page": "get_transect_length",
      "title": "Get transect length of PCL transect (in meters)",
      "topics": [
        "get_transect_length"
      ]
    },
    {
      "page": "make_matrix",
      "title": "Make PCL matrix for higher level complexity measures",
      "topics": [
        "make_matrix"
      ]
    },
    {
      "page": "make_matrix_part_one",
      "title": "Make PCL matrix part one",
      "topics": [
        "make_matrix_part_one"
      ]
    },
    {
      "page": "make_matrix_part_two",
      "title": "Make PCL matrix part two",
      "topics": [
        "make_matrix_part_two"
      ]
    },
    {
      "page": "make_summary_matrix",
      "title": "Creates summary matrix",
      "topics": [
        "make_summary_matrix"
      ]
    },
    {
      "page": "normalize_pcl",
      "title": "Normalize PCL data based on light saturation and attenuation",
      "topics": [
        "normalize_pcl"
      ]
    },
    {
      "page": "normalize_pcl_mh",
      "title": "Normalize PCL data based on light saturation and attenuation",
      "topics": [
        "normalize_pcl_mh"
      ]
    },
    {
      "page": "osbs",
      "title": "PCL transect from Ordway-Swisher Biological Station, Florida, US.",
      "topics": [
        "osbs"
      ]
    },
    {
      "page": "pcl_adjusted",
      "title": "a data frame LiDAR returns that have been split to x and z position and coded and adjusted for user height",
      "topics": [
        "pcl_adjusted"
      ]
    },
    {
      "page": "pcl_coded",
      "title": "a data frame LiDAR returns that have been split to x and z position and coded",
      "topics": [
        "pcl_coded"
      ]
    },
    {
      "page": "pcl_data",
      "title": "PCL transect from the University of Virginia",
      "topics": [
        "pcl_data"
      ]
    },
    {
      "page": "pcl_diagnostic_plot",
      "title": "PCL diagnostic plot",
      "topics": [
        "pcl_diagnostic_plot"
      ]
    },
    {
      "page": "pcl_matrix",
      "title": "a LiDAR hit density by x, z position",
      "topics": [
        "pcl_matrix"
      ]
    },
    {
      "page": "pcl_norm",
      "title": "a data frame of normalized LiDAR return density",
      "topics": [
        "pcl_norm"
      ]
    },
    {
      "page": "pcl_split",
      "title": "a data frame LiDAR returns that have been split to x and z position",
      "topics": [
        "pcl_split"
      ]
    },
    {
      "page": "pcl_summary",
      "title": "summary matrix",
      "topics": [
        "pcl_summary"
      ]
    },
    {
      "page": "pcl_vai",
      "title": "a data frame of vegetation area index (VAI)",
      "topics": [
        "pcl_vai"
      ]
    },
    {
      "page": "plot_hit_grid",
      "title": "Plots LiDAR hit grids of VAI",
      "topics": [
        "plot_hit_grid"
      ]
    },
    {
      "page": "plot_pavd",
      "title": "Graphs Plant Area Volume Density Profiles",
      "topics": [
        "plot_pavd"
      ]
    },
    {
      "page": "process_multi_pcl",
      "title": "Process multiple PCL transects.",
      "topics": [
        "process_multi_pcl"
      ]
    },
    {
      "page": "process_pcl",
      "title": "Process single PCL transects.",
      "topics": [
        "process_pcl"
      ]
    },
    {
      "page": "process_tls",
      "title": "Process single PCL transects.",
      "topics": [
        "process_tls"
      ]
    },
    {
      "page": "red_pine",
      "title": "PCL transect from a red pine plantation in Northern Michigan, US.",
      "topics": [
        "red_pine"
      ]
    },
    {
      "page": "split_transects_from_pcl",
      "title": "Split transects from PCL",
      "topics": [
        "split_transects_from_pcl"
      ]
    },
    {
      "page": "write_hit_matrix_to_csv",
      "title": "Writes hit matrix to csv for further analysis",
      "topics": [
        "write_hit_matrix_to_csv"
      ]
    },
    {
      "page": "write_pcl_to_csv",
      "title": "Writes csc metrics and output variables to .csv",
      "topics": [
        "write_pcl_to_csv"
      ]
    },
    {
      "page": "write_summary_matrix_to_csv",
      "title": "Writes csc metrics and output variables to .csv",
      "topics": [
        "write_summary_matrix_to_csv"
      ]
    }
  ],
  "_readme": "https://github.com/atkinsjeff/forestr/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "dplyr",
    "farver",
    "generics",
    "ggplot2",
    "glue",
    "gridExtra",
    "gtable",
    "isoband",
    "labeling",
    "lifecycle",
    "magrittr",
    "moments",
    "pillar",
    "pkgconfig",
    "plyr",
    "purrr",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "S7",
    "scales",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "viridis",
    "viridisLite",
    "withr"
  ],
  "_score": 4.9965116721541785,
  "_indexed": true,
  "_nocasepkg": "forestr",
  "_universes": [
    "atkinsjeff"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "2.1.0",
      "date": "2026-06-06T06:38:28.000Z",
      "distro": "noble",
      "commit": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
      "fileid": "275c8e9a592be6bc0f94bc1b4a82d2472c8801be79fb59112b4ceaca80d4ae34",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atkinsjeff/actions/runs/27055070472"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "2.1.0",
      "date": "2026-06-06T06:38:38.000Z",
      "distro": "noble",
      "commit": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
      "fileid": "3704fc7ce3f8e131642d942b2d059b6657a6e8b1c2cbf782e94f2e69bef4c35f",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atkinsjeff/actions/runs/27055070472"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "2.1.0",
      "date": "2026-06-06T06:38:39.000Z",
      "commit": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
      "fileid": "8784fea264823ca5ab0ae40017e0b171a5fde50c755dcf3cbcb116221cb69066",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atkinsjeff/actions/runs/27055070472"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "2.1.0",
      "date": "2026-06-06T06:38:29.000Z",
      "commit": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
      "fileid": "f2ba45f1bc7f89909d746cb3d2650c58e635c11efbd831caf069953d8b68e0da",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atkinsjeff/actions/runs/27055070472"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "2.1.0",
      "date": "2026-06-06T06:38:32.000Z",
      "commit": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
      "fileid": "3cf492db229c33e511c6746d85d558e5161a2b479b28af236559086f7fbad9ed",
      "status": "success",
      "buildurl": "https://github.com/r-universe/atkinsjeff/actions/runs/27055070472"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "2.1.0",
      "date": "2026-06-06T06:37:39.000Z",
      "commit": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
      "fileid": "96141723fc65985f95e97a63163337f9df3982a0dcca0c42e0c541c0212dfad5",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atkinsjeff/actions/runs/27055070472"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "2.1.0",
      "date": "2026-06-06T06:37:32.000Z",
      "commit": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
      "fileid": "dbea7b7c5eb0c22c3b3926d4f341b19c54965ca5b1342ecdbd4a201dc47da7d4",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atkinsjeff/actions/runs/27055070472"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "2.1.0",
      "date": "2026-06-06T06:37:34.000Z",
      "commit": "1ddce0d514b8d175d4f720aab7d0857d88931f87",
      "fileid": "519231010dcccaf5f266142fcce6e7af9409e4bb4e58d720038bf0a274dcb820",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atkinsjeff/actions/runs/27055070472"
    }
  ]
}