Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
196 commits
Select commit Hold shift + click to select a range
cd5d8d2
Add files via upload
rdelhaye May 18, 2018
cfcf273
Add files via upload
rdelhaye May 18, 2018
7f7cfef
Create readme.txt
rdelhaye May 18, 2018
9db2a2c
Add files via upload
rdelhaye May 18, 2018
ccb4373
Re-organise folder structure
Jun 25, 2018
8395d53
Defragmented some of the legacy code and new Notebooks
Jun 25, 2018
3606daa
Random fractal model
Jun 25, 2018
5bdee39
Updated jupyter notebooks
Jul 7, 2018
23642c3
Ex4 Notebook improvements
Jul 8, 2018
a586ec6
Reduce int -> float operations
Jul 9, 2018
1e70fc7
Updated examples for Bouligand approach
Jul 9, 2018
17913e5
New mapping function to export GeoTIFFs
Jul 10, 2018
c9a01b8
Merge branch 'Testing' of https://github.com/brmather/pycurious into …
Jul 10, 2018
82eb33d
Updated Jupyter notebooks.
Jul 12, 2018
27f4232
Updated Jupyter notebooks. Ex2a essentially complete. Ex4 in progress.
Jul 12, 2018
177e435
Updated Ex4 Notebook with importing/exporting data
Jul 17, 2018
f4d095e
export / import geotiff now working correctly
Jul 26, 2018
0a34e01
Ex2a Notebook updated
Jul 27, 2018
5d25446
Ex2a Notebook updated
Jul 27, 2018
14f3396
Ex3, Tanaka tests added
Jul 27, 2018
2583ca7
BM added new method Compute Tanaka
Jul 27, 2018
46ccca0
Tanaka method split to access Zt, Zo constituents
Jul 27, 2018
18661d2
Merge branch 'Testing' of https://github.com/brmather/pycurious into …
Jul 27, 2018
b5384a5
Changes to include sigma2 in misfit
Aug 26, 2018
22676c6
Merge branch 'Testing' of https://github.com/brmather/pycurious into …
Aug 26, 2018
c392f1d
Moving Notebooks to resemble some form of structure
Aug 26, 2018
d8c2a2b
More moving...
Aug 26, 2018
a1b0449
Notebooks complete!
Aug 28, 2018
4d74468
Forgot Ex1 from Tanaka
Aug 28, 2018
1d09b7e
Merge pull request #1 from brmather/Testing
Aug 28, 2018
fe5b6f9
Directory restructuring
Aug 28, 2018
b0b8881
Added the GNU Lesser General Public License
Aug 29, 2018
8818d72
Set theme jekyll-theme-cayman
Aug 29, 2018
56954c5
Final bugs before v0.1
Aug 29, 2018
cfef878
Merge branch 'master' of https://github.com/brmather/pycurious
Aug 29, 2018
b677b82
version 0.1 release
Aug 29, 2018
b9f6d41
You always forget a few things...
Aug 30, 2018
53ca62f
Simple parallelism using OpenMP
Sep 3, 2018
b0bec71
Only instantiate the available processors
Sep 3, 2018
cd112b3
No need to evaluate probability twice
Sep 28, 2018
22377f7
Initial commit of thermal solver
Oct 2, 2018
4f15ba5
Updated documentation for thermal solver
Oct 2, 2018
5e1ad77
Stupid mistake in metropolis_hastings routine
Oct 3, 2018
8d4166b
Bug fix to the standard deviation of Phi
Oct 9, 2018
90297d6
Include the uncertainty on the power spectrum
Oct 23, 2018
e2b9a6b
Slight efficiency improvement
Oct 23, 2018
82a7efd
Merge branch multiprocessing
Oct 23, 2018
60c2ecc
Change back the weighting of the spectrum
Oct 25, 2018
b331acc
Merge pull request #2 from brmather/multiprocessing
Jan 2, 2019
db6ba97
Add Dockerfile and update version
Jan 10, 2019
7f29178
Convert Notebooks to Python 3
Jan 10, 2019
efbe3c2
build off base image
Jan 10, 2019
4f3bc2c
Move dockerfile to top level directory
Jan 10, 2019
99fb6bc
Reorganising directory structure
Mar 19, 2019
6cdc13f
Updated README.md and directory structure for docker
Mar 20, 2019
74c1837
Restructure directory
Jun 3, 2019
ccc75c2
Forgot a few files...
Jun 3, 2019
9b42487
Deleted lots of broken tests and fixed docstrings
Jun 3, 2019
24704c9
Added HtML documentation
Jun 3, 2019
ea3276e
Committing TravisCI configuration
Jun 4, 2019
5de863c
updated travisCI script
Jun 4, 2019
9e24435
Merge pull request #4 from brmather/restructure
Jun 4, 2019
4820344
Properly generate the docs
Jun 4, 2019
b5781a9
Forgot scipy dependency
Jun 4, 2019
a85d77d
Authentification works now, but 'file exists' error
Jun 4, 2019
e556955
set verbose to see what is going on
Jun 4, 2019
fac2cdb
Try again specifying docs folder
Jun 4, 2019
9228fac
Hooray! Now I can delete the docs folder
Jun 4, 2019
5271a66
We have to create docs folder to put the docs in...
Jun 4, 2019
0acb6df
try testing on diffferent o/s
Jun 6, 2019
433ee9c
More elaborate travis build system
Jun 6, 2019
3e4f95f
Multiple python nestings do not work
Jun 6, 2019
f0d528a
update osx to python3.7
Jun 6, 2019
bf2d9b9
OSX doesn't come with python installed
Jun 6, 2019
4749717
Try making osx language generic
Jun 6, 2019
cc25ecd
I think I got it this time
Jun 6, 2019
3cae9cc
First iteration of JOSS paper
Jun 6, 2019
63aa7af
updated Dockerfile
Jun 6, 2019
ff31d45
Merge pull request #6 from brmather/master
Jun 6, 2019
bed4551
Add download functionality
Jun 15, 2019
b63a5b3
Updated README.md with link to docs
Jun 15, 2019
f1d8518
Updated Ex5 with download scripts
Jun 17, 2019
9e1e6ca
Updated manifest and added contribution guide
Jun 17, 2019
f5138be
Add PyPI deployment
Jun 18, 2019
c0aa7b9
First lot of tests
Jun 18, 2019
5a9d1fc
Updated with some more tests
Jun 18, 2019
61b0891
Merge branch 'dev' of github.com:brmather/pycurious into dev
Jun 18, 2019
a5654ce
Remove matplotlib dependency from Bouligand_forward.py
Jun 18, 2019
123ffad
Now running tests with Travis-CI
Jun 18, 2019
6655328
Run tests in Dockerfile
Jun 18, 2019
16615ff
Merge pull request #8 from brmather/dev
Jun 18, 2019
790d4dd
Updated a lot of docstrings
Jun 20, 2019
17489a8
Adding PyCurious logo
Jun 20, 2019
207a3b3
Updated README and StartHere.ipynb
Jun 20, 2019
ccff214
Getting ready for 0.3.2
Jun 20, 2019
340f903
Prevent EMAG2 from being packaged on my computer
Jun 20, 2019
e7a2b9b
Better logo!
Jun 21, 2019
0f25055
Merge branch 'master' into paper
Jun 24, 2019
883d2da
Final edits to paper.md before submission to JOSS
Jun 24, 2019
3d059d3
Merge pull request #9 from brmather/paper
Jun 24, 2019
5c3b7e4
Getting ready for 0.4 release
Jun 24, 2019
3bc83bc
Remove Rob's phoney ORCID
Jun 24, 2019
380728f
Slight improvements to documentation
Jul 1, 2019
d03795a
JOSS edits
jessepisel Jul 8, 2019
ad77ccd
Updated contribution guide
Jul 9, 2019
fcc6bac
Merge pull request #12 from jessepisel/JOSS_review
Jul 9, 2019
d509310
Fix styling when checking if variable is None
santisoler Jul 10, 2019
5460d8d
Rename nw to nr and remove unneeded nw variable
santisoler Jul 10, 2019
825507e
Remove redundant zero on range
santisoler Jul 10, 2019
a90018f
Remove unused variables and imported functions
santisoler Jul 10, 2019
73ac9c3
Add environment.yml
santisoler Jul 11, 2019
dd7c497
Add eggs and .so files to .gitignore
santisoler Jul 11, 2019
30a5c78
Add conda instructions to README.md
santisoler Jul 11, 2019
2f04089
Merge pull request #24 from santisoler/styling
Jul 12, 2019
7bfb424
Merge pull request #25 from santisoler/environment
Jul 12, 2019
2a285f3
Check equal node spacing
Jul 12, 2019
f238ebe
Updatd docstring for CurieGrid
Jul 12, 2019
1dd73b3
raise error if window is too big
Jul 12, 2019
2ea5bab
Refactoring code for computing power spectrum
Jul 12, 2019
53b70fa
Changed pdoc to latex_math branch
Jul 12, 2019
3f84d65
Come on Travis...
Jul 12, 2019
52acc31
Clarified docstring on ComputeTanaka function in grid.py
rdelhaye Jul 13, 2019
85d7c46
Correction of error propagation in ComputeTanaka function in grid.py
rdelhaye Jul 13, 2019
0382337
Removal of superfluous variables in tanaka1999 function in grid.py
rdelhaye Jul 13, 2019
c273e3d
Rework remove_trend_linear
Jul 14, 2019
b6fb432
Improve docstrings for CurieGrid and CurieOptimise
Jul 15, 2019
4ac6d01
Remove scale argument from power spectrum
Jul 15, 2019
1ae9986
Remove `CurieGrid.radial_spectrum_log`
Jul 15, 2019
c838a4a
Update rdelhaye ORCID
Jul 15, 2019
248358d
Add jupyter as dependency
santisoler Jul 15, 2019
692ca6e
Merge pull request #26 from brmather/power_spectrum
Jul 15, 2019
12a4cd3
Fix #29
Jul 16, 2019
bf0e384
Merge pull request #28 from santisoler/jupyter
Jul 16, 2019
07fb3ca
Improved testing suite using pytest
Jul 17, 2019
36adcb5
Updated logo (slightly)
Jul 17, 2019
1ce5b91
Merge branch 'master' of github.com:brmather/pycurious
Jul 17, 2019
bb6c1c8
Include `pytest.fixture` within testing suite
Jul 18, 2019
eee9752
Add pytest to environment.yml
santisoler Jul 18, 2019
553d640
Merge pull request #30 from santisoler/pytest-conda
Jul 19, 2019
90098de
Reformatting to PEP8 standard
Jul 19, 2019
bbaf611
Merge branch 'master' of github.com:brmather/pycurious
Jul 19, 2019
7f94ffc
Update paper.md (#31)
lheagy Jul 24, 2019
13b7f36
Bump to version 1.0
Jul 24, 2019
2b77244
Zenodo failed so lets try 1.0.1
Jul 24, 2019
2c05022
Update to version 1.0.2 to match Zenodo (hopefully!)
Jul 24, 2019
e3a968f
Update paper.md
kyleniemeyer Jul 25, 2019
1af5de5
Merge pull request #33 from kyleniemeyer/patch-1
Jul 26, 2019
98e5c6e
Add citation
Jul 29, 2019
a4d896d
Updated docker instructions
Oct 17, 2019
ef59a55
Skip OpenMP cruft for nprocs=1
Jan 15, 2020
9b962e0
Merge branch 'master' of github.com:brmather/pycurious
Jan 15, 2020
7ad34c6
version bump to 1.0.3
Jan 15, 2020
5c9bdf4
New mapping function `ungrid`
Jan 18, 2020
d5f9ca7
Merge branch 'master' of github.com:brmather/pycurious
Jan 18, 2020
232b02a
Add export to netCDF4 function
Jan 31, 2020
9fe4c56
Slightly more efficient handling of large masks
Feb 25, 2020
6a7cc9c
Getting ready for 1.1 release
Feb 25, 2020
565dccd
import netcdf4 function
Feb 25, 2020
b969920
bugfix for older windows builds
Mar 1, 2020
16610b5
pyproj syntax has changed in v6
Nov 16, 2020
85c7dc3
restructure repo and bring setup.py up to date
May 30, 2022
13949f0
Split CurieOptimise into CurieOptimiseBouligand and CurieOptimiseTanaka
May 31, 2022
6fd2d7b
some bug fixes
Jun 1, 2022
d87fb1f
remove azimuthal spectrum
Jun 1, 2022
7e9a633
new and updated Tanaka notebooks
Jun 1, 2022
4f0c05f
oops - don't want to include modified centroid method notebook
Jun 1, 2022
6bb691f
Use amplitude spectrum instead of the square root of the amplitude sp…
jonnyford Jun 1, 2022
7862cbe
Update notebooks to use amplitude spectrum
jonnyford Jun 1, 2022
5431621
Merge pull request #37 from jonnyford/tanaka2-fix
Jun 6, 2022
63bd709
Modernise packaging and drop the Cython extension
Jul 20, 2026
9515958
Update code and tests for the CurieOptimise split
Jul 20, 2026
9424381
Update README and notebooks for the restructured Examples directory
Jul 20, 2026
ebd1f04
Stop parallelise_routine deadlocking when a worker dies
Jul 20, 2026
a6373e8
Correct the wavenumber grid and expose radial bin counts
Jul 20, 2026
73610ce
Record Bouligand findings for the separate workstream
Jul 20, 2026
1ed895b
Add synthetics with a known Curie depth, and recovery tests
Jul 20, 2026
f349484
Finish CurieOptimiseTanaka: correct weighting, real uncertainties
Jul 20, 2026
0ef953d
Stop check_bands reporting every problem twice
Jul 20, 2026
b75e055
Update Tanaka notebooks for the rewritten class
Jul 20, 2026
2036298
Ignore downloaded datasets and notebook-generated rasters
Jul 20, 2026
2bf1869
Fix Ex5, and declare GDAL as an optional dependency
Jul 20, 2026
7cdb987
Give CurieOptimiseBouligand real uncertainties
Jul 21, 2026
030c42b
Share the generator, fix the sampler, calibrate the Tanaka error bars
Jul 21, 2026
5ae801a
Rewrite the Bouligand notebooks around a known answer
Jul 21, 2026
1ec338a
Re-run every notebook, and commit them without outputs
Jul 21, 2026
035cf17
Simplify: share the GLS solve, drop dead options, cut test time
Jul 21, 2026
0f71945
Bound dz below the cosh overflow, not at the physical limit
Jul 21, 2026
eb99dff
Add CLAUDE.md
Jul 21, 2026
95cffbc
Honour max_processors in CurieOptimiseBouligand
Jul 21, 2026
e4b7e34
List the notebooks in MANIFEST.in instead of globbing them
Jul 21, 2026
460342f
Bin the radial spectrum with bincount instead of a mask per bin
Jul 22, 2026
ea2a624
remove_trend_linear: separable plane fit instead of an SVD
brmather Jul 23, 2026
fd0c681
Guard the separable detrend against a singleton axis
Jul 23, 2026
24de644
radial_spectrum: rfft2 with Hermitian weighting instead of fft2
Jul 24, 2026
e10749a
Overhaul packaging and docs for the v2 release
Jul 24, 2026
ab4b4d5
Merge the v1 master line into the v2 rewrite; keep the v2 tree
Jul 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Documentation

on:
push:
branches: [master]
pull_request:
workflow_dispatch:

# Allow the deploy job to publish to GitHub Pages.
permissions:
contents: read
pages: write
id-token: write

# One concurrent Pages deployment; do not cancel a run in progress.
concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
name: Build Sphinx docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: pip

- name: Install pycurious with docs extras
# examples + mapping are needed so the tutorial notebooks execute at
# build time (matplotlib/cartopy/pyproj/netCDF4).
run: python -m pip install -e ".[docs,examples,mapping]"

- name: Copy tutorial notebooks into the docs tree
run: python docs/copy_notebooks.py

- name: Build HTML
# Not -W: the function docstrings are pdoc-flavoured Markdown that emits
# cosmetic RST warnings under autodoc. The real quality gate is
# nb_execution_raise_on_error in conf.py — a tutorial that fails to
# execute fails the build.
run: sphinx-build -b html docs docs/_build/html

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/_build/html

deploy:
name: Deploy to GitHub Pages
# Only publish from master; PRs build above but do not deploy.
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy
id: deployment
uses: actions/deploy-pages@v4
55 changes: 55 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Publish to PyPI

on:
release:
types: [published]
workflow_dispatch:

jobs:
build:
name: Build distributions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"

- name: Build sdist and wheel
run: |
python -m pip install --upgrade build twine
python -m build

- name: Check the distributions
run: python -m twine check dist/*

- name: Upload distributions
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/

publish:
name: Publish to PyPI
needs: build
runs-on: ubuntu-latest
# Trusted Publishing: PyPI mints a short-lived token from this workflow's
# OIDC identity, so no password or API token is stored. Configure the
# trusted publisher once on PyPI (project pycurious): owner brmather,
# repository pycurious, workflow publish.yml, environment pypi.
environment:
name: pypi
url: https://pypi.org/p/pycurious
permissions:
id-token: write
steps:
- name: Download distributions
uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- name: Publish
uses: pypa/gh-action-pypi-publish@release/v1
40 changes: 40 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Tests

on:
push:
branches: ["**"]
pull_request:
workflow_dispatch:

jobs:
test:
name: pytest (Python ${{ matrix.python-version }} on ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
include:
# one macOS leg on the newest interpreter, to catch platform issues
- os: macos-latest
python-version: "3.13"

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip

- name: Install pycurious with test extra
# The suite imports only pytest, numpy, scipy and pycurious itself;
# numpy/scipy are core dependencies and `import pycurious` stays light
# because mapping/download lazy-import their heavy deps. So the `test`
# extra (just pytest) is all that is needed to run everything.
run: python -m pip install -e ".[test]"

- name: Run the full test suite
run: pytest -v
40 changes: 35 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,38 @@
pycurious-src/pycurious/Examples/Notebooks/Bouligand/.ipynb_checkpoints/*
pycurious-src/pycurious/Examples/Notebooks/Tanaka/.ipynb_checkpoints/*
pycurious-src/pycurious/Examples/.ipynb_checkpoints/*
# Python
*.pyc
__pycache__/
*.so
.eggs
build
*.egg-info
*.so
build
dist
.pytest_cache/

# Jupyter
.ipynb_checkpoints/

# macOS
.DS_Store

# Datasets fetched by pycurious.download at notebook runtime. These are
# hundreds of megabytes and are reproducible from their URL and checksum, so
# they are cached locally rather than committed. Everything in Examples/data
# is ignored except the small synthetic anomaly the tests rely on.
Examples/data/*
!Examples/data/test_mag_data.txt

# Rasters and grids written by the notebooks themselves, e.g. the GeoTIFF
# exported at the end of Ex5.
*.tif
*.tiff
*.npz
!tests/*.npz

# Sphinx build output, and the tutorial notebooks + data fixture that
# docs/copy_notebooks.py stages into the source tree on every build. These are
# regenerated from Examples/, so they are never committed.
docs/_build/
docs/tutorials/bouligand/
docs/tutorials/tanaka/
docs/data/
docs/api/generated/
57 changes: 0 additions & 57 deletions .travis.yml

This file was deleted.

Loading
Loading