harmonica.DatasetAccessorPrismLayer

class harmonica.DatasetAccessorPrismLayer(xarray_obj)[source]

Defines dataset accessor for layer of prisms

Warning

This class is not intended to be initialized. Use the prism_layer accessor for accessing the methods and attributes of this class.

Methods Summary

DatasetAccessorPrismLayer.get_prism(indices)

Return the boundaries of the chosen prism

DatasetAccessorPrismLayer.gravity(…[, …])

Computes the gravity generated by the layer of prisms

DatasetAccessorPrismLayer.update_top_bottom(…)

Update top and bottom boundaries of the layer


DatasetAccessorPrismLayer.get_prism(indices)[source]

Return the boundaries of the chosen prism

Parameters

indices (tuple) – Indices of the desired prism of the layer in the following order: (index_northing, index_easting).

Returns

prism (tuple) – Boundaries of the prisms in the following order: west, east, south, north, bottom, top.

DatasetAccessorPrismLayer.gravity(coordinates, field, density_name='density', **kwargs)[source]

Computes the gravity generated by the layer of prisms

Uses harmonica.prism_gravity for computing the gravity field generated by the prisms of the layer. The density of the prisms will be assigned from the data_var chosen through the density_name argument. Ignores the prisms which top or bottom boundaries are np.nan``s. All ``kwargs will be passed to harmonica.prism_gravity.

Parameters
  • coordinates (list or 1d-array) – List or array containing easting, northing and upward of the computation points defined on a Cartesian coordinate system. All coordinates should be in meters.

  • field (str) – Gravitational field that wants to be computed. The available fields are: - Gravitational potential: potential - Downward acceleration: g_z

  • density_name (str (optional)) – Name of the property layer (or data_var of the xarray.Dataset) that will be used for the density of each prism in the layer. Default to "density"

Returns

result (array) – Gravitational field generated by the prisms on the computation points in mGal.

DatasetAccessorPrismLayer.update_top_bottom(surface, reference)[source]

Update top and bottom boundaries of the layer

Change the values of the top and bottom coordiantes based on the passed surface and reference. The top and bottom boundaries of every prism will be equal to the corresponding surface and reference values, respectively, if surface is above the reference on that point. Otherwise the top and bottom boundaries of the prism will be equal to its corresponding reference and surface, respectively.

Parameters
  • surface (2d-array) – Array used to create the uppermost boundary of the prisms layer. All heights should be in meters. On every point where surface is below reference, the surface value will be used to set the bottom boundary of that prism, while the reference value will be used to set the top boundary of the prism.

  • reference (float or 2d-array) – Reference surface used to create the lowermost boundary of the prisms layer. It can be either a plane or an irregular surface passed as 2d array. Height(s) must be in meters.