123 lines
6.4 KiB
Markdown
123 lines
6.4 KiB
Markdown
# Forward modeling of magnetic field in spherical coordinates
|
||
|
||
Magnetic tesseroids is a collection of command-line tools for modelling of the magnetic field with spherical prisms (tesseroids) used as magnetic sources.
|
||
|
||
To cite _magnetic tesseroids_ in publications, please use our paper published in Computers & Geosciences:
|
||
|
||
>**Eldar Baykiev**, **Jörg Ebbing**, **Marco Brönner**, **Karl Fabian**, Forward modeling magnetic fields of induced and remanent magnetization in the lithosphere using tesseroids, _Computers & Geosciences_, Volume 96, November 2016, Pages 124-135, ISSN 0098-3004, http://dx.doi.org/10.1016/j.cageo.2016.08.004.
|
||
|
||
Article can also be found here http://goo.gl/x9g7gi (researchgate).
|
||
|
||
## Usage of _magnetic tesseroids_
|
||
_Magnetic tesseroids_ are based on the existing program of Leonardo Uieda called tesseroids (Uieda, 2013) of version 1.1 (https://github.com/leouieda/tesseroids/releases/tag/v1.1). It inherits the interface of tesseroids-1.1 but with several changes. Present appendix describes constants and units used be the program, as well as input and output format.
|
||
### Constants
|
||
1. Geocentric mean Earth's radius _R_E_ = 6378.137 km.
|
||
1. Magnetic permeability of a free space _µ_0_ = 4π × 10^-7 H·m^-1
|
||
|
||
### List of programs
|
||
The tessbx, tessby, tessbz are programs that calculate the corresponding components (x - north, y - east, **z - up**) of the magnetic field of the tesseroid model on the computational grid.
|
||
|
||
### Input: tesseroid model
|
||
The input model file should be a text file where each line describe one tesseroid in such space separated format:
|
||
> `W E S N HEIGHT_OF_TOP HEIGHT_OF_BOTTOM DENSITY SUSCEPTIBILITY BX BY BZ`
|
||
|
||
`W`, `E`, `S`, `N` correspond to the western, eastern, southern and northern edges of a tesseroid (_λ_1_, _λ_2_, _ϕ_1_, _ϕ_2_ respectively) expressed in decimal degrees [°].
|
||
`HEIGHT_OF_TOP` and `HEIGHT_OF_BOTTOM` define the top and the bottom of tesseroid (_r_2_ and _r_1_ respectively). Both are counted from geocentric mean Earth's radius in meters [m]. If a tesseroid should be placed beneath the mean surface, than the values of these parameters should be negative. Note that `HEIGHT_OF_TOP` > `HEIGHT_OF_BOTTOM`.
|
||
`DENSITY` is the density _ρ_ of tesseroid in kilogram per cubic meter [kg/m^3]
|
||
`SUSCEPTIBILITY` is the susceptibility _χ_ of tesseroid in SI units.
|
||
`BX`, `BY` and `BZ` are the components of the magnetizing field in the local North-East-Up Cartesian coordinate system of a tesseroids' geometric center. They can be taken from any core field's model. Values are given in nanotesla [nT].
|
||
In case of remanent magnetic field modeling, susceptibility must be set 1 SI and `BX`, `BY` and `BZ` values than would define the direction of remanent magnetization vector.
|
||
This example shows a model made of 3 neighboring tesseroids near the North Pole:
|
||
> `-74 -73 89 90 -1000.000000 -11650.000000 1.000000 1.000000 334.9504973176 -1969.9308033594 -56572.6324041700`
|
||
|
||
> `-73 -72 89 90 -1000.000000 -11650.000000 1.000000 1.000000 370.1879538142 -1968.1093976826 -56571.2826313492`
|
||
|
||
> `-72 -71 89 90 -1000.000000 -11650.000000 1.000000 1.000000 405.4388222633 -1965.6409379187 -56569.9502088641`
|
||
|
||
### Input: computation grid
|
||
Computation grid can be regular or irregular and should be also a text file where each line describe the position of one computation point in such space separated format:
|
||
>`LON LAT ALT`
|
||
|
||
`LON` and `LAT` correspond to the longitude and latitude of the point in decimal degrees [°].
|
||
`ALT` corresponds to the altitude of the point above the mean surface in meters [m].
|
||
Note that the program tessgrd from original tesseroids-1.1 can be used to create a regular computation grid (see Uieda, 2013).
|
||
This example shows a grid made of 6 points with the same latitude and the altitude of 400 km:
|
||
> `-6 51 400000 `
|
||
|
||
> `-5.8 51 400000 `
|
||
|
||
> `-5.6 51 400000 `
|
||
|
||
> `-5.4 51 400000 `
|
||
|
||
> `-5.2 51 400000 `
|
||
|
||
> `-5 51 400000`
|
||
|
||
### Performing calculations
|
||
Example: to calculate the vertical component of the magnetic field of a model in file modelfile.txt on a grid from file gridpoints.txt one can simply use a console command:
|
||
```
|
||
tessbz modelfile.txt < gridpoints.txt > gz_output.txt
|
||
```
|
||
|
||
The result would be written in the file gz_output.txt.
|
||
### Output format
|
||
The programs' output is a modified grid file where in the end of each line the calculated value of a corresponding magnetic field component would be written. Values are given in nanotesla [nT] in the local North-East-Up coordinate system of a computational point.
|
||
### Additional features
|
||
Magnetic tesseroids support features like piping and integration accuracy adjustment from tesseroids-1.1. Please, check sections in the tesseroids-1.1 manual (Uieda, 2013) relative to the gravity calculation programs to get more information.
|
||
|
||
## Utilities
|
||
### tessutil_magnetize_model
|
||
This program is made to 'magnetize' any existing tesseroid model by any given main field spherical harmonic model.
|
||
Usage:
|
||
```
|
||
tessutil_magnetize_model [SH coeff file] [input tesseroid model file] [day] [month] [year] [output tesseroid model file]
|
||
```
|
||
|
||
### tessutil_gradient_calculator
|
||
Gradient calculator (Baykiev et al., in press).
|
||
Usage:
|
||
```
|
||
tessutil_gradient_calculator -bx[Bx grid file] -by[By grid file] -bz[Bx grid file] -o[output component] -c2 >> output_file.dat
|
||
```
|
||
|
||
All grid files should be in tessgrd format. With option `-c1` program reads input grid bz as its direction is upward, with option `-c2` - downward, just as in magnetic tesseroids output. Output of gradient calculator is always in North-East-Down coordinate system.
|
||
|
||
Known issue: rounding error when processing grids with spacing equal or less than 0.2 degrees.
|
||
|
||
### tessutil_combine_grids
|
||
Sums calculated grids.
|
||
Usage:
|
||
```
|
||
tessutil_combine_grids [grid file1] [factor1] ... [grid fileN] [factorN] >> output_file.dat
|
||
```
|
||
|
||
Each grid is multiplied by factor (susceptibility) and then the sum of all grids is calculated.
|
||
|
||
## Installation (version 1.1)
|
||
1. Download source code from [GitHub](https://github.com/eldarbaykiev/magnetic-tesseroids):
|
||
|
||
```
|
||
git clone https://github.com/eldarbaykiev/magnetic-tesseroids.git
|
||
```
|
||
|
||
2. On **Linux**, install [OpenBLAS](https://www.openblas.net/) library:
|
||
|
||
```
|
||
sudo apt-get install libopenblas-base libopenblas-dev
|
||
```
|
||
|
||
On **macOS**, make sure that [Xcode](https://developer.apple.com/xcode/) is installed and [Accelerate framework](https://developer.apple.com/documentation/accelerate) is available.
|
||
|
||
3. Run **make**
|
||
|
||
```
|
||
make
|
||
```
|
||
|
||
To compile all utilities, run
|
||
|
||
```
|
||
make tools
|
||
```
|