naturtag.metadata.meta_metadata module¶
- class naturtag.metadata.meta_metadata.MetaMetadata(*args, **kwargs)¶
Bases:
ImageMetadata
Parses observation info and other higher-level details derived from raw image metadata
Example
>>> from naturtag import MetaMetadata >>> meta = MetaMetadata('/path/to/image.jpg') >>> print(meta.summary) >>> print(meta.to_observation())
- property combined: dict[str, Any]¶
- property coordinates: Tuple[float, float] | None¶
Get coordinates as decimal degrees from EXIF or XMP metadata
- property date: str | None¶
Date taken or created, as a string
- property filtered_combined: dict[str, Any]¶
- property has_any_tags: bool¶
- property has_coordinates: bool¶
- property has_observation: bool¶
- property has_taxon: bool¶
- property inaturalist_ids: tuple[int | None, int | None]¶
Get taxon and/or observation IDs from metadata if available
- merge(other)¶
Update metadata from another instance
- Return type:
- property min_rank: tuple[str, str] | None¶
Get the lowest (most specific) taxonomic rank and name from tags, if any
- Returns:
(rank, name)
- property observation_id: int | None¶
- property observation_url: str¶
- property simplified: dict[str, str]¶
Get simplified/deduplicated key-value pairs from a combination of keywords + basic metadata
- property summary: str¶
Get a condensed summary of available metadata
- property taxon_id: int | None¶
- property taxon_url: str¶
- to_observation()¶
Convert DwC metadata to an observation object, if possible
- Return type:
- update(new_metadata)¶
Update arbitrary EXIF, IPTC, and/or XMP metadata, and reset/update derived properties
- update_coordinates(coordinates, accuracy=None)¶
- update_keywords(keywords)¶
Update only keyword metadata. Keywords will be written to appropriate tags for each metadata format.
- naturtag.metadata.meta_metadata.get_inaturalist_ids(metadata)¶
Look for taxon and/or observation IDs from metadata if available
- Return type:
tuple
[Optional
[int
],Optional
[int
]]
- naturtag.metadata.meta_metadata.simplify_keys(mapping)¶
Simplify/deduplicate dict keys, to reduce variations in similarly-named keys
- Example::
>>> simplify_keys({'my_namespace:Sub_Family': 'Panorpinae'}) {'subfamily': 'Panorpinae'}
- Return type:
dict
[str
,str
]- Returns:
dict with simplified/deduplicated keys