library_of_life
is a Python package that provides a client interface for interacting with the Global Biodiversity Information Facility (GBIF) API. The library is organized into submodules representing different APIs within the GBIF service, making it easy to access various resources related to biodiversity data.
- Installation
- Quick Start
- Modules
- Caching
- Authentication
- Contributing
- Donating$$$
- License
- Documentation
You can install library_of_life
via pip:
pip install library_of_life
Here's a quick example to get you started with library_of_life
:
from library_of_life.registry.datasets import Datasets
from library_of_life.species.name_usage import NameUsage
# Initialize the Datasets and NameUsage classes
dataset_client = Datasets()
name_usage_client = NameUsage()
# List current datasets matching specified parameters
dataset = dataset_client.list_datasets(dataset_type="SAMPLING_EVENT", limit=10)
print(dataset)
# Return all vernacular species names by a specific usage key
vernacular_names= name_usage_client.get_usage_vernacular_names_by_usage_key(5231190)
print(vernacular_names)
Each module is composed of separate submodules reflecting the divisions in the GBIF APIs. Within each of these submodules is a class and appropriate methods for accessing the data and resources available for the respective endpoints.
For now the registry module only contains the principal methods, but it will be updated in the future to include all of the methods.
datasets
publishing_orgs
participant_nodes
networks
tech_installations
collections
institutions
institutions_and_collections
derived_datasets
name_usage
name_search
name_parser
single_occurrence
search
downloads
download_format
download_stats
metrics
inventories
gadm_regions
country_usages
organization_usages
maps
literature
vocabularies
concepts
tags
languages
Each class contains an optional caching feature using requests_cache. Simply set use_caching to True when initializing the respective class.
As some features of the GBIF API require authentication (POST, PUT, DETETE methods), this package handles both basic authentication (username and password) and OAuth2 authentication. This is dealt with at the class level. The default is for basic authentication, but if OAuth is desired, simply pass auth_type="OAuth" when initializing the class, as wellas the necessary credentials. Future versions may handle this with a config file.
Contributions are welcome! If you would like to contribute to the development of library_of_life
, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a new Pull Request.
If you find this project helpful and would like to support its development, consider making a donation.
This project is licensed under the MIT License. See the LCENSE file for more details.
For more information, read the docs