Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stormgeo.advisor-core-0.1.1.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stormgeo.advisor_core-0.1.1-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

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

Hashes for stormgeo.advisor-core-0.1.1.tar.gz
Algorithm Hash digest
SHA256 013b761b9414cae5c2e7cf0ef78814acd08335831f0b1c0cb444d5bfd51fe709
MD5 65782e4b83415bca4eefba75390a091e
BLAKE2b-256 1b32378e4f2ce06bf2a2773355567f8e9d47fcf6d9f8dfcfc45eb56c120cd108

See more details on using hashes here.

File details

Details for the file stormgeo.advisor_core-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for stormgeo.advisor_core-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b1f8a5c68f561d4068ad4b0bc62ccb52b0b121dc8c62533089fb81fa7d52337a
MD5 83f382f07692e936fd5c464c58eff902
BLAKE2b-256 5585b059797ea6f13af2f8317bca870c57e6915b8ce6199c6f87d8d0684cd999

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page