igrf14eval

IAGA V-MOD International Geomagnetic Reference Field 14th generation (IGRF-14) candidate submission and evaluation

https://github.com/iaga-vmod/igrf14eval

Science Score: 75.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 7 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization iaga-vmod has institutional domain (www.ncei.noaa.gov)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.9%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

IAGA V-MOD International Geomagnetic Reference Field 14th generation (IGRF-14) candidate submission and evaluation

Basic Info
Statistics
  • Stars: 14
  • Watchers: 5
  • Forks: 19
  • Open Issues: 1
  • Releases: 1
Created over 2 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

IGRF-14 Evaluation

Jupyter Book Badge Binder DOI


NB: If you are looking for the IGRF-14 release itself, see https://doi.org/10.5281/zenodo.14012302 and https://www.ncei.noaa.gov/products/international-geomagnetic-reference-field

This repository was used to collate and evaluate the candidate models that contributed to IGRF-14. Check the Book and Binder links above to view and execute the notebooks.


Repository layout

binder/ # Configuration for Binder service bookbuilder/ # Conda environment to generate Jupyter Book (html) data/ # Data files, including candidate coefficients and release coefficients docs/ # Reports from candidate teams lockfiles/ # Conda environment against which to execute notebooks matlab/ # Matlab code to run separately (Huber-weighted mean in space) - used for IGRF2025 and SV2025-30 notebooks/ # Jupyter Notebooks that verify and compare candidate models scripts/ # .py files synchronised with notebooks using jupytext src/ # Python module used by notebooks

Overview of process

mermaid graph TD subgraph Submissions DGRF-C[DGRF Candidates] IGRF-C[IGRF Candidates] SV-C[SV Candidates] end subgraph Final models DGRF-C -->|Median| DGRF[DGRF2020] IGRF-C -->|Huber*| IGRF[IGRF2025] SV-C -->|Huber*| SV[SV2025-30] end DGRF & IGRF & SV --> IGRF-14[IGRF-14]

Huber = Huber-weighted mean in space

  1. Modelling teams submitted candidates for one or more of (DGRF, IGRF, SV)
    See data/coefficients/
  2. Task Force evaluated and compared models
  3. Task Force voted on method of merging each set of model coefficients

Candidate evaluation

Based on: Alken, P., Thébault, E., Beggan, C.D. et al. Evaluation of candidate models for the 13th generation International Geomagnetic Reference Field. Earth Planets Space 73, 48 (2021). https://doi.org/10.1186/s40623-020-01281-4

Tests are:

0) Check files are correctly formatted, then: 1) Lowes-Mauerberger power spectra plots 2) Root-mean-square differences between candidates 3) Degree correlation plot of differences between one candidate and all others 4) Azimuthal spectra plot of the differences between one candidate and the others 5) Triangle plot of differences between one candidate and the others 6) Spatial maps of comparison in X, Y, Z, Br, Bt, Bp between one candidate and the others

Code based on GitHub repos: IAGA Summer School Python exercises and ChaosMagPy

Submission guide

  1. Prepare your model coefficients in the .cof format
  2. Test them by running the notebooks:
    a) Using the Binder link
    b) Locally on your machine (see below)
  3. Open a Pull Request to add your model coefficients. You can do this through the GitHub web interface (see instructions in docs/submissionguideGitHub_web.pdf), or using git yourself:
    a) Fork this repository
    b) Clone your fork onto your machine
    c) Create a branch and add your coefficients
    git checkout -b <branch-name> git add data/coefficients/DGRF/DGRF_<candidate-name>.cof git add data/coefficients/IGRF/IGRF_<candidate-name>.cof git add data/coefficients/SV/SV_<candidate-name>.cof git commit -m "Add coefficients for ..." git push d) Open the Pull Request here

Local development

Setting up the environment:

  • This can be done manually without using conda if you provide numpy, pandas, matplotlib, pyshp (check environment-base.yml for specific versions).
  • (Recommended) Use the conda lockfile for your platform. Run one of: conda create --name igrf --file lockfiles/conda-linux-64.lock conda create --name igrf --file lockfiles/conda-osx-64.lock conda create --name igrf --file lockfiles/conda-osx-arm64.lock conda create --name igrf --file lockfiles/conda-win-64.lock (and activate it with conda activate igrf when you need to use it)

Running the code:

The code is provided as three notebooks/scripts in the /notebooks/ directory. There are two copies of each: in .py format and in Jupyter notebook .ipynb format. You can use whichever you are more comfortable with.

JupyterLab is provided in the conda environment so you can run it with jupyter-lab to use the notebooks.

Owner

  • Name: IAGA-VMOD
  • Login: IAGA-VMOD
  • Kind: organization

GitHub organization for the IAGA Working Group V-MOD

Citation (CITATION.cff)

cff-version: 1.2.0
message: "Code in this repository is licensed under MIT, while data and documentation are licensed under CC BY 4.0. Refer to the repository LICENSE files for details."
title: IGRF-14 Evaluation
repository-code: https://github.com/IAGA-VMOD/IGRF14eval
license: MIT
authors:
# Evaluation code
- family-names: Beggan
  given-names: Ciaran
  orcid: https://orcid.org/0000-0002-2298-0578
