Skip to main content

Dragonfly extension for energy simulation.

Project description

Dragonfly

Build Status Coverage Status

Python 3.10 Python 3.7 Python 2.7 IronPython

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

  1. Clone this repo locally
git clone git@github.com:ladybug-tools/dragonfly-energy

# or

git clone https://github.com/ladybug-tools/dragonfly-energy
  1. Install dependencies:
cd dragonfly-energy
pip install -r dev-requirements.txt
pip install -r requirements.txt
  1. Run Tests:
python -m pytest tests/
  1. Generate Documentation:
sphinx-apidoc -f -e -d 4 -o ./docs ./dragonfly_energy
sphinx-build -b html ./docs ./docs/_build/docs

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dragonfly_energy-1.27.90.tar.gz (124.7 kB view details)

Uploaded Source

Built Distribution

dragonfly_energy-1.27.90-py2.py3-none-any.whl (148.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file dragonfly_energy-1.27.90.tar.gz.

File metadata

  • Download URL: dragonfly_energy-1.27.90.tar.gz
  • Upload date:
  • Size: 124.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for dragonfly_energy-1.27.90.tar.gz
Algorithm Hash digest
SHA256 13bd16e583e42571534e7bfea6ff0d3242fc0bef5619a4f0fcfa5224273712de
MD5 6342a159f16c0a4249cf3431955f2272
BLAKE2b-256 cbc360687c2bf72b021c519ff404b5d2f5789916ca335892a47bdbe00b7b5f7b

See more details on using hashes here.

File details

Details for the file dragonfly_energy-1.27.90-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for dragonfly_energy-1.27.90-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 12714aa14f8228b6052d28e3b2644dcfaf7cca925ff8c3e142c80d165cc2fd87
MD5 0d17d40afe3d42d77023bbc682dd92c2
BLAKE2b-256 39039775e8629e59fc1e38b7ac02acb3a23e9beac619cb5fbb6e33b90744cfc7

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