Skip to content

Technology and Code

Frontiers in Bird Science ·

Volume 5 - 2026 | https://doi.org/10.3389/fbirs.2026.1765968

AfriAtlas: an R package for automating the visualization of African bird atlas project data

  • Bello Adamu Danmallam1*corresponding author
  • Michael Brooks2
  • Ulf Ottosson1
  1. 1A.P. Leventis Ornithological Research Institute (APLORI), Centre of Excellence, University of Jos, Jos, Plateau State, Nigeria
  2. 2University of Cape Town, Cape Town, South Africa
Article metrics0 viewsView details

Abstract

The African Bird Atlas Project (ABAP) represents one of the largest citizen-science biodiversity monitoring initiatives, generating large-scale bird occurrence and survey datasets across the African continent. However, utilizing this pentad-scale map data for high-level analysis or publication often requires complex workflows involving manual data downloads, cleaning, and GIS processing. To resolve this technical barrier, the AfriAtlas, an open-source R package is designed to streamline the retrieval and visualization of ABAP data. The package interfaces directly with the BirdMap API to fetch spatial occurrence and survey effort data. AfriAtlas leverages the sf, rnaturalearth, ggplot2 packages to handle dynamic administrative boundaries and render standardized, publication-ready maps. Key features include automated effort-adjusted choropleth maps, species distribution plots incorporating a Widespreadness Index developed within AfriAtlas to quantify the spatial extent and distribution patterns of species, and fault-tolerance mechanisms for batch processing. By automating these workflows, AfriAtlas promotes reproducibility and lowers the entry barrier for ornithological and conservation research in Africa.

Keywords

1 Introduction

The mobilization of biodiversity data has become a global priority for tracking progress toward conservation targets, detecting ecological change, and guiding evidence-based decision-making (Meyer et al., 2015; Convention on Biological Diversity [CBD], 2022). The African Bird Atlas Project (ABAP) integrates multiple national initiatives, including the Southern African Bird Atlas Project 2 (SABAP2), Kenya Bird Map, and the Nigerian Bird Atlas Project (Tende et al., 2024), all of which adopt the standardized SABAP2 protocol. Using a continentally consistent sampling design based on 5′ × 5′ grid cells (“pentads”), these atlases compile vetted citizen-science records with associated survey-effort information across Africa’s heterogeneous landscapes (Brooks et al., 2022; Lee et al., 2022). This coordinated framework enables robust assessments of biodiversity change, including shifts in bird distributions, patterns of local turnover, and long-term trends across the region (Nussbaumer et al., 2024), while supporting biodiversity monitoring, conservation planning, policy development, and assessments of species patterns across managed and human-modified landscapes (Ivande et al., 2026; Iniunam et al., 2026; Danmallam et al., 2025).

