Python client for GBIF
Project description
pygbif
======
|pypi| |docs| |travis| |coverage|
Python client for the `GBIF API
<https://www.gbif.org/developer/summary>`_
`Source on GitHub at sckott/pygbif <https://github.com/sckott/pygbif>`_
Other GBIF clients:
* R: `rgbif`, `ropensci/rgbif <https://github.com/ropensci/rgbif>`_
* Ruby: `gbifrb`, `sckott/gbifrb <https://github.com/sckott/gbifrb>`_
Installation
============
Stable from pypi
.. code-block:: console
pip install pygbif
Development version
.. code-block:: console
[sudo] pip install git+git://github.com/sckott/pygbif.git#egg=pygbif
`pygbif` is split up into modules for each of the major groups of API methods.
* Registry - Datasets, Nodes, Installations, Networks, Organizations
* Species - Taxonomic names
* Occurrences - Occurrence data, including the download API
* Maps - Maps, get raster maps from GBIF as png or mvt
You can import the entire library, or each module individually as needed.
In addition there is a utils module, currently with one method: `wkt_rewind`, and
a `caching` method to manage whether HTTP requests are cached or not. See `?pygbif.caching`.
Registry module
===============
registry module API:
* `organizations`
* `nodes`
* `networks`
* `installations`
* `datasets`
* `dataset_metrics`
* `dataset_suggest`
* `dataset_search`
Example usage:
.. code-block:: python
from pygbif import registry
registry.dataset_metrics(uuid='3f8a1297-3259-4700-91fc-acc4170b27ce')
Species module
==============
species module API:
* `name_backbone`
* `name_suggest`
* `name_usage`
* `name_lookup`
* `name_parser`
Example usage:
.. code-block:: python
from pygbif import species
species.name_suggest(q='Puma concolor')
Occurrences module
==================
registry module API:
* `search`
* `get`
* `get_verbatim`
* `get_fragment`
* `count`
* `count_basisofrecord`
* `count_year`
* `count_datasets`
* `count_countries`
* `count_schema`
* `count_publishingcountries`
* `download`
* `download_meta`
* `download_list`
* `download_get`
Example usage:
.. code-block:: python
from pygbif import occurrences as occ
occ.search(taxonKey = 3329049)
occ.get(key = 252408386)
occ.count(isGeoreferenced = True)
occ.download('basisOfRecord = LITERATURE')
occ.download('taxonKey = 3119195')
occ.download('decimalLatitude > 50')
occ.download_list(user = "sckott", limit = 5)
occ.download_meta(key = "0000099-140929101555934")
occ.download_get("0000066-140928181241064")
Maps module
===========
maps module API:
* `map`
Example usage:
.. code-block:: python
from pygbif import maps
out = maps.map(taxonKey = 212, year = 1998, bin = "hex",
hexPerTile = 30, style = "classic-noborder.poly")
out.response
out.path
out.img
out.plot()
.. image:: https://github.com/sckott/pygbif/raw/master/gbif_map.png
:width: 25%
:scale: 25%
utils module
============
utils module API:
* `wkt_rewind`
Example usage:
.. code-block:: python
from pygbif import utils
x = 'POLYGON((144.6 13.2, 144.6 13.6, 144.9 13.6, 144.9 13.2, 144.6 13.2))'
utils.wkt_rewind(x)
Contributors
============
* `Scott Chamberlain <https://github.com/sckott>`_
* `Robert Forkel <https://github.com/xrotwang>`_
* `Jan Legind <https://github.com/jlegind>`_
* `Stijn Van Hoey <https://github.com/stijnvanhoey>`_
* `Peter Desmet <https://github.com/peterdesmet>`_
Meta
====
* License: MIT, see `LICENSE file <LICENSE>`_
* Please note that this project is released with a `Contributor Code of Conduct <CONDUCT.md>`_. By participating in this project you agree to abide by its terms.
.. |pypi| image:: https://img.shields.io/pypi/v/pygbif.svg
:target: https://pypi.python.org/pypi/pygbif
.. |docs| image:: https://readthedocs.org/projects/pygbif/badge/?version=latest
:target: http://pygbif.rtfd.org/
.. |travis| image:: https://travis-ci.org/sckott/pygbif.svg
:target: https://travis-ci.org/sckott/pygbif
.. |coverage| image:: https://coveralls.io/repos/sckott/pygbif/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/sckott/pygbif?branch=master
Changelog
=========
0.4.0 (2019-11-20)
------------------
- changed base url to https for all requests; was already https for maps and downloads in previous versions
- occurrences, species, and registry modules gain docstrings with brief summary of each method
- pygbif gains ability to cache http requests. caching is off by default. See `?pygbif.caching` for all the details `52` `56` via @nleguillarme
- made note in docs that if you are trying to get the same behavior as the GBIF website for name searching, `species.name_backbone` is likely what you want `55` thanks @qgroom
- for parameters that expect a `bool`, convert them to lowercase strings internally before doing HTTP requests
0.3.0 (2019-01-25)
------------------
- pygbif is Python 3 only now `19`
- Gains maps module with maps.map method for working with the GBIF maps API `41` `49`
- Gains new module utils with one method `wkt_rewind` `46` thanks @aubreymoore for the inspiration
- Fixed bug in registry.installations: typo in one of the parameters `identifierTyp` instead of `identifierType` `48` thanks @data-biodiversity-aq
- Link to GitHub issues from Changelog 🎉
- Fix a occurrence download test `47`
- Much more thorough docs `25`
0.2.0 (2016-10-18)
------------------
- Download methods much improved `16` `27` thanks @jlegind @stijnvanhoey @peterdesmet !
- MULTIPOLYGON now supported in `geometry` parameter `35`
- Fixed docs for `occurrences.get`, and `occurrences.get_verbatim`, `occurrences.get_fragment` and demo that used occurrence keys that no longer exist in GBIF `39`
- Added `organizations` method to `registry` module `12`
- Added remainder of datasets methods: `registry.dataset_search` (including faceting support `37`) and `registry.dataset_suggest`, for the `/dataset/search` and `/dataset/suggest` routes, respectively `40`
- Added remainder of species methods: `species.name_lookup` (including faceting support `38`) and `species.name_usage`, for the `/species/search` and `/species` routes, respectively `18`
- Added more tests to cover new methods
- Changed `species.name_suggest` to give back data stucture as received from GBIF. We used to parse out the classification data, but for simplicity and speed, that is left up to the user now.
- `start` parameter in `species.name_suggest`, `occurrences.download_list`, `registry.organizations`, `registry.nodes`, `registry.networks`, and `registry.installations`, changed to `offset` to match GBIF API and match usage throughout remainder of `pygbif`
0.1.5.4 (2016-10-01)
--------------------
- Added many new `occurrence.search` parameters, including `repatriated`, `kingdomKey`, `phylumKey`, `classKey`, `orderKey`, `familyKey`, `genusKey`, `subgenusKey`, `establishmentMeans`, `facet`, `facetMincount`, `facetMultiselect`, and support for facet paging via `**kwargs` `30` `34`
- Fixes to `**kwargs` in `occurrence.search` so that facet parameters can be parsed correctly and `requests` GET request options are collected correctly `36`
- Added `spellCheck` parameter to `occurrence.search` that goes along with the `q` parameter to optionally spell check full text searches `31`
0.1.4 (2016-06-04)
------------------
- Added variable types throughout docs
- Changed default `limit` value to 300 for `occurrences.search` method
- `tox` now included, via @xrotwang `20`
- Added more registry methods `11`
- Started occurrence download methods `16`
- Added more names methods `18`
- All requests now send user-agent headers with `requests` and `pygbif` versions `13`
- Bug fix for `occurrences.download_get` `23`
- Fixed bad example for `occurrences.get` `22`
- Fixed wheel to be universal for 2 and 3 `10`
- Improved documentation a lot, autodoc methods now
0.1.1 (2015-11-03)
------------------
- Fixed distribution for pypi
0.1.0 (2015-11-02)
------------------
- First release
======
|pypi| |docs| |travis| |coverage|
Python client for the `GBIF API
<https://www.gbif.org/developer/summary>`_
`Source on GitHub at sckott/pygbif <https://github.com/sckott/pygbif>`_
Other GBIF clients:
* R: `rgbif`, `ropensci/rgbif <https://github.com/ropensci/rgbif>`_
* Ruby: `gbifrb`, `sckott/gbifrb <https://github.com/sckott/gbifrb>`_
Installation
============
Stable from pypi
.. code-block:: console
pip install pygbif
Development version
.. code-block:: console
[sudo] pip install git+git://github.com/sckott/pygbif.git#egg=pygbif
`pygbif` is split up into modules for each of the major groups of API methods.
* Registry - Datasets, Nodes, Installations, Networks, Organizations
* Species - Taxonomic names
* Occurrences - Occurrence data, including the download API
* Maps - Maps, get raster maps from GBIF as png or mvt
You can import the entire library, or each module individually as needed.
In addition there is a utils module, currently with one method: `wkt_rewind`, and
a `caching` method to manage whether HTTP requests are cached or not. See `?pygbif.caching`.
Registry module
===============
registry module API:
* `organizations`
* `nodes`
* `networks`
* `installations`
* `datasets`
* `dataset_metrics`
* `dataset_suggest`
* `dataset_search`
Example usage:
.. code-block:: python
from pygbif import registry
registry.dataset_metrics(uuid='3f8a1297-3259-4700-91fc-acc4170b27ce')
Species module
==============
species module API:
* `name_backbone`
* `name_suggest`
* `name_usage`
* `name_lookup`
* `name_parser`
Example usage:
.. code-block:: python
from pygbif import species
species.name_suggest(q='Puma concolor')
Occurrences module
==================
registry module API:
* `search`
* `get`
* `get_verbatim`
* `get_fragment`
* `count`
* `count_basisofrecord`
* `count_year`
* `count_datasets`
* `count_countries`
* `count_schema`
* `count_publishingcountries`
* `download`
* `download_meta`
* `download_list`
* `download_get`
Example usage:
.. code-block:: python
from pygbif import occurrences as occ
occ.search(taxonKey = 3329049)
occ.get(key = 252408386)
occ.count(isGeoreferenced = True)
occ.download('basisOfRecord = LITERATURE')
occ.download('taxonKey = 3119195')
occ.download('decimalLatitude > 50')
occ.download_list(user = "sckott", limit = 5)
occ.download_meta(key = "0000099-140929101555934")
occ.download_get("0000066-140928181241064")
Maps module
===========
maps module API:
* `map`
Example usage:
.. code-block:: python
from pygbif import maps
out = maps.map(taxonKey = 212, year = 1998, bin = "hex",
hexPerTile = 30, style = "classic-noborder.poly")
out.response
out.path
out.img
out.plot()
.. image:: https://github.com/sckott/pygbif/raw/master/gbif_map.png
:width: 25%
:scale: 25%
utils module
============
utils module API:
* `wkt_rewind`
Example usage:
.. code-block:: python
from pygbif import utils
x = 'POLYGON((144.6 13.2, 144.6 13.6, 144.9 13.6, 144.9 13.2, 144.6 13.2))'
utils.wkt_rewind(x)
Contributors
============
* `Scott Chamberlain <https://github.com/sckott>`_
* `Robert Forkel <https://github.com/xrotwang>`_
* `Jan Legind <https://github.com/jlegind>`_
* `Stijn Van Hoey <https://github.com/stijnvanhoey>`_
* `Peter Desmet <https://github.com/peterdesmet>`_
Meta
====
* License: MIT, see `LICENSE file <LICENSE>`_
* Please note that this project is released with a `Contributor Code of Conduct <CONDUCT.md>`_. By participating in this project you agree to abide by its terms.
.. |pypi| image:: https://img.shields.io/pypi/v/pygbif.svg
:target: https://pypi.python.org/pypi/pygbif
.. |docs| image:: https://readthedocs.org/projects/pygbif/badge/?version=latest
:target: http://pygbif.rtfd.org/
.. |travis| image:: https://travis-ci.org/sckott/pygbif.svg
:target: https://travis-ci.org/sckott/pygbif
.. |coverage| image:: https://coveralls.io/repos/sckott/pygbif/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/sckott/pygbif?branch=master
Changelog
=========
0.4.0 (2019-11-20)
------------------
- changed base url to https for all requests; was already https for maps and downloads in previous versions
- occurrences, species, and registry modules gain docstrings with brief summary of each method
- pygbif gains ability to cache http requests. caching is off by default. See `?pygbif.caching` for all the details `52` `56` via @nleguillarme
- made note in docs that if you are trying to get the same behavior as the GBIF website for name searching, `species.name_backbone` is likely what you want `55` thanks @qgroom
- for parameters that expect a `bool`, convert them to lowercase strings internally before doing HTTP requests
0.3.0 (2019-01-25)
------------------
- pygbif is Python 3 only now `19`
- Gains maps module with maps.map method for working with the GBIF maps API `41` `49`
- Gains new module utils with one method `wkt_rewind` `46` thanks @aubreymoore for the inspiration
- Fixed bug in registry.installations: typo in one of the parameters `identifierTyp` instead of `identifierType` `48` thanks @data-biodiversity-aq
- Link to GitHub issues from Changelog 🎉
- Fix a occurrence download test `47`
- Much more thorough docs `25`
0.2.0 (2016-10-18)
------------------
- Download methods much improved `16` `27` thanks @jlegind @stijnvanhoey @peterdesmet !
- MULTIPOLYGON now supported in `geometry` parameter `35`
- Fixed docs for `occurrences.get`, and `occurrences.get_verbatim`, `occurrences.get_fragment` and demo that used occurrence keys that no longer exist in GBIF `39`
- Added `organizations` method to `registry` module `12`
- Added remainder of datasets methods: `registry.dataset_search` (including faceting support `37`) and `registry.dataset_suggest`, for the `/dataset/search` and `/dataset/suggest` routes, respectively `40`
- Added remainder of species methods: `species.name_lookup` (including faceting support `38`) and `species.name_usage`, for the `/species/search` and `/species` routes, respectively `18`
- Added more tests to cover new methods
- Changed `species.name_suggest` to give back data stucture as received from GBIF. We used to parse out the classification data, but for simplicity and speed, that is left up to the user now.
- `start` parameter in `species.name_suggest`, `occurrences.download_list`, `registry.organizations`, `registry.nodes`, `registry.networks`, and `registry.installations`, changed to `offset` to match GBIF API and match usage throughout remainder of `pygbif`
0.1.5.4 (2016-10-01)
--------------------
- Added many new `occurrence.search` parameters, including `repatriated`, `kingdomKey`, `phylumKey`, `classKey`, `orderKey`, `familyKey`, `genusKey`, `subgenusKey`, `establishmentMeans`, `facet`, `facetMincount`, `facetMultiselect`, and support for facet paging via `**kwargs` `30` `34`
- Fixes to `**kwargs` in `occurrence.search` so that facet parameters can be parsed correctly and `requests` GET request options are collected correctly `36`
- Added `spellCheck` parameter to `occurrence.search` that goes along with the `q` parameter to optionally spell check full text searches `31`
0.1.4 (2016-06-04)
------------------
- Added variable types throughout docs
- Changed default `limit` value to 300 for `occurrences.search` method
- `tox` now included, via @xrotwang `20`
- Added more registry methods `11`
- Started occurrence download methods `16`
- Added more names methods `18`
- All requests now send user-agent headers with `requests` and `pygbif` versions `13`
- Bug fix for `occurrences.download_get` `23`
- Fixed bad example for `occurrences.get` `22`
- Fixed wheel to be universal for 2 and 3 `10`
- Improved documentation a lot, autodoc methods now
0.1.1 (2015-11-03)
------------------
- Fixed distribution for pypi
0.1.0 (2015-11-02)
------------------
- First release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pygbif-0.4.0.tar.gz
(45.7 kB
view details)
Built Distribution
File details
Details for the file pygbif-0.4.0.tar.gz
.
File metadata
- Download URL: pygbif-0.4.0.tar.gz
- Upload date:
- Size: 45.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.8.0 tqdm/4.37.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
d85005fc4f79c6368f58a1b4ba5c6cfd0384cd14e516c3ead552b00c5b53fc17
|
|
MD5 |
facd67cc3f59bdde4fdf3579a89be091
|
|
BLAKE2b-256 |
d412a09dff820bc568764caf08a8d292f28b8a364ef008c8a9978222c340a841
|
File details
Details for the file pygbif-0.4.0-py2.py3-none-any.whl
.
File metadata
- Download URL: pygbif-0.4.0-py2.py3-none-any.whl
- Upload date:
- Size: 61.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.8.0 tqdm/4.37.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
a5428df5160748bfa8e553b7ccafdde738cfc30bce801095ce4d43e7e405a3d4
|
|
MD5 |
e919e1c32f8c32b9e232781a51c5d793
|
|
BLAKE2b-256 |
7a25222531f22cf162409c38f55c48b13ab0c4128cf13ac05290de8878d639b1
|