Harmonica
Forward modeling, inversion, and processing gravity and magnetic data
Install / Use
/learn @fatiando/HarmonicaREADME
About
Harmonica is a Python library for processing and modeling gravity and magnetic data. It includes common processing steps, like calculation of Bouguer and terrain corrections, reduction to the pole, upward continuation, equivalent sources, and more. There are forward modeling functions for basic geometric shapes, like point sources, prisms and tesseroids. The inversion methods are implemented as classes with an interface inspired by scikit-learn (like Verde).
Project goals
These are the long-term goals for Harmonica:
- Efficient, well designed, and fully tested code for gravity and magnetic data.
- Cover the entire data life-cycle: from raw data to 3D Earth model.
- Focus on best-practices to discourage misuse of methods, particularly inversion.
- Easily extended code to enable research on the development of new methods.
See the GitHub milestones for short-term goals.
Things that will not be covered in Harmonica:
- Multi-physics partial differential equation solvers. Use SimPEG or PyGIMLi instead.
- Generic grid processing methods (like FFT and standard interpolation). We'll rely on Verde, xrft and xarray for those.
- Data visualization.
- GUI applications.
Project status
🚨 Harmonica is in early stages of design and implementation. 🚨
We welcome any feedback and ideas! Let us know by submitting issues on GitHub or joining our community.
Getting involved
🗨️ Contact us: Find out more about how to reach us at fatiando.org/contact.
👩🏾💻 Contributing to project development: Please read our Contributing Guide to see how you can help and give feedback.
🧑🏾🤝🧑🏼 Code of conduct: This project is released with a Code of Conduct. By participating in this project you agree to abide by its terms.
Imposter syndrome disclaimer: We want your help. No, really. There may be a little voice inside your head that is telling you that you're not ready, that you aren't skilled enough to contribute. We assure you that the little voice in your head is wrong. Most importantly, there are many valuable ways to contribute besides writing code.
This disclaimer was adapted from the MetPy project.
License
This is free software: you can redistribute it and/or modify it under the terms
of the BSD 3-clause License. A copy of this license is provided in
LICENSE.txt.
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
85.3kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
342.5kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
