Join the chat at

Metadata Creation for the Rest of Us

pygeometa provides a lightweight and Pythonic approach for users to easily create geospatial metadata in standards-based formats using simple configuration files (affectionately called metadata control files [MCF]). Leveraging the simple but powerful YAML format, pygeometa can generate metadata in numerous standards. Users can also create their own custom metadata formats which can be plugged into pygeometa for custom metadata format output.

For developers, pygeometa provides a Pythonic API that allows developers to tightly couple metadata generation within their systems and integrate nicely into metadata production pipelines.

The project supports various metadata formats out of the box including ISO 19115, the WMO Core Metadata Profile, and the WIGOS Metadata Standard. Can't find the format you're looking for? Element(s) missing from a given format? Feel free to open an issue!

pygeometa has minimal dependencies (install is less than 50 kB), and provides a flexible extension mechanism leveraging the Jinja2 templating system.

pygeometa is open source and released under an MIT license.


  • simple YAML-based configuration
  • real-time MCF validation
  • extensible: plugin architecture allows for easy addition of new metadata formats using Jinja2 templates or custom workflow (JSON, YAML, CSV, etc.)
  • flexible: use as a command-line tool or integrate as a library
  • import from external metadata sources
  • multilingual support


Started in 2009, pygeometa originated within an internal project called pygdm, which provided generic geospatial data management functions. pygdm (now end of life) was used for generating MSC/CMC geospatial metadata. pygeometa was pulled out of pygdm to focus on the core requirement of generating geospatial metadata within a real-time environment and automated workflows.

In 2015 pygeometa was made publically available in support of the Treasury Board Policy on Acceptable Network and Device Use.