harmonica
Forward modeling, inversion, and processing gravity and magnetic data
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
✓Committers with academic emails
1 of 21 committers (4.8%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.3%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Forward modeling, inversion, and processing gravity and magnetic data
Basic Info
- Host: GitHub
- Owner: fatiando
- License: bsd-3-clause
- Language: Python
- Default Branch: main
- Homepage: https://www.fatiando.org/harmonica
- Size: 106 MB
Statistics
- Stars: 254
- Watchers: 18
- Forks: 81
- Open Issues: 47
- Releases: 12
Topics
Metadata Files
README.md

Processing and modelling gravity and magnetic data
Documentation (latest) • Documentation (main branch) • Contributing • Contact • Ask a question
Part of the Fatiando a Terra project
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 standards 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.
Owner
- Name: Fatiando a Terra
- Login: fatiando
- Kind: organization
- Website: https://www.fatiando.org
- Repositories: 46
- Profile: https://github.com/fatiando
Open-source Python tools for geophysics
Citation (CITATION.rst)
Citing Harmonica
================
This is research software **made by scientists**. Citations help us justify the
effort that goes into building and maintaining this project.
Citing the software
-------------------
If you used this software in your research, please consider
citing the following source: https://doi.org/10.5281/zenodo.3628741
The link above includes full citation information and export formats (BibTeX,
Mendeley, etc).
Citing the methods
------------------
Harmonica offers implementations of some methods that have been published in
scientific journals. We appreciate citations of these publications as well in
case you made use of them.
* :class:`harmonica.EquivalentSources` with ``block_size`` set (block-averaged
sources):
Soler, S. R. and Uieda, L. (2021). Gradient-boosted equivalent sources,
Geophysical Journal International.
doi:`10.1093/gji/ggab297 <https://doi.org/10.1093/gji/ggab297>`__
* :class:`harmonica.EquivalentSourcesGB` (Gradient-boosted equivalent sources):
Soler, S. R. and Uieda, L. (2021). Gradient-boosted equivalent sources,
Geophysical Journal International. doi:`10.1093/gji/ggab297
<https://doi.org/10.1093/gji/ggab297>`__
* :class:`harmonica.tesseroid_gravity` (forward modelling of tesseroids with
constant and variable density):
Soler, S. R., Pesce, A., Gimenez, M. E., & Uieda, L. (2019). Gravitational
field calculation in spherical coordinates using variable densities in
depth, Geophysical Journal International. doi: `10.1093/gji/ggz277
<https://doi.org/10.1093/gji/ggz277>`__
GitHub Events
Total
- Issues event: 10
- Watch event: 40
- Delete event: 17
- Issue comment event: 55
- Push event: 91
- Pull request review event: 4
- Pull request review comment event: 8
- Pull request event: 54
- Fork event: 10
- Create event: 23
Last Year
- Issues event: 10
- Watch event: 40
- Delete event: 17
- Issue comment event: 55
- Push event: 91
- Pull request review event: 4
- Pull request review comment event: 8
- Pull request event: 54
- Fork event: 10
- Create event: 23
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Santiago Soler | s****r@g****m | 213 |
| Leonardo Uieda | l****a@g****m | 74 |
| dependabot[bot] | 4****] | 17 |
| Fatiando a Terra Bot | 5****t | 10 |
| Matt Tankersley | 8****r | 7 |
| Agustina | p****a@g****m | 6 |
| Lu Li | 5****o | 5 |
| India Uppal | 8****l | 4 |
| Federico Esteban | f****n@g****m | 4 |
| Gelson F. Souza-Junior | g****1@g****m | 3 |
| Vanderlei C Oliveira Jr | v****o@g****m | 3 |
| BenjMy | 3****y | 2 |
| Leonardo Miquelutti | l****i@g****m | 2 |
| Nicholas Shea | n****a@e****u | 2 |
| RichardScottOZ | 7****Z | 2 |
| Yago Moreira Castro | 6****o | 2 |
| M. G | m****2@c****x | 1 |
| M. G | m****s@g****m | 1 |
| Rowan Cockett | r****1@g****m | 1 |
| Sergei Freiman | z****n@g****m | 1 |
| ziebam | 3****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 70
- Total pull requests: 282
- Average time to close issues: 8 months
- Average time to close pull requests: 29 days
- Total issue authors: 22
- Total pull request authors: 20
- Average comments per issue: 2.56
- Average comments per pull request: 1.45
- Merged pull requests: 223
- Bot issues: 0
- Bot pull requests: 41
Past Year
- Issues: 9
- Pull requests: 61
- Average time to close issues: 13 days
- Average time to close pull requests: 15 days
- Issue authors: 7
- Pull request authors: 7
- Average comments per issue: 1.11
- Average comments per pull request: 0.49
- Merged pull requests: 32
- Bot issues: 0
- Bot pull requests: 21
Top Authors
Issue Authors
- santisoler (33)
- leouieda (9)
- mdtanker (8)
- gabrahamastro (2)
- ErosKerouak (1)
- LL-Geo (1)
- mariosgeo (1)
- aguspesce (1)
- prince-Ha (1)
- RichardScottOZ (1)
- dragger21 (1)
- zaarcvon (1)
- Esteban82 (1)
- ThomasMGeo (1)
- CampeolQ (1)
Pull Request Authors
- santisoler (148)
- dependabot[bot] (42)
- leouieda (38)
- indiauppal (7)
- mdtanker (7)
- Souza-junior (6)
- ErosKerouak (6)
- LL-Geo (5)
- aguspesce (4)
- YagoMCastro (4)
- RichardScottOZ (3)
- leomiquelutti (3)
- MGomezN (2)
- BenjMy (2)
- KellySavanna (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 3,486 last-month
- Total docker downloads: 124
-
Total dependent packages: 5
(may contain duplicates) -
Total dependent repositories: 17
(may contain duplicates) - Total versions: 22
- Total maintainers: 2
pypi.org: harmonica
Forward modeling, inversion, and processing gravity and magnetic data
- Documentation: https://www.fatiando.org/harmonica
- License: BSD-3-Clause
-
Latest release: 0.7.0
published over 1 year ago
Rankings
Maintainers (2)
conda-forge.org: harmonica
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 layers, and more. There are forward modeling functions for basic geometric shapes, like spheres, prisms, polygonal prisms, and tesseroids. The inversion methods are implemented as classes with an interface inspired by scikit-learn (like Verde).
- Homepage: http://github.com/fatiando/harmonica
- License: BSD-3-Clause
-
Latest release: 0.5.1
published over 3 years ago
Rankings
Dependencies
- actions/cache v3 composite
- actions/checkout v2 composite
- actions/checkout 5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f composite
- actions/download-artifact v2 composite
- actions/upload-artifact v2 composite
- conda-incubator/setup-miniconda v2 composite
- styfle/cancel-workflow-action 148d9a848c6acaf90a3ec30bc5062f646f8a4163 composite
- actions/checkout v2 composite
- actions/download-artifact v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- pypa/gh-action-pypi-publish bce3b74dbf8cc32833ffba9d15f83425c1a736e0 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/cache v3 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- codecov/codecov-action v2 composite
- styfle/cancel-workflow-action 148d9a848c6acaf90a3ec30bc5062f646f8a4163 composite
- build *
- twine *
- boule *
- ensaio *
- gdal ==3.5.
- gmt ==6.4.
- jupyter-sphinx ==0.3.
- matplotlib *
- netcdf4 *
- pygmt ==0.7.
- pyproj *
- pyvista *
- sphinx ==4.5.
- sphinx-book-theme ==0.2.
- sphinx-copybutton ==0.5.
- sphinx-design ==0.2.
- sphinx-gallery ==0.10.
- vtk >=9
- black ==22.10.
- flake8 ==6.0.
- flake8-bugbear ==22.10.
- flake8-builtins ==2.0.
- flake8-functions ==0.0.7
- flake8-mutable ==1.2.
- flake8-rst-docstrings ==0.3.
- flake8-simplify ==0.19.
- flake8-unused-arguments ==0.0.12
- isort ==5.10.
- pathspec *
- pep8-naming ==0.13.
- boule * test
- coverage * test
- numba_progress * test
- pytest * test
- pytest-cov * test
- pyvista * test
- vtk >=9 test