DwC#

pyinaturalist_convert.dwc

Convert observations to and from Darwin Core.

Extra dependencies: xmltodict

Example:

>>> from pyinaturalist import iNatClient
>>> from pyinaturalist_convert import to_dwc, dwc_to_observations

>>> # Search observations and convert to Darwin Core:
>>> client = iNatClient()
>>> observations = client.observations.search(user_id='my_username')
>>> to_dwc(observations, 'my_observations.dwc')

>>> # Convert Darwin Core back to Observation objects:
>>> observations = dwc_to_observations('my_observations.dwc')

Main functions:

to_dwc

Convert observations into to a Simple Darwin Core RecordSet.

dwc_to_observations

Load observations from a Darwin Core file

pyinaturalist_convert.dwc.dwc_record_to_observation(dwc_record)#

Translate a DwC Record to an Observation object

Parameters:

dwc_record (Dict[str, Any]) – A DwC Record as a dictionary

Return type:

Observation

pyinaturalist_convert.dwc.dwc_to_observations(filename)#

Load observations from a Darwin Core file

Parameters:

filename (Union[Path, str]) – Path to a DwC file

Return type:

List[Observation]

pyinaturalist_convert.dwc.get_dwc_lookup()#

Get a lookup table of DwC terms to standard field names

Return type:

Dict[str, str]

pyinaturalist_convert.dwc.get_dwc_record_set(records)#

Make a DwC RecordSet as an XML string, including namespaces and the provided observation records

Return type:

str

pyinaturalist_convert.dwc.observation_to_dwc_record(observation)#

Translate a flattened JSON observation from API results to a DwC record

Return type:

Dict

pyinaturalist_convert.dwc.taxon_to_dwc_record(taxon)#

Translate a taxon from API results to a partial DwC record (taxonomy terms only)

Return type:

Dict

pyinaturalist_convert.dwc.to_dwc(observations=None, filename=None, taxa=None)#

Convert observations into to a Simple Darwin Core RecordSet.

Parameters:
Return type:

Optional[List[Dict]]

Returns:

A list of observation dictionaries (if no filename is provided)