ladybug_comfort.chart.polygonpmv module

Object for plotting a PMV comfort polygon on a Psychrometric Chart.

class ladybug_comfort.chart.polygonpmv.PolygonPMV(psychrometric_chart, rad_temperature=None, air_speed=None, met_rate=None, clo_value=None, external_work=None, comfort_parameter=None)[source]

Bases: object

Object to plot a PMV comfort polygon on a Psychrometric Chart.

Parameters:
  • psychrometric_chart – A ladybug-core PsychrometricChart object on which the PMV comfort polygon will be plot.

  • rad_temperature – A list of numbers for the mean radiant temperature in Celsius. If None, a polygon for operative temperature will be plot, assuming that radiant temperature and air temperature are the same. (Default: None).

  • air_speed – A list of numbers for the air speed values in m/s. If None, a low air speed of 0.1 m/s wil be used for all polygons. (Default: None).

  • met_rate – A list of numbers for the metabolic rate in met. If None, a met rate of 1.1 met will be used for all polygons, indicating a human subject who is seated, typing. (Default: None).

  • clo_value – A list of numbers for the clothing level in clo. If None, a clo level of 0.7 clo will be used for all polygons, indicating a human subject with a long sleeve shirt and pants. (Default: None).

  • external_work – A list of numbers for the external work in met. If None, a met rate of 0 met will be used for all polygons, indicating a human subject who is seated. (Default: None).

  • comfort_parameter – Optional PMVParameter object to specify parameters under which conditions are considered acceptable. If None, default will assume a PPD threshold of 10%, no absolute humidity constraints and a still air threshold of 0.1 m/s.

Properties:
  • psychrometric_chart

  • rad_temperature

  • air_speed

  • met_rate

  • clo_value

  • external_work

  • comfort_parameter

  • polygon_count

  • left_comfort_lines

  • right_comfort_lines

  • left_comfort_line

  • right_comfort_line

  • comfort_polygons

  • merged_comfort_polygon

  • comfort_values

  • comfort_data

  • merged_comfort_values

  • merged_comfort_data

  • is_comfort_too_hot

  • is_comfort_too_cold

ToString()[source]

Overwrite .NET ToString.

comfort_polylines(polygon_index)[source]

Get the left and right Polyline2D that define a PMV polygon comfort range.

Parameters:

polygon_index – Integer for the comfort polygon for which min and max temperature will be computed.

Returns:

The left and right Polyline2D that define the comfort range.

create_collection(value_list, polygon_name=None)[source]

Create a data collection of comfort data values from a list of values.

Parameters:
  • value_list – A list of data that align with the number of points in the underlying psychrometric chart

  • polygon_name – An optional name to be used to create to the data collection metadata.

evaluate_night_flush_polygon(polygon, outdoor_temperature, night_below_comfort=3.0, time_constant=8, tolerance=0.01)[source]

Evaluate the night flush strategy polygon in relation to the data points.

Parameters:
  • polygon – A tuple of Polyline2D and LineSegment2D that form a closed polygon on the psychrometric chart for the night flushing polygon.

  • outdoor_temperature – An annual hourly continuous data collection of outdoor temperature in Celsius, which will be used to evaluate if previous hours are cool enough to benefit from night flushing.

  • night_below_comfort – A number in degrees Celsius representing the minimum temperature below the maximum comfort temperature that the outdoor temperature must drop at night in order to count towards the Night Flush polygon. (Default: 3C).

  • time_constant – A number that represents the number of hours that a theoretical building can passively maintain its temperature. This is used to determine how many hours a space can maintain the coolth of the night_below_comfort before conditions drive it out of the comfort polygon. The better-insulated a building is and the higher its thermal mass, the greater this number can be.

  • tolerance – The minimum difference between vertices below which vertices are considered the same. (Default: 0.01).

evaluate_passive_solar(incident_irradiance, solar_heat_capacity=50, time_constant=8, balance_temperature=None)[source]