Statement of Need: Although raw atlas data is accessible through the BirdMap web portal (https://www.birdmap.africa), their use for advanced analysis remains technically demanding. Researchers must often download GeoJSON files manually, resolve inconsistencies in file structures and naming conventions, obtain matching administrative boundary datasets, and conduct additional GIS processing before results can be visualized or interpreted within a spatial context. These steps can create substantial barriers to efficient and reproducible workflows.

Several R packages associated with African Bird Atlas Project already provide important functionality for accessing and processing atlas datasets (Cervantes et al., 2024). For example, tools such as rabm, ABAP, and ABDtools support data retrieval, environmental annotation, and ecological modeling workflows. However, these packages generally focus on specific analytical components rather than integrated visualization pipelines, highlighting the need for more streamlined tools for African bird atlas data processing and visualization.

At present, there remains a need for a dedicated tool that standardizes the complete workflow from atlas data acquisition to publication-ready visualization. Here, we introduce AfriAtlas (v0.1.0), an open-source R package developed to automate the workflow from API query to final map production. By streamlining the retrieval, standardization, and visualization of both survey effort and species occurrence data, AfriAtlas reduces technical barriers and facilitates reproducible and efficient processing of atlas data for ecological analyses.

2 Software description and architecture

AfriAtlas is released under the MIT License and is implemented using the S3 object-oriented system in R, with support for R version 3.5 or later. Its design follows current best practices in spatial data science and draws on a modern dependency stack that includes sf for vector data handling (Pebesma, 2018), ggplot2 for visualization (Wickham, 2016), and rnaturalearth for retrieving up-to-date administrative boundaries.

2.1 Comparison with existing tools

Several R packages have been developed to facilitate access to and processing of African Bird Atlas datasets, including rabm, ABAP, and ABDtools. These packages provide important functionality for querying atlas records, extracting environmental variables, and preparing data for ecological modeling workflows (Cervantes et al., 2024). However, their primary objectives differ from those of AfriAtlas and they generally focus on specific components of the analytical pipeline rather than integrated visualization workflows. For example, rabm primarily supports retrieval of atlas records by species, observer, date, and region, including multi-species queries. The ABAP package extends functionality by supporting retrieval of card-level and pentad-level data and preparation of detection/non-detection datasets for occupancy modeling frameworks such as unmarked and spOccupancy. Similarly, ABDtools provides functionality for integration with Google Earth Engine (GEE), enabling extraction and annotation of environmental covariates for ecological analyses. By contrast, AfriAtlas was specifically developed to automate retrieval, spatial standardization, effort contextualization, and generation of publication-ready visual outputs (Table 1). AfriAtlas therefore complements existing software by addressing a different analytical need: the production of standardized spatial outputs directly from atlas datasets with minimal manual GIS processing.

Table 1. Comparison of functionality among AfriAtlas and existing African bird atlas-related R packages.

FeatureAfriAtlasrabmABDtoolsABAP
Direct BirdMap/ABAP API retrieval✓✓✗✓
Species search/code lookup✓✓✗✓
Batch species data retrieval✓✓✗◐
Automated administrative boundary handling✓✗✗✗
Species distribution map generation✓✗✗✗
Survey effort map generation✓✗✗✗
Widespreadness Index✓✗✗✗
Publication-ready visual outputs✓✗✗✗
Google Earth Engine covariate extraction✗✗✓◐
Occupancy-model data formatting✗✗✗✓
End-to-end retrieval → visualization workflow✓✗✗✗

Key:

✓ = implemented.

◐ = partially implemented/indirect support.

✗ = not implemented.

2.2 Core functions

The package workflow (Figure 1) supports a structured pipeline that guides users from species selection to final spatial output. The architecture is organized into three logical phases.

Operational workflow of the *AfriAtlas* package. The schematic details the user pipeline for species code retrieval and validation (via get_species_code, explore_species_codes, and show_codes), the conditional branching for batch processing limits (<=10 species), and the parallel visualization pathways for generating Species Distribution (map_species) and Survey Effort (map_coverage) maps.
Figure 1. Operational workflow of the AfriAtlas package. The schematic details the user pipeline for species code retrieval and validation (via get_species_code, explore_species_codes, and show_codes), the conditional branching for batch processing limits (<=10 species), and the parallel visualization pathways for generating Species Distribution (map_species) and Survey Effort (map_coverage) maps.

2.2.1 Species selection and validation

African Bird Atlas Project species are referenced using numeric codes, which can be difficult to locate without appropriate lookup tools. AfriAtlas addresses this through two helper functions:

  • get_species_code() retrieves the code associated with a given scientific or common name of species.
  • explore_species_codes() provides a table for browsing species list and associated species codes.

Users assemble the results into a species_codes vector, which is validated using show_codes() before proceeding. An internal logic gate ensures that requests do not exceed the recommended batch limit of ≤ 10 species, which promotes efficient data retrieval and prevents excessive API resource consumption.

2.2.2 Parallel visualization

Following validation, the workflow divides into two independent visualization streams, each beginning with an API query. Upon data retrieval, AfriAtlas performs automated spatial processing using sf and rnaturalearth to align pentad coordinates with national administrative boundaries.

  • map_coverage()generates standardized survey-effort maps that summarize total hours recorded per pentad and produces accompanying summary statistics.
  • map_species()retrieves species-occurrence data and generates species distribution maps by combining species occurrence records with survey-coverage information.

Both functions use ggplot2, cowplot, and ggspatial for final map rendering. Error handling is implemented through tryCatch(), allowing the workflow to manage temporary API delays without interrupting batch operations.

2.2.3 Synthesis and export

Species occurrence and survey coverage outputs are combined to enable interpretation of species distribution patterns in the context of survey effort. The map_species()function generates and exports species distribution-coverage maps, while map_coverage()generates and exports survey effort maps as PNG files and summary statistics, including the number of pentads per effort category and the mean ± SE of accumulated hours, as CSV files to the working directory.

2.2 The Widespreadness index

A distinctive feature of AfriAtlas is the calculation of a Widespreadness Index (W), which assists users in interpreting whether a species is broadly distributed or range restricted within a given region. The index is defined as the proportion of full protocol pentads in which a species was recorded relative to the total number of surveyed full protocol pentads within a defined region, multiplied by 100:

W=Nobservation Ncoverage×100

Where N<sub>observation</sub> is the number of full protocol pentads in which a species was recorded, and N<sub>coverage</sub> is the total number of pentads with full protocol survey effort. By restricting the formula to full protocol pentads, the metric standardizes comparisons by controlling for spatial variation in observer effort. This approach provides a coarse, effort-conditioned measure of species widespreadness that is distinct from formal occupancy modeling explicitly account for imperfect detection (MacKenzie et al., 2002), but remains informative for broad-scale comparisons of species occurrence patterns.

2.4 Survey effort across regions

To demonstrate the versatility of AfriAtlas, the package was applied to visualize survey effort and species distributions across three major atlas regions: Nigeria (Nigeria Bird Atlas), Kenya (Kenya Bird Map), and South Africa (SABAP2).

2.5 Visualizing survey effort

Understanding spatial sampling bias is essential for interpreting species distributions. The map_coverage() function dynamically categorizes survey hours per pentad and generates standardized effort maps (Figure 2):

library(AfriAtlas)

# Generate effort maps

nigeria_map<- map_coverage(“Nigeria”)

kenya_map<- map_coverage(“Kenya”)

southafrica_map<- map_coverage(“South Africa”)

2.6 Species-level case studies

To evaluate the package’s utility for conservation and migratory monitoring, two ecologically distinct species were mapped: the Critically Endangered Hooded Vulture (Necrosyrtes monachus) (Figure 3) and the Palearctic migrant Barn Swallow (Hirundo rustica) (Figure 4).

# Retrieve codes

vulture_code<- get_species_code(“Hooded Vulture”)

swallow_code<- get_species_code(“Barn Swallow”)

# Generate distribution maps

map_species(vulture_code, country = “Nigeria”)

map_species(swallow_code, country = “South Africa”)

#… (repeated for other countries)

2.7 Software sustainability and versioning

AfriAtlas (v0.1.0) is distributed through GitHub and uses version-controlled releases to support transparent development and reproducibility. Package dependencies are managed through the package DESCRIPTION file, ensuring compatibility with required spatial and visualization libraries. As AfriAtlas relies on the BirdMap API for data retrieval, functionality depends partly on external API structure and availability. Changes to API endpoints or underlying data formats may require corresponding updates to maintain package compatibility and functionality.

3 Results

3.1 Technical performance and reproducibility

AfriAtlas supports real-time visualization of BirdMap data, allowing outputs to reflect newly submitted citizen-science observations as they are incorporated into the underlying database. Processing performance depends primarily on internet connectivity, BirdMap server responsiveness, and the volume of records retrieved, with larger regions or datasets generally requiring longer processing times. To improve robustness, the package incorporates error-handling through tryCatch(), reducing disruptions associated with temporary API interruptions or server delays. Reproducibility is supported through script-based workflows in R using standardized procedures and user-defined parameters. However, because AfriAtlas retrieves data from a continuously updated database, outputs may vary over time as new observations are added or existing records are updated.

3.2 Survey effort across regions

Survey‐effort maps revealed clear differences in sampling intensity across the three countries (Figure 2; Appendix A). South Africa showed the highest coverage, with 1,613 pentads receiving 101–999 hours of effort (mean = 281.99 ± 4.99 SE) and 249 pentads exceeding 1,000 hours (mean = 2,352.64 ± 123.35 SE). Effort was also substantial in the 4–7 hour category (2,835 pentads, mean = 5.10 ± 0.02 SE). Kenya exhibited low-moderate sampling, with most coverage concentrated in the 2–3 hour range (549 pentads, mean = 2.53 ± 0.02 SE) and only 7 pentads surpassing 1,000 hours (mean = 1,424.29 ± 149.25 SE). Nigeria was also dominated by low-moderate effort categories, including 3,798 pentads with 2–3 hours (mean = 2.39 ± 0.01 SE) and 1,548 pentads with 4–7 hours (mean = 4.93 ± 0.02 SE) (Appendix A).

Total survey effort (total hours) per pentad for **(A)** South Africa, **(B)** Kenya, and **(C)** Nigeria. Color scales are region-specific and automatically adjusted by the map_coverage() function according to the maximum survey effort recorded within each region.
Figure 2. Total survey effort (total hours) per pentad for (A) South Africa, (B) Kenya, and (C) Nigeria. Color scales are region-specific and automatically adjusted by the map_coverage() function according to the maximum survey effort recorded within each region.

3.3 Species-level case studies

Hooded Vulture showed low W values across all regions, with Nigerian pentads showing notably low values (2.8 percent) (Figure 3), consistent with documented population declines in West Africa. Barn Swallow exhibited a clear latitudinal trend: low W in Nigeria (4.7%), moderate in Kenya (54.9%), and high saturation in South Africa (73.0%) (Figure 4).

Species distribution maps generated by *AfriAtlas* for the Critically Endangered Hooded Vulture in **(A)** South Africa, **(B)** Kenya, and **(C)** Nigeria. Pie charts represent the Widespreadness Index, estimated as 2.2%, 7.2%, and 2.8% for South Africa, Kenya, and Nigeria, respectively.
Figure 3. Species distribution maps generated by AfriAtlas for the Critically Endangered Hooded Vulture in (A) South Africa, (B) Kenya, and (C) Nigeria. Pie charts represent the Widespreadness Index, estimated as 2.2%, 7.2%, and 2.8% for South Africa, Kenya, and Nigeria, respectively.
Species distribution maps generated by *AfriAtlas* for the Palearctic migrant Barn Swallow in **(A)** South Africa, **(B)** Kenya, and **(C)** Nigeria. Pie charts represent the Widespreadness Index, estimated at approximately 73%, 54.9%, and 4.7% for South Africa, Kenya, and Nigeria, respectively.
Figure 4. Species distribution maps generated by AfriAtlas for the Palearctic migrant Barn Swallow in (A) South Africa, (B) Kenya, and (C) Nigeria. Pie charts represent the Widespreadness Index, estimated at approximately 73%, 54.9%, and 4.7% for South Africa, Kenya, and Nigeria, respectively.

4 Discussion

4.1 Ecological interpretation of AfriAtlas outputs

AfriAtlas generated outputs that reflected large-scale distribution patterns forHooded Vulture and Barn Swallow, demonstrating the utility of the package for biodiversity analyses. The Widespreadness Index (W) showed patterns consistent with existing ecological knowledge and species assessments. For example, lower values of W for the Hooded Vulture aligned with documented population declines in West Africa associated with poisoning and illegal trade (Ogada et al., 2016; BirdLife International, 2022). Likewise, outputs for the Barn Swallow reflected expected wintering distributions consistent with known migratory patterns across Africa (BirdLife International, 2019).This findings highlight the value of citizen science in generating large-scale species distribution data and supporting long-term biodiversity monitoring (Ringim et al., 2022; Tende et al., 2024).

Coverage disparities among South Africa, Kenya, and Nigeria highlight the importance of using effort-corrected metrics when interpreting atlas data. By automating the retrieval and visualization of effort patterns, AfriAtlas helps account for these biases and supports more reliable cross-regional comparisons. As atlas datasets expand across Africa, such tools will be critical for highlighting ecological insights from unevenly sampled landscapes.

4.2 Workflow efficiency

Before AfriAtlas, producing pentad-level maps required extensive manual processing in desktop GIS software. The workflow is streamlined into a series of function calls that generate maps within seconds, facilitating rapid biodiversity reporting and supporting reproducible workflows across a range of projects.

4.3 Limitations

The analyses presented here were run using R 4.2.3 and AfriAtlas v0.1.0. The package’s performance depends on internet connectivity and BirdMap server responsiveness, although implemented error-handling mechanisms reduce temporary disruptions. The Widespreadness Index should be interpreted strictly as a descriptive, effort-conditioned indicator of species widespreadness rather than species reporting rate or a formal estimate of occupancy (MacKenzie et al., 2002). Although the metric standardizes comparisons using full protocol survey effort, it does not account for imperfect detection, observer heterogeneity, or non-random spatial sampling inherent in citizen-science datasets (MacKenzie et al., 2002; Dickinson et al., 2010). Detectability may vary among habitats, with species potentially easier to detect in open landscapes than in dense vegetation, while differences in observer experience and reporting behavior across regions or countries may further influence observed patterns. Consequently, the index is most appropriate for broad-scale comparisons and exploratory analyses and should not replace formal occupancy approaches that explicitly model detection processes.

4.4 Conclusion

AfriAtlas provides an integrated framework for accessing, processing, and visualizing African Bird Atlas data by combining API retrieval with standardized spatial outputs and publication-ready visualizations. By reducing multiple manual processing steps, the package simplifies the transition from raw atlas data to interpretable results. The examples presented here demonstrate its capacity to generate ecologically plausible spatial patterns and support reproducible analyses. It facilitates standardized visualization of survey effort and species occurrence data and can assist in identifying spatial patterns and survey coverage gaps across atlas datasets. As such, AfriAtlas provides a useful tool for biodiversity research, monitoring, and related applications using African atlas data.

Generative AI statement

The author(s) declared that generative AI was used in the creation of this manuscript. The author(s) verify and take full responsibility for the use of generative AI. Gemini Pro was used solely for debugging and refining code, assisting in structuring the vignette, and performing grammatical editing. No generative AI system contributed to data analysis, interpretation of results, scientific reasoning, or the generation of scholarly content. All conclusions and interpretations are entirely those of the authors.

Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.

Publisher’s note

All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.

Supplementary material

The Supplementary Material for this article can be found online at: https://www.frontiersin.org/articles/10.3389/fbirs.2026.1765968/full#supplementary-material

Supplementary material Supplementary material at the source

Footnotes

Edited by: Piotr Tryjanowski, Poznan University of Life Sciences, Poland

Reviewed by: René Bolom-Huet, Universidad Autónoma del Estado de México, Mexico

Pelin Özden, Izmir Kavram Meslek Yuksekokulu, Türkiye

Statements

Conflict of interest

The author(s) declared that this work was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.

The author UO declared that they were an editorial board member of Frontiers, at the time of submission. This had no impact on the peer review process and the final decision.

Funding

The author(s) declared that financial support was not received for this work and/or its publication.

Data availability

The original contributions presented in the study are included in the article/Supplementary Material. Further inquiries can be directed to the corresponding author.

Author contributions

BD: Writing – original draft, Resources, Investigation, Formal analysis, Software, Visualization, Project administration, Conceptualization, Writing – review & editing, Methodology, Data curation. MB: Writing – original draft, Validation, Data curation, Writing – review & editing. UO: Supervision, Writing – review & editing, Data curation, Writing – original draft.

Acknowledgements

We extend our appreciation to the A. P. Leventis Ornithological Research Institute (APLORI), the FitzPatrick Institute of African Ornithology, the Tropical Biology Association, SABAP2, the Nigeria Bird Atlas Project, the Kenya Bird Map, and all the citizen scientists whose contributions make the African Bird Atlas Project possible. This is paper number 238 from the A.P. Leventis Ornithological Research Institute.

References

  1. BirdLife International (2019). Species Factsheet: Barn Swallow Hirundo Rustica. Available online at: https://datazone.birdlife.org/species/factsheet/barn-swallow-hirundo-rustica (Accessed December 5, 2025).
  2. BirdLife International (2022). Species Factsheet: Hooded Vulture Necrosyrtes Monachus. Available online at: https://datazone.birdlife.org/species/factsheet/hooded-vulture-necrosyrtes-monachus (Accessed December 5, 2025).
  3. Brooks M., Rose S., Altwegg R., Lee A. T. K., Nel H., Ottosson U.. (2022). The African Bird Atlas Project: a description of the project and BirdMap data-collection protocol. Ostrich 93, 223 – 232. doi: doi:10.2989/00306525.2022.2125097
  4. Cervantes F., Lee A. T. K., Henry D. A. W., Brooks M., Visser V., Cloete A.. (2024). The Africa Bird Data packages: African citizen science bird data in R. Ostrich 95, 312 – 320. doi: doi:10.2989/00306525.2024.2423652
  5. Convention on Biological Diversity (CBD) (2022). Kunming–Montreal Global Biodiversity Framework (Cbd/Cop/Dec/15/4) (Montreal, QC: Secretariat of the Convention on Biological Diversity). Available online at: https://www.cbd.int/doc/decisions/cop-15/cop-15-dec-04-en.pdf (Access May 17, 2026).
  6. Danmallam B. A., Tende T., Kuria A., Ivande S. T., Iniunam I. A., Ngila P. M.. (2025). Effectiveness of protected areas in conserving avian communities amid human impact in Nigeria. Conserv. Biol. 39 (5), 1 – 12. doi: doi:10.1111/cobi.70069
  7. Dickinson J. L., Zuckerberg B., Bonter D. N. (2010). Citizen science as an ecological research tool: Challenges and benefits. Annu. Rev. Ecol. Evol. Syst. 41, 149 – 172. doi: doi:10.1146/annurev-ecolsys-102209-144636
  8. Iniunam I. A., Kumle N., Danmallam B. A., Kuria A. G., Trevelyan R., Ottosson U.. (2026). Bridging citizen science and policy for bird conservation in Africa: Lessons from the Nigerian Bird Atlas Project. Front. Bird Sci. 4, 1728231. doi: doi:10.3389/fbirs.2025.1728231
  9. Ivande S. T., Abalaka J. I., Atuo F. A., Barshep Y., Chaskda A. A., Dami F. D.. (2026). Capacity building as a pathway to indigenous participation in tropical birding and citizen science. Front. Bird Sci. 5, 1797647. doi: doi:10.3389/fbirs.2026.1797647
  10. Lee A. T. K., Brooks M., Underhill L. G. (2022). The SABAP2 legacy: A review of the history and use of data generated by a long-running citizen science project. S. Afr. J. Sci. 118 (1/2), 12030. doi: doi:10.17159/sajs.2022/12030
  11. MacKenzie D. I., Nichols J. D., Lachman G. B., Droege S., Royle A. A., Langtimm C. A. (2002). Estimating site occupancy rates when detection probabilities are less than one. Ecology 83 (8), 2248 – 2255. doi: doi:10.1890/0012-9658(2002)083[2248:ESORWD]2.0.CO;2
  12. Meyer C., Jetz W., Guralnick R. P., Fritz S. A., Kreft H. (2015). Global priorities for an effective information basis of biodiversity distributions. Nat. Commun. 6, 8221. doi: doi:10.1038/ncomms9221
  13. Nussbaumer R., Nussbaumer A., Guchu S., Hatfield R. S., Kanga M. E., Kung’u G. N.. (2024). Historical bird atlas and contemporary citizen science data reveal long‐Term changes in geographic range of Kenyan birds. Divers. Distrib. 31 (2), e13935. doi: doi:10.1111/ddi.13935
  14. Ogada D., Botha A., Shaw P. (2016). Ivory poachers and poison: Drivers of Africa’s declining vulture populations. ORYX 50 (4), 593 – 596. doi: doi:10.1017/S0030605315001209
  15. Pebesma E. (2018). Simple features for R: Standardized support for spatial vector data. The R Journal. 10 (1), 439 – 446. doi: doi:10.32614/rj-2018-009
  16. Ringim A. S., Muhammad S. I., Bako L. A., Abubakar H. M., Isa S. M., Nelly D. J.. (2022). How citizen scientists are rapidly generating big distribution data: lessons from the Arewa Atlas Team, Nigerian Bird Atlas Project. Ostrich 93, 24 – 33. doi: doi:10.2989/00306525.2022.2058105
  17. Tende T., Iniunam I. A., Ivande S. T., Awoyemi A. G., Danmallam B. A., Ringim A. S.. (2024). Citizen science mitigates the lack of distributional data on Nigerian birds. Ecol. Evol. 14, e11280. doi: doi:10.1002/ece3.11280
  18. Wickham H. (2016). Ggplot2: Elegant Graphics for Data Analysis (New York, NY: Springer-Verlag). doi: doi:10.1007/978-3-319-24277-4

Citation

Danmallam, B. A., et al. (2026). AfriAtlas: an R package for automating the visualization of African bird atlas project data. Frontiers in Bird Science, Volume 5. https://doi.org/
Received
Accepted
Published
Volume
5 - 2026

Copyright

Copyright © 2026 Danmallam, Brooks and Ottosson.

License: https://creativecommons.org/licenses/by/4.0/

*Correspondence: Bello Adamu Danmallam

Article metrics

Views
0
Downloads
0
Citations
0
Shares
0