Crater lake

VegBank 1.0.0

A Repository for Vegetation Plot Data across North America

Welcome to VegBank!

VegBank is the public repository for vegetation plot data, maintained by the Ecological Society of America's Vegetation Classification Panel. These data support the development of the U.S. National Vegetation Classification (USNVC) and general ecological research across North America.

These data are also available for access with R via the vegbankr R package, and in other languages via the VegBank REST API. To upload data, request contributor permissions from the ESA Vegetation Classification Panel. Once your contributor role is granted, you will be able to upload new plot data with the vegbankr R package.

Browse the FAQ page and other info in the About dropdown for additional documentation. Please report any bugs here with details about what you were doing when the problem occurred.

Data in VegBank
Recently Updated Projects
Projects with Most Plots
Common Communities
Common Plants
Top Contributors

Getting Started

When you open the app you’ll land on the Home page. Here’s an overview of what you can do on different pages:

  • Home: Start here for quick links into VegBank data, and any featured content or updates.
  • Overview: Use this dashboard to get a sense for the scale of data in VegBank, browse recently updated projects, and find the most observed plants and communities.
  • Map: View plot locations on an interactive map. Click markers to zoom to plot clusters and the links on location labels to see plot observation details. Some location labels have many plot observations because of repeated sampling or location fuzzing for privacy.
  • Plots: Browse vegetation plot observations. Each row represents a single plot observation with location, date, and ecological data. Use the search box to find plots with a specific plant species, community type, author code, vegbank code, or location (eg: Sibbaldiopsis tridentata, CEGL001833, Eleocharis palustris Marsh, BADL.126, ob.ob.3736, or California)
  • Plants: Explore the plant taxonomy database. Search for plant concepts by plant name or browse the full list of plant concepts.
  • Communities: View community classification types. Communities represent recurring patterns of co-occurring plant species. You can also search them by name or browse the full list.
  • Parties: Find contributors, authors, and parties associated with plot data.
  • Projects: Explore research projects that have contributed data to VegBank.
  • About: Learn more about the application and the VegBank project as a whole.

Using the App

Here are some of the basic functions available in the app:

  • Click ‘Details’ buttons or links in tables to view detailed information about any entity.
  • Browse the ‘Map’ to see plots grouped by location. Clicking the links on the pin labels will show details for a plot, and clicking the ‘Map’ button in a row of the plot table will center the map on that plot.
  • Use the search box in the top-right of each table to find matching results.
    • Quotes: Use double quotes to search for exact phrases (e.g., "Quercus alba" ).
    • Multiple terms: Separate words with spaces to match rows containing multiple terms (e.g., oak prairie ).
    • Exclude terms: Prefix a word with a minus sign to exclude it (e.g., -alliance).
  • Filter the plot table by plant, community, party, or project by clicking the numerical observation, contribution, or plot count links for that entity. That will bring you to the plots table and show only plots associated with that entity. Use the ‘Clear filter’ button above the plot table to remove the filter.
  • Download up to 20,000 plots from the plot table using the download button to the upper left of the table. In order for the button to be enabled you’ll need to filter the table down to less than 20,000 rows using a filter and or search term. The downloaded file will contain various csv representations of the plot observations in the table, but to download the most complete version of the data, you should interact with VegBank via the vegbankr R package.
  • Sorting is supported for any table column that has arrows in its header. You can click that header to sort by that column in ascending or descending order.
  • Your URL updates as you navigate, so you can bookmark or share specific views.
  • Use your browser’s back/forward buttons to navigate through your browsing history.
  • For common questions, check the FAQ page.

VegBank FAQ

Frequently Asked Questions about the VegBank database and website.

Please select from the following questions, or browse through this file:

What is VegBank?
Who runs VegBank?
What is a plot?
What is a community?
What is a plant concept? What is a community concept?
Where does VegBank get its plots and other data?
What is your standard list of species/communities?
How do I find plots in VegBank?
How do I download VegBank data to my computer?
What features does VegBank offer for analysis of plot data?
What is metadata?
How do I cite VegBank?
What is a VegBank Code?
How is VegBank financed? How can I help VegBank operate financially?
How can I get help with VegBank? Is there a tutorial?
What if I find something not working in VegBank?


What is VegBank?

VegBank is the vegetation plot database of the Ecological Society of America’s Panel on Vegetation Classification. VegBank stores data about vegetation plots and necessary supplemental data, such as a plant taxon database and community type database. VegBank’s purpose is to allow plant ecologists to submit and share data to allow permanent documentation of plot data, which will provide a permanent record of plots which define communities.

back to top…


Who runs VegBank?

VegBank is operated by the National Center for Ecological Analysis and Synthesis in cooperation with the Ecological Society of America’s Vegetation Panel.

back to top…


What is a plot?

The purpose of plots is to record the vegetation and its environmental context. A plot may be contained by a single bounded area, such as a 50m x 20m rectangle. It could also consist of smaller subplots which sample vegetation over a large range. While we encourage plots to have boundaries and definite size, VegBank also accepts relevés that have no bounds as valid plots. An observation is a one-time record of vegetation present in a plot. So multiple observations of a plot could be made at different times, producing different values for both vegetation (i.e., which taxa are present, and their abundance if recorded) and environmental variables (e.g., soil characteristics).

back to top…


What is a community?

In overly simple terms, a community is a set of plant taxa that live adjacent to one another within a set of physical conditions. This community of co-occurring plants may be seen to repeat itself in a predictable pattern. One may classify (or interpret) a plot as belonging to a certain community type.

The USNVC Guide to the Classification provides more full definitions for the 8 levels of the Natural Vegetation Heirarchy from Biome down to Association.

Communities are Concept-Based in VegBank, meaning they are defined by a combination of a name and a reference. See the What is a Concept? FAQ Topic for more information on Concepts.

back to top…


What is a plant concept? What is a community concept?

Generally, people use only a plant name to refer to a particular plant taxon. However, names may mean different things to different people or at different times. When users view a plant in VegBank, they need to know what is meant by a plant name, hence only a name is not enough. A reference, or context, must be provided which gives the name meaning and defines what the taxon encompasses. When we mention a “plant concept” in VegBank, we mean this unique combination of name and reference. For example, one might mention “Carya ovata” according to (reference) “Radford, 1968.” Each plant concept and community concept in VegBank has a VegBank Code which provides unique identification for the plant concept.
Community Concepts function in exactly the same way, except that Community Concepts describe a community type, not a plant taxon.

back to top…


Where does VegBank get its plots and other data?

Plots in VegBank come from the users who decide to contribute their plots. VegBank does not fund plot collection, but is a means for those who do collect plots to share their data. There are two major implications of this:

  1. We do not guarantee the accurateness of the data in VegBank. Users are allowed to annotate (make notes and reinterpret plants and plots) to share with other users their opinions about the data already in VegBank. [Some of the annotation features are still in development.]
  2. We need users to share their data. There are many different reasons users share their data. Some are required to share their data by their grants, but don’t want to deal with the hassle of setting up computer servers and software to manage this. Some use VegBank as a means of collaborating with others in data analysis. Others have finished analysis and are eager to find a use for their hard work other than being filed away to collect dust. Still others see the foresight in adding their data to the greater body of knowledge on a public site like VegBank.

Other data, like plants and communities, come from VegBank’s users, but rely heavily on VegBank users like the organizations USDA Plants and NatureServe to provide this data.

back to top…


What is your standard list of species/communities?

VegBank does not have a standard list of taxa or communities. In VegBank, plants and communities have a Party Perspective which defines whether a plant or community is standard or not and what names may be used to describe it. VegBank has no Party Perspective of its own. However, USDA PLANTS 2002 data and NatureServe communities were initially loaded into the database and users are strongly encouraged to map any new plants or communities onto USDA’s or NatureServe’s standards. This allows other users, who may know nothing of your own views, to view information according to the USDA or NatureServe standards.

back to top…


How do I find plots in VegBank?

You can search for plots on the plot tab:

In the top right of the plot table is a very simple search box, where you can specify one or more of the following: plant found on the plot, community to which the plot is interpreted, state/province in which the plot is located, the code assigned by the author to the plot.

