Kladama API for Python
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)
Metadata
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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| kladama_api-1.0.8-py3-none-any.whl | Python 3 | none | any | Details for kladama_api-1.0.8-py3-none-any.whl |
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
|
Security for kladama-api 1.0.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.