dwind


Namedwind JSON
Version 0.3.1 PyPI version JSON
download
home_pageNone
SummaryDistributed Wind Generation Model
upload_time2025-07-23 23:31:23
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords python3 wind-energy distributed-wind energy-production
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Distributed Wind Generation Model (dWind)

Please note that at this time the model can only be run on NREL's Kestrel HPC system. Though a
savvy user could recreate our data in their own computing environment and update the
internal pointers in the example configuration at `examples/larimer_county_btm_baseline_2025.toml`
and `examples/model_config.toml`.

## Installing dwind

1. Install Anaconda or Miniconda (recommended) if not already installed.
2. Clone the repository

   ```bash
   git clone https://github.com/NREL/dwind.git
   ```

3. Navigate to the dwind repository.

   ```bash
   cd /path/to/dwind
   ```

4. Create your dwind environment using our recommended settings and all required dependencies.

    ```bash
    conda env create -f environment.yml
    ```

## Running

### Configuring

`dWind` relies on 2 configuration files: 1) a system-wise setting that can be shared among a team,
and 2) a run-specific configuration file. Both will be described below.

#### Primary model configuration

The primary model configuration should look exactly like (or be compatible with)
`examples/model_config.toml` to ensure varying fields are read correctly throughout the model.

Internally, `dWind` is able to convert the following data to adhere to internal usage:
- Any field with "DIR" is converted to a Python `pathlib.Path` object for robust file handling
- SQL credentials and constructor strings are automatically formed in the `[sql]` table for easier
  construction of generic connection strings. Specifically the `{USER}` and `{PASSWORD}` fields
  get replaced with their corresponding setting in the same table.

`Configuration`, the primary class handling this data allows for dot notation and dictionary-style
attribute calling at all levels of nesting. This means, `config.pysam.outputs.btm` and
`config.pysam.outputs["btm"]` are equivalent. This makes for more intuitive dynamic attribute
fetching when updating the code for varying cases.

#### Run configuration

The run-specific configuration should look like `examples/larimer_county_btm_baseline_2025.toml`,
which controls all the dynamic model settings, HPC configurations, and a pointer to the primary
model configuration described above.

### Run the model

