Declustering
The declustering task uses cell declustering to compute declustering weights, and then saves the weights as an attribute inside a geoscience object.
First, it overlays your points with a grid. Then, it counts how many points are in each grid cell. The points in each cell get a weight equal to , where is the number of points in that cell. Then, the weights are normalized so that they sum to one.
It will do that multiple times with slightly different grid origins, offset by a random vector between 0 and the cell size, to get multiple sets of weights. Then, it takes the location-wise mean of those weights and uses it to compute a weighted mean of your data.
The task does all that with multiple grids with bigger and bigger cells. You control how many cell sizes it uses, and how much they grow every time.
Finally, it selects the weights corresponding to whatever grid minimized the weighted sum. Those weights will be saved as the result.
Parameters
composites
(geoscience object reference)- A geoscience object reference that points to a one-dimensional continuous attribute inside a pointset or downhole-intervals object. This is your input data.
target
(geoscience object reference)- A geoscience object reference that tells the task where to save the result. It must point to an attribute inside a pointset or downhole-intervals object.
cell_sizes
(object)- A description of what cell sizes you want the algorithm to use.
-
{
"min_size": 1, // The smallest cell size. A value of 1 means 1x1x1 cells.
"max_size": 10, // The biggest cell size.
"n_sizes": 3, // How many sizes to use, including the min and max. They'll be evenly spaced between the min and max.
"y_anisotropy": 1.0, // A scale factor, used to shrink or stretch cells in the y direction. A value of 1.0 means no stretching or shrinking.
"z_anisotropy": 1.0, // A scale factor used to shrink or stretch cells in the z direction.
"n_offsets": 3, // How many offset origins to try for each cell size.
}
Example
Request
requests.post(
"https://{hub}.api.seequent.com/compute/orgs/{org_id}/geostat/declustering",
headers={"Authorization": "Bearer {token}"},
json={
"parameters": {
"composites": {
"type": "geoscience-object-reference",
"object_reference": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"object_element": [
{
"type": "element",
"path": "/locations/attributes/@name=my-data",
},
],
},
"target": {
"type": "geoscience-object-reference",
"object_reference": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"object_element": [
{
"type": "element",
"path": "/locations/attributes/@name=my-declustering-weights",
},
],
},
"cell_sizes": {
"min_size": 1,
"max_size": 10,
"n_sizes": 3,
"y_anisotropy": 1.0,
"z_anisotropy": 1.0,
"n_offsets": 3,
},
},
},
)
Result
{
"message": "Declustering completed",
"object_modified": {
"type": "geoscience-object-reference",
"object_reference": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"object_element": [
{
"type": "element",
"path": "/locations/attributes/@name=my-declustering-weights",
},
],
},
}
Tips
- The composites and target can use the same object, but they don't have to.