SDK to access the advisor core API.
Project description
Python SDK
Advisor Software Development Kit for python.
Contents
Importing
To install this package, use the following command:`
pip install python-advisor-core
Make sure you're using python 3.8 or higher.
Routes
First you need to import the SDK on your application and instancy the AdvisorCore class setting up your access token and needed configurations:
from advisor_core_sdk import AdvisorCore
advisor = AdvisorCore("<your_token>", retries=5, delay=5)
Examples
Get data from different routes with theses examples
Chart
from payloads import WeatherPayload
payload = WeatherPayload(
locale_id=1234,
variables=["temperature", "precipitation"]
)
# requesting daily forecast chart image
response = advisor.chart.get_forecast_daily(payload)
# requesting hourly forecast chart image
response = advisor.chart.get_forecast_hourly(payload)
# requesting daily observed chart image
response = advisor.chart.get_observed_daily(payload)
# requesting hourly observed chart image
response = advisor.chart.get_observed_hourly(payload)
if response['error']:
print('Error trying to get data!')
print(response['error'])
else:
with open("response.png", "wb") as f:
f.write(response["data"])
Climatology
from payloads import ClimatologyPayload
payload = ClimatologyPayload(
locale_id=1234,
variables=["temperature", "precipitation"]
)
# requesting daily climatology data
response = advisor.climatology.get_daily(payload)
# requesting monthly climatology data
response = advisor.climatology.get_monthly(payload)
if response['error']:
print('Error trying to get data!')
print(response['error'])
else:
print(response['data'])
Current Weather
from payloads import CurrentWeatherPayload
payload = CurrentWeatherPayload(
locale_id=1234
)
response = advisor.current_weather.get(payload)
if response['error']:
print('Error trying to get data!')
print(response['error'])
else:
print(response['data'])
Forecast
from payloads import WeatherPayload
payload = WeatherPayload(
locale_id=1234,
variables=["temperature", "precipitation"]
)
# requesting daily forecast data
response = advisor.forecast.get_daily(payload)
# requesting hourly forecast data
response = advisor.forecast.get_hourly(payload)
# requesting period forecast data
response = advisor.forecast.get_period(payload)
if response['error']:
print('Error trying to get data!')
print(response['error'])
else:
print(response['data'])
Monitoring
response = advisor.monitoring.get_alerts()
if response['error']:
print('Error trying to get data!')
print(response['error'])
else:
print(response['data'])
Observed
from payloads import (WeatherPayload, StationPayload, RadiusPayload, GeometryPayload)
payload = WeatherPayload(
locale_id=1234,
)
payload_for_station = StationPayload(
station_id="ABC123abc321CBA"
)
payload_for_radius = RadiusPayload(
locale_id=1234,
radius=1000
)
payload_for_geometry = GeometryPayload(
geometry="{\"type\": \"MultiPoint\", \"coordinates\": [[-41.88, -22.74]]}",
radius=10000
)
# requesting daily observed data
response = advisor.observed.get_daily(payload)
# requesting hourly observed data
response = advisor.observed.get_hourly(payload)
# requesting period observed data
response = advisor.observed.get_period(payload)
# requesting station observed data
response = advisor.observed.get_station_data(payload_for_station)
# requesting fire-focus observed data
response = advisor.observed.get_fire_focus(payload_for_radius)
# requesting lightning observed data
response = advisor.observed.get_lightning(payload_for_radius)
# requesting fire-focus observed data by geometry
response = advisor.observed.get_fire_focus_by_geometry(payload_for_geometry)
# requesting lightning observed data by geometry
response = advisor.observed.get_lightning_by_geometry(payload_for_geometry)
if response['error']:
print('Error trying to get data!')
print(response['error'])
else:
print(response['data'])
Plan Information
response = advisor.plan.get_info()
if response['error']:
print('Error trying to get data!')
print(response['error'])
else:
print(response['data'])
Schema/Parameter
# Arbitrary example on how to define a schema
payload_schema_definition = {
"identifier": "arbitraryIdentifier",
"arbitraryField1": {
"type": "boolean",
"required": True,
"length": 125,
},
"arbitraryField2": {
"type": "number",
"required": True,
},
"arbitraryField3": {
"type": "string",
"required": False,
}
}
# Arbitrary example on how to upload data to parameters from schema
payload_schema_parameters = {
"identifier": "arbitraryIdentifier",
"arbitraryField1": True,
"arbitraryField2": 15
}
# requesting all schemas from token
response = advisor.schema.get_definition()
# requesting to upload a new schema
response = advisor.schema.post_definition(payload_schema_definition)
# requesting to upload data to parameters from schema
response = advisor.schema.post_parameters(payload_schema_parameters)
if response['error']:
print('Error trying to get data!')
print(response['error'])
else:
print(response['data'])
Tms (Tiles Map Server)
from payloads import TmsPayload
payload = TmsPayload(
istep="2024-12-25 10:00:00",
fstep="2024-12-25 12:00:00",
server="a",
mode="forecast",
variable="precipitation",
aggregation="sum",
x=2,
y=3,
z=4
)
response = advisor.tms.get(payload)
if response['error']:
print('Error trying to get data!')
print(response['error'])
else:
with open("response.png", "wb") as f:
f.write(response["data"])
Response Format
All the methods will return the same pattern:
{
"data": Any | None,
"error": Any | None,
}
Payload Types
WeatherPayload
- locale_id: int
- station_id: str
- latitude: float
- longitude: float
- timezone: int
- variables: List[str]
- start_date: str
- end_date: str
StationPayload
- station_id: str
- layer: str
- variables: List[str]
- start_date: str
- end_date: str
ClimatologyPayload
- locale_id: int
- station_id: str
- latitude: float
- longitude: float
- variables: List[str]
CurrentWeatherPayload
- locale_id: int
- station_id: str
- latitude: float
- longitude: float
- timezone: int
- variables: List[str]
RadiusPayload
- locale_id: int
- station_id: str
- latitude: float
- longitude: float
- start_date: str
- end_date: str
- radius: int
GeometryPayload
- start_date: str
- end_date: str
- radius: int
- geometry: str
TmsPayload
- server: str
- mode: str
- variable: str
- aggregation: str
- x: int
- y: int
- z: int
- istep: str
- fstep: str
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 stormgeo.advisor-core-0.1.1.tar.gz.
File metadata
- Download URL: stormgeo.advisor-core-0.1.1.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
013b761b9414cae5c2e7cf0ef78814acd08335831f0b1c0cb444d5bfd51fe709
|
|
| MD5 |
65782e4b83415bca4eefba75390a091e
|
|
| BLAKE2b-256 |
1b32378e4f2ce06bf2a2773355567f8e9d47fcf6d9f8dfcfc45eb56c120cd108
|
File details
Details for the file stormgeo.advisor_core-0.1.1-py3-none-any.whl.
File metadata
- Download URL: stormgeo.advisor_core-0.1.1-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1f8a5c68f561d4068ad4b0bc62ccb52b0b121dc8c62533089fb81fa7d52337a
|
|
| MD5 |
83f382f07692e936fd5c464c58eff902
|
|
| BLAKE2b-256 |
5585b059797ea6f13af2f8317bca870c57e6915b8ce6199c6f87d8d0684cd999
|