The pygbif documentation offers examples of code that you can execute. If you run them as stand-alone scripts, you’ll likely want to add print
statements to display some of the results. For instance, the example below is offered in the species module documentation. You can enhance that example by using some variables to hold intermediate results, and by adding calls to the print
built-in function to display output.
from pygbif import species
species.name_backbone(name='Helianthus annuus', kingdom='plants')
species.name_backbone(name='Helianthus', rank='genus', kingdom='plants')
species.name_backbone(name='Poa', rank='genus', family='Poaceae')
# Verbose - gives back alternatives
species.name_backbone(name='Helianthus annuus', kingdom='plants', verbose=True)
# Strictness
species.name_backbone(name='Poa', kingdom='plants', verbose=True, strict=False)
species.name_backbone(name='Helianthus annuus', kingdom='plants', verbose=True, strict=True)
# Non-existent name
species.name_backbone(name='Aso')
# Multiple equal matches
species.name_backbone(name='Oenante')
The following script was produced from code borrowed from the above and other examples, with the aid of variables and print
statements that were added:
# See the following references
# https://pygbif.readthedocs.io/en/latest/modules/species.html
# https://pygbif.readthedocs.io/en/latest/modules/occurrence.html
from pygbif import species
from pygbif import occurrences as occ
species_name = 'Quercus velutina' # name of species
spec_info = species.name_backbone(name = species_name) # get information for that species
spec_key = spec_info['speciesKey'] # get species key from information for that species
spec_occs = occ.search(taxonKey = spec_key, limit = 12) # get 12 occurrences of species
results = spec_occs['results'] # get the results as a list
# loop through list, displaying only results that have latitude and longitude
for result in results:
if ('decimalLatitude' in result and 'decimalLongitude' in result):
print(f"Latitude, Longitude: {result['decimalLatitude']}, {result['decimalLongitude']}")
print("\n\nKeys found in first result:")
for key in results[0]:
print(key)
The purpose of the final for
loop at the end of the code was to reveal numerous keys that are potentially available for querying the occurrence results. You can experiment with some of those keys to find out what information is available.
Output from the above script:
Latitude, Longitude: 40.755153, -73.46598
Latitude, Longitude: 40.962715, -72.7979
Latitude, Longitude: 39.049889, -77.321062
Latitude, Longitude: 39.322321, -74.596241
Latitude, Longitude: 39.84528, -90.560022
Latitude, Longitude: 40.82695, -73.5326
Latitude, Longitude: 37.606563, -77.542687
Latitude, Longitude: 40.959447, -73.990726
Latitude, Longitude: 42.42818, -72.500149
Latitude, Longitude: 40.68413, -73.513642
Latitude, Longitude: 41.73222, -72.391798
Latitude, Longitude: 41.732109, -72.392163
Keys found in first result:
key
datasetKey
publishingOrgKey
installationKey
hostingOrganizationKey
publishingCountry
protocol
lastCrawled
lastParsed
crawlId
extensions
basisOfRecord
occurrenceStatus
taxonKey
kingdomKey
phylumKey
classKey
orderKey
familyKey
genusKey
speciesKey
acceptedTaxonKey
scientificName
acceptedScientificName
kingdom
phylum
order
family
genus
species
genericName
specificEpithet
taxonRank
taxonomicStatus
iucnRedListCategory
dateIdentified
decimalLatitude
decimalLongitude
coordinateUncertaintyInMeters
continent
stateProvince
gadm
year
month
day
eventDate
issues
modified
lastInterpreted
references
license
identifiers
media
facts
relations
isInCluster
datasetName
recordedBy
identifiedBy
geodeticDatum
class
countryCode
recordedByIDs
identifiedByIDs
country
rightsHolder
identifier
http://unknown.org/nick
verbatimEventDate
gbifID
verbatimLocality
collectionCode
occurrenceID
taxonID
catalogNumber
institutionCode
eventTime
http://unknown.org/captive
identificationID