Skip to contents R-CMD-check

The global plant phenology 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.


You can install rppo from github with:



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, timeLimit=10)
#> 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, timeLimit=10)
#> sending request for terms ...

# print the 2nd present term returned
#>            termID                            label
#> 2 obo:PPO_0002358 abscised fruits or seeds present
#>                                                                                                                                                                                                                                                                                                                                  definition
#> 2 An 'abscised fruit or seed presence' (PPO:0002059) trait that is a 'quality of' (RO:0000080) a 'whole plant' (PO:0000003) from which at least one 'ripe fruit' (PPO:0001045) has been abscised or removed by an herbivore or that has at least one 'ripe fruit' (PPO:0001045) that has abscised at least one 'mature seed' (PPO:0001024).
#>                                          uri
#> 2


To cite the ‘rppo’ R package in publications use:

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

Code of Conduct

View our code of conduct