Skip to main content

Conditional turning bands

The conditional turning bands task runs a conditional block turning-bands simulation using an existing continuous distribution. Unlike the full conditional simulation workflow task, this task takes a pre-computed distribution object (created by the continuous-distribution task) instead of computing one internally. The task creates a continuous ensemble attribute with the backtransformed simulation results. The ensemble has one column for each realization. You get to pick how many realizations the task does.

Parameters

  • source (geoscience object reference)
    • A geoscience object reference that points to a pointset object containing the source points used for conditioning the simulation.
  • source_attribute (geoscience object attribute reference)
    • Reference to the numeric attribute on the source object containing the conditioning values.
  • target (geoscience object reference)
  • filter (object, optional)
    • An optional filter to apply to the target grid. When provided, the simulation is only evaluated at grid locations that pass the filter.
  • source_filter (object, optional)
    • An optional filter to apply to the source object. When provided, only source points that pass the filter are used for conditioning.
  • distribution (geoscience object reference)
  • variogram_model (geoscience object reference)
    • A geoscience object reference that points to a variogram object. This should be fitted to an experimental variogram of your composites.
  • neighborhood (object)
    • A search ellipse that the task will use for simulating and for kriging during the conditioning step.
    • {
      "ellipsoid": {
      "ellipsoid_ranges": {
      "major": 70, // Major axis length of the search ellipsoid
      "semi_major": 70, // Semi-major axis length
      "minor": 5 // Minor axis length
      },
      "rotation": {
      "dip_azimuth": 0, // First rotation about z-axis (0-360 degrees)
      "dip": 0, // Second rotation about x-axis (0-180 degrees)
      "pitch": 0 // Third rotation about z-axis (0-360 degrees)
      }
      },
      "max_samples": 40, // Maximum number of nearby samples to use
      "min_samples": 1 // Minimum number of nearby samples to use
      }
  • block_discretization (object)
    • How many pieces you want to chop each grid cell into, in the x, y, and z directions. The task will simulate a value for each piece, then take their mean and assign that number to the cell.
    • {
      "nx": 5, // Number of subdivisions in x direction (1-9)
      "ny": 5, // Number of subdivisions in y direction (1-9)
      "nz": 5 // Number of subdivisions in z direction (1-9)
      }
  • number_of_lines (integer, optional)
    • How many lines to use for the turning-band simulation. Defaults to 500. Must be between 1 and 1000.
  • random_seed (integer, optional)
    • Seeds random number generation in the task. Defaults to 38239342.
  • realizations (integer, optional)
    • How many realizations you want to simulate. All realizations will be saved. Defaults to 1. Must be between 1 and 100.
  • kriging_method (string, optional)
    • The kriging method to use for the conditioning step. Can be either "simple" or "ordinary". Defaults to "simple".

Example

For more information, see the conditional turning bands API reference.

Request

requests.post(
"https://{hub}.api.seequent.com/compute/orgs/{org_id}/geostatistics/conditional-turning-bands",
headers={"Authorization": "Bearer {token}"},
json={
"parameters": {
"source": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"source_attribute": "locations.attributes[?name=='my-attribute']",
"target": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-grid.json",
"distribution": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-distribution.json",
"variogram_model": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-variogram.json",
"neighborhood": {
"ellipsoid": {
"ellipsoid_ranges": {
"major": 70,
"semi_major": 70,
"minor": 5
},
"rotation": {
"dip_azimuth": 0,
"dip": 0,
"pitch": 0
}
},
"max_samples": 40,
"min_samples": 1
},
"block_discretization": {
"nx": 5,
"ny": 5,
"nz": 5
},
"number_of_lines": 500,
"random_seed": 123,
"realizations": 10,
"kriging_method": "simple"
},
},
)

Result

{
"target": {
"name": "my-grid",
"reference": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-grid.json",
"simulations": {
"name": "simulation-results",
"reference": "cell_attributes[?key=='5f4e2c3e-3d3b-4f4a-8e2a-1c2b3d4e5f6a']"
}
}
}

Tips

  • This task requires a pre-computed distribution. Use the continuous-distribution task to create one first.
  • Using a block discretization of {nx: 1, ny: 1, nz: 1} is like doing a point simulation on the midpoint of each cell.
  • Higher values of number_of_lines produce more accurate results but take longer.

Was this page helpful?