A more complex query is in the works…

back to top…


How do I download VegBank data?

View our Download Plots page in the About menu to learn more about downloading data with the Plot table. Data can also be downloaded from the vegbankr R package, which underpins this website and serves as an interface to the VegBank API.

back to top…


What features does VegBank offer for analysis of plot data?

VegBank does not have analysis tools. Other groups have done a good job making tools for analysis, and we encourage users to find data in VegBank, then download it, then work on analysis with another program. Users interested in more precise analysis and complete views of the data may also benefit from exploring it via the vegbankr package.

back to top…


What is metadata?

Metadata is plot data that defines not what was measured, but how it was measured. Cover Method and Stratum Method are examples of metadata. Plot size and stem sampling method might also be considered metadata. These data are often considered secondary in importance, but are essential when many different techniques are used to collect plots, as is the case with VegBank data.

back to top…


How do I cite VegBank?

To cite VegBank, as a whole or one or more elements, follow the instructions on the Citing Data page in the About menu. That page also shows how to cite a description of VegBank.

back to top…


What is a VegBank Code?

A VegBank Code is a unique combination of letters, numbers, and a period which uniquely identify something in VegBank. VegBank Codes are used to identify plots and observations, as well as methods, plant taxa, and community types. This allows communication about these elements to take place so that each party knows that they are mentioning the same thing. VegBank Codes are important when vegbankr and VegBank communicate, because this helps the two align the different types of data, rather than repeating redundant information.

For those who want to know how a VegBank Code works (this is not necessary!), it is broken into two parts, each divided by a period (.). An example VB Code is that of Quercus alba, with reference of USDA 2002 : pc.48413. The first part is the table identifier (i.e. pc for plant concepts), then the record number (i.e., 48413).

back to top…


We are currently funded by the California Department of Fish and Wildlife (CDFW). We gratefully acknowledge the financial support of CDFW.

Eventually, we’d like to have a feature that allows you to donate to our efforts. Until then, if you have a funding source for VegBank, please contact us at help@vegbank.org. We’d be more than happy to hear about it.

back to top…


How can I get help with VegBank? Is there a tutorial?

You can get a baisc overview of the application and some common interactions on the Getting Started page in the About menu. If you have further questions feel free to contact us at help@vegbank.org.

back to top…


What if I find something not working in VegBank?

You should tell us about what wasn’t working. Just send an email to help@vegbank.org and explain what it is that isn’t working. Please be as specific as possible, i.e. what the URL was when the error occurred, what the search criteria were if you were searching for something, the time and date the error occurred, etc. Users who report errors help us improve the VegBank experience for everyone. Thank you!

back to top…


Cite or Link to VegBank

One of VegBank’s strengths is that its data are permanently archived. This means that you can cite a dataset or plot in VegBank and others will be able to follow your citation hyperlink to see the same data you saw at the time of citation. This is critical for analytical transparency. In addition, to give credit to the VegBank system, you might consider citing the VegBank software as a key tool in your workflows. Below we provide recommended citations for the various things you might cite in VegBank.


Citing a Dataset in VegBank with a DOI

Researchers can create a Vegbank Dataset (a specific named collection of plot observations) using the create_dataset() API function, which in turn mints a citation-friendly DOI for the dataset.

To cite a dataset that is created in VegBank, it is best to use the DOI url for the dataset, which you can get from the ‘Copy Citation’ button in the web interface. That will produce a citation of the form:

Kyle Palmquist (2013): VegBank plot observations: Carolina Vegetation Survey Longleaf Analysis. VegBank. Dataset. doi:10.82902/ZZZZZZZZ.

Once you know the DOI, You can resolve the dataset using any of the following URL patterns:


Linking to records in VegBank with a persistent URL

In addition to datasets, VegBank produces transparent permalinks to other types of records in the system. Right now only a single plot observation, community concept, or dataset can be cited, but we plan to extend citations to the rest of the records soon. Each of these types of record has a unique VegBank Code that can be used to fashion a URI to cite that record. You can find the VegBank Code (the unique identifier for VegBank data) on the table and detail views of different entities.

Once you know the VegBank Code, use the following pattern to create a URL:

