Skip to main content

EnergyPlus idd/idf manipulation in Python.

Project description

EnergyPlus Python IDD/IDF Utilities

Python library of EnergyPlus IDD/IDF manipulation utilities.

Documentation

Documentation Status

Documentation is hosted on ReadTheDocs at https://energyplus-idd-idf.readthedocs.io/en/latest/. To build the documentation, enter the docs/ subdirectory and execute make html; then open /docs/_build/html/index.html to see the documentation.

Installation

This package is deployed to PyPi at https://badge.fury.io/py/energyplus-idd-idf-utilities. To install, simply pip install energyplus-idd-idf-utilities.

Basic Usage

Once installed, the utilities are available for use as a library of functionality to call from Python, or with a very limited (for now) CLI called energyplus_idd_idf. Some example CLI calls:

Get the CLI form:

$ energyplus_idd_idf --help
usage: energyplus_idd_idf [-h] [--idd_check] [--idd_obj_matches IDD_OBJ_MATCHES] [--summarize_idd_object SUMMARIZE_IDD_OBJECT] filename

EnergyPlus IDD/IDF Utility Command Line

positional arguments:
  filename              Path to IDD/IDF file to be operated upon

optional arguments:
  -h, --help            show this help message and exit
  --idd_check           Process the given IDD file and report statistics and issues
  --idd_obj_matches IDD_OBJ_MATCHES
                        Find IDD objects that match the given basic pattern
  --summarize_idd_object SUMMARIZE_IDD_OBJECT
                        Print a summary of a single IDD object by name

This CLI is in infancy and will probably have features added over time

Check an existing IDD file and get basic information:

$ energyplus_idd_idf --idd_check /path/to/EnergyPlus-22-2-0/Energy+.idd 
{
  "message": "Everything looks OK",
  "content": {
    "idd_version": "22.2.0",
    "idd_build_id": "c249759bad",
    "num_groups": 59,
    "num_objects": 881
  }
}

Find all objects which match a certain name pattern:

$ energyplus_idd_idf --idd_obj_matches 'Coil:Cooling*' /path/to/EnergyPlus-22-2-0/Energy+.idd 
{
  "message": "Everything looks OK",
  "content": {
    "pattern": "Coil:Cooling*",
    "matching_objects": [
      "Coil:Cooling:Water",
      "Coil:Cooling:Water:DetailedGeometry",
      "Coil:Cooling:DX",
      "Coil:Cooling:DX:CurveFit:Performance",
      "Coil:Cooling:DX:CurveFit:OperatingMode",
      "Coil:Cooling:DX:CurveFit:Speed",
      "Coil:Cooling:DX:SingleSpeed",
      "Coil:Cooling:DX:TwoSpeed",
      "Coil:Cooling:DX:MultiSpeed",
      "Coil:Cooling:DX:VariableSpeed",
      "Coil:Cooling:DX:TwoStageWithHumidityControlMode",
      "Coil:Cooling:DX:VariableRefrigerantFlow",
      "Coil:Cooling:DX:VariableRefrigerantFlow:FluidTemperatureControl",
      "Coil:Cooling:WaterToAirHeatPump:ParameterEstimation",
      "Coil:Cooling:WaterToAirHeatPump:EquationFit",
      "Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit",
      "Coil:Cooling:DX:SingleSpeed:ThermalStorage"
    ]
  }
}

Get specific details about a single object by name:

$ energyplus_idd_idf /path/to/EnergyPlus-22-2-0/Energy+.idd --summarize_idd_object "Coil:Cooling:DX"
{
  "message": "Everything looks OK",
  "content": {
    "searched_object_name": "COIL:COOLING:DX",
    "field": [
      "A1 : Name",
      "A2 : Evaporator Inlet Node Name",
      "A3 : Evaporator Outlet Node Name",
      "A4 : Availability Schedule Name",
      "A5 : Condenser Zone Name",
      "A6 : Condenser Inlet Node Name",
      "A7 : Condenser Outlet Node Name",
      "A8 : Performance Object Name",
      "A9 : Condensate Collection Water Storage Tank Name",
      "A10 : Evaporative Condenser Supply Water Storage Tank Name"
    ]
  }
}

Testing

Flake8 Run Tests

The source is tested using the python unittest framework. To execute all the unit tests, simply run nosetests from the project root. The tests are also executed by GitHub Actions for each commit.

Test Coverage

Coverage Status

Coverage of the code from unit testing is reported to Coveralls at https://coveralls.io/github/Myoldmopar/py-idd-idf. Anything less than 100% coverage will be frowned upon. :)

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

energyplus_idd_idf_utilities-0.88.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file energyplus_idd_idf_utilities-0.88.tar.gz.

File metadata

File hashes

Hashes for energyplus_idd_idf_utilities-0.88.tar.gz
Algorithm Hash digest
SHA256 a667d73cc97acbd2e83c036af1865101131b6abb2a27ddca37d8593fea70d101
MD5 51fb8abc6e296c9bbeba270a38338795
BLAKE2b-256 62a384fdd9448327187bfadab762cac668ef85535e2b8e5777723f0ea6845a24

See more details on using hashes here.

File details

Details for the file energyplus_idd_idf_utilities-0.88-py3-none-any.whl.

File metadata

File hashes

Hashes for energyplus_idd_idf_utilities-0.88-py3-none-any.whl
Algorithm Hash digest
SHA256 e47e46c0a9d15c005928ebeda78a12e31c611ca7bc57d40fdd33110f95e903aa
MD5 f51e54c4f4af2e6a6feb05f34da83322
BLAKE2b-256 86c563addb950252a5f2413048773641234b11bb9ba39420d41b99fbedb5eb44

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page