dragonfly-energy
Dragonfly extension for energy simulation, including integration with the EnergyPlus simulation engine, the OpenStudio SDK, and the URBANopt SDK.
Installation
pip install dragonfly-energy
To check if Dragonfly command line interface is installed correctly
use dragonfly-energy --help.
QuickStart
import dragonfly_energy
API Documentation
Usage
Since the building geometry in dragonfly is fundamentally 2D, creating a model of a building and assigning energy model properties can be done with a few lines of code. Here is an example:
from dragonfly.model import Model
from dragonfly.building import Building
from dragonfly.story import Story
from dragonfly.room2d import Room2D
from dragonfly.windowparameter import SimpleWindowRatio
from honeybee_energy.lib.programtypes import office_program
# create the Building object
pts_1 = (Point3D(0, 0, 3), Point3D(0, 10, 3), Point3D(10, 10, 3), Point3D(10, 0, 3))
pts_2 = (Point3D(10, 0, 3), Point3D(10, 10, 3), Point3D(20, 10, 3), Point3D(20, 0, 3))
pts_3 = (Point3D(0, 10, 3), Point3D(0, 20, 3), Point3D(10, 20, 3), Point3D(10, 10, 3))
pts_4 = (Point3D(10, 10, 3), Point3D(10, 20, 3), Point3D(20, 20, 3), Point3D(20, 10, 3))
room2d_1 = Room2D('Office1', Face3D(pts_1), 3)
room2d_2 = Room2D('Office2', Face3D(pts_2), 3)
room2d_3 = Room2D('Office3', Face3D(pts_3), 3)
room2d_4 = Room2D('Office4', Face3D(pts_4), 3)
story = Story('OfficeFloor', [room2d_1, room2d_2, room2d_3, room2d_4])
story.solve_room_2d_adjacency(0.01)
story.set_outdoor_window_parameters(SimpleWindowRatio(0.4))
story.multiplier = 4
building = Building('OfficeBuilding', [story])
# assign energy properties
for room in story.room_2ds:
room.properties.energy.program_type = office_program
room.properties.energy.add_default_ideal_air()
# create the Model object
model = Model('NewDevelopment', [building])
Once a Dragonfly Model has been created, it can be converted to a honeybee Model, which can then be converted to IDF format like so:
# create the dragonfly Model object
model = Model('NewDevelopment', [building])
# serialize the dragonfly Model to Honeybee Models and convert them to IDF
hb_models = model.to_honeybee('Building', use_multiplier=False, tolerance=0.01)
idfs = [hb_model.to.idf(hb_model) for hb_model in hb_models]
The dragonfly model can also be serialized to a geoJSON to be simulated with URBANopt.
from ladybug.location import Location
# create the dragonfly Model object
model = Model('NewDevelopment', [building])
# create a location for the geoJSON and write it to a folder
location = Location('Boston', 'MA', 'USA', 42.366151, -71.019357)
sim_folder = './tests/urbanopt_model'
geojson, hb_model_jsons, hb_models = model.to.urbanopt(model, location, folder=sim_folder)
Local Development
- Clone this repo locally
git clone git@github.com:ladybug-tools/dragonfly-energy
# or
git clone https://github.com/ladybug-tools/dragonfly-energy
- Install dependencies:
cd dragonfly-energy
pip install -r dev-requirements.txt
pip install -r requirements.txt
- Run Tests:
python -m pytest tests/
- Generate Documentation:
sphinx-apidoc -f -e -d 4 -o ./docs ./dragonfly_energy
sphinx-build -b html ./docs ./docs/_build/docs
Metadata
Release files for dragonfly-energy 1.46.53
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dragonfly_energy-1.46.53.tar.gz | 192.9 kB | Without provenance | Details for dragonfly_energy-1.46.53.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dragonfly_energy-1.46.53-py3-none-any.whl | Python 3 | none | any | Details for dragonfly_energy-1.46.53-py3-none-any.whl |
Total release size: 412.3 kB
Release files / dragonfly_energy-1.46.53.tar.gz
| Download URL | dragonfly_energy-1.46.53.tar.gz |
|---|---|
| Size | 192.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
06b7e8433a07da2057c15c15231e8dfe1e52b7d3b50e6d472f61ac0c4132c7db
|
|
BLAKE2b-256 checksum How to use checksums |
fed2b7c77f06d34e221bf0316aeaf8da0e57cf1e930a1650c6ddcdb3188b0b96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.15
|
Release files / dragonfly_energy-1.46.53-py3-none-any.whl
| Download URL | dragonfly_energy-1.46.53-py3-none-any.whl |
|---|---|
| Size | 219.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5167c0d71891a7091e1325f902cab57878d104bdb2d955180319d1e2ece89c01
|
|
BLAKE2b-256 checksum How to use checksums |
8b541a785957f748758268219af4b3e5b5a937d7bc3848bbb40316203d9c3d00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.15
|
Security for dragonfly-energy 1.46.53
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.