Access the Global Plant Phenology Data Portal

An R interface to the Global Plant Phenology Data Portal, which is accessible online at <>.

Build Status

The global plant phenology data portal, or PPO data portal, is an aggregation of plant phenological observations from USA-NPN, NEON, and PEP725 representing 20 million phenological observations from across North America and Europe. The PPO data portal utilizes the Plant Phenology Ontology (PPO) to align phenological terms and measurements from the various databases. The rppo R package enables programmatic access to all data contained in the PPO data portal incuding selected classes contained in the PPO itself.

For information on how data is assembled for the PPO data portal, visit the ppo-data-pipeline git repository.


The production version of rppo will be accessible on CRAN once it has passed review:


You can install the development version of rppo from github with:


Install the library once it has been downloaded from CRAN or github.



Following are a couple of brief examples to illustrate how to get started with rppo. We recommend visiting the rppo vignette for a more complete set of examples on using the rppo package, as well as viewing man pages for rppo functions in the R environment, using ?ppo_data and ?ppo_terms.

# query all results from day 1 through 100 in a particular bounding box, 
# limited to 2 records
r <- ppo_data(fromDay = 1, toDay = 100, bbox="37,-120,38,-119", limit=2)
#> sending request for data ...
# view the data returned
#>   dayOfYear year   genus specificEpithet latitude longitude
#> 1        33 2017 Quercus       douglasii 37.11144 -119.7315
#> 2        96 2017  Bromus        diandrus 37.11144 -119.7315
#>                                                                                                                                                                                                                                            termID
#> 1                                                                                                                                                                                                 obo:PPO_0002610,obo:PPO_0002013,obo:PPO_0002000
#> 2 obo:PPO_0002601,obo:PPO_0002610,obo:PPO_0002005,obo:PPO_0002604,obo:PPO_0002605,obo:PPO_0002013,obo:PPO_0002003,obo:PPO_0002000,obo:PPO_0002602,obo:PPO_0002006,obo:PPO_0002007,obo:PPO_0002004,obo:PPO_0002008,obo:PPO_0002603,obo:PPO_0002600
#>   source
#> 1   NEON
#> 2   NEON
#>                                                              eventId
#> 1
#> 2
# view the number of possible records returned
#> [1] 7251
# return a data frame of present
presentTerms <- ppo_terms(present = TRUE)
#> sending request for terms ...
# print the 2nd present term returned
#>            termID                    label
#> 2 obo:PPO_0002301 new shoot system present
#>                                                                                                                                                                    definition
#> 2 An 'new shoot system presence' (PPO:0002003) trait that is a 'quality of' (RO:0000080) a 'whole plant' (PO:0000003) that has at least one 'new shoot system' (PPO:0001003).
#>                                          uri
#> 2


To cite the 'rppo' R package in publications use:

   'John Deck, Brian Stucky, Ramona Walls, Kjell Bolmgren, Ellen Denny, Robert Guralnick' (2018). rppo: An interface to the Plant Phenology Ontology and associated data store.  R package version 1.0

Code of Conduct

View our code of conduct



rppo 1.0

New Features

  • released to CRAN on May 8th, 2018

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.0 by John Deck, a year ago

Report a bug at

Browse source code at

Authors: John Deck [aut, cre] , Brian Stucky [aut] , Ramona Walls [aut] , Kjell Bolmgren [aut] , Ellen Denny [aut] , Robert Guralnick [aut]

Documentation:   PDF Manual  

GPL-2 license

Imports jsonlite, readr, plyr, httr

Suggests testthat, knitr, rmarkdown, covr

See at CRAN