Kriging
Kriging is a geostatistical interpolation method that estimates values at unknown locations on a variogram weighted average of the nearby data values. This compute task can be parameterized to perform simple or ordinary kriging.
Parameters
source(object)object(geoscience object reference)- Reference to a geoscience object containing the spatial locations of known values. Must be a pointset, downhole-intervals, regular-3d-grid, regular-masked-3d-grid, or tensor-3d-grid with schema version 1.2.0 or 1.3.0; or a block-model with schema version 1.0.0.
attribute(geoscience object attribute reference)- Reference to a one-dimensional continuous attribute inside
source_objectthat contains the known values to be interpolated.
- Reference to a one-dimensional continuous attribute inside
-
{
"object": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"attribute": "locations.attributes[?name=='my-attribute']",
}
target(object)object(geoscience object reference)- Reference to the geoscience object where kriging results will be stored. A new attribute containing the interpolated values will be created on this object. Must be a pointset, downhole-intervals, regular-3d-grid, regular-masked-3d-grid, tensor-3d-grid with schema version 1.2.0 or 1.3.0; or a block-model with schema version 1.0.0.
attribute(geoscience object attribute target)- Reference that points to an attribute inside
target_objectwhere the kriging results will be saved.
- Reference that points to an attribute inside
-
{
"object": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"attribute": {
"operation": "create",
"name": "my-kriging-result"
},
}
kriging_method(object)- The kriging method to use for interpolation. There are two supported methods.
- Simple kriging:
-
{
"type": "simple",
"mean": 5.2 // The constant mean value assumed across the domain
} - Ordinary kriging:
-
{
"type": "ordinary" // Variable mean value estimated from the data
}
- The kriging method to use for interpolation. There are two supported methods.
variogram(geoscience object reference)- Reference to a variogram geoscience object that describes the spatial covariance structure within the domain. Must use schema version 1.1.0.
neighborhood(object)- Search parameters that determine which nearby points to use for each evaluation point during kriging interpolation.
-
{
"ellipsoid": {
"ellipsoid_ranges": {
"major": 100.0, // Major axis length of the search ellipsoid
"semi_major": 75.0, // Semi-major axis length
"minor": 50.0 // Minor axis length
},
"rotation": {
"dip_azimuth": 45.0, // First rotation about z-axis (0-360 degrees)
"dip": 30.0, // Second rotation about x-axis (0-180 degrees)
"pitch": 0.0 // Third rotation about z-axis (0-360 degrees)
}
},
"max_samples": 15 // Maximum number of nearby samples to use
}
block_discretization(object, optional)- Sub-block discretization for block kriging. When provided, each target block is subdivided into x × y × z sub-cells and the kriged value is averaged across these sub-cells. When omitted, point kriging is performed at the block centroids.
- Note: This parameter is only applicable when the target is a 3D grid (regular-3d-grid, regular-masked-3d-grid, tensor-3d-grid) or block-model. An error will be raised if used with pointset or downhole-intervals targets.
-
{
"nx": 2, // Number of sub-cells in the x-direction (1-9)
"ny": 2, // Number of sub-cells in the y-direction (1-9)
"nz": 2 // Number of sub-cells in the z-direction (1-9)
}
Example
For more information, see the kriging API reference.
Request
requests.post(
"https://{hub}.api.seequent.com/compute/orgs/{org_id}/geostatistics/kriging",
headers={"Authorization": "Bearer {token}"},
json={
"source": {
"object": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"attribute": "locations.attributes[?name=='my-attribute']",
},
"target": {
"object": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"attribute": {
"operation": "create",
"name": "my-kriging-result"
},
},
"kriging_method": {
"type": "simple",
"mean": 10.5
},
"variogram": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-variogram.json",
"neighborhood": {
"ellipsoid": {
"ellipsoid_ranges": {
"major": 100.0,
"semi_major": 50.0,
"minor": 20.0
},
"rotation": {
"dip_azimuth": 45.0,
"dip": 30.0,
"pitch": 10.0
}
},
"max_samples": 50,
"min_samples": 10,
"max_empty_octants": 0,
},
},
)
Result
{
"message": "Kriging completed.",
"target": {
"reference": "https://{hub}.api.integration.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json"
"name": "My Pointset",
"description": "A new description for my pointset.",
"schema_id": "/objects/pointset/1.3.0",
"attribute": {
"reference": "locations.attributes[?key=='3cc3aa58-c928-4e79-b8ca-550174bff59e']",
"name": "my-kriging-result"
}
}
}
Block Kriging Example
When the target is a 3D grid or block model, you can use block_discretization to perform block kriging instead of point kriging:
requests.post(
"https://{hub}.api.seequent.com/compute/orgs/{org_id}/geostatistics/kriging",
headers={"Authorization": "Bearer {token}"},
json={
"source": {
"object": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"attribute": "locations.attributes[?name=='my-attribute']",
},
"target": {
"object": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-grid.json",
"attribute": {
"operation": "create",
"name": "my-block-kriging-result"
},
},
"kriging_method": {
"type": "ordinary"
},
"variogram": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-variogram.json",
"neighborhood": {
"ellipsoid": {
"ellipsoid_ranges": {
"major": 100.0,
"semi_major": 50.0,
"minor": 20.0
},
"rotation": {
"dip_azimuth": 45.0,
"dip": 30.0,
"pitch": 10.0
}
},
"max_samples": 50,
"min_samples": 10,
},
"block_discretization": {
"nx": 3,
"ny": 3,
"nz": 2
},
},
)