`dwind` has a robust CLI interface allowing for the usage of `python path/to/dwind/dwind/run.py` or
`dwind`. The model currently supports the run prompts:
- `dwind run-config <run-configuration.toml>
- `dwind run-hpc --arg1 ... --argn` where the `--arg` parameters are used in place of the run TOML
  file.

If at any point, further guidance is needed, pass `--help` to `dwind` or any of the subcommands for
detailed information on the required and optional inputs.

To run the model, it is recommended to use the following workflow from your analysis folder.
1. Start a new `screen` session on Kestrel.

   ```bash
   screen -S <analysis-name>
   ```

2. Load your conda environment with dwind installed.

   ```bash
   module load conda
   conda activate <env_name>
   ```

3. Navigate to your analysis folder if your relative data locations in your run configuration are
   relative to the analysis folder.

   ```bash
   cd /path/to/analysis/location
   ```

4. Run the model.

   ```bash
   dwind run-config examples/larimer_county_btm_baseline_2025.toml
   ```

5. Disconnect your screen `Ctrl` + `a` + `d` and wait for the analysis to complete and view your
   results.

## `dwind` run settings

### `run-config`

```bash
*    config_path      TEXT  Path to configuration TOML with run and model parameters. [default: None] [required]
```

### `run-hpc`

```bash
 *  --location            TEXT        The state, state_county, or priority region to run. [default: None] [required]
 *  --sector              [fom|btm]   One of fom (front of meter) or btm (back-of-the-meter). [default: None] [required]
 *  --scenario            [baseline]  The scenario to run (baseline is the current only option). [default: None] [required]
 *  --year                INTEGER     The assumption year for the analysis. Options are 2022, 2024, and 2025. [default: None] [required]
 *  --repository          TEXT        Path to the dwind repository to use when running the model. [default: None] [required]
 *  --nodes               INTEGER     Number of HPC nodes or CPU nodes to run on. -1 indicates 75% of CPU limit. [default: None] [required]
 *  --allocation          TEXT        HPC allocation name. [default: None] [required]
 *  --memory              INTEGER     Node memory, in GB (HPC only). [default: None] [required]
 *  --walltime            INTEGER     Node walltime request, in hours. [default: None] [required]
 *  --feature             TEXT        Additional flags for the SLURM job, using formatting such as --qos=high or --depend=[state:job_id]. [default: None] [required]
 *  --env                 TEXT        The path to the dwind Python environment that should be used to run the model. [default: None] [required]
 *  --model-config        TEXT        Complete file name and path of the model configuration file [default: None] [required]
 *  --dir-out             TEXT        Path to where the chunked outputs should be saved. [default: None] [required]
 *  --stdout-path         TEXT        The path to write stdout logs. [default: None]
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "dwind",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "python3, wind-energy, distributed-wind, energy-production",
    "author": null,
    "author_email": "Jane Lockshin <jane.lockshin@nrel.gov>, Paritosh Das <paritosh.das@nrel.gov>, Rob Hammond <rob.hammond@nrel.gov>",
    "download_url": "https://files.pythonhosted.org/packages/cb/f5/ed533198e652b75361c80af624f6366204725ddb1f44aad4dc88b3054368/dwind-0.3.1.tar.gz",
    "platform": null,
    "description": "# Distributed Wind Generation Model (dWind)\n\nPlease note that at this time the model can only be run on NREL's Kestrel HPC system. Though a\nsavvy user could recreate our data in their own computing environment and update the\ninternal pointers in the example configuration at `examples/larimer_county_btm_baseline_2025.toml`\nand `examples/model_config.toml`.\n\n## Installing dwind\n\n1. Install Anaconda or Miniconda (recommended) if not already installed.\n2. Clone the repository\n\n   ```bash\n   git clone https://github.com/NREL/dwind.git\n   ```\n\n3. Navigate to the dwind repository.\n\n   ```bash\n   cd /path/to/dwind\n   ```\n\n4. Create your dwind environment using our recommended settings and all required dependencies.\n\n    ```bash\n    conda env create -f environment.yml\n    ```\n\n## Running\n\n### Configuring\n\n`dWind` relies on 2 configuration files: 1) a system-wise setting that can be shared among a team,\nand 2) a run-specific configuration file. Both will be described below.\n\n#### Primary model configuration\n\nThe primary model configuration should look exactly like (or be compatible with)\n`examples/model_config.toml` to ensure varying fields are read correctly throughout the model.\n\nInternally, `dWind` is able to convert the following data to adhere to internal usage:\n- Any field with \"DIR\" is converted to a Python `pathlib.Path` object for robust file handling\n- SQL credentials and constructor strings are automatically formed in the `[sql]` table for easier\n  construction of generic connection strings. Specifically the `{USER}` and `{PASSWORD}` fields\n  get replaced with their corresponding setting in the same table.\n\n`Configuration`, the primary class handling this data allows for dot notation and dictionary-style\nattribute calling at all levels of nesting. This means, `config.pysam.outputs.btm` and\n`config.pysam.outputs[\"btm\"]` are equivalent. This makes for more intuitive dynamic attribute\nfetching when updating the code for varying cases.\n\n#### Run configuration\n\nThe run-specific configuration should look like `examples/larimer_county_btm_baseline_2025.toml`,\nwhich controls all the dynamic model settings, HPC configurations, and a pointer to the primary\nmodel configuration described above.\n\n### Run the model\n\n`dwind` has a robust CLI interface allowing for the usage of `python path/to/dwind/dwind/run.py` or\n`dwind`. The model currently supports the run prompts:\n- `dwind run-config <run-configuration.toml>\n- `dwind run-hpc --arg1 ... --argn` where the `--arg` parameters are used in place of the run TOML\n  file.\n\nIf at any point, further guidance is needed, pass `--help` to `dwind` or any of the subcommands for\ndetailed information on the required and optional inputs.\n\nTo run the model, it is recommended to use the following workflow from your analysis folder.\n1. Start a new `screen` session on Kestrel.\n\n   ```bash\n   screen -S <analysis-name>\n   ```\n\n2. Load your conda environment with dwind installed.\n\n   ```bash\n   module load conda\n   conda activate <env_name>\n   ```\n\n3. Navigate to your analysis folder if your relative data locations in your run configuration are\n   relative to the analysis folder.\n\n   ```bash\n   cd /path/to/analysis/location\n   ```\n\n4. Run the model.\n\n   ```bash\n   dwind run-config examples/larimer_county_btm_baseline_2025.toml\n   ```\n\n5. Disconnect your screen `Ctrl` + `a` + `d` and wait for the analysis to complete and view your\n   results.\n\n## `dwind` run settings\n\n### `run-config`\n\n```bash\n*    config_path      TEXT  Path to configuration TOML with run and model parameters. [default: None] [required]\n```\n\n### `run-hpc`\n\n```bash\n *  --location            TEXT        The state, state_county, or priority region to run. [default: None] [required]\n *  --sector              [fom|btm]   One of fom (front of meter) or btm (back-of-the-meter). [default: None] [required]\n *  --scenario            [baseline]  The scenario to run (baseline is the current only option). [default: None] [required]\n *  --year                INTEGER     The assumption year for the analysis. Options are 2022, 2024, and 2025. [default: None] [required]\n *  --repository          TEXT        Path to the dwind repository to use when running the model. [default: None] [required]\n *  --nodes               INTEGER     Number of HPC nodes or CPU nodes to run on. -1 indicates 75% of CPU limit. [default: None] [required]\n *  --allocation          TEXT        HPC allocation name. [default: None] [required]\n *  --memory              INTEGER     Node memory, in GB (HPC only). [default: None] [required]\n *  --walltime            INTEGER     Node walltime request, in hours. [default: None] [required]\n *  --feature             TEXT        Additional flags for the SLURM job, using formatting such as --qos=high or --depend=[state:job_id]. [default: None] [required]\n *  --env                 TEXT        The path to the dwind Python environment that should be used to run the model. [default: None] [required]\n *  --model-config        TEXT        Complete file name and path of the model configuration file [default: None] [required]\n *  --dir-out             TEXT        Path to where the chunked outputs should be saved. [default: None] [required]\n *  --stdout-path         TEXT        The path to write stdout logs. [default: None]\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Distributed Wind Generation Model",
    "version": "0.3.1",
    "project_urls": {
        "issues": "https://github.com/NREL/dwind/issues",
        "source": "https://github.com/NREL/dwind"
    },
    "split_keywords": [
        "python3",
        " wind-energy",
        " distributed-wind",
        " energy-production"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e997ceba133910654b042b96462c7869ee3d01500cdfd8d5cff2aa89ada1923f",
                "md5": "234fa2f9e5f5ebe480e57d5eedfbeee0",
                "sha256": "b0028359e7554a824062751200f112db6d9ddad1513b847bef702fe1a8d90395"
            },
            "downloads": -1,
            "filename": "dwind-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "234fa2f9e5f5ebe480e57d5eedfbeee0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 40431,
            "upload_time": "2025-07-23T23:31:21",
            "upload_time_iso_8601": "2025-07-23T23:31:21.922969Z",
            "url": "https://files.pythonhosted.org/packages/e9/97/ceba133910654b042b96462c7869ee3d01500cdfd8d5cff2aa89ada1923f/dwind-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cbf5ed533198e652b75361c80af624f6366204725ddb1f44aad4dc88b3054368",
                "md5": "28aecf19155cc7e135b62edb661f4c1e",
                "sha256": "39a748cb2ee0015ab7c6b47fa4da6b74006889598dd81e732854ec10da2b8081"
            },
            "downloads": -1,
            "filename": "dwind-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "28aecf19155cc7e135b62edb661f4c1e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 43590,
            "upload_time": "2025-07-23T23:31:23",
            "upload_time_iso_8601": "2025-07-23T23:31:23.375102Z",
            "url": "https://files.pythonhosted.org/packages/cb/f5/ed533198e652b75361c80af624f6366204725ddb1f44aad4dc88b3054368/dwind-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-23 23:31:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "NREL",
    "github_project": "dwind",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "dwind"
}
        
Elapsed time: 2.01793s