Israel Meteorological Service Envista API wrapper package
Project description
IMS Envista
==========================
ims_envista is an unofficial IMS (Israel Meteorological Service) python API wrapper for Envista service.
Features supported
- Get latest meteorological readings from IMS Envista
- Get measurement data by region, station and date range.
- Get Daily and Monthly readings by measurement station.
Components and Frameworks used
Installing
pip3 install --upgrade ims-envista
Working with the API
Initialize the client with an IMS API token and use the async API methods to fetch station/region data.
Getting an IMS Token
You can read about the API and about how to get a token here - signing terms of use, etc.
import os
from ims_envista import IMSEnvista
# Create IMS client with token from environment
ims = IMSEnvista(os.environ["IMS_TOKEN"])
# Get JERUSALEM stations for getting an id
[station for station in await ims.get_all_stations_info() if station.name.startswith("JERUSALEM")]
> [JERUSALEM GIVAT RAM(22) - Location: [Lat - 31.771 / Long - 35.197], Active, Owner: ims, RegionId: 7, Monitors: [
Rain(mm), WSmax(m / sec), WDmax(deg), WS(m / sec), WD(deg), STDwd(deg), TD(degC), RH( %), TDmax(degC), TDmin(
degC), Grad(w / m2), DiffR(w / m2), WS1mm(m / sec), Ws10mm(m / sec), Time(hhmm), NIP(
w / m2)], StationTarget:, JERUSALEM
CENTRE(23) - Location: [Lat - 31.781 / Long - 35.222], Active, Owner: ims, RegionId: 7, Monitors: [Rain(mm),
WSmax(m / sec),
WDmax(deg),
WS(m / sec), WD(deg),
STDwd(deg), TD(degC),
TDmax(degC),
TDmin(degC),
WS1mm(m / sec),
Ws10mm(m / sec),
Time(hhmm), BP(mb),
RH( %)], StationTarget:, JERUSALEM
CENTRE_1m(248) - Location: [Lat - 31.7806 / Long - 35.2217], Active, Owner: ims, RegionId: 7, Monitors: [Rain_1_min(mm),
Rain_Corr(
mm)], StationTarget:, JERUSALEM
GIVAT
RAM_1m(249) - Location: [Lat - 31.7704 / Long - 35.1973], Active, Owner: ims, RegionId: 7, Monitors: [Rain_1_min(mm),
Rain_Corr(
mm)], StationTarget:]
# Get latest data by a station id
await ims.get_latest_station_data(23)
> Station(23), Data: [Station: 23, Date: 2023 - 02 - 21
12: 00:00 + 02: 00, Readings: [(TD: 17.6°C), (TDmax: 17.8°C), (TDmin: 17.5°C), (RH: 58.0 %), (Rain: 0.0mm),
(WS: 2.8m / s), (WSmax: 3.7m / s), (WD: 285.0deg), (WDmax: 289.0deg), (STDwd: 10.5deg),
(WS1mm: 3.4m / s), (WS10mm: 2.9m / s)]]
Methods
| Method | Description | Parameters | Returns |
|---|---|---|---|
| get_latest_station_data | Get Latest Station Readings | station_id: int, (optional) channel_id: int |
StationMeteorologicalReadings |
| get_earliest_station_data | Get Earliest Station Readings | station_id: int, (optional) channel_id: int |
StationMeteorologicalReadings |
| get_station_data_from_date | Get Station Reading from a specific date | station_id: int, date: datetime, (optional) channel_id: int |
StationMeteorologicalReadings |
| get_station_data_by_date_range | Get Station Readings from a date range | station_id: int, from_date: datetime, to_date: datetime, (optional) channel_id: int |
StationMeteorologicalReadings |
| get_daily_station_data | Get Daily Station Readings | station_id: int, (optional) channel_id: int |
StationMeteorologicalReadings |
| get_monthly_station_data | Get Monthly Station Readings | station_id: int, (optional) channel_id: int, (optional) month: str, [e.g. 03] (optional) year: str [e.g. 2020] |
StationMeteorologicalReadings |
| get_all_stations_info | Get station info for all stations | list[Station] | |
| get_station_info | Get station info by station_id | station_id: int | Station |
| get_all_regions_info | Get region info for all regions | list[Region] | |
| get_region_info | Get Region Info by region_id | station_id: int | Region |
| get_metrics_descriptions | Get station measurements description | listIMSVariable |
Local Development
Clone from Github
Clone the repo from GitHub
git clone git@github.com:GuyKh/ims-envista.git
Requirements
Package requirements are handled using pip. To install them do
pip install -r requirements.txt
Local Installation
To install locally:
python setup.py install
Tests
Testing is set up using pytest and coverage is handled with the pytest-cov plugin.
Run your tests with py.test in the root directory.
Coverage is ran by default and is set in the pytest.ini file.
To see an html output of coverage open htmlcov/index.html after running the tests.
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 ims_envista-0.1.14.tar.gz.
File metadata
- Download URL: ims_envista-0.1.14.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1102f11974d3d28b3bd1c716adf898bf607eb28d4fb517dd522bf52b148f941
|
|
| MD5 |
7bc0dbcb36b0f1e3468edb06c6355282
|
|
| BLAKE2b-256 |
9794e80b689fdb003845b7459d614e674c160d2d718d33476ab02c56059ad1fe
|
File details
Details for the file ims_envista-0.1.14-py3-none-any.whl.
File metadata
- Download URL: ims_envista-0.1.14-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
200dd52baa07de6acdca383bd6f8d34bf14df66f4fc3b8ac27f5b33b2b9bd82a
|
|
| MD5 |
cf16956a6f2d2bebb7e8a20eeebf9764
|
|
| BLAKE2b-256 |
523b9b6574f138562be2c690990ef35d1d5d593c7aafccfeebefb14fdc33a55b
|