Continuous distribution
Modeling a continuous distribution is essential for many geostatistical methods, including conditional simulations and change of support analysis. A key step in this process is generating a cumulative distribution function (CDF) from the data. This task makes a non-parametric-continuous-cumulative-distribution object from your dataset. It represents the empirical distribution of a dataset without assuming a predefined shape (e.g., normal or lognormal). Instead, it calculates cumulative probabilities directly from the data, using extrapolation when necessary to cover unseen value ranges.
Parameters
source(object)object(geoscience object reference) - A geoscience object reference that points to a pointset or downhole-intervals object. This is your input data.attribute(string) - Path to the one-dimensional continuous attribute to use.
weights(object, optional)object(geoscience object reference) - A geoscience object reference that points to a pointset or downhole-intervals object containing weights.attribute(string) - Path to the weights attribute.- These are optional weights you can use to make a weighted (declustered) distribution. If you don't want to use them, just omit the parameter.
tail_extrapolation(object, optional)- Optional tail extrapolations to extend the distribution beyond the data range. If you don't want to use tail extrapolations, just omit the parameter.
upper(object, required if tail_extrapolation is provided)power(number) - A number between 0 and 1 (exclusive of 0).max(number) - Maximum extent of the upper tail. It must be greater than the biggest value in your data.
lower(object, optional)power(number) - A number between 0 and 1 (exclusive of 0).min(number) - Minimum extent of the lower tail. It must be less than the smallest value in your data.
target(object)reference(string) - A geoscience object path where the non-parametric-continuous-cumulative-distribution object will be created.overwrite(boolean, optional) - If true, the task will overwrite the target if it already exists. If false (default), the task will fail if the target already exists.
Example
For more information, see the continuous distribution API reference.
Request
requests.post(
"https://{hub}.api.seequent.com/compute/orgs/{org_id}/workspaces/{workspace_id}/geostatistics/continuous-distribution",
headers={"Authorization": "Bearer {token}"},
json={
"parameters": {
"source": {
"object": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"attribute": "locations.attributes[?key=='my-data']",
},
"weights": {
"object": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-pointset.json",
"attribute": "locations.attributes[?key=='my-weights']",
},
"tail_extrapolation": {
"upper": {
"power": 0.5,
"max": 99.0,
},
"lower": {
"power": 0.5,
"min": 0.0,
},
},
"target": {
"reference": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-distribution.json",
"overwrite": True,
},
},
},
)
Result
{
"message": "Continuous distribution calculated successfully.",
"distribution": {
"reference": "https://{hub}.api.seequent.com/geoscience-object/orgs/{org_id}/workspaces/{workspace_id}/objects/path/my-distribution.json"
}
}
Tips
- The source and weights can use the same object, but they don't have to.