<h1 align=center>
<img src="https://raw.githubusercontent.com/rahul4732saini/atmolib/main/assets/atmolib.png?raw=true" width=500>
</h1>
<a href="https://www.codefactor.io/repository/github/rahul4732saini/atmolib"><img src="https://www.codefactor.io/repository/github/rahul4732saini/atmolib/badge" alt="CodeFactor" /></a>
<a href="https://github.com/rahul4732saini/atmolib/actions/workflows/pytest.yml"><img src="https://github.com/rahul4732saini/atmolib/workflows/Pytest/badge.svg" alt="Pytest" /></a>
<a href="https://www.github.com/rahul4732saini/atmolib"><img src="https://img.shields.io/badge/status-beta-yellow?maxAge=60" alt="projectStatus"></a>
<a href="https://www.github.com/rahul4732saini/atmolib"><img src="https://img.shields.io/badge/python-3.10+-blue?label=Python&maxAge=60" alt="pythonVersion"></a>
<a href="https://github.com/rahul4732saini/atmolib/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-green?maxAge=60" alt="License"></a>
<a href="https://www.pypi.org/project/atmolib"><img src="https://img.shields.io/pypi/v/atmolib.svg?logo=pypi&logoColor=ffa07a&label=PyPI Version&maxAge=60" alt="PyPI-Version"></a>
<a href="https://www.pypi.org/project/atmolib"><img src="https://img.shields.io/pypi/dm/atmolib.svg?label=PyPI Downloads" alt="PyPI-Downloads"></a>
<a href="https://www.github.com/rahul4732saini/atmolib"><img src="https://img.shields.io/github/stars/rahul4732saini/atmolib.svg?style=social&label=Star&maxAge=60" alt="StarProject"></a>
<a href="https://www.twitter.com/rahulsaini4732"><img src="https://img.shields.io/twitter/follow/rahulsaini4732?style=social&label=Follow&maxAge=60" alt="Twitter"></a>
<a href="https://www.linkedin.com/in/rahul-saini-9191a5286/)"><img src="https://img.shields.io/badge/LinkedIn-Connect-blue?style=social&logo=linkedin&maxAge=60" alt="Linkedin"></a>
## Package Description
<b>atmolib</b> is a weather package that offers an easy and flexible way to its users to access and parse weather data in a pythonic way. The package uses the Open-Meteo Web APIs to fetch the weather data in its backend.
## Installation
Install `atmolib` using `pip`:
```bash
$ python -m pip install -U atmolib --no-cache-dir
```
[Required Dependencies](./requirements.txt)
## Quick Guide
<b>atmolib</b> offers a series of classes to its users which can be used for meteorology data extraction from Open-Meteo's Web APIs.
The classes along with their corresponding descriptions are mentioned as follows:
- `Weather`<br>
Provides extensive access to current, hourly, and daily forecast data, including temperature, dew point, weather conditions, soil temperature, visibility, and more.
- `WeatherArchive`<br>
Enables retrieval of historical weather data, spanning hourly and daily records from 1940 till the present day.
- `MarineWeather`<br>
Grants access to current, hourly, and daily marine weather forecast data, covering wave height, direction, and period, with a resolution of up to 5 kilometers.
- `AirQuality`<br>
Supplies current and hourly forecasts for air quality metrics, including AQI, atmospheric gas concentrations, and UV index.
The package also provides users with some useful functions as a part of the package as mentioned below:
- `get_elevation`<br>
Extracts the elevation in meters(m) at the specified coordinates.
- `get_city_details`<br>
Extracts the city details such as coordinates, country, timezone, etc. based on the specified city name.
## Basic Usage
This guide provides the basic usage of the atmolib package and highlights some of the generally used methods. All the methods in the package are designed to be used with minimal arguments with default
arguments primarily specified in all of them.
- `Weather` class usage:
```python
import atmolib as atmo
# 'forecast_days' is an optional argument and specifies the number
# of days for which forecast data is desired to be extracted.
weather = atmo.Weather(lat=26.91, long=75.54, forecast_days=10)
# Extracts a summary of weather forecast data.
weather.get_current_summary()
weather.get_hourly_summary()
weather.get_daily_summary()
# Extracts the current weather conditions.
weather.get_current_temperature()
weather.get_current_weather_code()
weather.get_current_cloud_cover()
weather.get_current_wind_speed()
weather.get_current_pressure()
weather.get_current_precipitation()
weather.get_current_relative_humidity()
# Extracts the hourly weather forecast data.
weather.get_hourly_temperature()
weather.get_hourly_visibility()
weather.get_hourly_wind_speed()
weather.get_hourly_precipitation_probability()
weather.get_hourly_soil_temperature()
# Extracts the daily weather forecast data.
weather.get_daily_temperature()
weather.get_daily_max_precipitation_probability()
weather.get_daily_max_uv_index()
weather.get_daily_max_wind_speed()
weather.get_daily_total_precipitation()
weather.get_daily_sunshine_duration()
```
- `WeatherArchive` provides the same methods as `Weather` class as a part of a data range with slight modifications in some methods.
- `MarineWeather` class usage:
```python
import atmolib as atmo
# 'forecast_days' is an optional argument and specifies the number
# of days for which forecast data is desired to be extracted.
# 'wave_type' refers to the type of waves for which marine
# weather data is desired to be extracted.
marine = atmo.MarineWeather(lat=0, long=0, wave_type='wind', forecast_days=7)
# Extracts a summary of marine weather forecast data.
marine.get_current_summary()
marine.get_hourly_summary()
marine.get_daily_summary()
# Extracts the current weather conditions.
marine.get_current_wave_height()
marine.get_current_wave_direction()
marine.get_current_wave_period()
# Extracts the hourly weather forecast data.
marine.get_hourly_wave_height()
marine.get_hourly_wave_direction()
marine.get_hourly_wave_period()
# Extracts the daily weather forecast data.
marine.get_daily_max_wave_height()
marine.get_daily_dominant_wave_direction()
marine.get_daily_max_wave_period()
```
- `AirQuality` class usage:
```python
import atmolib as atmo
air = atmo.AirQuality(lat=26.91, long=75.54, forecast_days=7)
# Extracts a summary of air quality forecast data.
air.get_current_summary()
air.get_hourly_summary()
# Extracts the current weather conditions.
air.get_current_aqi()
air.get_current_pm2_5_conc()
air.get_current_pm10_conc()
air.get_current_uv_index()
air.get_hourly_dust_conc()
# Extracts the hourly weather forecast data.
air.get_hourly_uv_index()
air.get_hourly_uv_index()
air.get_hourly_pm2_5_conc()
air.get_hourly_pm10_conc()
air.get_hourly_aerosol_optical_depth()
```
## Legals
<b>atmolib</b> is distributed under the MIT License. Refer to the [LICENSE](./LICENSE) for more details.
#### NOTE:
<b>atmolib</b> is not affiliated, endorsed, or vetted by <b>Open-Meteo</b>. It's an open-source tool that uses Open-Meteo's publicly available meteorology APIs, and is intended for <b>research and educational purposes only</b>.
## Call for Contributions
The <b>atmolib</b> project always welcomes your precious expertise and enthusiasm!
The package relies on its community's wisdom and intelligence to investigate bugs and contribute code. We always appreciate improvements and contributions to this project.
Raw data
{
"_id": null,
"home_page": "https://www.github.com/rahul4732saini/atmolib",
"name": "atmolib",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "atmolib, weather, meteorology, pandas, open-meteo",
"author": "rahul4732saini",
"author_email": "rahul4732saini@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/af/5d/1c640900b47e49e62b27b2779818b576d3705765e66d752e6ecc814b7c79/atmolib-0.1.1.tar.gz",
"platform": "any",
"description": "<h1 align=center>\n<img src=\"https://raw.githubusercontent.com/rahul4732saini/atmolib/main/assets/atmolib.png?raw=true\" width=500>\n</h1>\n\n<a href=\"https://www.codefactor.io/repository/github/rahul4732saini/atmolib\"><img src=\"https://www.codefactor.io/repository/github/rahul4732saini/atmolib/badge\" alt=\"CodeFactor\" /></a>\n<a href=\"https://github.com/rahul4732saini/atmolib/actions/workflows/pytest.yml\"><img src=\"https://github.com/rahul4732saini/atmolib/workflows/Pytest/badge.svg\" alt=\"Pytest\" /></a>\n\n<a href=\"https://www.github.com/rahul4732saini/atmolib\"><img src=\"https://img.shields.io/badge/status-beta-yellow?maxAge=60\" alt=\"projectStatus\"></a>\n<a href=\"https://www.github.com/rahul4732saini/atmolib\"><img src=\"https://img.shields.io/badge/python-3.10+-blue?label=Python&maxAge=60\" alt=\"pythonVersion\"></a>\n<a href=\"https://github.com/rahul4732saini/atmolib/blob/main/LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-green?maxAge=60\" alt=\"License\"></a>\n\n<a href=\"https://www.pypi.org/project/atmolib\"><img src=\"https://img.shields.io/pypi/v/atmolib.svg?logo=pypi&logoColor=ffa07a&label=PyPI Version&maxAge=60\" alt=\"PyPI-Version\"></a>\n<a href=\"https://www.pypi.org/project/atmolib\"><img src=\"https://img.shields.io/pypi/dm/atmolib.svg?label=PyPI Downloads\" alt=\"PyPI-Downloads\"></a>\n\n<a href=\"https://www.github.com/rahul4732saini/atmolib\"><img src=\"https://img.shields.io/github/stars/rahul4732saini/atmolib.svg?style=social&label=Star&maxAge=60\" alt=\"StarProject\"></a>\n<a href=\"https://www.twitter.com/rahulsaini4732\"><img src=\"https://img.shields.io/twitter/follow/rahulsaini4732?style=social&label=Follow&maxAge=60\" alt=\"Twitter\"></a>\n<a href=\"https://www.linkedin.com/in/rahul-saini-9191a5286/)\"><img src=\"https://img.shields.io/badge/LinkedIn-Connect-blue?style=social&logo=linkedin&maxAge=60\" alt=\"Linkedin\"></a>\n\n## Package Description\n\n<b>atmolib</b> is a weather package that offers an easy and flexible way to its users to access and parse weather data in a pythonic way. The package uses the Open-Meteo Web APIs to fetch the weather data in its backend.\n\n## Installation\n\nInstall `atmolib` using `pip`:\n\n```bash\n$ python -m pip install -U atmolib --no-cache-dir\n```\n\n[Required Dependencies](./requirements.txt)\n\n## Quick Guide\n\n<b>atmolib</b> offers a series of classes to its users which can be used for meteorology data extraction from Open-Meteo's Web APIs.\n\nThe classes along with their corresponding descriptions are mentioned as follows:\n\n- `Weather`<br>\n Provides extensive access to current, hourly, and daily forecast data, including temperature, dew point, weather conditions, soil temperature, visibility, and more.\n- `WeatherArchive`<br>\n Enables retrieval of historical weather data, spanning hourly and daily records from 1940 till the present day.\n- `MarineWeather`<br>\n Grants access to current, hourly, and daily marine weather forecast data, covering wave height, direction, and period, with a resolution of up to 5 kilometers.\n- `AirQuality`<br>\n Supplies current and hourly forecasts for air quality metrics, including AQI, atmospheric gas concentrations, and UV index.\n\nThe package also provides users with some useful functions as a part of the package as mentioned below:\n\n- `get_elevation`<br>\n Extracts the elevation in meters(m) at the specified coordinates.\n\n- `get_city_details`<br>\n Extracts the city details such as coordinates, country, timezone, etc. based on the specified city name.\n\n## Basic Usage\n\nThis guide provides the basic usage of the atmolib package and highlights some of the generally used methods. All the methods in the package are designed to be used with minimal arguments with default\narguments primarily specified in all of them.\n\n- `Weather` class usage:\n\n```python\nimport atmolib as atmo\n\n# 'forecast_days' is an optional argument and specifies the number\n# of days for which forecast data is desired to be extracted.\nweather = atmo.Weather(lat=26.91, long=75.54, forecast_days=10)\n\n# Extracts a summary of weather forecast data.\nweather.get_current_summary()\nweather.get_hourly_summary()\nweather.get_daily_summary()\n\n# Extracts the current weather conditions.\nweather.get_current_temperature()\nweather.get_current_weather_code()\nweather.get_current_cloud_cover()\nweather.get_current_wind_speed()\nweather.get_current_pressure()\nweather.get_current_precipitation()\nweather.get_current_relative_humidity()\n\n# Extracts the hourly weather forecast data.\nweather.get_hourly_temperature()\nweather.get_hourly_visibility()\nweather.get_hourly_wind_speed()\nweather.get_hourly_precipitation_probability()\nweather.get_hourly_soil_temperature()\n\n# Extracts the daily weather forecast data.\nweather.get_daily_temperature()\nweather.get_daily_max_precipitation_probability()\nweather.get_daily_max_uv_index()\nweather.get_daily_max_wind_speed()\nweather.get_daily_total_precipitation()\nweather.get_daily_sunshine_duration()\n```\n\n- `WeatherArchive` provides the same methods as `Weather` class as a part of a data range with slight modifications in some methods.\n\n- `MarineWeather` class usage:\n\n```python\nimport atmolib as atmo\n\n# 'forecast_days' is an optional argument and specifies the number\n# of days for which forecast data is desired to be extracted.\n# 'wave_type' refers to the type of waves for which marine\n# weather data is desired to be extracted.\nmarine = atmo.MarineWeather(lat=0, long=0, wave_type='wind', forecast_days=7)\n\n# Extracts a summary of marine weather forecast data.\nmarine.get_current_summary()\nmarine.get_hourly_summary()\nmarine.get_daily_summary()\n\n# Extracts the current weather conditions.\nmarine.get_current_wave_height()\nmarine.get_current_wave_direction()\nmarine.get_current_wave_period()\n\n# Extracts the hourly weather forecast data.\nmarine.get_hourly_wave_height()\nmarine.get_hourly_wave_direction()\nmarine.get_hourly_wave_period()\n\n# Extracts the daily weather forecast data.\nmarine.get_daily_max_wave_height()\nmarine.get_daily_dominant_wave_direction()\nmarine.get_daily_max_wave_period()\n```\n\n- `AirQuality` class usage:\n\n```python\nimport atmolib as atmo\n\nair = atmo.AirQuality(lat=26.91, long=75.54, forecast_days=7)\n\n# Extracts a summary of air quality forecast data.\nair.get_current_summary()\nair.get_hourly_summary()\n\n# Extracts the current weather conditions.\nair.get_current_aqi()\nair.get_current_pm2_5_conc()\nair.get_current_pm10_conc()\nair.get_current_uv_index()\nair.get_hourly_dust_conc()\n\n# Extracts the hourly weather forecast data.\nair.get_hourly_uv_index()\nair.get_hourly_uv_index()\nair.get_hourly_pm2_5_conc()\nair.get_hourly_pm10_conc()\nair.get_hourly_aerosol_optical_depth()\n```\n\n## Legals\n\n<b>atmolib</b> is distributed under the MIT License. Refer to the [LICENSE](./LICENSE) for more details.\n\n#### NOTE:\n\n<b>atmolib</b> is not affiliated, endorsed, or vetted by <b>Open-Meteo</b>. It's an open-source tool that uses Open-Meteo's publicly available meteorology APIs, and is intended for <b>research and educational purposes only</b>.\n\n## Call for Contributions\n\nThe <b>atmolib</b> project always welcomes your precious expertise and enthusiasm!\nThe package relies on its community's wisdom and intelligence to investigate bugs and contribute code. We always appreciate improvements and contributions to this project.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Versatile weather package for effortless meteorology data extraction.",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://www.github.com/rahul4732saini/atmolib"
},
"split_keywords": [
"atmolib",
" weather",
" meteorology",
" pandas",
" open-meteo"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4b9915d1fc60cb67afe24848c4ed4931ea1e466b42b6700899cd80e04e96759b",
"md5": "1d7584e13fab53ec52ba5ed7d4301887",
"sha256": "5c5f8641506bcaba1b379b40b4e1b4aa76f1577b4366c78f64f2aa77cf84d4e5"
},
"downloads": -1,
"filename": "atmolib-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1d7584e13fab53ec52ba5ed7d4301887",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 36423,
"upload_time": "2024-10-28T16:02:58",
"upload_time_iso_8601": "2024-10-28T16:02:58.860208Z",
"url": "https://files.pythonhosted.org/packages/4b/99/15d1fc60cb67afe24848c4ed4931ea1e466b42b6700899cd80e04e96759b/atmolib-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "af5d1c640900b47e49e62b27b2779818b576d3705765e66d752e6ecc814b7c79",
"md5": "28a4301c5d960a242247d2f45b05f7ca",
"sha256": "b2c5e46e668bd721a7eb96b8d16956bd57c631420f8158516feeb2a7c59b8a55"
},
"downloads": -1,
"filename": "atmolib-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "28a4301c5d960a242247d2f45b05f7ca",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 28415,
"upload_time": "2024-10-28T16:03:01",
"upload_time_iso_8601": "2024-10-28T16:03:01.790590Z",
"url": "https://files.pythonhosted.org/packages/af/5d/1c640900b47e49e62b27b2779818b576d3705765e66d752e6ecc814b7c79/atmolib-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-28 16:03:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rahul4732saini",
"github_project": "atmolib",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "atmolib"
}