fatiando.gravmag.prism
)¶Calculate the potential fields of the 3D right rectangular prism.
Note
All input units are SI. Output is in conventional units: SI for the gravitatonal potential, mGal for gravity, Eotvos for gravity gradients, nT for magnetic total field anomalies.
Note
The coordinate system of the input parameters is x -> North, y -> East and z -> Down.
Gravity
The gravitational fields are calculated using the formula of Nagy et al. (2000). Available functions are:
Warning
The gxy, gxz, and gyz components have singularities when the computation point is aligned with the corners of the prism on the bottom, east, and north sides, respectively. In these cases, the above functions will move the computation point slightly to avoid these singularities. Unfortunately, this means that the result will not be as accurate on those points.
Magnetic
Available fields are the total-field anomaly (using the formula of Bhattacharyya, 1964) and x, y, z components of the magnetic induction:
Auxiliary Functions
Calculates the second derivatives of the function
with respect to the variables \(x\), \(y\), and \(z\). In this equation,
and \(\nu\), \(\eta\), \(\zeta\) are the Cartesian coordinates of an element inside the volume of a 3D prism. These second derivatives are used to calculate the total field anomaly and the gravity gradient tensor components.
References
Bhattacharyya, B. K. (1964), Magnetic anomalies due to prism-shaped bodies with arbitrary polarization, Geophysics, 29(4), 517, doi: 10.1190/1.1439386.
Nagy, D., G. Papp, and J. Benedek (2000), The gravitational potential and its derivatives for the prism: Journal of Geodesy, 74, 552–560, doi: 10.1007/s001900000116.
fatiando.gravmag.prism.
bx
(xp, yp, zp, prisms, pmag=None)[source]¶Calculates the x component of the magnetic induction produced by rectangular prisms.
Note
Input units are SI. Output is in nT
Parameters:
The x, y, and z coordinates where the anomaly will be calculated
fatiando.mesher.Prism
The model used to calculate the total field anomaly.
Prisms without the physical property 'magnetization'
will
be ignored. The 'magnetization'
must be a vector.
A magnetization vector. If not None, will use this value instead of the
'magnetization'
property of the prisms. Use this, e.g., for
sensitivity matrix building.
Returns:
The x component of the magnetic induction
fatiando.gravmag.prism.
by
(xp, yp, zp, prisms, pmag=None)[source]¶Calculates the y component of the magnetic induction produced by rectangular prisms.
Note
Input units are SI. Output is in nT
Parameters:
The x, y, and z coordinates where the anomaly will be calculated
fatiando.mesher.Prism
The model used to calculate the total field anomaly.
Prisms without the physical property 'magnetization'
will
be ignored. The 'magnetization'
must be a vector.
A magnetization vector. If not None, will use this value instead of the
'magnetization'
property of the prisms. Use this, e.g., for
sensitivity matrix building.
Returns:
The y component of the magnetic induction
fatiando.gravmag.prism.
bz
(xp, yp, zp, prisms, pmag=None)[source]¶Calculates the z component of the magnetic induction produced by rectangular prisms.
Note
Input units are SI. Output is in nT
Parameters:
The x, y, and z coordinates where the anomaly will be calculated
fatiando.mesher.Prism
The model used to calculate the total field anomaly.
Prisms without the physical property 'magnetization'
will
be ignored. The 'magnetization'
must be a vector.
A magnetization vector. If not None, will use this value instead of the
'magnetization'
property of the prisms. Use this, e.g., for
sensitivity matrix building.
Returns:
The z component of the magnetic induction
fatiando.gravmag.prism.
gx
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the \(g_x\) gravity acceleration component.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input values in SI units(!) and output in mGal!
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
gxx
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the \(g_{xx}\) gravity gradient tensor component.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input values in SI units(!) and output in Eotvos!
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
gxy
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the \(g_{xy}\) gravity gradient tensor component.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input values in SI units(!) and output in Eotvos!
Warning
This component has singularities when the computation point is aligned with the corners of the prism on the bottom side. In these cases, the computation point slightly to avoid these singularities. Unfortunately, this means that the result will not be as accurate on those points.
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
gxz
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the \(g_{xz}\) gravity gradient tensor component.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input values in SI units(!) and output in Eotvos!
Warning
This component has singularities when the computation point is aligned with the corners of the prism on the east side. In these cases, the computation point slightly to avoid these singularities. Unfortunately, this means that the result will not be as accurate on those points.
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
gy
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the \(g_y\) gravity acceleration component.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input values in SI units(!) and output in mGal!
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
gyy
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the \(g_{yy}\) gravity gradient tensor component.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input values in SI units(!) and output in Eotvos!
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
gyz
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the \(g_{yz}\) gravity gradient tensor component.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input values in SI units(!) and output in Eotvos!
Warning
This component has singularities when the computation point is aligned with the corners of the prism on the north side. In these cases, the computation point slightly to avoid these singularities. Unfortunately, this means that the result will not be as accurate on those points.
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
gz
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the \(g_z\) gravity acceleration component.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input values in SI units(!) and output in mGal!
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
gzz
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the \(g_{zz}\) gravity gradient tensor component.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input values in SI units(!) and output in Eotvos!
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
kernelxx
(xp, yp, zp, prism)[source]¶Calculates the xx derivative of the function
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> Down.
Parameters:
The x, y, and z coordinates of the computation points.
fatiando.mesher.Prism
The model used to calculate the field.
Returns:
The effect calculated on the computation points.
fatiando.gravmag.prism.
kernelxy
(xp, yp, zp, prism)[source]¶Calculates the xy derivative of the function
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> Down.
Parameters:
The x, y, and z coordinates of the computation points.
fatiando.mesher.Prism
The model used to calculate the field.
Returns:
The effect calculated on the computation points.
fatiando.gravmag.prism.
kernelxz
(xp, yp, zp, prism)[source]¶Calculates the xz derivative of the function
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> Down.
Parameters:
The x, y, and z coordinates of the computation points.
fatiando.mesher.Prism
The model used to calculate the field.
Returns:
The effect calculated on the computation points.
fatiando.gravmag.prism.
kernelyy
(xp, yp, zp, prism)[source]¶Calculates the yy derivative of the function
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> Down.
Parameters:
The x, y, and z coordinates of the computation points.
fatiando.mesher.Prism
The model used to calculate the field.
Returns:
The effect calculated on the computation points.
fatiando.gravmag.prism.
kernelyz
(xp, yp, zp, prism)[source]¶Calculates the yz derivative of the function
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> Down.
Parameters:
The x, y, and z coordinates of the computation points.
fatiando.mesher.Prism
The model used to calculate the field.
Returns:
The effect calculated on the computation points.
fatiando.gravmag.prism.
kernelzz
(xp, yp, zp, prism)[source]¶Calculates the zz derivative of the function
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> Down.
Parameters:
The x, y, and z coordinates of the computation points.
fatiando.mesher.Prism
The model used to calculate the field.
Returns:
The effect calculated on the computation points.
fatiando.gravmag.prism.
potential
(xp, yp, zp, prisms, dens=None)[source]¶Calculates the gravitational potential.
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> DOWN.
Note
All input and output values in SI units(!)!
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
If not None, will use this value instead of the 'density'
property
of the prisms. Use this, e.g., for sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp
fatiando.gravmag.prism.
tf
(xp, yp, zp, prisms, inc, dec, pmag=None)[source]¶Calculate the total-field magnetic anomaly of prisms.
Note
Input units are SI. Output is in nT
Note
The coordinate system of the input parameters is to be x -> North, y -> East and z -> Down.
Parameters:
Arrays with the x, y, and z coordinates of the computation points.
The inclination of the regional field (in degrees)
The declination of the regional field (in degrees)
A magnetization vector. If not None, will use this value instead of the
'magnetization'
property of the prisms. Use this, e.g., for
sensitivity matrix building.
Returns:
The field calculated on xp, yp, zp