https://vegbank.org/cite/[VegBankCode]

Where [VegBankCode] is the VegBank Code of the plot or other data to cite.

Examples

Entity Citation URL
Plot Observation https://vegbank.org/cite/ob.3736
Community Concept https://vegbank.org/cite/cc.5728

Citing the VegBank Database and API

To cite the VegBank database and API service, use:

Jim Regetz, Robert Shelton, Darian Gill, Matthew B. Jones, Dou Mok, Matthew Brooke, Rushiraj Nenuji, Jeanette Clark, Maggie Klope, Michael T. Lee, Robert K. Peet. 2026. VegBank: the open-access vegetation plot database and API of the Ecological Society of America’s Panel on Vegetation Classification. Version 2.1.1. VegBank. doi:10.82902/J1WC7G.


Citing the vegbankr client libary

If you made use of the R tooling in the vegbankr package, you can cite the software package as:

Jim Regetz, Matthew B. Jones, Rushiraj Nenuji, Jeanette Clark, Maggie Klope. 2026. vegbankr: An R API package for the VegBank data system. Version 1.0.0. VegBank. doi:10.82902/J1MW28


Citing the VegBank Web application

To cite the web application that is used to search and display VegBank data, use:

Darian Gill, Jim Regetz, Matthew B. Jones, Michael T. Lee, Matthew Brooke, Robert K. Peet (2026) VegBank Web: A Shiny Web App for Vegetation Plot Data. Version 1.0.0. VegBank. doi:10.82902/J1H59R


Citing a Description of VegBank

To cite the original paper describing VegBank, please use the following citation:

Peet, R.K., M.T. Lee, M.D. Jennings, & D. Faber-Langendoen. 2012. VegBank - a permanent, open-access archive for vegetation-plot data. Biodiversity and Ecology 4: 233-241.

Downloading Plot Data

The VegBank web app lets you download up to 20,000 plot observations at a time as a ZIP archive containing several related CSV files. For bulk or programmatic access, consider using the vegbankr R package, which provides full access to all VegBank data without the 20,000-row limit.


How to Download

  1. Navigate to the Plots tab.
  2. Use the search box or a filter (from a Project, Party, Plant, or Community view) to narrow the table to the plots you want. The download button is only active when the table contains 20,000 or fewer rows.
  3. Click the Download CSV button above the table. A loading indicator will appear while the data is fetched from the API.
  4. Save the resulting .zip file to your computer and extract it.

What’s in the ZIP

After extracting the archive you will find a README.txt and up to eleven CSV files. Files containing no data for your download are omitted. Each file uses a short VegBank code column as its primary key (e.g. ob_code, to_code).

File Primary key Description
plot_observations.csv ob_code One row per plot observation — the primary table. All other files link back to it via ob_code.
taxon_observations.csv to_code Plant taxa recorded on a plot. Joins to plot_observations via ob_code.
taxon_interpretations.csv ti_code Assignments of plant concepts to taxon observations. Joins to plot_observations via ob_code, taxon_observations via to_code, and plant_concepts via pc_code.
taxon_importances.csv tm_code Cover and other importance metrics for a taxon observation, optionally within a stratum. Joins to plot_observations via ob_code, taxon_observations via to_code, and strata via sr_code.
stem_counts.csv sc_code Stem counts associated with an importance record. Joins to plot_observations via ob_code, taxon_observations via to_code, taxon_importances via tm_code, and strata via sr_code.
plant_concepts.csv pc_code Plant concept reference table. Reach it from taxon_interpretations via pc_code.
strata.csv sr_code Vegetation strata (layers) defined for a plot observation. Joins to plot_observations via ob_code.
community_classifications.csv ci_code Community interpretation events for a plot. Each classification event (cl_code) may have multiple interpretations. Joins to plot_observations via ob_code and community_concepts via cc_code.
community_concepts.csv cc_code Community concept reference table. Reach it from community_classifications via cc_code.
projects.csv pj_code Projects under which observations were made. Joins from plot_observations via pj_code.
parties.csv py_code People and organizations contributing to plot observations.
README.txt Download metadata, applied filters, file descriptions, and citation.

Joining the CSVs

ob_code is the common key that links most tables back to plot_observations.csv. It contains a VegBank Code of the form ob.XXXXX.

R

library(readr)
library(dplyr)

plots       <- read_csv("plot_observations.csv")
taxon_obs   <- read_csv("taxon_observations.csv")
taxon_interp <- read_csv("taxon_interpretations.csv")
plants      <- read_csv("plant_concepts.csv")
comm_class  <- read_csv("community_classifications.csv")
comm_conc   <- read_csv("community_concepts.csv")
strata      <- read_csv("strata.csv")
importances <- read_csv("taxon_importances.csv")

# All taxa observed on each plot, with plot metadata
plots_with_taxa <- plots |>
  left_join(taxon_obs, by = "ob_code")

# Resolve taxon observations to named plant concepts
taxa_named <- taxon_obs |>
  left_join(taxon_interp, by = "to_code") |>
  left_join(plants, by = "pc_code")

# Cover/importance values per taxon per plot (optionally per stratum)
taxa_cover <- taxon_obs |>
  left_join(importances, by = "to_code") |>
  left_join(strata, by = "sr_code")

# Community concepts assigned to each plot
plots_with_community <- plots |>
  left_join(comm_class, by = "ob_code") |>
  left_join(comm_conc, by = "cc_code")

Python

import pandas as pd

plots        = pd.read_csv("plot_observations.csv")
taxon_obs    = pd.read_csv("taxon_observations.csv")
taxon_interp = pd.read_csv("taxon_interpretations.csv")
plants       = pd.read_csv("plant_concepts.csv")
comm_class   = pd.read_csv("community_classifications.csv")
comm_conc    = pd.read_csv("community_concepts.csv")
strata       = pd.read_csv("strata.csv")
importances  = pd.read_csv("taxon_importances.csv")

# All taxa observed on each plot, with plot metadata
plots_with_taxa = plots.merge(taxon_obs, on="ob_code", how="left")

# Resolve taxon observations to named plant concepts
taxa_named = (taxon_obs
    .merge(taxon_interp, on="to_code", how="left")
    .merge(plants, on="pc_code", how="left"))

# Cover/importance values per taxon per plot (optionally per stratum)
taxa_cover = (taxon_obs
    .merge(importances, on="to_code", how="left")
    .merge(strata, on="sr_code", how="left"))

# Community concepts assigned to each plot
plots_with_community = (plots
    .merge(comm_class, on="ob_code", how="left")
    .merge(comm_conc, on="cc_code", how="left"))

Limits

  • Plot observations are capped at 20,000 records per download. If your filter matches more than 20,000 plots the download button will be disabled — refine your search further.
  • All other CSV files (taxa, strata, communities, etc.) are each limited to 1,000,000 records and include all rows associated with the downloaded plot observations.
  • The obs_count column that appears in some reference tables (e.g. plant_concepts, community_concepts) reports the total count of observations in VegBank, not the count specific to your download.

Notes

  • Empty files are omitted: If a set of plot observations has no stratum data, for example, strata.csv will not appear in the ZIP.
  • Location fuzzing: Some plot coordinates are intentionally imprecise to protect sensitive species or private land.
  • Superseded plots: The Plots table shows only current plot observations by default. Superseded versions are hidden unless you change the Status dropdown. The downloaded data reflects whichever rows were visible in the table at the time of download.
  • Large downloads: For datasets larger than 20,000 plots, use the vegbankr R package.
Showing
Author Codes
Dates
Location
Layout
Environment
Methods
Plot Quality
Plot Vegetation
Communities
Taxa Observed
Disturbances
Soils
Miscellaneous
Showing
Concept Details
Party Perspective
Showing
Classification Details
Community Interpretations
Contributors
Showing
Description
Dates
Plot Observation Count
Contributors
Showing
Organization
Contact Information
Contributions
Showing
Concept Details
Party Perspective
Showing
Identifiers
Publication
Name
Details
Cover Indexes
Name
Details
Stratum Types
Showing
Observation Details
Taxon Importance
Taxon Interpretations
Showing
Dataset Details
Citation