Skip to main content

Python client for the iNaturalist APIs

Project description

https://badge.fury.io/py/pyinaturalist.png https://travis-ci.org/niconoe/pyinaturalist.png?branch=master

Python client for the iNaturalist APIs

Status: work in progress. Currently implemented:

  • Search occurrences (with pagination)

  • (Username / password) authentication

  • Creating observations

  • Upload a picture and assign to an observation

  • Search (globally available) observation fields (with pagination)

  • Set an observation field values for an observation

Examples

Search all observations matching a criteria:

from pyinaturalist.node_api import get_all_observations

obs = get_all_observations(params={'user_id': 'niconoe'})

see available parameters.

For authenticated API calls, you first need to obtain a token for the user:

from pyinaturalist.rest_api import get_access_token

token = get_access_token(username='<your_inaturalist_username>', password='<your_inaturalist_password>',
                         app_id='<your_inaturalist_app_id>',
                         app_secret=<your_inaturalist_app_secret>)

Note: you’ll need to create an iNaturalist app.

Create a new observation:

from pyinaturalist.rest_api import create_observations

params = {'observation':
            {'taxon_id': 54327,  # Vespa Crabro
             'observed_on_string': datetime.datetime.now().isoformat(),
             'time_zone': 'Brussels',
             'description': 'This is a free text comment for the observation',
             'tag_list': 'wasp, Belgium',
             'latitude': 50.647143,
             'longitude': 4.360216,
             'positional_accuracy': 50, # meters,

             # sets vespawatch_id (an observation field whose ID is 9613) to the value '100'.
             'observation_field_values_attributes':
                [{'observation_field_id': 9613,'value': 100}],
             },
}

r = create_observations(params=params, access_token=token)

new_observation_id = r[0]['id']

Upload a picture for this observation:

from pyinaturalist.rest_api import add_photo_to_observation

r = add_photo_to_observation(observation_id=new_observation_id,
                             file_object=open('/Users/nicolasnoe/vespa.jpg', 'rb'),
                             access_token=token)

Get a list of all (globally available) observation fields:

from pyinaturalist.rest_api import get_all_observation_fields

r = get_all_observation_fields(search_query="DNA")

Sets an observation field value to an existing observation:

from pyinaturalist.rest_api import put_observation_field_values

put_observation_field_values(observation_id=7345179,
                             observation_field_id=9613,
                             value=250,
                             access_token=token)

History

0.1.0 (2018-10-10)

  • First release on PyPI.

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

pyinaturalist-0.1.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

pyinaturalist-0.1.0-py2.py3-none-any.whl (7.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pyinaturalist-0.1.0.tar.gz.

File metadata

  • Download URL: pyinaturalist-0.1.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for pyinaturalist-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8e13375968affe252657c3328fdeba5420e97a013a8c6a714bbc47f7c323ce84
MD5 9e3073b3fe48711cb81351073febb647
BLAKE2b-256 9bef2c4257965e2b1f2dab30b47a403b7202862c3e3dc7b36820d610c7bb4c8f

See more details on using hashes here.

File details

Details for the file pyinaturalist-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pyinaturalist-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for pyinaturalist-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8c905c0ab323dded1de2c789fbeee26e6900ef165a489671755f67c9ac69debc
MD5 ad35be0fcf64745d53ad6468da2d7560
BLAKE2b-256 046360a6c2736f0a66f94e75e08ca78cb568147559568725800a2abb32f7ed2a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page