Metadata-Version: 2.4
Name: futureweather
Version: 0.1.0
Summary: Generate future climate-adjusted EPW/DDY/STAT weather files for building energy simulation.
Author-email: Radbridge Incorporated <support@futureweather.co>
License-Expression: MIT
Project-URL: Homepage, https://futureweather.co
Project-URL: Documentation, https://app.futureweather.co/api
Project-URL: Repository, https://github.com/radbridge/futureweather-python
Project-URL: Issues, https://github.com/radbridge/futureweather-python/issues
Keywords: weather,climate,epw,energyplus,openstudio,cmip6,building-simulation,future-weather,ddy,hvac
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# futureweather

Generate future climate-adjusted EPW, DDY, and STAT weather files for building energy simulation.

Uses [CMIP6](https://wcrp-cmip.org/cmip6/) climate projections to morph historical EnergyPlus Weather (EPW) files into future scenarios. Zero dependencies -- uses only the Python standard library.

## Install

```bash
pip install futureweather
```

## Quick start

```python
import futureweather

# Generate a future EPW for 2050 under high emissions
paths = futureweather.generate(
    api_key="fw_your_token",
    epw="Chicago_OHare.epw",
    year=2050,
    scenario="ssp585",
    output_dir="./future/",
)
print(paths)
# ['./future/Chicago_OHare_2050_ssp585.epw', './future/Chicago_OHare_2050_ssp585.stat']
```

## Batch generation

Generate files for multiple years and scenarios at once:

```python
results = futureweather.batch(
    api_key="fw_your_token",
    epw="Chicago_OHare.epw",
    years=[2050, 2080],
    scenarios=["ssp245", "ssp585"],
    output_dir="./future_weather/",
)
print(results["summary"])  # "4/4 completed"
```

## Include design day (DDY) files

```python
paths = futureweather.generate(
    api_key="fw_your_token",
    epw="Chicago_OHare.epw",
    ddy="Chicago_OHare.ddy",
    year=2050,
    scenario="ssp585",
    output_dir="./future/",
)
# Returns EPW + DDY + STAT files
```

## Check your credit balance

```python
me = futureweather.authenticate("fw_your_token")
print(f"Credits: {me['credits']}")
```

## Available scenarios

| Scenario | Description | Approx. warming by 2100 |
|----------|-------------|------------------------|
| `ssp126` | Low emissions | ~1.8 C |
| `ssp245` | Moderate emissions | ~2.7 C |
| `ssp370` | High emissions | ~3.6 C |
| `ssp585` | Very high emissions | ~4.4 C |

Target years: 2035 to 2090.

## Getting an API key

1. Create an account at [app.futureweather.co](https://app.futureweather.co)
2. Go to **API > API Keys** and create a Personal Access Token
3. Your token will start with `fw_`

## Advanced usage

For fine-grained control, use the lower-level functions:

```python
import futureweather

# Submit without waiting
result = futureweather.submit_job("fw_...", "file.epw", 2050, scenario="ssp585")
job_id = result["jobs"][0]["id"]

# Check status
status = futureweather.check_status("fw_...", job_id)
print(status["status"])  # PENDING, RUNNING, SUCCESS, FAILED

# Get download links
links = futureweather.get_downloads("fw_...", job_id)

# Download to disk
paths = futureweather.download_results("fw_...", job_id, "./output/")
```

## Links

- Website: [futureweather.co](https://futureweather.co)
- App & API docs: [app.futureweather.co](https://app.futureweather.co)
- Support: support@futureweather.co