Evaluate the psychrometric chart data points in relation to passive heating.

Parameters:
  • incident_irradiance – An annual hourly continuous data collection of irradiance (or radiation) in W/m2 (or Wh/m2) that aligns with the data points on the psychrometric chart. The irradiance values should be incident on the orientation of the passive solar heated windows. So using global horizontal radiation assumes that all windows are skylights (like a greenhouse). The directional_irradiance method on the ladybug core Wea class can be used to get irradiance data for a specific surface orientation.

  • solar_heat_capacity – A number representing the amount of outdoor solar flux (W/m2) that is needed to raise the temperature of a theoretical building by 1 degree Celsius. The lower this number, the more efficiently the space is able to absorb passive solar heat. The default assumes a relatively small passively solar heated zone without much mass. A higher number will be required the larger the space is and the more mass that it has. (Default: 50 W/m2)

  • time_constant – A number that represents the number of hours that a theoretical building can passively maintain its temperature. This is used to determine how many hours a space can maintain the warmth of the sun before conditions drive it out of the comfort polygon. The better-insulated a building is and the higher its thermal mass, the greater this number can be. (Default: 8).

  • balance_temperature – The balance temperature of the building in Celsius when accounting for all internal heat. Must be greater or equal to 5 C. If None, it will be assumed that the passively-heated space has no internal heat gains and all passive solar potential will be evaluated from the coldest comfort temperature. (Default: None).

Returns:

A tuple of two values. The first is a list of 0/1 values for whether the data points can be passively solar heated. The second is the maximum temperature delta from the balance_temperature (in Celsius) that the passive solar heating was able to support.

evaluate_polygon(polygon, tolerance=0.01)[source]

Evaluate a strategy polygon in relation to the data points of the chart.

Parameters:
  • polygon – A tuple of Polyline2D and LineSegment2D that form a closed polygon on the psychrometric chart.

  • tolerance – The minimum difference between vertices below which vertices are considered the same. (Default: 0.01).

Returns:

A list of 0 and 1 values for whether data points lie inside the polygon. These can be passed to the create_collection method on this class to get a data collection for the time inside the polygon.

evaporative_cooling_polygon()[source]

Get a tuple of Polyline2D and LineSegment2D for evaporative cooling polygon.

This will be None if the polygon does not fit on the chart.

fan_use_polygon(air_speed=1.0)[source]

Get a tuple of Polyline2D and LineSegment2D for use of fans in the space.

This will be None if the polygon does not fit on the chart.

Parameters:

air_speed – The air speed around the occupants that the fans create in m/s. Note that values above 1 m/s tend to blow papers around. (Default: 1.0 m/3)

internal_heat_polygon(balance_temperature=12.8)[source]

Get a tuple of Polyline2D and LineSegment2D for an internal heat gain polygon.

This will be None if the polygon does not fit on the chart.

Parameters:

balance_temperature – The balance temperature of the building in Celsius when accounting for all internal heat. Must be greater or equal to 5 C. In order for this method to not return None, this value must be less than the coldest temperature of the merged comfort polygon. (Default: 12.8 C)

max_min_air_temperatures(polygon_index, rel_humid)[source]

Get the max and min air temperature for a comfort polygon at a relative humid.

Parameters:
  • polygon_index – Integer for the comfort polygon for which min and max temperature will be computed.

  • rel_humid – A list of relative humidity values for which air temperature will be computed.

Returns:

A list of tuples where each tuple contains two air temperature values in Celsius. The first air temperature is the minimum temperature that meets the PPD threshold. The second is the maximum that meets the PPD threshold

night_flush_polygon(temperature_above_comfort=12)[source]

Get a tuple of Polyline2D and LineSegment2D for a night flushing polygon.

This will be None if the polygon does not fit on the chart.

Parameters:

