Skip to main content

A secure, unified Python interface for African climate data, integrating TAHMO station data and gridded datasets (IMERG, CHIRPS, ERA5, TAMSAT), and medium-to-seasonal weather models

Project description

Documentation

You can find the documentation for the project by following this link
https://filter-stations.readthedocs.io/en/latest/

Getting Started

All methods require an API key and secret, which can be obtained by contacting dsail-info@dkut.ac.ke.

  • AuthManager: The new secure gateway. Log in once with your credentials to automatically unlock access to all downstream data loaders
  • RainLoader: class is used to get our DSAIL unified weather dataset from HuggingFace (See the documentation for more information on this)
  • MediumForecaster: Connects to the Google Weather API to pull 1-to-10 day forecasts (both hourly and daily)
  • SeasonalForecaster: Connects to Open-Meteo API to pull seasonal forecasts.
  • The RetrieveData class is used to retrieve data from the TAHMO API endpoints.
  • The Kieni class is used to get weather data for stations 100km around Kieni from the central point.with water level data.

Example

from filter_stations import AuthManager, MediumForecaster, RetrieveData, SeasonalForecaster

# 1. Authenticate once securely
auth = AuthManager(email="your_email@domain.com", password="your_password")

# 2. Initialize any tool you need seamlessly
weather = MediumForecaster(auth_session=auth)
tahmo = RetrieveData(auth_session=auth)
seasonal = SeasonalForecaster(auth_session=auth)

# 3. Pull your Medium Range weather forecast data 
nyeri_forecast = weather.get_weather_api_forecast(lat=-0.41, lon=36.95, days=7)

# Seasonal Forecasting Example

# 4. See what is available
print(seasonal.list_all_models())

# 5. Pull 6 months of ECMWF AIFS and Standard IFS data simultaneously
data = seasonal.get_forecast(
    lat=-0.41,
    lon=36.95,
    models=["ecmwf_seasonal_ensemble_mean_seamless"], 
    forecast_months=6,
    daily=['temperature_2m_max',
            'temperature_2m_mean',
            'temperature_2m_min',
            'precipitation_sum',
            'rain_sum',
            'pressure_msl_min',
            'pressure_msl_mean',
            'relative_humidity_2m_min',
            'relative_humidity_2m_mean',
            'relative_humidity_2m_max',
            'dew_point_2m_max',
            'dew_point_2m_mean',
            'dew_point_2m_min',
            'surface_pressure_min',
            'surface_pressure_mean',
            'surface_pressure_max',
            'cloud_cover_min',
            'cloud_cover_mean',
            'cloud_cover_max' ]
)

# 6. View the AIFS DataFrame (first model in the list)
aifs_df = data[0]["daily_df"]
print(aifs_df)

seasonal.list_api_variables()

To get started on the module test it out on Google Colab

Open In Colab

For earlier versions <= v0.6.2 use the link below for documentation

https://filter-stations.netlify.app/

Citations

If you use this package in your research, please cite it using the following BibTeX entry:

@misc{filter-stations,
  author = {Austin Kaburia},
  title = {filter-stations},
  year = {2024},
  publisher = {Python Package Index},
  journal = {PyPI},
  howpublished = {\url{https://pypi.org/project/filter-stations/}},
}

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

filter_stations-0.8.3.tar.gz (40.8 MB view details)

Uploaded Source

Built Distribution

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

filter_stations-0.8.3-py3-none-any.whl (28.0 MB view details)

Uploaded Python 3

File details

Details for the file filter_stations-0.8.3.tar.gz.

File metadata

  • Download URL: filter_stations-0.8.3.tar.gz
  • Upload date:
  • Size: 40.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for filter_stations-0.8.3.tar.gz
Algorithm Hash digest
SHA256 918b537750b3d8e7ec3d3a5924848fc9ee6bafa9e0b3b3989b0c31cf528fc562
MD5 2bf27e3743c3abcae1fcdc5aef6f9b88
BLAKE2b-256 4297907ec537d82d30940653018e15bcf3c0232feeb837307f93f57db5e963ea

See more details on using hashes here.

File details

Details for the file filter_stations-0.8.3-py3-none-any.whl.

File metadata

File hashes

Hashes for filter_stations-0.8.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5d7be30902596255b1f27d1fb2c8ffd126b8e65fd303078ac5f3e1e3ad84846d
MD5 ed5fc4cf8ca18f4f1fed1b8c75e93442
BLAKE2b-256 9d73ea236bd4bcf04ea878409ec0a2bbdda4ef355bd7ddf2c762f8275bf29851

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