{
  "_id": "6a1ef990b401979e73418021",
  "Package": "habtools",
  "Title": "Tools and Metrics for 3D Surfaces and Objects",
  "Version": "1.1.1",
  "Authors@R": "c(person(given = \"Joshua\",\nfamily = \"Madin\",\nrole = c(\"aut\"),\nemail = \"jmadin@hawaii.edu\",\ncomment = c(ORCID = \"0000-0002-5005-6227\")),\nperson(given = \"Nina\",\nfamily = \"Schiettekatte\",\nrole = c(\"aut\", \"cre\"),\nemail = \"nina.schiettekatte@gmail.com\",\ncomment = c(ORCID = \"0000-0002-1925-3484\")))",
  "Description": "A collection of functions for sampling and simulating 3D\nsurfaces and objects and estimating metrics like rugosity,\nfractal dimension, convexity, sphericity, circularity, second\nmoments of area and volume, and more.",
  "License": "MIT + file LICENSE",
  "URL": "https://jmadinlab.github.io/habtools/",
  "BugReports": "https://github.com/jmadinlab/habtools/issues",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Config/pak/sysreqs": "libabsl-dev cmake libgdal-dev gdal-bin libgeos-dev\nlibssl-dev libproj-dev libsqlite3-dev libudunits2-dev\nlibnode-dev",
  "Repository": "https://jmadinlab.r-universe.dev",
  "Date/Publication": "2026-05-19 02:10:55 UTC",
  "RemoteUrl": "https://github.com/jmadinlab/habtools",
  "RemoteRef": "HEAD",
  "RemoteSha": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-19 03:53:22 UTC",
    "User": "root"
  },
  "Author": "Joshua Madin [aut] (ORCID: <https://orcid.org/0000-0002-5005-6227>),\nNina Schiettekatte [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-1925-3484>)",
  "Maintainer": "Nina Schiettekatte <nina.schiettekatte@gmail.com>",
  "MD5sum": "3dd8fa04c073cb267fd6c402b04ea8e6",
  "_user": "jmadinlab",
  "_type": "src",
  "_file": "habtools_1.1.1.tar.gz",
  "_fileid": "97b04eef20729eb26cc75ef1115f25d21ef56f3267232ca29db3fb57104543c1",
  "_filesize": 5528248,
  "_sha256": "97b04eef20729eb26cc75ef1115f25d21ef56f3267232ca29db3fb57104543c1",
  "_created": "2026-05-19T03:53:22.000Z",
  "_published": "2026-06-02T15:41:04.061Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79110686132,
      "time": 287,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7074558633"
    },
    {
      "job": 79110686405,
      "time": 264,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7074555042"
    },
    {
      "job": 79110686487,
      "time": 158,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7074538851"
    },
    {
      "job": 79110686467,
      "time": 258,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7074555679"
    },
    {
      "job": 79110685739,
      "time": 340,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7074509559"
    },
    {
      "job": 79110685379,
      "time": 144,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7362582870"
    },
    {
      "job": 79110687367,
      "time": 248,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7074552089"
    },
    {
      "job": 79110686552,
      "time": 264,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7074555008"
    },
    {
      "job": 79110686445,
      "time": 242,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7074551258"
    }
  ],
  "_buildurl": "https://github.com/r-universe/jmadinlab/actions/runs/26074972650",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/jmadinlab/habtools",
  "_commit": {
    "id": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
    "author": "keelungchen <keelungchen999@gmail.com>",
    "committer": "keelungchen <keelungchen999@gmail.com>",
    "message": "add gap_range without match warning\n",
    "time": 1779156655
  },
  "_maintainer": {
    "name": "Nina Schiettekatte",
    "email": "nina.schiettekatte@gmail.com",
    "login": "nschiett",
    "description": "Excited about reproducibility, ecology, bayesian stats and fish",
    "uuid": 35344947,
    "orcid": "0000-0002-1925-3484"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 2.10",
      "role": "Depends"
    },
    {
      "package": "raster",
      "version": ">= 3.5",
      "role": "Imports"
    },
    {
      "package": "terra",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "Rvcg",
      "role": "Imports"
    },
    {
      "package": "sp",
      "role": "Imports"
    },
    {
      "package": "geometry",
      "role": "Imports"
    },
    {
      "package": "concaveman",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "ks",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "rgl",
      "role": "Suggests"
    },
    {
      "package": "parallel",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "jmadinlab",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-20",
      "n": 1
    },
    {
      "week": "2026-21",
      "n": 2
    }
  ],
  "_tags": [],
  "_stars": 14,
  "_contributors": [
    {
      "user": "nschiett",
      "count": 183,
      "uuid": 35344947
    },
    {
      "user": "jmadin",
      "count": 104,
      "uuid": 4361392
    },
    {
      "user": "keelungchen",
      "count": 3,
      "uuid": 50408020
    }
  ],
  "_userbio": {
    "uuid": 55602853,
    "type": "organization",
    "name": "Geometric Ecology Lab",
    "description": "A place to store our data and code. "
  },
  "_downloads": {
    "count": 216,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/habtools"
  },
  "_devurl": "https://github.com/jmadinlab/habtools",
  "_pkgdown": "https://jmadinlab.github.io/habtools/",
  "_searchresults": 23,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/habtools.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/jmadinlab/habtools",
  "_realowner": "jmadinlab",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.5",
      "date": "2024-03-01"
    },
    {
      "version": "1.0.7",
      "date": "2024-11-15"
    },
    {
      "version": "1.1.1",
      "date": "2025-03-06"
    }
  ],
  "_exports": [
    "%>%",
    "cell_count_1d",
    "cell_count_2d",
    "cell_count_3d",
    "centroid",
    "circularity",
    "convexity",
    "csf",
    "dem_crop",
    "dem_sample",
    "dem_split",
    "dem_to_points",
    "detect_drop",
    "entropy",
    "entropy_1d",
    "entropy_2d",
    "entropy_3d",
    "extent",
    "fd",
    "fd_area",
    "fd_boxes",
    "fd_cubes",
    "fd_diagnose",
    "fd_hvar",
    "fd_sd",
    "hr",
    "hvar",
    "mesh_to_2d",
    "mesh_to_dem",
    "mesh_to_points",
    "mid_find",
    "packing",
    "perimeter",
    "planar",
    "rdh",
    "rdh_theory",
    "rg",
    "sa_triangle",
    "scale_area",
    "scale_volume",
    "set_origin",
    "sim_circle",
    "sim_dem",
    "sma",
    "smv",
    "sphericity",
    "surface_area",
    "svol_triangle",
    "z"
  ],
  "_datasets": [
    {
      "name": "horseshoe",
      "title": "Horseshoe reef",
      "object": "horseshoe",
      "class": [
        "RasterLayer"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "mcap",
      "title": "Montipora capitata",
      "object": "mcap",
      "class": [
        "mesh3d"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "mcap2",
      "title": "Montipora capitata 2",
      "object": "mcap2",
      "class": [
        "mesh3d"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    }
  ],
  "_help": [
    {
      "page": "cell_count_1d",
      "title": "Count filled cells in 1D",
      "topics": [
        "cell_count_1d"
      ]
    },
    {
      "page": "cell_count_2d",
      "title": "Count filled cells in 2D",
      "topics": [
        "cell_count_2d"
      ]
    },
    {
      "page": "cell_count_3d",
      "title": "Count filled cells 3D",
      "topics": [
        "cell_count_3d"
      ]
    },
    {
      "page": "centroid",
      "title": "Calculate the centroid of 3D points",
      "topics": [
        "centroid"
      ]
    },
    {
      "page": "circularity",
      "title": "Calculate circularity of a 2D shape",
      "topics": [
        "circularity"
      ]
    },
    {
      "page": "convexity",
      "title": "Calculate convexity of a 3D mesh",
      "topics": [
        "convexity"
      ]
    },
    {
      "page": "csf",
      "title": "Calculate mechanical shape factor",
      "topics": [
        "csf"
      ]
    },
    {
      "page": "dem_crop",
      "title": "Crop DEM around points",
      "topics": [
        "dem_crop"
      ]
    },
    {
      "page": "dem_sample",
      "title": "Sample a random DEM with specified size from a larger DEM",
      "topics": [
        "dem_sample"
      ]
    },
    {
      "page": "dem_split",
      "title": "Split DEM into smaller tiles",
      "topics": [
        "dem_split"
      ]
    },
    {
      "page": "dem_to_points",
      "title": "Transform DEM to 3D pointcloud of raster corners",
      "topics": [
        "dem_to_points"
      ]
    },
    {
      "page": "detect_drop",
      "title": "Detect a sudden drop, edge, or overhang in a DEM",
      "topics": [
        "detect_drop"
      ]
    },
    {
      "page": "entropy",
      "title": "Entropy",
      "topics": [
        "entropy"
      ]
    },
    {
      "page": "entropy_1d",
      "title": "1D Entropy",
      "topics": [
        "entropy_1d"
      ]
    },
    {
      "page": "entropy_2d",
      "title": "2D Entropy",
      "topics": [
        "entropy_2d"
      ]
    },
    {
      "page": "entropy_3d",
      "title": "3D entropy",
      "topics": [
        "entropy_3d"
      ]
    },
    {
      "page": "extent",
      "title": "Calculate extent of a 3D object",
      "topics": [
        "extent"
      ]
    },
    {
      "page": "fd",
      "title": "Calculate fractal dimension",
      "topics": [
        "fd"
      ]
    },
    {
      "page": "fd_area",
      "title": "Calculate fractal dimension using the surface area method",
      "topics": [
        "fd_area"
      ]
    },
    {
      "page": "fd_boxes",
      "title": "Calculate fractal dimension using the box counting method",
      "topics": [
        "fd_boxes"
      ]
    },
    {
      "page": "fd_cubes",
      "title": "Calculate fractal dimension using the cube counting method",
      "topics": [
        "fd_cubes"
      ]
    },
    {
      "page": "fd_diagnose",
      "title": "Diagnose fractal dimension",
      "topics": [
        "fd_diagnose"
      ]
    },
    {
      "page": "fd_hvar",
      "title": "Calculate fractal Dimension using the height variation method",
      "topics": [
        "fd_hvar"
      ]
    },
    {
      "page": "fd_sd",
      "title": "Calculate fractal Dimension using the standard deviation method",
      "topics": [
        "fd_sd"
      ]
    },
    {
      "page": "horseshoe",
      "title": "Horseshoe reef",
      "topics": [
        "horseshoe"
      ]
    },
    {
      "page": "hr",
      "title": "Calculate height range",
      "topics": [
        "hr"
      ]
    },
    {
      "page": "hvar",
      "title": "Calculate height variation in cells at different scales",
      "topics": [
        "hvar"
      ]
    },
    {
      "page": "mcap",
      "title": "Montipora capitata",
      "topics": [
        "mcap"
      ]
    },
    {
      "page": "mcap2",
      "title": "Montipora capitata 2",
      "topics": [
        "mcap2"
      ]
    },
    {
      "page": "mesh_to_2d",
      "title": "Transform 3D mesh into 2D outline",
      "topics": [
        "mesh_to_2d"
      ]
    },
    {
      "page": "mesh_to_dem",
      "title": "Transform 3D mesh to DEM",
      "topics": [
        "mesh_to_dem"
      ]
    },
    {
      "page": "mesh_to_points",
      "title": "Transform mesh to 3D point cloud",
      "topics": [
        "mesh_to_points"
      ]
    },
    {
      "page": "mid_find",
      "title": "Find midpoint of a DEM",
      "topics": [
        "mid_find"
      ]
    },
    {
      "page": "packing",
      "title": "Calculate packing of 3D object",
      "topics": [
        "packing"
      ]
    },
    {
      "page": "perimeter",
      "title": "Calculate perimeter of a 2D shape",
      "topics": [
        "perimeter"
      ]
    },
    {
      "page": "planar",
      "title": "Calculates planar area of a mesh",
      "topics": [
        "planar"
      ]
    },
    {
      "page": "rdh",
      "title": "Calculate rugosity, fractal dimension, and height for a DEM",
      "topics": [
        "rdh"
      ]
    },
    {
      "page": "rdh_theory",
      "title": "Calculate metric based on geometric plane equation",
      "topics": [
        "rdh_theory"
      ]
    },
    {
      "page": "rg",
      "title": "Calculate rugosity",
      "topics": [
        "rg"
      ]
    },
    {
      "page": "sa_triangle",
      "title": "Calculate surface area of triangle",
      "topics": [
        "sa_triangle"
      ]
    },
    {
      "page": "scale_area",
      "title": "Re-scale mesh based on a fixed area",
      "topics": [
        "scale_area"
      ]
    },
    {
      "page": "scale_volume",
      "title": "Re-scale mesh based on a fixed volume of 1",
      "topics": [
        "scale_volume"
      ]
    },
    {
      "page": "set_origin",
      "title": "Set the origin of a mesh",
      "topics": [
        "set_origin"
      ]
    },
    {
      "page": "sim_circle",
      "title": "Simulate a circle",
      "topics": [
        "sim_circle"
      ]
    },
    {
      "page": "sim_dem",
      "title": "Simulates a fractal DEM",
      "topics": [
        "sim_dem"
      ]
    },
    {
      "page": "sma",
      "title": "Calculate second moment of area",
      "topics": [
        "sma"
      ]
    },
    {
      "page": "smv",
      "title": "Calculate second moment of volume",
      "topics": [
        "smv"
      ]
    },
    {
      "page": "sphericity",
      "title": "Calculate sphericity of a 3D object",
      "topics": [
        "sphericity"
      ]
    },
    {
      "page": "surface_area",
      "title": "Calculate surface area",
      "topics": [
        "surface_area"
      ]
    },
    {
      "page": "svol_triangle",
      "title": "Calculate signed volume of triangle",
      "topics": [
        "svol_triangle"
      ]
    },
    {
      "page": "z",
      "title": "Extract mean depth or elevation of a DEM",
      "topics": [
        "z"
      ]
    }
  ],
  "_readme": "https://github.com/jmadinlab/habtools/raw/HEAD/README.md",
  "_rundeps": [
    "abind",
    "class",
    "classInt",
    "cli",
    "concaveman",
    "curl",
    "DBI",
    "dplyr",
    "e1071",
    "FNN",
    "generics",
    "geometry",
    "glue",
    "jsonlite",
    "kernlab",
    "KernSmooth",
    "ks",
    "lattice",
    "lifecycle",
    "linprog",
    "lpSolve",
    "magic",
    "magrittr",
    "MASS",
    "Matrix",
    "mclust",
    "mgcv",
    "multicool",
    "mvtnorm",
    "nlme",
    "pillar",
    "pkgconfig",
    "pracma",
    "proxy",
    "purrr",
    "R6",
    "raster",
    "Rcpp",
    "RcppArmadillo",
    "RcppEigen",
    "RcppProgress",
    "rlang",
    "Rvcg",
    "s2",
    "sf",
    "sp",
    "terra",
    "tibble",
    "tidyselect",
    "units",
    "utf8",
    "V8",
    "vctrs",
    "withr",
    "wk"
  ],
  "_vignettes": [
    {
      "source": "mesh_intro.Rmd",
      "filename": "mesh_intro.html",
      "title": "Complexity metrics for 3D meshes",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Checking your mesh",
        "Complexity metrics: R, D, and H",
        "Rugosity",
        "Shape Metrics",
        "Transform mesh into a DEM or 2D shape",
        "References"
      ],
      "created": "2023-05-25 00:59:47",
      "modified": "2024-03-01 19:37:30",
      "commits": 19
    },
    {
      "source": "DEM_intro.Rmd",
      "filename": "DEM_intro.html",
      "title": "Complexity metrics for DEMs",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Height range",
        "Rugosity",
        "Fractal dimension",
        "Height variation method",
        "Area method",
        "Multiple metrics",
        "Multiple squares",
        "Sample a random square",
        "Rules of thumb"
      ],
      "created": "2023-05-23 19:14:57",
      "modified": "2024-02-27 22:19:12",
      "commits": 16
    },
    {
      "source": "fractal_intro.Rmd",
      "filename": "fractal_intro.html",
      "title": "Fractal dimension methods",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The lvec",
        "Non-fractal surfaces",
        "References"
      ],
      "created": "2024-01-19 18:56:31",
      "modified": "2024-02-27 22:19:06",
      "commits": 23
    }
  ],
  "_score": 6.286007122079475,
  "_indexed": true,
  "_nocasepkg": "habtools",
  "_universes": [
    "jmadinlab",
    "nschiett"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.1.1",
      "date": "2026-05-19T03:56:25.000Z",
      "distro": "noble",
      "commit": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
      "fileid": "2063488245e29d79a6cac58619d9881ad6597226d260bf2218cdf683b5bd8c3e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmadinlab/actions/runs/26074972650"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.1.1",
      "date": "2026-05-19T03:56:14.000Z",
      "distro": "noble",
      "commit": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
      "fileid": "bfb424e1d6596c3f740a577e997f041ca302a0e6702fedbd2147732285afc3a7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmadinlab/actions/runs/26074972650"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.1.1",
      "date": "2026-05-19T03:55:26.000Z",
      "commit": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
      "fileid": "af4bb1801ee13aaecdda47470529cfbe70d7e23cae0caa37e930d2ceb03c82e7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmadinlab/actions/runs/26074972650"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.1.1",
      "date": "2026-05-19T03:56:08.000Z",
      "commit": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
      "fileid": "af1174becfbe0222d8acf42e094c3dd43bce18a5324b19174569ea8ac06a4f1d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmadinlab/actions/runs/26074972650"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.1.1",
      "date": "2026-05-19T03:55:15.000Z",
      "commit": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
      "fileid": "8b3b14fc96453367d4308e6824fe19dbf5fb2efc74c25c5baaadfa2fe4af2307",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmadinlab/actions/runs/26074972650"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.1.1",
      "date": "2026-05-19T03:55:39.000Z",
      "commit": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
      "fileid": "604592f423d60a3a2b50f2d679cf9aea97ee5f4a9157af8334921a0e66f1f58c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmadinlab/actions/runs/26074972650"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.1.1",
      "date": "2026-05-19T03:55:13.000Z",
      "commit": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
      "fileid": "0f001578eb4aae31f09b055181969eae048689fa9056789118936b7f420156cc",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmadinlab/actions/runs/26074972650"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.1.1",
      "date": "2026-06-02T15:40:30.000Z",
      "commit": "4caefc5b9fca68b11f47a5674dbe6dfa929e6526",
      "fileid": "c68aead349233c413efea555005d278f82a3924447aa55ed19d2c2a176ededc4",
      "status": "success",
      "buildurl": "https://github.com/r-universe/jmadinlab/actions/runs/26074972650"
    }
  ]
}