Visualisation and Annotation of 360 Degree Imagery
Overview
Provides a customisable R 'shiny' app for immersively visualising, mapping and annotating panospheric (360 degree) imagery. The flexible interface allows annotation of any geocoded images using up to 4 user specified drop-down menus. The app uses 'leaflet' to render maps that display the geo-locations of images and Panellum https://pannellum.org/, a lightweight panorama viewer for the web, to render images in virtual 360 degree viewing mode. Key functions include the ability to draw on & export parts of 360 images for downstream applications. Users can also draw polygons and points on map imagery related to the panoramic images and export them for further analysis. Downstream applications include using annotations to train Artificial Intelligence/Machine Learning (AI/ML) models and geospatial modelling and analysis of camera based survey data.
- Refactored the app shell into a modular workspace with dedicated Mapping, Image, Annotation, and Annotation Table panels.
- Added a persistent Settings workflow that can render below the workspace or in a left/right drawer, with updated layout schematics and single-scroll drawer behavior.
- Reworked Main Settings into accordion sections and moved shared actions and notices above the settings tabs.
- Added editable lookup and username table workflows in Settings using
rhandsontable, with lookup accordions and on-demand table loading. - Added a full-width Annotation Table panel for reviewing and editing annotation records in one place.
- Added project YAML export from Settings, including support for launching with
run_app(projectSettingsFile = ...)and an export-only Google Maps API key for project YAML files. - Added ExifTool dependency checks and install support in Settings, plus KMZ loading guards when ExifTool is unavailable.
- Replaced popup-driven guidance with persistent inline notices and tour-ready UI structure.
- Improved panel layout behavior, equal-height top panels, annotation card controls, drawer styling, and KMZ runtime file handling.
- Added the
sourcekmzfield to annotation records and exports so annotations record which KMZ file each image came from. - Replaced
magrittr,stringr, andreadrusage with native pipe and base R helpers where practical. - Expanded automated tests and updated the vignette text to reflect the current settings and panel workflow.
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK14 OK2026-03-23
- NOTE8 OK, 2 NOTE2026-03-17
Documentation
- Help pages
- 1
- Examples that run
- 100%1 run in a plain check (under a condition)
- Exported functions with examples
- 100%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 0%
- pannotator HTML
Downloads
Repository
- PRs merged (all time)
- 100%
- Median days to close, 50 most recently updated closed issues
- not measured
- Median days to close, 50 most recently updated closed PRs
- 0
Stars over time
Releases over time
4 development-tooling and community-health practices detected across 4 families in the upstream repository
Checks run against github.com/nunzioknerr/pannotator_package_source on 2026-10-11.
Dependencies
Installing pannotator adds 102 packages (52 with compiled code, 98 MB of source tarballs). Heaviest: stringi 11 MB, sf 9.3 MB, ggplot2 6.0 MB.
CRAN will archive these unless their check problems are fixed by the date shown. This package needs each one to install.
- configrdeadline passed Oct 12
Code & Tests
People & History
Pick two releases to compare their code metrics.
- 1.1.0Latest
- RR 4.6.0 released · 2026-04-24
- unarchivedReturned to CRAN2026-03-16
- 1.0.12026-03-16 · diff ↗
- archivedRemoved from CRAN2026-02-19requires archived package 'leaflet.extras'
- RR 4.5.0 released · 2025-04-11
- 1.0.0.42024-11-11
- RR 4.4.0 released · 2024-04-24
Package metadata
- First published
- 2024-11-11
- Total releases
- 3 / 2 yrs
- License
- GPL (>= 3) OSI
- Minimum R
- ≥ 4.4.0
- Download size
- 3.7 MB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("pannotator")This package has no citation file, so citation() returns this entry built from DESCRIPTION.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-18, which the citation names so these numbers can be found later. More on citing and the projects behind them.