temperature_above_comfort – A number in degrees Celsius representing the maximum daily temperature above the comfort range which can still be counted in the Night Flush polygon. (Default: 12 C).

passive_solar_polygon(max_temperature_delta, balance_temperature=None)[source]

Get a tuple of Polyline2D and LineSegment2D for a passive solar polygon.

This will be None if the polygon does not fit on the chart.

Parameters:
  • max_temperature_delta – The maximum temperature delta from the balance temperature (in Celsius) that passive solar heating is able to support. This can be obtained by running the evaluate_passive_solar method on this class

  • balance_temperature – The balance temperature of the building in Celsius when accounting for all internal heat. Must be greater or equal to 5 C. If None, it will be assumed that the passively-heated space has no internal heat gains and all passive solar potential will be evaluated from the coldest comfort temperature. (Default: None).

shade_line(balance_temperature=None)[source]

Get a Polyline2D or LineSegment2D for the line above which shade is needed.

The purpose of this line is to show which other polygons may not work as intended if there is no shade available. This will be None if the line does not fit on the chart.

Parameters:

balance_temperature – An optional balance temperature of the building to which the shade is applied (Celsius). Must be greater or equal to 5 C. In order for this method to not return None, this value must be less than the coldest temperature of the merged comfort polygon. If None, the shade line will be at the lower edge of the comfort polygon, essentially assuming that the shade is applied directly to the occupant, who is not inside of a building.

DELTA_TEMP_TYPE = Temperature Delta
TEMP_TYPE = Temperature
property air_speed

Tuple of air speed values in m/s.

property clo_value

Tuple of clothing level of the human subject in clo.

  • 1 clo = Three-piece suit

  • 0.5 clo = Shorts + T-shirt

  • 0 clo = No clothing

  • If left blank, default is set to 0.85 clo.

property comfort_data

A tuple of data collections or 0/1 values for each of the comfort polygons.

property comfort_parameter

PMV comfort parameters that are assigned to this object.

property comfort_polygons

A tuple of tuples where each sub-tuple defines one comfort polygon.

Sub-tuple comfort polygons consist of four or five Polyline2D or LineSegment2D that are ordered as follows (left, bottom, right, top).

property comfort_values

A tuple of tuples with each sub-tuple representing one of comfort polygons.

Each sub-tuple contains 0/1 values for whether the point is inside the comfort polygon or not.

property external_work

Tuple of the work done by the human subject in met.

property is_comfort_too_cold

Boolean to note whether comfort polygons are off the chart on the cold side.

property is_comfort_too_hot

Boolean to note whether comfort polygons are off the chart on the hot side.

property left_comfort_line

A single Polyline2D for the left of the merged comfort polygons.

property left_comfort_lines

Tuple of Polyline2D for the left of the comfort polygons.

property merged_comfort_data

A data collection or 0/1 for whether the data is in merged comfort polygon.

property merged_comfort_polygon

A tuple of Polyline2D or LineSegment2D that define the merged comfort polygon.

Comfort polygon consists of four or five Polyline2D or LineSegment2D that are ordered as follows (left, bottom, right, top).

property merged_comfort_values

A tuple of 0/1 for whether each point is in the merged comfort polygon or not.

property met_rate

Tuple of metabolic rate in met.

  • 1 met = Metabolic rate of a resting seated person

  • 1.2 met = Metabolic rate of a standing person

  • 2 met = Metabolic rate of a walking person

  • If left blank, default is set to 1.1 met (for seated, typing).

property polygon_count

Integer for the number of comfort polygons contained on the object.

property psychrometric_chart

The ladybug PsychrometricChart object on which the polygons are plot.

property rad_temperature

Tuple of mean radiant temperature (MRT) values in degrees C.

None indicates that the radiant temperature is the same as the air temperature.

property right_comfort_line

A single Polyline2D for the right of the merged comfort polygons.

property right_comfort_lines

Tuple of Polyline2D for the right of the comfort polygons.