Skip to content

soil_classification.py

Code

soil_classification.py
"""Classify a soil from index properties."""

import httpx2

base_url = 'https://www.subsurfaceio.app'

# Inputs shared by both call styles.
data = dict(
    language='en',
    fines_content=34.0,
    percent_sand=64.0,
    percent_gravel=2.0,
    liquid_limit=38.0,
    plasticity_index=12.0,
)

with httpx2.Client(base_url=base_url) as client:
    # Dedicated model endpoint: wrap inputs in `model`.
    model_response = client.post(
        '/soil-classification/calculate',
        json=dict(model=dict(system='USCS') | data),
    )
    model_response.raise_for_status()

    # Generic pipeline endpoint: send the same inputs flat.
    function_sequence_response = client.post(
        '/function-sequence',
        params=dict(function_sequence='SoilClassificationUSCS'),
        json=data,
    )
    function_sequence_response.raise_for_status()

print(model_response.json()['results'])
print(function_sequence_response.json())