- family-names: Kloss
  given-names: Clemens
  orcid: https://orcid.org/0000-0001-6899-904X
- family-names: Smith
  given-names: Ashley
  orcid: https://orcid.org/0000-0001-5198-9574
# Candidate model contributors
- family-names: Amblard
  given-names: Pierre-Olivier
  orcid: https://orcid.org/0000-0002-7695-7728
- family-names: Amezza
  given-names: Thiziri
  orcid: https://orcid.org/0009-0008-5694-4752
- family-names: Amit
  given-names: Hagay
  orcid: https://orcid.org/0000-0002-6644-534X
- family-names: Aubert
  given-names: Julien
  orcid: https://orcid.org/0000-0002-2756-0724
- family-names: Baerenzung
  given-names: Julien
  orcid: https://orcid.org/0000-0002-0607-3695
- family-names: Brown
  given-names: William
  orcid: https://orcid.org/0000-0001-9045-9787
- family-names: Califf
  given-names: Sam
  orcid: https://orcid.org/0000-0002-7017-0916
- family-names: Campuano
  given-names: Saioa A.
  orcid: https://orcid.org/0000-0001-7047-5704
- family-names: Chauvet
  given-names: Louis
  orcid: https://orcid.org/0000-0002-1467-9136
- family-names: Chulliat
  given-names: Arnaud
  orcid: https://orcid.org/0000-0001-7414-9631
- family-names: Claveau
  given-names: Romain
  orcid: https://orcid.org/0000-0001-5961-0370
- family-names: Coïsson
  given-names: Pierdavide
  orcid: https://orcid.org/0000-0003-4155-2111
- family-names: Davies
  given-names: Christopher
  orcid: https://orcid.org/0000-0002-1074-3815
- family-names: Deborde
  given-names: Robin
  orcid: https://orcid.org/0009-0001-0735-2370
- family-names: Dobrovolsky
  given-names: Michael
  orcid: https://orcid.org/0000-0001-6930-3331
- family-names: Fillion
  given-names: Martin
  orcid: https://orcid.org/0000-0001-5733-7796
- family-names: Finlay
  given-names: Chris
  orcid: https://orcid.org/0000-0002-4592-2290
- family-names: Firsov
  given-names: Ilya
  orcid: https://orcid.org/0000-0002-7283-9679
- family-names: Fournier
  given-names: Alexandre
  orcid: https://orcid.org/0000-0003-3276-0496
- family-names: Gailler
  given-names: Lydie
  orcid: https://orcid.org/0000-0002-8132-2428
- family-names: Gillet
  given-names: Nicolas
  orcid: https://orcid.org/0000-0002-2219-1026
- family-names: Gomez Perez
  given-names: Natalia
  orcid: https://orcid.org/0000-0001-7751-2686
- family-names: Grayver
  given-names: Alexander
  orcid: https://orcid.org/0000-0003-1132-3705
- family-names: Gwirtz
  given-names: Kyle
  orcid: https://orcid.org/0000-0002-3024-0756
- family-names: Hamoudi
  given-names: Mohamed
  orcid: https://orcid.org/0000-0002-5256-4938
- family-names: Holme
  given-names: Richard
  orcid: https://orcid.org/0009-0002-2178-2083
- family-names: Holschneider
  given-names: Matthias
  orcid: https://orcid.org/0000-0003-3987-105X
- family-names: Hulot
  given-names: Gauthier
  orcid: https://orcid.org/0000-0001-8011-3096
- family-names: Jager
  given-names: Thomas
  orcid: https://orcid.org/0000-0001-9871-9934
- family-names: Jiang
  given-names: Yi
  orcid: https://orcid.org/0000-0003-3330-058X
- family-names: Kada
  given-names: Martin
  orcid: https://orcid.org/0000-0002-7490-7452
- family-names: Korte
  given-names: Monika
  orcid: https://orcid.org/0000-0003-2970-9075
- family-names: Krasnoperov
  given-names: Roman
  orcid: https://orcid.org/0000-0001-8221-4106
- family-names: Kuang
  given-names: Weijia
  orcid: https://orcid.org/0000-0001-7786-6425
- family-names: Kudin
  given-names: Dmitry
  orcid: https://orcid.org/0000-0002-9174-224X
- family-names: Lauridsen
  given-names: Jonas Bregnhøj
  orcid: https://orcid.org/0000-0001-9520-0491
- family-names: Léger
  given-names: Jean-Michel
  orcid: https://orcid.org/0009-0008-1546-6598
- family-names: Lemgharbi
  given-names: Abdenaceur
  orcid: https://orcid.org/0000-0002-0558-0679
- family-names: Lesur
  given-names: Vincent
  orcid: https://orcid.org/0000-0003-2568-320X
- family-names: Liu
  given-names: Pengfei
  orcid: https://orcid.org/0000-0002-6257-8866
- family-names: Livermore
  given-names: Philip
  orcid: https://orcid.org/0000-0001-7591-6716
