Skip to main content

Kladama API for Python

Master Build

Python API for Kladama Services Integration

How to install it

You can install the API through PIP

pip install kladama-api

How to start using it. "List available Variables" example.

First, you must to authenticate through a API Token that must be provided to you. This authentication process returns a session object that must be used to create a Context object.

# retrieve all available variables

import kladama as kld

env = kld.Environments().prod
api_token = '<your provided token>'
session = kld.authenticate(env, api_token)

query = kld.Queries().var

response = kld.Context(session).get(query)

if isinstance(response, kld.Success):

    for var in response.result:
        print(var.name, '-', var.description, 'in', var.link)

How to check if a GeoJson data can be used as a valid AoI in Kladama

import kladama as kld

env = kld.Environments().prod
api_token = '<your provided token>'
session = kld.authenticate(env, api_token)

query = kld.Services().validate_aoi({
            "type": "FeatureCollection",
            "features": [
                {
                    "type": "Feature",
                    "properties": {
                        "id": "897d8348a539983c4f435b45",
                        "name": "field-1"
                    },
                    "geometry": {
                        "type": "Polygon",
                        "coordinates": [
                            [
                                [-50.675417,-22.000000],
                                [-10.675394,-21.000000],
                                [-30.669532,-21.000000],
                                [-50.656133,-21.000000],
                                [-60.656118,-21.000000],
                                [-50.675417,-22.000000]
                            ]
                        ]
                    }
                }
            ]
        })

response = kld.Context(session).get(query)
if isinstance(response, kld.Error):
    print(response.__str__())
else:
    print('Valid: ', response.result['valid'])
    for message in response.result['messages']:
        print(message)

How to add an area of interest (AoI)

import kladama as kld

env = kld.Environments().prod
api_token = '<your provided token>'
session = kld.authenticate(env, api_token)

transaction = kld.Transactions()\
    .add_aoi\
    .for_user('<your user>')\
    .with_name('<aoi name>')\
    .with_description("Test AOI")\
    .with_category("Test")\
    .with_features({
        "type": "FeatureCollection",
        "name": "Test AoI",
        "features": [
            {
                "type": "Feature",
                "properties": {
                    "id": "897d8348a539983c4f435b45",
                    "name": "field-1"
                },
                "geometry": {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [-50.675417,-22.000000],
                            [-10.675394,-21.000000],
                            [-30.669532,-21.000000],
                            [-50.656133,-21.000000],
                            [-60.656118,-21.000000],
                            [-50.675417,-22.000000]
                        ]
                    ]
                }
            }
        ]
    })

response = kld.Context(session).execute(transaction)
if not isinstance(response, kld.Success):
    print(response.__str__())

# Also, you can add an AoI from a JSON file
transaction = kld.Transactions()\
    .add_aoi\
    .for_user('<your user>')\
    .with_name('<aoi name>')\
    .with_description("Test AOI")\
    .with_category("Test")\
    .from_file('<JSON filename>')

How to create a Periodic Subscription to a variable

# create periodic subscription

import kladama as kld

env = kld.Environments().prod
api_token = '<your provided token>'
session = kld.authenticate(env, api_token)

# could be any other Spatial Operation (MIN, MAX, STD, etc)
transaction = kld.Transactions()\
    .periodic_subsc\
    .for_user('<your user>')\
    .with_variable('<var name>')\
    .with_operation('MEAN')\
    .with_aoi('<aoi name>')

response = kld.Context(session).execute(transaction)

if isinstance(response, kld.Success):
    if response.type == kld.ResultType.OK:
        code = response.result['code'] # property 'code' contains ID of new created subscription
        print("New subscription code: ", code)
    else:
        print("Redirect to: ", response.result['href']) # property 'href' contains URI of identical subscription resource
else:
    print('Error code: ', response.code, 'Message: ', response.message)

How to get last data from a periodic subscription

import kladama as kld

env = kld.Environments().prod
api_token = '<your provided token>'
session = kld.authenticate(env, api_token)

query = kld.Queries()\
    .subsc\
    .by_user('<your user>')\
    .by_key('<subscription code>')\
    .results\
    .last

response = kld.Context(session).get(query)
if isinstance(response, kld.Error):
    print(response.__str__())
elif response.result is None:
    print('response is successful but empty')
else:
    assert isinstance(response.result, kld.BinaryResult)
    print('Saving to file: ', response.result.name)
    with open(response.result.name, 'wb') as fh:
        fh.write(response.result.content)

Release files for kladama-api 1.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for kladama-api 1.0.8
File Interpreter ABI Platform
kladama_api-1.0.8-py3-none-any.whl Python 3 none any Details

Release files / kladama_api-1.0.8-py3-none-any.whl

Download URL kladama_api-1.0.8-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
12ee3da4f917f15e91a9f59908ab4bdc19273a234a54ba34a35797c03d6985ef
BLAKE2b-256 checksum
How to use checksums
258a924db2be890cdf939af2442a66935f26262c94c0b1be85c5a392676797b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.5

Release history Release notifications | RSS feed

1.1.0

1 release file

1.0.10

1 release file

1.0.9

1 release file

This release

1.0.8 This release

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.0

1 release file

0.9.7

1 release file

0.9.6

1 release file

0.9.5

1 release file

0.9.3

1 release file

0.9.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page