Skip to main content

API Wrapper for the Ambient Weather Station API with meteorological units and pandas functionality as well

Project description

Ambient Weather Station API Wrapper

There are a couple of great packages that do a great job but this package introduces units. It also serves as a side-project for me. ☺️

This is currently a work in progress to get it in a package and with the proper tests and CI.

Install

python 3.8 or greater is required

pip install ambient_wx

Units

Units are set for these fields using the pint python library:

  • windspeedmph - mph
  • windgustmph - mph
  • maxdailygust - mph
  • tempf - degF
  • baromrelin - Hg
  • baromabsin - Hg
  • tempinf - degF
  • hourlyrainin - inches
  • dailyrainin - inches
  • monthlyrainin - inches
  • yearlyrainin - inches
  • feelsLike - degF
  • dewPoint - degF
  • winddir - degrees
  • winddir_avg10m - degrees
  • humidity - percent
  • humidityin - percent

Setup the API object

from ambient_wx import AmbientApi
api_key = "123"
app_key = "456"
api = AmbientApi(api_key, app_key)

Get Devices

from ambient_wx import WxDeviceCollection
devices = WxDeviceCollection(api)
devices.get_devices()
device = devices.devices[0] # first device
print(device.mac_addr)

Get Device Obervations

from ambient_wx import WxObservationCollection
# with a device object
obs = WxObservationCollection(api, device=device)

# or with a known device mac addr to skip an api call for a device
obs = WxObservationCollection(api, mac_addr="some_mac_addr")

# get the last 5 observations this populates obs.data as a 
# list of WxObservation objects
obs.get_observations(limit=5)

# iterate through observations
for o in obs.data:
    print(o.tempf, o.winddir, o.humidity)

Get data for an end date

obs = WxObservationCollection(api, device)
obs.get_observations(end_date=datetime(2024, 4, 25))

for o in obs.data:
    print(o.tempf, o.winddir, o.humidity)

Perform Unit Conversions

# convert deg F to deg C
degc = obs.data[0].tempf.to('degC') 
print(degc)

Create pandas Dataframe from Observations

df = obs.to_dataframe()
print(df)

Write csv from Observations

obs.write_csv("/some_path/my_observations.csv")

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

ambient_wx-0.1.3.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

ambient_wx-0.1.3-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file ambient_wx-0.1.3.tar.gz.

File metadata

  • Download URL: ambient_wx-0.1.3.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Darwin/23.4.0

File hashes

Hashes for ambient_wx-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ffb1e88b15d29bda45c264e2c55c02686a6dfcb907f44a350e71af50986f07e1
MD5 1ba84acf8c1958de089c932653b0723e
BLAKE2b-256 146944defbad8d3417d26e6f41e18211570a617add76aba9bbec6a98611018d3

See more details on using hashes here.

File details

Details for the file ambient_wx-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: ambient_wx-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Darwin/23.4.0

File hashes

Hashes for ambient_wx-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 69ad2ebae0b73e7072fd1be5fcce59ac684c6b633d7cdd4be55553ec7e9bfb72
MD5 239ec8a7f56845a81bba46a5265a315c
BLAKE2b-256 a9b9b245aacf1a93dfcfee677975e2ddf42001face0a8a4c4557b70c71ea79f8

See more details on using hashes here.

Supported by

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