- family-names: Madsen
  given-names: Frederik
  orcid: https://orcid.org/0000-0002-0621-1541
- family-names: Matsushima
  given-names: Masaki
  orcid: https://orcid.org/0000-0001-8198-343X
- family-names: Matzka
  given-names: Jürgen
  orcid: https://orcid.org/0000-0001-9926-2796
- family-names: Michaelis
  given-names: Ingo
  orcid: https://orcid.org/0000-0001-9741-4063
- family-names: Minami
  given-names: Takuto
  orcid: https://orcid.org/0000-0001-8137-7616
- family-names: Nair
  given-names: Manoj
  orcid: https://orcid.org/0000-0002-0541-0127
- family-names: Nakano
  given-names: Shin'ya
  orcid: https://orcid.org/0000-0003-0772-4610
- family-names: Oehler
  given-names: Jean-François
  orcid: https://orcid.org/0000-0002-3197-2465
- family-names: Olsen
  given-names: Nils
  orcid: https://orcid.org/0000-0003-1132-6113
- family-names: Pavón-Carrasco
  given-names: F. Javier
  orcid: https://orcid.org/0000-0001-5545-3769
- family-names: Presnyakov
  given-names: Sergey
  orcid: https://orcid.org/0000-0001-7608-9265
- family-names: Qian
  given-names: Bohao
  orcid: https://orcid.org/0009-0009-2706-9060
- family-names: Rang
  given-names: Xinyi
  orcid: https://orcid.org/0009-0004-5467-004X
- family-names: Rogers
  given-names: Hannah
  orcid: https://orcid.org/0000-0002-1508-2833
- family-names: Rother
  given-names: Martin
  orcid: https://orcid.org/0009-0007-0355-8551
- family-names: Rouxel
  given-names: Didier
  orcid: https://orcid.org/0000-0003-3517-0723
- family-names: Sabaka
  given-names: Terence
  orcid: https://orcid.org/0000-0002-3474-5444
- family-names: Sato
  given-names: Sho
  orcid: https://orcid.org/0009-0007-8811-9573
- family-names: Saynisch-Wagner
  given-names: Jan
  orcid: https://orcid.org/0000-0001-9619-0336
- family-names: Schanner
  given-names: Max
  orcid: https://orcid.org/0000-0002-0497-9231
- family-names: Serrano
  given-names: Mario
  orcid: https://orcid.org/0000-0003-0245-6899
- family-names: Shakespeare-Rees
  given-names: Naomi
  orcid: https://orcid.org/0000-0003-1193-9788
- family-names: Shi
  given-names: Yalei
  orcid: https://orcid.org/0009-0003-1398-8062
- family-names: da Silva
  given-names: Marcos Vinicius
  orcid: https://orcid.org/0000-0003-4713-1713
- family-names: Soloviev
  given-names: Anatoly
  orcid: https://orcid.org/0000-0002-6476-9471
- family-names: Terra-Nova
  given-names: Felipe
  orcid: https://orcid.org/0000-0003-3616-398X
- family-names: Thébault
  given-names: Erwan
  orcid: https://orcid.org/0000-0002-7038-2855
- family-names: Tøffner-Clausen
  given-names: Lars
  orcid: https://orcid.org/0000-0003-4314-3776
- family-names: Toh
  given-names: Hiroaki
  orcid: https://orcid.org/0000-0003-3914-5613
- family-names: Wang
  given-names: Jie
  orcid: https://orcid.org/0000-0001-7522-9422
- family-names: Wardinski
  given-names: Ingo
  orcid: https://orcid.org/0000-0001-8125-9476
- family-names: Watson
  given-names: Callum
  orcid: https://orcid.org/0000-0001-8807-6736
- family-names: Whaler
  given-names: Kathryn
  orcid: https://orcid.org/0000-0002-7386-223X
- family-names: Xiong
  given-names: Chao
  orcid: https://orcid.org/0000-0002-7518-9368
- family-names: Yan
  given-names: Qing
  orcid: https://orcid.org/0009-0008-8066-1779
- family-names: Yang
  given-names: Yanyan
  orcid: https://orcid.org/0000-0001-9345-0243
- family-names: Yao
  given-names: Hongbo
  orcid: https://orcid.org/0000-0001-6340-5142
- family-names: Zeren
  given-names: Zhima
  orcid: https://orcid.org/0000-0003-2669-8198
- family-names: Zhang
  given-names: Keke
  orcid: https://orcid.org/0000-0002-6831-9179
- family-names: Zhou
  given-names: Bin
  orcid: https://orcid.org/0000-0003-0638-3543

GitHub Events

Total
  • Create event: 9
  • Release event: 3
  • Issues event: 6
  • Watch event: 12
  • Delete event: 10
  • Issue comment event: 21
  • Push event: 74
  • Pull request event: 25
  • Fork event: 3
Last Year
  • Create event: 9
  • Release event: 3
  • Issues event: 6
  • Watch event: 12
  • Delete event: 10
  • Issue comment event: 21
  • Push event: 74
  • Pull request event: 25
  • Fork event: 3

Dependencies

binder/environment.yml pypi