Commit cdaf7b7a authored by Stefan Mauerberger's avatar Stefan Mauerberger
Browse files

Merge branch 'master' into FieldTools

parents 9f37cf9e afba915c
# CORBASS # CORBASS
### CORrelation Based Archeomagnetic SnapShot model ### CORrelation Based Archeomagnetic SnapShot model
# License
GNU General Public License, Version 3, 29 June 2007
Copyright (C) 2019 Helmholtz Centre Potsdam GFZ, German Research Centre for Geosciences, Potsdam, Germany
CORBASS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
CORBASS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
# Citation
> Schanner, Maximilian Arthus and Mauerberger, Stefan (2019)
> CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0.
> GFZ Data Services. http://doi.org/10.5880/GFZ.2.3.2019.008
[![DOI](https://img.shields.io/badge/DOI-10.5880%2FGFZ.2.3.2019.008-blue.svg)](http://doi.org/10.5880/GFZ.2.3.2019.008)
# Documentation # Documentation
The `CORBASS` model is described in TODO: #12. In a way this The `CORBASS` model is described in TODO: #12. In a way this
repository can be seen as supplementary material to this publication. Below this repository can be seen as supplementary material to this publication. Below this
...@@ -13,8 +38,8 @@ graph LR; ...@@ -13,8 +38,8 @@ graph LR;
ParameterFile-->Exploration-->Integration-->Evaluation; ParameterFile-->Exploration-->Integration-->Evaluation;
``` ```
`CORBASS` uses parameter files, which include among other things a link to `CORBASS` uses parameter files, which include among other things a link to
datasets, in a format similar to the [GEOMAGIA](http://geomagia.gfz-potsdam.de/) datasets, in a format similar to the [GEOMAGIA](http://geomagia.gfz-potsdam.de/)
output. Thus a first step is to create such a file for your data. You can find output. Thus a first step is to create such a file for your data. You can find
an [example](Example_Parfile.py) an [example](Example_Parfile.py)
in the [*examples* section]. in the [*examples* section].
...@@ -22,7 +47,7 @@ in the [*examples* section]. ...@@ -22,7 +47,7 @@ in the [*examples* section].
Once you have a parameter file, the recommended way to run `CORBASS` is to use Once you have a parameter file, the recommended way to run `CORBASS` is to use
```console ```console
(CORBASS)$ python run.py <path/to/parfile.py> (CORBASS)$ python run.py <path/to/parfile.py>
``` ```
This way the `CORBASS` posterior model coefficients, the NEZ- and DIF-field models This way the `CORBASS` posterior model coefficients, the NEZ- and DIF-field models
...@@ -30,40 +55,33 @@ and down component and intensity at the CMB are calculated and provided as `.txt ...@@ -30,40 +55,33 @@ and down component and intensity at the CMB are calculated and provided as `.txt
files. The output location is specified in the parameter file. files. The output location is specified in the parameter file.
Under the hood, `CORBASS` first explores the model parameter space by using the Under the hood, `CORBASS` first explores the model parameter space by using the
`exploration` module. This way the region of interest, i.e. where the `exploration` module. This way the region of interest, i.e. where the
probability mass is concentrated, is found and can be accessed by the probability mass is concentrated, is found and can be accessed by the
`integration` module. The output can then be used to calculate further results, `integration` module. The output can then be used to calculate further results,
using the `evaluation` module. using the `evaluation` module.
If you want to use the individual models, you can find Jupyter notebooks for If you want to use the individual modules, you can find Jupyter notebooks for
each model in the [*examples* section]. each module in the [*examples* section].
[*examples* section]: (examples) [*examples* section]: (examples)
Cite as
> Schanner, M. and Mauerberger, S. (2019)
> CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0.
> GFZ Data Services. http://doi.org/XXX
TODO: #10
# Installation # Installation
0. Clone the repository 0. Clone the repository
```console ```console
$ git clone https://gitext.gfz-potsdam.de/arthus/corbass.git $ git clone https://gitext.gfz-potsdam.de/arthus/corbass.git
``` ```
In the following `<corbass>` refers to the path you cloned the `CORBASS` repository into. In the following `<corbass>` refers to the path you cloned the `CORBASS` repository into.
1. Download and install [Miniconda](https://conda.io/miniconda.html) for Python 3. 1. Download and install [Miniconda](https://conda.io/miniconda.html) for Python 3.
By default, the installation directory `<conda>` is `~/miniconda3/`. By default, the installation directory `<conda>` is `~/miniconda3/`.
If you let conda modify your `bash.rc`, `<conda>/bin/conda` may be replaced by If you let conda modify your `bash.rc`, `<conda>/bin/conda` may be replaced by
`conda`. `conda`.
2. Build and install [FieldTools] 2. Build and install [FieldTools]
1. Install `conda-build` and `numpy` (to base) 1. Install `conda-build` (to base)
```console ```console
$ <conda>/bin/conda install conda-build numpy $ <conda>/bin/conda install conda-build
``` ```
2. Navigate to `<corbass>` and build [FieldTools] 2. Navigate to `<corbass>` and build [FieldTools]
...@@ -81,7 +99,7 @@ TODO: #10 ...@@ -81,7 +99,7 @@ TODO: #10
$ source <conda>/bin/activate CORBASS $ source <conda>/bin/activate CORBASS
``` ```
Careful with tcshell, you have to use activate.csh. Careful with tcshell, you have to use activate.csh.
When you are done, deactivate the environment by When you are done, deactivate the environment by
```console ```console
(CORBASS)$ conda deactivate`. (CORBASS)$ conda deactivate`.
...@@ -100,35 +118,16 @@ TODO: #10 ...@@ -100,35 +118,16 @@ TODO: #10
[FieldTools]: https://gitup.uni-potsdam.de/matusche/fieldtools [FieldTools]: https://gitup.uni-potsdam.de/matusche/fieldtools
# License
GNU General Public License, Version 3, 29 June 2007
Copyright (C) 2019 Maximilian Schanner, GFZ Potsdam
Copyright (C) 2019 Stefan Mauerberger, University of Potsdam
CORBASS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
CORBASS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
# Contact # Contact
* [Maximilian Schanner](mailto:arthus@gfz-potsdam.de) * [Maximilian Schanner](mailto:arthus@gfz-potsdam.de)
Helmholtz Centre Potsdam German Research Centre for Geoscienes GFZ Helmholtz Centre Potsdam German Research Centre for Geoscienes GFZ
Section 2.3: Geomagnetism Section 2.3: Geomagnetism
Telegrafenberg Telegrafenberg
14473 Potsdam, Germany 14473 Potsdam, Germany
* [Stefan Mauerberger](mailto:mauerber@uni-potsdam.de) * [Stefan Mauerberger](mailto:mauerber@uni-potsdam.de)
Institut of mathematics Institut of mathematics
University of Potsdam University of Potsdam
Campus Golm, Haus 9 Campus Golm, Haus 9
Karl-Liebknecht-Str. 24-25 Karl-Liebknecht-Str. 24-25
14476 Potsdam OT Golm, Germany 14476 Potsdam OT Golm, Germany
""" """
Copyright (C) 2019 Maximilian Schanner, GFZ Potsdam Copyright (C) 2019 Helmholtz Centre Potsdam GFZ,
Copyright (C) 2019 Stefan Mauerberger, University of Potsdam German Research Centre for Geosciences, Potsdam, Germany
Cite as: Cite as:
Schanner, M. and Mauerberger, S. (2019) Schanner, Maximilian Arthus and Mauerberger, Stefan (2019)
CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0. CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0.
GFZ Data Services. http://doi.org/XXX TODO XXX GFZ Data Services. http://doi.org/10.5880/GFZ.2.3.2019.008
This file is part of CORBASS. This file is part of CORBASS.
......
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
proxys of these) for quantities of interest, such as the power spectrum, proxys of these) for quantities of interest, such as the power spectrum,
the dipole intensity, the dipole location etc. the dipole intensity, the dipole location etc.
Copyright (C) 2019 Maximilian Schanner, GFZ Potsdam Copyright (C) 2019 Helmholtz Centre Potsdam GFZ,
Copyright (C) 2019 Stefan Mauerberger, University of Potsdam German Research Centre for Geosciences, Potsdam, Germany
Cite as: Cite as:
Schanner, M. and Mauerberger, S. (2019) Schanner, Maximilian Arthus and Mauerberger, Stefan (2019)
CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0. CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0.
GFZ Data Services. http://doi.org/XXX TODO XXX GFZ Data Services. http://doi.org/10.5880/GFZ.2.3.2019.008
This file is part of CORBASS. This file is part of CORBASS.
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
This module is part of the CORBASS algorithm. It provides a routine for the This module is part of the CORBASS algorithm. It provides a routine for the
first step, the exploration of the parameter space. first step, the exploration of the parameter space.
Copyright (C) 2019 Maximilian Schanner, GFZ Potsdam Copyright (C) 2019 Helmholtz Centre Potsdam GFZ,
Copyright (C) 2019 Stefan Mauerberger, University of Potsdam German Research Centre for Geosciences, Potsdam, Germany
Cite as: Cite as:
Schanner, M. and Mauerberger, S. (2019) Schanner, Maximilian Arthus and Mauerberger, Stefan (2019)
CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0. CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0.
GFZ Data Services. http://doi.org/XXX TODO XXX GFZ Data Services. http://doi.org/10.5880/GFZ.2.3.2019.008
This file is part of CORBASS. This file is part of CORBASS.
......
...@@ -5,13 +5,13 @@ ...@@ -5,13 +5,13 @@
assisting routine for finding a region of high probability mass, given assisting routine for finding a region of high probability mass, given
output from the previous exploration step. output from the previous exploration step.
Copyright (C) 2019 Maximilian Schanner, GFZ Potsdam Copyright (C) 2019 Helmholtz Centre Potsdam GFZ,
Copyright (C) 2019 Stefan Mauerberger, University of Potsdam German Research Centre for Geosciences, Potsdam, Germany
Cite as: Cite as:
Schanner, M. and Mauerberger, S. (2019) Schanner, Maximilian Arthus and Mauerberger, Stefan (2019)
CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0. CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0.
GFZ Data Services. http://doi.org/XXX TODO XXX GFZ Data Services. http://doi.org/10.5880/GFZ.2.3.2019.008
This file is part of CORBASS. This file is part of CORBASS.
...@@ -352,9 +352,9 @@ def integrate(name, data, N, bounds, r_ref=3200., ...@@ -352,9 +352,9 @@ def integrate(name, data, N, bounds, r_ref=3200.,
mu_f_cmb += res['zf_mean'][1] * weight mu_f_cmb += res['zf_mean'][1] * weight
var_z_cmb += res['zf_var'][0] * weight var_z_cmb += res['zf_var'][0] * weight
var_z_cmb += res['zf_var'][0]**2 * weight var_z_cmb += res['zf_mean'][0]**2 * weight
var_f_cmb += res['zf_var'][1] * weight var_f_cmb += res['zf_var'][1] * weight
var_f_cmb += res['zf_var'][1]**2 * weight var_f_cmb += res['zf_mean'][1]**2 * weight
pbar.update(pbar.value + 1) pbar.update(pbar.value + 1)
# close progressbarr # close progressbarr
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
This module is part of the CORBASS algorithm. It can be seen as the core This module is part of the CORBASS algorithm. It can be seen as the core
module, where the actual inversion code is defined. module, where the actual inversion code is defined.
Copyright (C) 2019 Maximilian Schanner, GFZ Potsdam Copyright (C) 2019 Helmholtz Centre Potsdam GFZ,
Copyright (C) 2019 Stefan Mauerberger, University of Potsdam German Research Centre for Geosciences, Potsdam, Germany
Cite as: Cite as:
Schanner, M. and Mauerberger, S. (2019) Schanner, Maximilian Arthus and Mauerberger, Stefan (2019)
CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0. CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0.
GFZ Data Services. http://doi.org/XXX TODO XXX GFZ Data Services. http://doi.org/10.5880/GFZ.2.3.2019.008
This file is part of CORBASS. This file is part of CORBASS.
...@@ -1019,11 +1019,6 @@ class Inversion: ...@@ -1019,11 +1019,6 @@ class Inversion:
epsilons = np.dot(jac, jac.T) epsilons = np.dot(jac, jac.T)
"""
lap_appr = np.linalg.inv(np.linalg.multi_dot((jac.T,
np.linalg.inv(errs),
jac)))
"""
trans_grad[3*it:3*it+3, 3*it:3*it+3] = jac trans_grad[3*it:3*it+3, 3*it:3*it+3] = jac
epsilon[3*it:3*it+3, 3*it:3*it+3] = errs epsilon[3*it:3*it+3, 3*it:3*it+3] = errs
rho[3*it:3*it+3, 3*it:3*it+3] = epsilons rho[3*it:3*it+3, 3*it:3*it+3] = epsilons
...@@ -1159,7 +1154,7 @@ if __name__ == '__main__': ...@@ -1159,7 +1154,7 @@ if __name__ == '__main__':
ax[0, 0].set_title('Z @ CMB') ax[0, 0].set_title('Z @ CMB')
ax[1, 0].tripcolor(lat, lon, var_z, ax[1, 0].tripcolor(lat, lon, var_z,
cmap=plt.cm.plasma) cmap=plt.cm.binary)
ax[1, 0].coastlines(zorder=4) ax[1, 0].coastlines(zorder=4)
ax[0, 1].tripcolor(lat, lon, f) ax[0, 1].tripcolor(lat, lon, f)
...@@ -1167,7 +1162,7 @@ if __name__ == '__main__': ...@@ -1167,7 +1162,7 @@ if __name__ == '__main__':
ax[0, 1].set_title('F @ CMB') ax[0, 1].set_title('F @ CMB')
ax[1, 1].tripcolor(lat, lon, var_f, ax[1, 1].tripcolor(lat, lon, var_f,
cmap=plt.cm.plasma) cmap=plt.cm.binary)
ax[1, 1].coastlines(zorder=4) ax[1, 1].coastlines(zorder=4)
plt.show() plt.show()
...@@ -3,13 +3,13 @@ ...@@ -3,13 +3,13 @@
that are used throughut the algorithm, e.g. a routine to load a parameter that are used throughut the algorithm, e.g. a routine to load a parameter
file or scaling routines for coefficicients and covariances. file or scaling routines for coefficicients and covariances.
Copyright (C) 2019 Maximilian Schanner, GFZ Potsdam Copyright (C) 2019 Helmholtz Centre Potsdam GFZ,
Copyright (C) 2019 Stefan Mauerberger, University of Potsdam German Research Centre for Geosciences, Potsdam, Germany
Cite as: Cite as:
Schanner, M. and Mauerberger, S. (2019) Schanner, Maximilian Arthus and Mauerberger, Stefan (2019)
CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0. CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0.
GFZ Data Services. http://doi.org/XXX TODO XXX GFZ Data Services. http://doi.org/10.5880/GFZ.2.3.2019.008
This file is part of CORBASS. This file is part of CORBASS.
......
This diff is collapsed.
...@@ -123,16 +123,6 @@ ...@@ -123,16 +123,6 @@
"execution_count": 4, "execution_count": 4,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Residual term [nT]')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{ {
"data": { "data": {
"image/png": "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\n", "image/png": "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\n",
......
This diff is collapsed.
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"/home/arthus/Documents/CORBASS\n" "<corbass>/CORBASS\n"
] ]
} }
], ],
...@@ -39,53 +39,31 @@ ...@@ -39,53 +39,31 @@
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stderr", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"\r", "Exploring 1450, this may take a while...\n",
"N/A% (0 of 15625) | | Elapsed Time: 0:00:00 ETA: --:--:--" "100% (15625 of 15625) |##################| Elapsed Time: 0:22:41 Time: 0:22:41\n",
"Integrating 1450, this may take a while...\n",
"100% (3375 of 3375) |####################| Elapsed Time: 1:02:05 Time: 1:02:05\n",
"<corbass>/CORBASS/corbass/evaluation.py:215: RuntimeWarning: covariance is not positive-semidefinite.\n",
" for it in par_samps]\n",
"Exploring 1550, this may take a while...\n",
"100% (15625 of 15625) |##################| Elapsed Time: 0:29:14 Time: 0:29:14\n"
] ]
}, },
{ {
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"\n", "Integrating 1550, this may take a while...\n"
"Exploring 1450, this may take a while...\n"
] ]
}, },
{ {
"name": "stderr", "name": "stderr",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
" 0% (98 of 15625) | | Elapsed Time: 0:00:13 ETA: 0:39:48" "100% (3375 of 3375) |####################| Elapsed Time: 1:08:58 Time: 1:08:58\n"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mOutOfDateError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m~/Documents/CORBASS/run.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnewer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpar_file\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexpl_fname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 60\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mOutOfDateError\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 61\u001b[0m \u001b[0;31m# if there is no output or it is out of date, run explore and write the\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mOutOfDateError\u001b[0m: ",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m~/Documents/CORBASS/run.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"\\nExploring {bin_name}, this may take a while...\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m rslt = explore(pars.bin_fname(bin_name), data, pars.n_ex, pars.bounds,\n\u001b[0;32m---> 66\u001b[0;31m r_ref=pars.r_ref)\n\u001b[0m\u001b[1;32m 67\u001b[0m \u001b[0mrslt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/Documents/CORBASS/corbass/exploration.py\u001b[0m in \u001b[0;36mexplore\u001b[0;34m(name, data, N, bounds, r_ref)\u001b[0m\n\u001b[1;32m 128\u001b[0m \u001b[0;31m# iterate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 129\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mlam\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrho\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mposterior\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mit\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 130\u001b[0;31m \u001b[0mposterior\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m...\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_pst\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr_ref\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlam\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrho\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 131\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[0mpbar\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpbar\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/Documents/CORBASS/corbass/inversion.py\u001b[0m in \u001b[0;36mlog_pst\u001b[0;34m(self, r_Ref, lamb, epsilon, rho, log_pri)\u001b[0m\n\u001b[1;32m 899\u001b[0m \u001b[0mThe\u001b[0m \u001b[0mlog\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mposterior\u001b[0m \u001b[0mvalue\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mkernel\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mparameters\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 900\u001b[0m \"\"\"\n\u001b[0;32m--> 901\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_prep_calc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr_Ref\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlamb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepsilon\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrho\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 902\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_log_pst\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlamb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepsilon\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrho\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlog_pri\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlog_pri\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 903\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/Documents/CORBASS/corbass/inversion.py\u001b[0m in \u001b[0;36m_prep_calc\u001b[0;34m(self, r_Ref, lamb, epsilon, rho)\u001b[0m\n\u001b[1;32m 227\u001b[0m \u001b[0;31m# Invert covariance using Cholesky\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mL\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcholesky\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcov_NEZ_full\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 229\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mL_inv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mL\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 230\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 231\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprc_NEZ_full\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mL_inv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mL_inv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<__array_function__ internals>\u001b[0m in \u001b[0;36minv\u001b[0;34m(*args, **kwargs)\u001b[0m\n",
"\u001b[0;32m~/miniconda3/envs/CORBASS/lib/python3.7/site-packages/numpy/linalg/linalg.py\u001b[0m in \u001b[0;36minv\u001b[0;34m(a)\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[0msignature\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'D->D'\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misComplexType\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mt\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m'd->d'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 550\u001b[0m \u001b[0mextobj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_linalg_error_extobj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_raise_linalgerror_singular\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 551\u001b[0;31m \u001b[0mainv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_umath_linalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msignature\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msignature\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mextobj\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mextobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 552\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mainv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult_t\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 553\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/arthus/Documents/CORBASS/out\n"
] ]
} }
], ],
...@@ -106,13 +84,10 @@ ...@@ -106,13 +84,10 @@
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"name": "stderr", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"\r", "<corbass>/CORBASS/out\n"
" \r",
"\r",
" 0% (98 of 15625) | | Elapsed Time: 0:00:13 ETA: 0:45:52"
] ]
} }
], ],
...@@ -124,7 +99,18 @@ ...@@ -124,7 +99,18 @@
"cell_type": "code", "cell_type": "code",
"execution_count": 4, "execution_count": 4,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[0m\u001b[00mexample_1450_cmbfields.txt\u001b[0m \u001b[00mexample_1450_inte.npz\u001b[0m \u001b[00mexample_1550_fields.txt\u001b[0m\r\n",
"\u001b[00mexample_1450_coeffs.txt\u001b[0m \u001b[00mexample_1550_cmbfields.txt\u001b[0m \u001b[00mexample_1550_inte.npz\u001b[0m\r\n",
"\u001b[00mexample_1450_expl.npz\u001b[0m \u001b[00mexample_1550_coeffs.txt\u001b[0m\r\n",
"\u001b[00mexample_1450_fields.txt\u001b[0m \u001b[00mexample_1550_expl.npz\u001b[0m\r\n"
]
}
],
"source": [ "source": [
"ls" "ls"
] ]
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
This script runs the CORBASS algorithm for a parameter file that is This script runs the CORBASS algorithm for a parameter file that is
passed via the command line. passed via the command line.
Copyright (C) 2019 Maximilian Schanner, GFZ Potsdam Copyright (C) 2019 Helmholtz Centre Potsdam GFZ,
Copyright (C) 2019 Stefan Mauerberger, University of Potsdam German Research Centre for Geosciences, Potsdam, Germany
Cite as: Cite as:
Schanner, M. and Mauerberger, S. (2019) Schanner, Maximilian Arthus and Mauerberger, Stefan (2019)
CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0. CORBASS: CORrelation Based Archeomagnetic SnapShot model. V. 1.0.
GFZ Data Services. http://doi.org/XXX TODO XXX GFZ Data Services. http://doi.org/10.5880/GFZ.2.3.2019.008
This file is part of CORBASS. This file is part of CORBASS.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment