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?