No project description provided
Project description
NGILIVE SDK
Usage
Useful library to develop against the NGI Live API.
It helps you get access to the API by doing all the difficult auth things.
Additionally it provides nice type hinted bindings for the API endpoints, so you can follow code completion instead of reading documentation!
from ngilive import API
api = API()
sensor_response = api.query_sensors(
20190539,
logger="IK50",
unit="V",
)
The first time you run it, you will see an output like this in your terminal. Perform the log in as prompted, and you will not see it again until your access has expired.
[18:41:13] ngilive.auth INFO: Please complete the authentication in your browser: https://keycloak.ngiapi.no/auth/...
Example Queries
Query Sensor Metadata
from ngilive import API
api = API()
sensor_response = api.query_sensors(
20190539,
logger="IK50",
unit="V",
)
Example response:
{
"sensors": [
{
"name": "18V_IK50",
"unit": "V",
"logger": "IK50",
"type": "zBat18V",
"pos": {
"north": null,
"east": null,
"mash": null,
"coordinateSystem": {
"authority": "EPSG",
"srid": null
}
}
},
{
"name": "3V_IK50",
"unit": "V",
"logger": "IK50",
"type": "zBat3V",
"pos": {
"north": null,
"east": null,
"mash": null,
"coordinateSystem": {
"authority": "EPSG",
"srid": null
}
}
}
]
}
Query datapoints
datapoints = api.query_datapoints(
project_number=20190539,
start=datetime.now(tz=UTC) - timedelta(days=1),
end=datetime.now(tz=UTC),
logger="IK50",
unit="V",
)
Authentication
Authorization Code
You can use this library to obtain an access token and call the API. It will open the browser for you, and ask you to log in to geohub.
The below example is useful if you want to control the HTTP client yourself, for
example using requests or httpx libraries.
import httpx
from ngilive.auth import AuthorizationCode
auth = AuthorizationCode()
access_token = auth.get_token()
response = httpx.get(
"http://api.test.ngilive.no/projects/20190539/sensors",
headers={"Authorization": f"Bearer {access_token}"},
)
Client Credentials
This example uses client_id and client secret instead of signing in in the browser. It is useful in cases where an automatic job should call the API, which cannot log in via the browser. For other usecases, use AuthorizationCode instead.
You can also use the ClientCredentials helper to get an access token like in the above Authorization code example.
from ngilive import API
from ngilive.auth import ClientCredentials
auth = ClientCredentials(
client_id="data-api-test-client",
client_secret="<client secret>",
)
api = API(auth=auth)
# Now you can query the API without logging in
# sensor_response = api.query_sensors(20190539)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ngilive-0.2.4.tar.gz.
File metadata
- Download URL: ngilive-0.2.4.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.12.11 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1bb889a26b3c013ede3907b570312b098384501f5a477a11a428f2a04c39224
|
|
| MD5 |
23aac9a3ac45fb9a1a568139c7896981
|
|
| BLAKE2b-256 |
9a90c3d440ed149cef610982bd2bfba7bb1410560cb8fa65a44087fa3b54f4d3
|
File details
Details for the file ngilive-0.2.4-py3-none-any.whl.
File metadata
- Download URL: ngilive-0.2.4-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.12.11 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e26865a6916bfd303dbcecfaff212691145695c31b4800e40c28eebdc7f5e038
|
|
| MD5 |
042e5022004b937d7ad6f63b6ef61c74
|
|
| BLAKE2b-256 |
cfaadafab9773eeec371c2adf20a18a01d6272b1644a530e4da594876b541d53
|