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.

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.2.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ambient_wx-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 f174640972eb50e7d4304cb5755e68ecdf7fc01329b0193adc5096e60775425e
MD5 5606b41212a9601acf25b104e4c8cb1f
BLAKE2b-256 49b73a520a26a682f2352b667e41f3275a933d0b990e4b8bedbc36498a3199b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ambient_wx-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 67453f5e6cf39bcb361f91747c7c1f27d4a1ab79338283408a9f441cf960b868
MD5 bfeeb52850720c81ea42169a9df91f3a
BLAKE2b-256 4777f20ebd18722794f381dcf0fccd2512f0eb1b86348a42340047f00c33cd78

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