{
  "_id": "6ad48d648b78ae42bccc5690",
  "Package": "viewscape",
  "Type": "Package",
  "Title": "Viewscape Analysis",
  "Version": "3.0.1",
  "Authors@R": "c(person(\"Xiaohao\", \"Yang\", role = c(\"aut\", \"cre\", \"cph\"), email = \"xiaohaoy111@gmail.com\"),\nperson(\"Nathan\", \"Fox\", role = c(\"aut\")),\nperson(\"Derek\", \"Van Berkel\", role = c(\"aut\")),\nperson(\"Mark\", \"Lindquist\", role = c(\"aut\")))",
  "Description": "Provides tools for viewscape analysis from one or multiple\nviewpoints using a digital surface or elevation model. Core\nfunctionality includes computing viewsheds, quantifying visual\nmagnitude, calculating a suite of viewscape configuration\nmetrics (extent, depth, relief, Sky View Factor, skyline\nvariation, and patch-based landscape structure), Shannon\nDiversity Index and land cover feature proportions within the\nvisible area, pairwise intervisibility networks, panoramic view\ngeneration, and visualizing results as rasters or polygons.\nViewscape configuration metrics follow the methods of Tabrizian\net al. (2020) <doi:10.1016/j.landurbplan.2019.103704>. The\nviewshed algorithm is based on Franklin & Ray (1994)\n<https://api.semanticscholar.org/CorpusID:10680920> and Wang et\nal. (2000)\n<https://api.semanticscholar.org/CorpusID:131687018>. Visual\nmagnitude is derived from Chamberlain & Meitner (2013)\n<doi:10.1016/j.landurbplan.2013.01.003>. Sky View Factor is\ncomputed following Oke (1981) <doi:10.1002/joc.3370010304> as\nimplemented in the 'shadow' package (Dorman et al. 2019)\n<doi:10.32614/RJ-2019-024>.",
  "URL": "https://github.com/billbillbilly/viewscape",
  "BugReports": "https://github.com/billbillbilly/viewscape/issues",
  "License": "GPL-3",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr, rmarkdown",
  "biocViews": "",
  "Config/pak/sysreqs": "libabsl-dev cmake libfftw3-dev libgdal-dev gdal-bin\nlibgeos-dev libglpk-dev libicu-dev libjpeg-dev libpng-dev\nlibtiff-dev libxml2-dev libssl-dev libproj-dev libsqlite3-dev\nlibudunits2-dev libx11-dev",
  "Repository": "https://billbillbilly.r-universe.dev",
  "Date/Publication": "2026-08-19 22:49:22 UTC",
  "RemoteUrl": "https://github.com/billbillbilly/viewscape",
  "RemoteRef": "HEAD",
  "RemoteSha": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-18 08:59:53 UTC",
    "User": "root"
  },
  "Author": "Xiaohao Yang [aut, cre, cph],\nNathan Fox [aut],\nDerek Van Berkel [aut],\nMark Lindquist [aut]",
  "Maintainer": "Xiaohao Yang <xiaohaoy111@gmail.com>",
  "_user": "billbillbilly",
  "_type": "src",
  "_file": "viewscape_3.0.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/89eba72839766996d77a5fdf616f6dc2abeed4a11cd94bdc957d329bcabd032c",
  "_filesize": 2538950,
  "_sha256": "89eba72839766996d77a5fdf616f6dc2abeed4a11cd94bdc957d329bcabd032c",
  "_expires": "2027-01-26T09:12:01.000Z",
  "_created": "2026-10-18T08:59:53.000Z",
  "_published": "2026-10-18T09:12:03.907Z",
  "_buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 117634853283,
      "time": 244,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12132095036"
    },
    {
      "job": 117634853222,
      "time": 331,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12131238871"
    },
    {
      "job": 117634853340,
      "time": 258,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12131013156"
    },
    {
      "job": 117634853185,
      "time": 284,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12131507550"
    },
    {
      "job": 117634853203,
      "time": 374,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12131248789"
    },
    {
      "job": 117634853377,
      "time": 540,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12131084828"
    },
    {
      "job": 117634853272,
      "time": 297,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12131522636"
    },
    {
      "job": 117634853486,
      "time": 664,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12130928944"
    },
    {
      "job": 117633952887,
      "time": 284,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12131517155"
    },
    {
      "job": 117634853198,
      "time": 150,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12131148797"
    },
    {
      "job": 117634853176,
      "time": 503,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12131199161"
    },
    {
      "job": 117634853326,
      "time": 299,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12131447858"
    },
    {
      "job": 117634853224,
      "time": 278,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12132100263"
    },
    {
      "job": 117634853226,
      "time": 481,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12131179299"
    },
    {
      "job": 117634853267,
      "time": 287,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12131338374"
    }
  ],
  "_upstream": "https://github.com/billbillbilly/viewscape",
  "_commit": {
    "id": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
    "author": "Xiaohao Yang <xiaohaoy111@gmail.com>",
    "committer": "Xiaohao Yang <xiaohaoy111@gmail.com>",
    "message": "Fix the four R CMD check test failures\n\n- expect_message() returns the condition, not the value of the expression, so\n  the two under-canopy tests were calling @visible and $class on a\n  simpleMessage. Assign inside the expectation instead.\n- pano_view() resampled a semantic layer to the dsm grid silently whenever the\n  extents differed by even a fraction of a cell, which is what the two\n  test-pano_view.R expectations were written against. Warn when it happens.\n- skip the equirectangular-projection comparison when greenSD is absent, as the\n  neighbouring test already does.\n- use all_of() instead of the deprecated .data$ in a tidyselect selection.\n",
    "time": 1787179762
  },
  "_maintainer": {
    "name": "Xiaohao Yang",
    "email": "xiaohaoy111@gmail.com",
    "login": "billbillbilly",
    "description": "PhD candidate @digital-landscapes at the School for Environment and Sustainability, University of Michigan",
    "uuid": 61219306
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.2",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "Rcpp",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "sf",
      "role": "Imports"
    },
    {
      "package": "sp",
      "role": "Imports"
    },
    {
      "package": "terra",
      "role": "Imports"
    },
    {
      "package": "ForestTools",
      "version": ">= 1.0.1",
      "role": "Imports"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "pbmcapply",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "osmdata",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "greenSD",
      "role": "Suggests"
    },
    {
      "package": "dsmSearch",
      "role": "Suggests"
    }
  ],
  "_owner": "billbillbilly",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-25",
      "n": 6
    },
    {
      "week": "2026-26",
      "n": 2
    },
    {
      "week": "2026-29",
      "n": 1
    },
    {
      "week": "2026-34",
      "n": 10
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "billbillbilly",
      "count": 342,
      "uuid": 61219306
    },
    {
      "user": "dr-nathan-fox",
      "count": 23,
      "uuid": 42167576
    }
  ],
  "_userbio": {
    "uuid": 61219306,
    "type": "user",
    "name": "Xiaohao Yang",
    "followers": 18,
    "description": "PhD candidate @digital-landscapes at the School for Environment and Sustainability, University of Michigan"
  },
  "_downloads": {
    "count": 372,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/viewscape"
  },
  "_devurl": "https://github.com/billbillbilly/viewscape",
  "_searchresults": 32,
  "_topics": [
    "cpp"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/readme.html",
    "extra/readme.md",
    "extra/viewscape.html"
  ],
  "_homeurl": "https://github.com/billbillbilly/viewscape",
  "_realowner": "billbillbilly",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.0",
      "date": "2024-02-04"
    },
    {
      "version": "2.0.0",
      "date": "2024-11-09"
    },
    {
      "version": "2.0.1",
      "date": "2024-11-14"
    },
    {
      "version": "2.0.2",
      "date": "2024-12-19"
    },
    {
      "version": "3.0.0",
      "date": "2026-06-27"
    }
  ],
  "_exports": [
    "calculate_diversity",
    "calculate_feature",
    "calculate_viewmetrics",
    "compute_viewshed",
    "compute_viewshed_understory",
    "fov_mask",
    "intervis_network",
    "pano_view",
    "pano_view_understory",
    "road_corridor_mask",
    "visual_magnitude",
    "visualize_viewshed"
  ],
  "_help": [
    {
      "page": "calculate_diversity",
      "title": "calculate_diversity",
      "topics": [
        "calculate_diversity"
      ]
    },
    {
      "page": "calculate_feature",
      "title": "calculate_feature",
      "topics": [
        "calculate_feature"
      ]
    },
    {
      "page": "calculate_viewmetrics",
      "title": "calculate_viewmetrics",
      "topics": [
        "calculate_viewmetrics"
      ]
    },
    {
      "page": "compute_viewshed",
      "title": "compute_viewshed",
      "topics": [
        "compute_viewshed"
      ]
    },
    {
      "page": "compute_viewshed_understory",
      "title": "compute_viewshed_understory",
      "topics": [
        "compute_viewshed_understory"
      ]
    },
    {
      "page": "fov_mask",
      "title": "fov_mask",
      "topics": [
        "fov_mask"
      ]
    },
    {
      "page": "intervis_network",
      "title": "intervis_network",
      "topics": [
        "intervis_network"
      ]
    },
    {
      "page": "pano_view",
      "title": "pano_view",
      "topics": [
        "pano_view"
      ]
    },
    {
      "page": "pano_view_understory",
      "title": "pano_view_understory",
      "topics": [
        "pano_view_understory"
      ]
    },
    {
      "page": "road_corridor_mask",
      "title": "road_corridor_mask",
      "topics": [
        "road_corridor_mask"
      ]
    },
    {
      "page": "Viewshed-class",
      "title": "An S4 class to represent the viewshed",
      "topics": [
        "Viewshed-class"
      ]
    },
    {
      "page": "visual_magnitude",
      "title": "visual_magnitude",
      "topics": [
        "visual_magnitude"
      ]
    },
    {
      "page": "visualize_viewshed",
      "title": "visualize_viewshed",
      "topics": [
        "visualize_viewshed"
      ]
    }
  ],
  "_readme": "https://github.com/billbillbilly/viewscape/raw/HEAD/README.md",
  "_rundeps": [
    "bmp",
    "class",
    "classInt",
    "cli",
    "cpp11",
    "DBI",
    "digest",
    "downloader",
    "dplyr",
    "e1071",
    "ForestTools",
    "generics",
    "GLCMTextures",
    "glue",
    "igraph",
    "imager",
    "jpeg",
    "KernSmooth",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "pbmcapply",
    "pillar",
    "pkgconfig",
    "png",
    "proxy",
    "purrr",
    "R6",
    "raster",
    "Rcpp",
    "RcppArmadillo",
    "readbitmap",
    "rlang",
    "s2",
    "sf",
    "sp",
    "stringi",
    "stringr",
    "terra",
    "tibble",
    "tidyselect",
    "tiff",
    "units",
    "utf8",
    "vctrs",
    "withr",
    "wk"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "viewscape.Rmd",
      "filename": "viewscape.html",
      "title": "viewscape",
      "author": "Xiaohao Yang",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Viewscape",
        "1. Compute viewshed",
        "1.1 Compute single viewshed",
        "1.2 Subset viewshed using by specifying the field of view",
        "1.3 Compute visual magnitude",
        "1.4 Compute the viewshed for multiple viewpoints",
        "1.5 Compute an intervisibility network",
        "Adjacency matrix",
        "Network as spatial lines",
        "Per-viewpoint observer heights",
        "2. Calculate viewscape metrics",
        "2.1 Calculate the metrics of viewshed",
        "2.2 Calculate land use/cover diversity",
        "2.3 calculate a single feature",
        "3. Panoramic view",
        "3.1 Colour panorama (equirectangular, default)",
        "3.2 Land-cover / land-use panorama (equirectangular + semantic)",
        "3.3 Multi-layer semantic panorama",
        "4. Under-canopy visibility",
        "4.1 Preparing the layers",
        "4.2 Finding a viewpoint on the road and under the canopy",
        "4.3 The observer fix on its own",
        "4.4 The crown band: compute_viewshed_understory()",
        "4.5 The hemispherical view: pano_view_understory()",
        "4.6 Road corridors, and the cbh trap",
        "4.7 Foliage transmittance",
        "4.8 Which choices matter for which metric",
        "4.9 Known limitations"
      ],
      "created": "2021-11-08 20:30:49",
      "modified": "2026-08-19 19:24:16",
      "commits": 49
    }
  ],
  "_score": 4.8061799739838875,
  "_indexed": true,
  "_nocasepkg": "viewscape",
  "_universes": [
    "billbillbilly"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "3.0.1",
      "date": "2026-10-18T09:02:27.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/0ea007a0e000b51259fad4977fbb2e9e7f5148f823707dff9a5945debfff9b1d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "3.0.1",
      "date": "2026-10-18T09:03:25.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/3d439b11136f3cd1fc0a9466451d4e5cc82b7a312e4e24df3ed58560f83a17ec",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "3.0.1",
      "date": "2026-10-18T09:02:44.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/61d3a0f00b47fb5ab91a2584b2512210a73f93f0831b75bc530255b35e149cdb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "3.0.1",
      "date": "2026-10-18T09:02:40.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/08e4409ebbb2c5a19a5cd1ad24405ee1b773ab47e8f01b96ad312f051d53db65",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "3.0.1",
      "date": "2026-10-18T09:03:29.000Z",
      "arch": "aarch64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/9e1fed1c19247bbf1b5fbb740839613473bfea634e87d0b74c6aab25b9b8dbcf",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "3.0.1",
      "date": "2026-10-18T09:04:05.000Z",
      "arch": "x86_64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/7d0b08a28884353f84eafb086138b14d69f7f25996f1521fc9318720571ad77b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "3.0.1",
      "date": "2026-10-18T09:02:28.000Z",
      "arch": "aarch64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/47367d7c0af74fdaa53faa222effc4a00297d507e8b12e3b46f3249b3fd88033",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "3.0.1",
      "date": "2026-10-18T09:04:53.000Z",
      "arch": "x86_64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/c65bd244e8b82cd4714ebb927bccb3d127a6eb808e857467123661cdd4e789ea",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "3.0.1",
      "date": "2026-10-18T09:02:45.000Z",
      "arch": "emscripten",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/f98232efcbdeec2056a3d984cb3ed129b97fddcf8b83f3bed742c0fe6c11fbe5",
      "status": "success",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "3.0.1",
      "date": "2026-10-18T09:05:26.000Z",
      "arch": "aarch64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/7937816a03052a2ea182aadf9563e4314b427255d0df33a925284811167e882d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "3.0.1",
      "date": "2026-10-18T09:01:38.000Z",
      "arch": "x86_64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/49b09d113dd3b62eba5d3d26b8054c74fb5f66f2690408c66108ccf45925707c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "3.0.1",
      "date": "2026-10-18T09:01:40.000Z",
      "arch": "x86_64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/45a9c594c1c936243dc04a128fbdcfa446d7d82add3d957129866ac97fd1af8c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "3.0.1",
      "date": "2026-10-18T09:04:59.000Z",
      "arch": "aarch64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/026745cea4a36221bab3a698a03b5aa06314c224cb57d2aa7c26a72b55e6b7be",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "3.0.1",
      "date": "2026-10-18T09:01:53.000Z",
      "arch": "x86_64",
      "commit": "ffab8453e9edd5cd14cd8aefe19e86737971f1f4",
      "fileid": "https://r2.ropensci.org/23293fcb28963b5fa46c47cb84fdda1ababdf9a32ac484ed1c4ca5d01c89ec01",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/billbillbilly/actions/runs/39113328325"
    }
  ]
}