# Jua Python SDK
**Access industry-leading weather forecasts with ease**
The Jua Python SDK provides a simple and powerful interface to Jua's state-of-the-art weather forecasting capabilities. Easily integrate accurate weather data into your applications, research, or analysis workflows.
## Getting Started 🚀
### Prerequisites
- Python 3.11 or higher
- Internet connection for API access
### Installation
Install `jua` with pip:
```
pip install jua
```
Alternatively, checkout [uv](https://docs.astral.sh/uv/) for managing dependencies and Python versions:
```bash
uv init && uv add jua
```
### Authentication
Generate an API key from the [Jua dashboard](https://app.jua.ai/api-keys) and save it to `~/.jua/default/api-key.json`.
_Coming soon: Simply run `jua auth` to authenticate via your web browser._
## Examples
### Access the latest 20-day forecast for a point location
Retrieve temperature forecasts for Zurich and visualize the data:
```python
import matplotlib.pyplot as plt
from jua import JuaClient
from jua.types.geo import LatLon
from jua.weather import Models, Variables
client = JuaClient()
model = client.weather.get_model(Models.EPT1_5)
zurich = LatLon(lat=47.3769, lon=8.5417)
# Get latest forecast
forecast = model.forecast.get_forecast(
points=[zurich]
)
temp_data = forecast[Variables.AIR_TEMPERATURE_AT_HEIGHT_LEVEL_2M]
temp_data.to_celcius().to_absolute_time().plot()
plt.show()
```
<details>
<summary>Show output</summary>

</details>
### Plot global forecast with 10-hour lead time
Generate a global wind speed visualization:
```python
import matplotlib.pyplot as plt
from jua import JuaClient
from jua.weather import Models, Variables
client = JuaClient()
model = client.weather.get_model(Models.EPT1_5)
lead_time = 10 # hours
dataset = model.forecast.get_forecast(
prediction_timedelta=lead_time,
variables=[
Variables.WIND_SPEED_AT_HEIGHT_LEVEL_10M,
],
)
dataset[Variables.WIND_SPEED_AT_HEIGHT_LEVEL_10M].plot()
plt.show()
```
<details>
<summary>Show output</summary>

</details>
### Access historical weather data
Retrieve and visualize temperature data for Europe from a specific date:
```python
import matplotlib.pyplot as plt
from jua import JuaClient
from jua.weather import Models, Variables
client = JuaClient()
model = client.weather.get_model(Models.EPT1_5_EARLY)
init_time = "2024-02-01 06:00:00"
hindcast = model.hindcast.get_hindcast(
variables=[Variables.AIR_TEMPERATURE_AT_HEIGHT_LEVEL_2M],
init_time=init_time,
prediction_timedelta=0,
# Select Europe
latitude=slice(71, 36),
longitude=slice(-15, 50),
method="nearest",
)
data = hindcast[Variables.AIR_TEMPERATURE_AT_HEIGHT_LEVEL_2M]
data.plot()
plt.show()
```
<details>
<summary>Show output</summary>

</details>
## Documentation
For comprehensive documentation, visit [docs.jua.ai](https://docs.jua.ai).
## Contributing
See the [contribution guide](./CONTRIBUTING.md) to get started.
## Changes
See the [changelog](./CHANGELOG.md) for the latest changes.
## Support
If you encounter any issues or have questions, please:
- Check the [documentation](https://docs.jua.ai)
- Open an issue on GitHub
- Contact support@jua.ai
## License
This project is licensed under the MIT License - see the LICENSE file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "jua",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "energy, energy trading, forecast, hindcast, power, trading, weather, weather forecast",
"author": null,
"author_email": "\"Jua.ai AG\" <contact@jua.ai>",
"download_url": "https://files.pythonhosted.org/packages/91/a0/6f281306d95e1b545c0c20a18dbbd595069f7f7dc70a509ca429ff748ba4/jua-0.8.3.tar.gz",
"platform": null,
"description": "# Jua Python SDK\n\n**Access industry-leading weather forecasts with ease**\n\nThe Jua Python SDK provides a simple and powerful interface to Jua's state-of-the-art weather forecasting capabilities. Easily integrate accurate weather data into your applications, research, or analysis workflows.\n\n## Getting Started \ud83d\ude80\n\n### Prerequisites\n\n- Python 3.11 or higher\n- Internet connection for API access\n\n### Installation\n\nInstall `jua` with pip:\n\n```\npip install jua\n```\n\nAlternatively, checkout [uv](https://docs.astral.sh/uv/) for managing dependencies and Python versions:\n\n```bash\nuv init && uv add jua\n```\n\n### Authentication\n\nGenerate an API key from the [Jua dashboard](https://app.jua.ai/api-keys) and save it to `~/.jua/default/api-key.json`.\n\n_Coming soon: Simply run `jua auth` to authenticate via your web browser._\n\n## Examples\n\n### Access the latest 20-day forecast for a point location\n\nRetrieve temperature forecasts for Zurich and visualize the data:\n\n```python\nimport matplotlib.pyplot as plt\nfrom jua import JuaClient\nfrom jua.types.geo import LatLon\nfrom jua.weather import Models, Variables\n\nclient = JuaClient()\nmodel = client.weather.get_model(Models.EPT1_5)\nzurich = LatLon(lat=47.3769, lon=8.5417)\n# Get latest forecast\nforecast = model.forecast.get_forecast(\n points=[zurich]\n)\ntemp_data = forecast[Variables.AIR_TEMPERATURE_AT_HEIGHT_LEVEL_2M]\ntemp_data.to_celcius().to_absolute_time().plot()\nplt.show()\n```\n\n<details>\n<summary>Show output</summary>\n\n\n\n</details>\n\n### Plot global forecast with 10-hour lead time\n\nGenerate a global wind speed visualization:\n\n```python\nimport matplotlib.pyplot as plt\nfrom jua import JuaClient\nfrom jua.weather import Models, Variables\n\nclient = JuaClient()\nmodel = client.weather.get_model(Models.EPT1_5)\n\nlead_time = 10 # hours\ndataset = model.forecast.get_forecast(\n prediction_timedelta=lead_time,\n variables=[\n Variables.WIND_SPEED_AT_HEIGHT_LEVEL_10M,\n ],\n)\ndataset[Variables.WIND_SPEED_AT_HEIGHT_LEVEL_10M].plot()\nplt.show()\n```\n\n<details>\n<summary>Show output</summary>\n\n\n\n</details>\n\n### Access historical weather data\n\nRetrieve and visualize temperature data for Europe from a specific date:\n\n```python\nimport matplotlib.pyplot as plt\nfrom jua import JuaClient\nfrom jua.weather import Models, Variables\n\nclient = JuaClient()\nmodel = client.weather.get_model(Models.EPT1_5_EARLY)\n\ninit_time = \"2024-02-01 06:00:00\"\nhindcast = model.hindcast.get_hindcast(\n variables=[Variables.AIR_TEMPERATURE_AT_HEIGHT_LEVEL_2M],\n init_time=init_time,\n prediction_timedelta=0,\n # Select Europe\n latitude=slice(71, 36),\n longitude=slice(-15, 50),\n method=\"nearest\",\n)\n\ndata = hindcast[Variables.AIR_TEMPERATURE_AT_HEIGHT_LEVEL_2M]\ndata.plot()\nplt.show()\n```\n\n<details>\n<summary>Show output</summary>\n\n\n\n</details>\n\n## Documentation\n\nFor comprehensive documentation, visit [docs.jua.ai](https://docs.jua.ai).\n\n## Contributing\n\nSee the [contribution guide](./CONTRIBUTING.md) to get started.\n\n## Changes\n\nSee the [changelog](./CHANGELOG.md) for the latest changes.\n\n## Support\n\nIf you encounter any issues or have questions, please:\n\n- Check the [documentation](https://docs.jua.ai)\n- Open an issue on GitHub\n- Contact support@jua.ai\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n",
"bugtrack_url": null,
"license": null,
"summary": "Easy access to Jua's weather & power services",
"version": "0.8.3",
"project_urls": {
"Documentation": "https://docs.jua.ai",
"Source": "https://github.com/juaAI/jua-python-sdk"
},
"split_keywords": [
"energy",
" energy trading",
" forecast",
" hindcast",
" power",
" trading",
" weather",
" weather forecast"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1bd552559fa2d8b2aa09c49349d76f919ffa197e86f2621dba16ea636d766329",
"md5": "c8ac76eba8c79d5fc002ecdbf2a89e37",
"sha256": "a9e386033c205cc7dc756c4377ce4517db6922050bd9c750cf18b54b2f9e9e43"
},
"downloads": -1,
"filename": "jua-0.8.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c8ac76eba8c79d5fc002ecdbf2a89e37",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 51919,
"upload_time": "2025-07-14T07:22:36",
"upload_time_iso_8601": "2025-07-14T07:22:36.160370Z",
"url": "https://files.pythonhosted.org/packages/1b/d5/52559fa2d8b2aa09c49349d76f919ffa197e86f2621dba16ea636d766329/jua-0.8.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "91a06f281306d95e1b545c0c20a18dbbd595069f7f7dc70a509ca429ff748ba4",
"md5": "96819eb0cc90c0061f8887a8bc3ff09b",
"sha256": "adb575167d896cdab0341e17c227874efff0fdfb0f0574c3507846be7b1f67e0"
},
"downloads": -1,
"filename": "jua-0.8.3.tar.gz",
"has_sig": false,
"md5_digest": "96819eb0cc90c0061f8887a8bc3ff09b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 1426159,
"upload_time": "2025-07-14T07:22:37",
"upload_time_iso_8601": "2025-07-14T07:22:37.517131Z",
"url": "https://files.pythonhosted.org/packages/91/a0/6f281306d95e1b545c0c20a18dbbd595069f7f7dc70a509ca429ff748ba4/jua-0.8.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-14 07:22:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "juaAI",
"github_project": "jua-python-sdk",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "jua"
}