Close
About
FAQ
Home
Collections
Login
USC Login
Register
0
Selected
Invert selection
Deselect all
Deselect all
Click here to refresh results
Click here to refresh results
USC
/
Digital Library
/
University of Southern California Dissertations and Theses
/
Landscape and building solar loads: development of a computer-based tool to aid in the design of landscape to reduce solar gain and energy consumption in low-rise residential buildings
(USC Thesis Other)
Landscape and building solar loads: development of a computer-based tool to aid in the design of landscape to reduce solar gain and energy consumption in low-rise residential buildings
PDF
Download
Share
Open document
Flip pages
Contact Us
Contact Us
Copy asset link
Request this asset
Transcript (if available)
Content
LANDSCAPE & BUILDING SOLAR LOADS:
DEVELOPMENT OF A COMPUTER BASED TOOL TO AID IN THE DESIGN OF
LANDSCAPE TO REDUCE SOLAR GAIN AND ENERGY CONSUMPTION IN
LOW-RISE RESIDENTIAL BUILDINGS
by
Aran Morrow Osborne
A Thesis Presented to the
FACULTY OF THE SCHOOL OF ARCHITECTURE
UNIVERSITY OF SOUTHERN CALIFORNIA
In Partial Fulfilment of the
Requirements for the Degree
MASTER OF BUILDING SCIENCE
August 2009
Copyright 2009 Aran Morrow Osborne
ii
EPIGRAPH
It may be that some little root of the Sacred Tree still lives.
Nourish it then, that it may leaf and bloom and fill with singing
birds. Hear me, not for myself, but for my people… Hear me
that they may once more go back into the Sacred Hoop and find
the good red road, the shielding tree.
- Black Elk
iii
ACKNOLWEDGEMENTS
Several people contributed their time and energy toward the development and
completion of this thesis. I would like to extend my many thanks to Professor
Thomas Spiegelhalter for his guidance and enthusiasm; to Professor Marc Schiler for
his extensive knowledge and support during program completion; to Professor Karen
Kensek for her invaluable suggestions during program development and verification;
to Kimberly Wiebe for helping me learn Visual Basic; and to my fellow Master of
Building Science and Architecture students for helping to make my experience at the
University of California an unforgettable one.
I would also like to send much love and thanks to my parents, Don and Gail; to my
sister, Jaime; to Rafaela; and to all my friends for their support throughout my time
at USC.
iv
TABLE OF CONTENTS
EPIGRAPH ii
ACKNOLWEDGEMENTS iii
LIST OF TABLES vii
LIST OF FIGURES viii
ABSTRACT xiii
CHAPTER 1 1
1.1 Introduction 1
1.2 Hypothesis Statement 1
1.3 Importance 2
1.4 Study Boundaries 6
1.5 Scope of Work 6
CHAPTER 2 8
2.1 Microclimatic Landscape Design 8
2.1.1 Macroclimatology 9
2.1.2 Landscape and the Microclimate 9
2.1.3 Landscaping for the Microclimate 11
2.2 Potential of Landscape to Reduce Heating/Cooling Loads in Buildings 14
2.3 Calculating Heating and Cooling Loads 16
2.3.1 Principles of Heat Transfer 16
2.3.2 Cooling Loads 22
2.4 Shading 27
2.4.1 Solar Radiation 27
2.4.2 Terrestrial Radiation 30
2.4.3 Radiation and Plants 30
2.4.4 Calculating Cooling Effects of Tree Shade 32
2.4.5 Previous Studies 33
2.5 Wind Breaks 37
2.5.1 Wind 37
2.5.2 Effect of Plants on Wind 40
2.5.3 Calculating Energy Saving Potential of Wind Breaks 45
2.5.3 Previous Studies 47
2.6 Evapotranspiration 49
2.6.1 Calculating Evapotranspiration 50
2.6.2 Previous Studies 54
2.7 Effect of Trees on the Urban Heat Island 58
2.8 Energy-Efficient Residential Landscape – Design Approaches 61
2.8.1 Hot, Arid Climates 62
2.8.2 Hot, Humid Climates 64
2.8.3 Temperate Climates 66
2.8.4 Cool Climates 68
2.9 Landscape Elements 71
2.9.1 California Climate Zones 71
2.9.2 Native Vegetation 73
v
CHAPTER 3 75
3.1 Instantaneous Cooling Load Calculation 75
3.2 Shading – Algorithm and Savings Calculations 77
3.2.1 Equations for Solar Azimuth and Altitude Angles 77
3.2.2 Determining Plane for Shading Calculation 79
3.2.3 Projection of Shade Pattern onto Wall Plane 83
3.2.4 Calculating Savings from Shading 83
3.3 Wind Breaks 85
3.4 Evapotranspiration 85
3.5 Tree Library and Database 86
3.5.1 Vegetation Habitats 86
3.5.2 Tree Database Development 89
CHAPTER 4 91
4.1 What The Tool Does 91
4.2 Visual Basic 91
4.3 Development Approach 92
4.3.1 Scope 93
4.3.2 Requirements 94
4.3.3 Design 96
4.3.4 Code 99
4.4.1 Screen 1 – Welcome Screen 104
4.4.2 Screen 2 – Building Information 108
4.4.3 Screens 3, 4 & 5 – Fenestration 109
4.4.4 Screen 6 – Tree Selection 110
4.4.5 Screen 7 - Tree Placement 113
4.4.6 Scanline Algorithm & Instantaneous Cooling Load Calculations 116
4.4.6 Screen 9 – Savings Output Screen 120
CHAPTER 5 122
5.1 Verification of Program Code 122
5.1.1 Verification of Tree Polygon Construction Code 122
5.1.2 Verification of Scanline Algorithm Code 124
5.1.3 Verification of Matrix Transformations 126
5.1.4 Verification of Transmissivity Multiplier 128
5.2 Comparison to HEED 130
5.2.1 Overview of HEED 130
5.2.2 Comparison of Thesis Program to HEED 131
5.2.3 Thesis Program and HEED Inputs 132
5.2.4 Comparison of Outputs for East Window 134
5.2.5 Comparison of Outputs For South Window 143
5.2.6 Comparison of Outputs for West Window 145
5.3 Comparison to ECOTECT 148
5.3.1 Overview of ECOTECT 148
5.3.2 Thesis Program and Ecotect Inputs 153
5.3.3 Comparison of Outputs 155
vi
CHAPTER 6 167
6.1 Comparison to Previous Research Publications 167
6.1.1 Previous Research Comparison 1 167
6.1.2 Previous Research Comparison 2 170
6.1.3 Previous Research Comparison 3 172
6.2 Conclusions Regarding Published Research Comparisons 176
6.3 Overall Conclusions 176
CHAPTER 7 180
7.1 Increasing Geographical Boundaries 180
7.2 Increasing Tree Library & Including Other Landscape Elements 181
7.3 Expanding Sun Shading Analysis 181
7.4 Including Wind Break Analysis 182
7.5 Including Evapotranspirative Cooling Analysis 182
7.6 User Interface 183
7.7 Integration into Existing Software 183
7.8 Increased Boundary of Analysis 184
7.9 Improvement of Program Code 184
7.10 Cost and Payback Analysis 185
7.11 Additional Verification Analysis 185
BIBLIOGRAPHY 186
APPENDICES 191
APPENDIX A: TREE LIBRARY DATA 191
APPENDIX B: PROGRAM CODE 192
APPENDIX C: SCANLINE ALGORITHM VERIFICATION 280
APPENDIX D: HEED VS. PROGRAM – UNSHADED 12-DAY AND SINGLE DAY
ENERGY GAIN ANALYSIS 284
vii
LIST OF TABLES
Table 1: Transmissivity Multiplier Test Results 129
Table 2: Comparison of ECOTECT and Program Solar Angles for March 21 158
Table 3: Comparison of ECOTECT and Program Solar Angles for November 21 162
Table 4: ECOTECT vs Program Shaded Areas for East Wall 163
Table 5: ECOTECT vs Program Shaded Areas South Wall 163
Table 6: ECOTECT vs. Program Shaded Areas West Wall 164
Table 7: ECOTECT vs. Thesis Program Insolation Test Results 165
Table 8: Estimated Energy Savings from Tree Located Along West Exposure 169
Table 9: Thesis Program Savings Estimates for Various Tree Locations 175
Table A-1: Tree Library Data 191
viii
LIST OF FIGURES
Figure 1: U.S Consumption of Total Energy by End-Use Sector 3
Figure 2: Interaction Between Microclimate and Building Envelopes 10
Figure 3: Thermal Resistance Across Composite Wall Section 19
Figure 4: Wavelength Distribution of Solar Energy 28
Figure 5: Solar Radiation Reflection, Absorption & Transmission by Plants 31
Figure 6: Annual Energy Use for Various Tree Positions for House in Sacramento 35
Figure 7: Effect of Insulation Level on Energy Savings 36
Figure 8: Los Angeles Annual Wind Rose 39
Figure 9: New York City Annual Wind Rose 40
Figure 10: Representation of Wind Speed, Height, and Turbulence Relationship 41
Figure 11: Wind Speeds Around Impermeable Windbreak 43
Figure 12: Wind Speeds Around Permeable Windbreak 44
Figure 13: Reduction in Wind Speed for Windbreaks of Varying Permeability 44
Figure 14: Effect of Windbreaks on Building Energy Consumption 48
Figure 15: Leaf Structure and Evapotranspiration 50
Figure 16: Effects of Shading and Evapotranspiration on a Well-Insulated House 57
Figure 17: Urban Temperature and Electricity Use Trend 59
Figure 18: Hot, Arid Regions of the United States 62
Figure 19: Hot, Humid Regions of the United States 64
Figure 20: Temperate Regions of the United States 66
Figure 21: Cool Climate Regions of the United States 69
ix
Figure 22: California Energy Commission Climate Zones 72
Figure 23: California 24 Climate Zone Map 73
Figure 24: California Vegetation Types and Habitat 74
Figure 25: Azimuth and Altitude Angles 77
Figure 26: Orientation of X, Y, Z Planes 80
Figure 27: Vegetation Types and Habitats for Los Angeles 86
Figure 28: Steps in Program Development 93
Figure 29: Variable Flow Chart for Energy Savings Calculations 95
Figure 30: Program Flow Chart 98
Figure 31: Los Angeles TMY3 Weather Data Program Database 100
Figure 32: Tree Library Database 102
Figure 33: Program Welcome Screen 104
Figure 34: User Input Relation to Los Angeles Weather Database 105
Figure 35: Welcome Screen with Help File Dialog Box 106
Figure 36: Welcome Screen with Sample Missing Value Error Message 107
Figure 37: Welcome Screen with Wrong Data Type Error Message 107
Figure 38: Building Information Input Screen 108
Figure 39: Typical Fenestration Input Screen 109
Figure 40: Tree Selection Input Screen 110
Figure 41: Tree Selection Input Confirmation Screen 111
Figure 42: User Input Relation to Tree Library Database 112
Figure 43: Tree Placement Input Screen 114
Figure 44: Diagram Of Interaction of Window and Tree Shadow Polygons 117
x
Figure 45: Scanline Algorithm Shadow Area Approximation Concept 118
Figure 46: Savings Output Screen 121
Figure 47: Tree Points as Calculated and Plotted in Excel 123
Figure 48: Tree Polygon As Plotted in Visual Basic 124
Figure 49: Excel Scanline Verification 125
Figure 50: Visual Basic Scanline Verification 125
Figure 51: HEED House Model 133
Figure 52: HEED Output of East Window Average Annual Energy Gain 135
Figure 53: Program Output of East Window Annual Energy Gain 136
Figure 54: HEED Twelve-Day East Window Energy Gain Analysis for March 22 138
Figure 55: Program Single-Day East Window Energy Gain Analysis for March 22 138
Figure 56: Program Single-Day East Window Energy Gain Analysis for March 21 139
Figure 57: HEED Twelve-Day East Window Energy Gain Analysis for June 22 140
Figure 58: Program Single-Day East Window Energy Gain Analysis for June 22 140
Figure 59: HEED Twelve-Day East Window Energy Gain Analysis for Sept 22 141
Figure 60: Program Single-Day East Window Energy Gain Analysis for Sept 22 141
Figure 61: HEED Twelve-Day East Window Energy Gain Analysis for Dec 22 142
Figure 62: Program Single-Day East Window Energy Gain Analysis for Dec 22 142
Figure 63: HEED Output of South Window Average Annual Energy Gain 143
Figure 64: Program Output of South Window Annual Energy Gain 144
Figure 65: HEED Output of West Window Average Annual Heat Gain 146
Figure 66: Program Output of West Window Annual Energy Gain 147
Figure 67: Example ECOTECT Model with Sun-Path Diagram 149
xi
Figure 68: Example ECOTECT Model View From the Sun 150
Figure 69: ECOTECT Shading Casting Example 151
Figure 70: ECOTECT Sun View Shading Casting Example 151
Figure 71: ECOTECT House Model 154
Figure 72: Excel Sun View of East-Facing Wall at 9:00 am 156
Figure 73: ECOTECT Sun View of East-Facing Wall at 9:00 am 156
Figure 74: Excel Sun View of South-Facing Wall at 9:00 am 156
Figure 75: ECOTECT Sun View of South-Facing Wall at 9:00 am 156
Figure 76: Excel Sun View of South-Facing Wall at 4:00 pm 156
Figure 77: ECOTECT Sun View of South-Facing Wall at 4:00 pm 156
Figure 78: Excel Sun View of West-Facing Wall at 4:00 pm 157
Figure 79: ECOTECT Sun View of West-Facing Wall at 4:00 pm 157
Figure 80: Excel 2D Polygon Projection on November 21 at 9:00 am 160
Figure 81: ECOTECT 2D Polygon Projection on November 21 at 9:00 am 160
Figure 82: Excel 2D Polygon Projection on November 21 at 12:00 pm 160
Figure 83: ECOTECT 2D Polygon Projection on November 21 at 12:00 pm 160
Figure 84: Excel 2D Polygon Projection on November 21 at 2:00 pm 160
Figure 85: ECOTECT 2D Polygon Projection on November 21 at 2:00 pm 160
Figure 86: Excel 2D Polygon Projection on June 21 at 12:00 pm 161
Figure 87: ECOTECT 2D Polygon Projection on June 21 at 12:00 pm 161
Figure 88: Air-Conditioning Savings from Landscape for Selected U.S Cities 168
Figure C-1: Excel Scanline Verification Test 2 280
Figure C-2: Visual Basic Scanline Verification Test 2 280
xii
Figure C-3: Excel Scanline Verification Test 3 281
Figure C-4: Visual Basic Scanline Verification Test 3 281
Figure C-5: Excel Scanline Verification Test 4 282
Figure C-6: Visual Basic Scanline Verification Test 4 282
Figure C-7: Excel Scanline Verification Test 5 283
Figure C-8: Visual Basic Scanline Verification Test 5 283
Figure D-1: HEED Twelve-Day South Window Energy Gain Analysis for March 284
Figure D-2: Program Single-Day South Window Energy Gain Analysis for March 284
Figure D-3: HEED Twelve-Day South Window Energy Gain Analysis for June 285
Figure D-4: Program Single-Day South Window Energy Gain Analysis for June 285
Figure D-5: HEED Twelve-Day South Window Energy Gain Analysis for Sept 286
Figure D-6: Program Single-Day South Window Energy Gain Analysis for Sept 286
Figure D-7: HEED Twelve-Day South Window Energy Gain Analysis for Dec 287
Figure D-8: Program Single-Day South Window Energy Gain Analysis for Dec 287
Figure D-9: HEED Twelve-Day West Window Energy Gain Analysis for March 288
Figure D-10: Program Single-Day West Window Energy Gain Analysis for March 288
Figure D-11: HEED Twelve-Day West Window Energy Gain Analysis for June 289
Figure D-12: Program Single-Day West Window Energy Gain Analysis for June 289
Figure D-13: HEED Twelve-Day West Window Energy Gain Analysis for Sept 290
Figure D-14: Program Single-Day West Window Energy Gain Analysis for Sept 290
Figure D-15: HEED Twelve-Day West Window Energy Gain Analysis for Dec 291
Figure D-16: Program Single-Day West Window Energy Gain Analysis for Dec 291
xiii
ABSTRACT
The aim of this project was to develop a computer-based simulation tool to provide
information on landscape design that could be implemented to help reduce solar gain
and energy consumption in low-rise residential buildings. The program recommends
specific landscape design strategies based on user inputs and also outputs potential
energy savings should the strategies be applied. Literature review was performed to
obtain information regarding the potential benefits of landscape design on building
loads and energy performance and also to determine what information would be
required to recommend an effective landscape design. Published equations and data
as well as previous programming approaches were referenced to help form the
program algorithms. Software such as MATLAB, Microsoft Excel, HEED, and
ECOTECT were used in the verification of program code, equations, and outputs.
Comparisons to previous research publications were also used in the validation of the
program calculations. The results of the verification and validation demonstrated
that expected savings outputs were acceptable and that the program functioned as
intended. The final result is a freestanding Visual Basic program that can be
effectively and accurately used in the development of energy-efficient landscape
designs.
1
CHAPTER 1
1.1 INTRODUCTION
Diminishing resources and increasing fuel prices continue to drive the need for
greater energy efficiency and more effective conservation strategies, especially in
buildings. Resources are typically funnelled into researching technological
solutions; however plants and their innate ability to reduce the energy demand in
adjacent buildings are often overlooked. Extensive research has been conducted
regarding the ability of plants to reduce solar heat gain into buildings, provide
cooling through evapotranspiration, and also to help prevent convective heat loss by
acting as wind breaks. This thesis seeks to investigate the effects of landscape on
low-rise, residential buildings, and compile this information into a simple, computer-
based tool. The purpose of the tool will be to analyze a specific building, in terms of
location and construction data, and provide landscape design suggestions along with
corresponding energy and cost savings that could be achieved.
1.2 HYPOTHESIS STATEMENT
It is possible to develop a computer-based tool that, when provided with inputs from
the user, can
2
1) Recommend specific landscape design strategies for low-rise residential
buildings that can potentially reduce energy consumption within the
building, and
2) Output potential energy and cost savings should the landscape strategies be
implemented.
1.3 IMPORTANCE
Global warming, resource depletion and, in general, the environmental crisis are
growing concerns in contemporary society. Mounting scientific evidence clearly
demonstrates the need for humans to change the manner in which we live, build, and
use resources. Although much current attention is aimed at automobiles with their
high rate of fuel consumption and production of green house gases, a U.S
Department of Energy survey published in 2007 reports that transportation represents
only 28.5% of total energy consumption by end-use sector. The same survey reports
industrial consumption at 31.9%, commercial consumption at 18.1%, and residential
consumption at 21.4%.
1
See Figure 1 below.
1
United States Department of Energy, Energy Information Administration, 2008, Monthly Energy Review:
March 2008, United States Department of Energy, Washington, DC
3
Figure 1: U.S Consumption of Total Energy by End-Use Sector
2
Given the above statistics, substantial effort is being directed toward new and
“greener” energy production technologies to satisfy the high demand of the
industrial, commercial and residential sectors. Despite the promise that new methods
of power generation appear to present, there is increasing advocacy for adopting
energy conservation measures. For example, the Select Committee on Alternative
Fuel Sources in Ontario (Canada) recommends that energy conservation and
reduction represents a better strategy than new supply.
3
The Committee has
concluded that: “Conservation and efficiency measures can contribute to meeting
fuel and energy requirements and is of the view that the reduction of energy demand
2
United States Department of Energy, Energy Information Administration, 2008, Monthly Energy Review:
March 2008, Table 2.1
3
The Canadian Energy Efficiency Alliance Select Committee on Alternative Fuel Sources in Ontario, 2002, The
Benefits of Energy Efficiency Management: Creating Jobs and Supporting the Economy While Addressing
Climate Change, The Canadian Energy Efficiency Alliance, Toronto
4
is more important than new supply.”
4
Demand-side energy management is of vital
importance in energy conservation throughout North America. As another example,
the United States government recently adopted an initiative to weatherize one million
homes annually, as well as to reduce greenhouse gas emissions by 80% by the year
2050.
5
Since buildings account for roughly half of total green house gas emissions in
the United States, focusing efforts on reduction of energy consumption at the
residential level can contribute significantly to achieving these objectives.
In the United States, buildings account for roughly 40% of total energy consumption,
with residential buildings comprising about 55% of that total.
6
While only a portion
of this percentage is attributable to low-rise residential buildings, over 50% of the
American population live in suburban locations characterized by the detached,
single-family house.
7
Such dwellings are typically isolated on large building lots and
are not often constructed using climate appropriate architecture or sustainable design.
Substantial information is now available for owners recommending the replacement
or retrofit of mechanical heating/cooling systems, lighting, appliances, as well as
renovating the architectural aspects of their homes (such as windows) in order to
lower energy consumption. Comparatively less information, however, is provided
4
The Canadian Energy Efficiency Alliance Select Committee on Alternative Fuel Sources in Ontario, The
Benefits of Energy Efficiency Management: Creating Jobs and Supporting the Economy While Addressing
Climate Change, 3
5
The White House, 2008, Energy & Environment, viewed September 2008,
http://www.whitehouse.gov/issues/energy_and_environment/
6
U.S Environmental Protection Agency Green Building Workgroup, 2004, Buildings and the Environment: A
Statistical Survey, United States Environmental Protection Agency, viewed September 2008,
http://www.epa.gov/greenbuilding/pubs/gbstats.pdf
7
Rutherford H. Platt, The Humane Metropolis (University of Massachusetts Press, 2006), 12
5
regarding the potential for achieving savings via intelligent site design and
landscape. In addition to savings, the importance of landscaping with native and
adapted plants is also becoming widely acknowledged. For example, the Leadership
in Energy and Environmental Design (LEED) ratings systems for New Construction
as well as New Development award credits for the use of native plants in
landscaping.
8
By incorporating native plants in energy efficient landscape design,
excessive irrigation requirements can also be avoided, which further contributes to
potential savings.
Landscaping to reduce energy consumption within a building can have considerable
impact on the performance of the house. Extensive research has been performed and
several publications have been produced that outline design guidelines and the
potential savings that can be achieved. Although such information exists, it is not
widely discussed or presented as a viable option to typical homeowners, and existing
publications are not always readily available in local bookstores or community
libraries. Computers and the Internet, however, are present and easily accessible in
roughly half of American homes today.
9
A computer-based information and simulation tool, designed for homeowners who
have little or no knowledge of landscape or energy-efficient site design, would be a
8
United States Green Building Council, 2008, LEED Rating Systems, United States Gren Building Council,
viewed September 2008, http://www.usgbc.org/DisplayPage.aspx?CMSPageID=222
9
United States Census Bureau, 2000, Home Computers and Internet Use in the United States, United States
Census Bureau, viewed September 2008, http://www.census.gov/population/www/socdemo/computer.html
6
valuable resource for individuals who seek to adopt alternative and passive strategies
around their property. A tool that prompts for simple inputs and provides concise and
instructive outputs can provide information to homeowners regarding climate
appropriate landscape strategies that can potentially reduce building energy
consumption.
1.4 STUDY BOUNDARIES
The tool focuses on existing low-rise residential buildings in the United States.
Specifically, one-story, single-family, detached homes are included in the scope of
the tool. The tool is not designed for analysis of landscape for high-rise buildings.
The program could be expanded to include tract or row housing. The boundary for
program development will be limited to the hot, arid climate of Los Angeles, but it is
anticipated that the tool could be expanded to include all climate zones across the
United States. Furthermore, the tool is intended for private use of individual
homeowners. This focus was selected as it was concluded, from information
provided above, that the suburban housing residential sector represents a substantial
area for reducing energy consumption.
1.5 SCOPE OF WORK
The intention of this thesis is to develop a computer-based tool that will prompt the
user for a specific set of inputs regarding the location, site, and construction of the
7
house and then provide recommendations for the type of tree or vegetation that
should be used and where to place it in relation to the house to achieve energy
savings. The program also provides the user with expected energy and cost savings
should the design suggestions be implemented. The final product will be a
freestanding Visual Basic program that can be downloaded from the Internet and
which will run on the Windows Platform.
8
CHAPTER 2
2.1 MICROCLIMATIC LANDSCAPE DESIGN
Microclimatic landscape design is the practice of manipulating objects in the
surrounding area to alter the local environmental conditions. The practice is mostly
employed to improve human comfort within a space, but can also be used to alter
exterior conditions in order to improve internal building conditions (thus reducing
energy use required to maintain occupant comfort).
A microclimate is described by a set of conditions for solar and terrestrial radiation,
wind, air temperature, humidity, and precipitation in a small outdoor space.
10
It is
usually on the scale of meters to tens of meters, unlike climate (or macroclimate),
which generally refers to meteorological conditions that prevail over a period of time
in a large region of hundreds of kilometres.
11
Effective microclimatic landscape
design requires knowledge of these prevailing climate conditions as well as an
understanding of the ways in which objects in the landscape effect site conditions to
create microclimates.
12
The following chapter discusses, in detail, the theory and methods of manipulating
microclimatic conditions through landscape design.
10
Robert D. Brown and Terry J. Gillespie, Microclimatic Landscape Design (Wiley, 1995), 1
11
ibid., 18
12
ibid., 2
9
2.1.1 MACROCLIMATOLOGY
The study and documentation of a particular climate region over a period of time is
known as macroclimatology, and it allows for the development of a set of climate
data. Such data records the variation in temperature, precipitation, incident solar
radiation, and many other variables that define the climatic or weather characteristics
and patterns of a particular region. These data often correlate to a given climate zone,
which in turn has a particular set of landscape design principles appropriate to the
occurring weather variations. These design guidelines are discussed in further detail
in section 2.7 below.
2.1.2 LANDSCAPE AND THE MICROCLIMATE
Unlike macroclimates, the specific microclimate of a location can be altered and
manipulated by various landscape elements within the space. That is, the prevailing
climate of an area interacts with objects in a landscape to create microclimates.
13
These interactions can have effects on air temperature, wind velocity, solar radiation,
and relative humidity; and can strongly influence the thermal comfort of people
within a landscape as well as affect the energy required to heat and/or cool a
building.
14
13
Brown et al., Microclimatic Landscape Design, 3
14
ibid., 3
10
2.1.2.1 Landscape and the Building Microclimate
The alteration of landscape to manipulate a microclimate can have a significant
impact on the energy use of a building within that microclimate. The performance of
a building is greatly affected by outdoor temperatures, incident solar radiation,
terrestrial radiation, and prevailing winds. These factors can add heat energy into the
building interior, can cause heat exchange via conductive heat transfer, or can
remove energy via convective heat loss from building surfaces. Figure 2 below
shows the interaction between the microclimatic and the building envelopes.
Figure 2: Interaction Between Microclimate and Building Envelopes
15
Each of the factors mentioned above affects the heating or cooling loads, and can
consequently be manipulated by the surrounding landscape. Trees, plants, and other
elements in the landscape microclimate can be used to filter radiation, cool
surrounding air temperatures, and reduce wind speeds incident on the building
surface. The reduction in energy consumption due to landscape-modified
15
Brown et al., Microclimatic Landscape Design, 83
11
microclimates is dependent on the construction of the building: well-insulated,
airtight buildings will benefit the least, while poorly insulated buildings will benefit
the most.
16
2.1.3 LANDSCAPING FOR THE MICROCLIMATE
As mentioned in the previous section, a landscape can have a strong influence on the
prevailing conditions in a microclimate. As such, appropriate microclimate design
requires 1) knowledge of prevailing climate conditions, 2) understanding of the ways
in which objects in the landscape affect climate to create microclimates, and 3)
methods for applying this knowledge, through landscape design, to create
microclimates that are comfortable for people and minimize the energy use of
buildings.
17
The practice of manipulating the landscape to improve living and comfort conditions
is not a new development. For centuries, humans have been strategically using and
altering the microclimate around built structures with the aim of improving thermal
conditions for comfort and survival. For example, the Cliff Palace pueblo in Mesa
Verde, New Mexico makes optimal use of existing landscape to create a liveable
microclimate. The pueblo is positioned in such a way that the overhang of the cliff
shades the building from the high-angled summer sun, but allows the low-angled
16
Brown et al., Microclimatic Landscape Design, 82
17
ibid., 3
12
summer sun to penetrate the space.
18
This effect allows the pueblo to keep cooler
during the summer, while allowing valuable solar-thermal heat gain during the
cooler winter months. This was possible through an empirical knowledge of sun
movements during the different seasons.
19
Another example of the use of landscape
to improve microclimate in earlier times is the walled gardens of Egypt.
20
Trees and
plants were used to block incident solar radiation, while pools of water were used to
provide a cooling effect.
Knowledge of microclimate also affected the architectural construction. For
instance, natives of the South Pacific constructed open homes of bamboo and palm
leaves to take advantage of available, cooling breezes in the hot, humid climate.
21
Plants have also been used in public spaces, such as in the example of the trees
placed along the edge of avenues in eighteenth-century Paris to reduce heat build-up
along the paved streets.
22
The use of trees in urban settings has important application
in present day cities, as the cooling potential of plants has the potential to help
reduce the negative effects of urban heat islands. This will be discussed later in this
chapter.
18
Knowles, RL, 1974, Energy and Form: An Ecological Approach to Growth, MIT Press, Massachusetts
19
Brown et al., Microclimatic Landscape Design, 20
20
ibid., 19
21
Moffat, AS and Schiler, M, 1981, Landscape Design That Saves Energy, Morrow, New York
22
ibid., 15
13
Microclimatic landscape design has also been practiced in North America, both by
the native people as well as the colonizing Europeans. The Powhattan confederation
in Virginia built structures underneath trees to help shed snow and rain.
23
European
colonists in the Northeast built snug houses that were well oriented to the sun, with
strategically placed windbreaks of evergreens. By the 1800s, the typical American
farm had acquired definite characteristics. When possible, the farmstead stood on
the side of a south-facing hill, the barn to the north and several sheds making up a
screen around the barnyard.
24
Often a woodlot stood at the north end of the
farmstead acting as windbreak, while one or two deciduous trees shaded the
farmhouse on the south wall during the summer and permitted sunlight during the
winter.
25
Although the practice of professional architecture has caused the abandonment of
effective landscape design in favour of design aesthetics, the design principles and
energy conserving effects of landscape design are still appropriate and applicable for
use on modern residential buildings.
23
Moffat et al., Landscape Design That Saves Energy, 16
24
McPherson, EG, 1984, Energy-Conserving Site Design, American Society of Landscape Architects,
Washington, D.C
25
ibid., 5
14
2.2 POTENTIAL OF LANDSCAPE TO REDUCE HEATING/COOLING LOADS
IN BUILDINGS
As discussed above, humans have exercised the act of altering landscape to modify
the local microclimate for thousands of years. Much of this practice, however, has
been forgotten in modern times as architectural ideas and aesthetics are adopted in
regions where such design may not be appropriate to the climate. The people who
lived in and understood the local weather patterns were traditionally the ones who
developed the architecture to be used. The export and adoption of foreign ideas and
designs during European exploration and colonization, however, often led to the
creation of structures and landscapes that were not indigenous and thus, as a result,
were in conflict with the local climate.
26
The phenomenon was further encouraged
through the development of building air-conditioning technologies. Inexpensive
fuels used to heat and cool buildings resulted in a loss of concern for construction
appropriate to the local environment. Even though large amounts of energy were
required to maintain occupant comfort, the economic cost and perceived
environmental effects were low enough so as to be deemed insignificant in
comparison.
27
With rising prices in fuel and increased public awareness of global
climate change, it can again be advantageous to use vegetation appropriately.
26
Brown et al., Microclimatic Landscape Design, 19
27
ibid., 19
15
Landscaping in residential areas offers many opportunities to reduce heating and
cooling consumption in buildings. Vegetation placed in strategic locations can
reduce the amount of solar radiation incident on a building, reduce the wind velocity
striking the building surface, can cool the surrounding air temperature via
evapotranspiration, and can help mitigate the heat island effect. For instance, a tree
with a light leaf canopy can control the sun’s heat inside a home better than a lightly
coloured plastic coating on a glass window or a white Venetian blind, fully drawn.
28
Landscape design can also be used to conserve heat in cold climates or during the
winter (heating) season in temperate climates. Planting trees in the form of
windbreaks reduces the wind velocity at the building surface, thus reducing
convective heat loss.
29
Also, non-vegetative landscaping - in the form of berms,
ground surface material, or water features - can also be employed to reduce energy
consumption and improve indoor conditions. This thesis, however, will focus on
landscape strategies that involve only vegetation; specifically, the benefits of
landscaping with trees. Only native, adapted trees will be considered for the
geographical boundary of the thesis.
The following sections discuss, in detail, the main areas of microclimate alteration
that will be covered in this thesis. The underlying principles of the beneficial effects
will be discussed as well as previous studies and mathematical models to estimate
28
Moffat et al., Landscape Design That Saves Energy, 18
29
ibid., 19
16
potential energy savings. Basic design principles of landscape design, based on
climate region, will also be introduced.
2.3 CALCULATING HEATING AND COOLING LOADS
2.3.1 PRINCIPLES OF HEAT TRANSFER
The purpose of any heating and cooling system in a building is to condition the
interior environment to counter the effects of heat transfer either into or out of the
building. Heat is a form of energy, distinguished from temperature, which is a
measure of how much energy is stored.
30
Heat energy can be transferred by four
methods
31
: radiation, conduction, convection, and changes of state.
2.3.1.1 Radiation
Radiation transfers heat in space from object to object and requires no contact
between the object emanating the heat and the receiving substance.
32
Radiant heat
can be collected from the sun independent of the air temperature; meaning that a
room will collect radiant heat in both the summer (cooling) and winter (heating)
months. Radiation can be blocked by opaque barriers or it can be filtered by
translucent objects.
33
30
Moffat et al., Landscape Design That Saves Energy, 26
31
ibid., 26
32
ibid., 26
33
ibid., 26
17
The radiation emitted from a body can be expressed by the equation below
34
:
!
E ="#T
s
4
(1)
where: E = rate of energy released per unit area (W/m
2
)
ε = emissivity
σ = Stefan-Boltzmann constant = 5.67x10
-8
W/m
2
*K
4
T
s
= the absolute temperatures
(expressed in degrees Kelvin, K)
For the above equation, vegetation will typically have an emissivity between 0.9 –
0.99.
35
It should be noted that this equation applies to bodies at non-zero
temperatures emitting longwave radiation. Solar radiation consists of relatively
shorter wavelength radiation, and will be discussed in further detail in section 2.4.1
below.
2.3.1.2 Conduction
Conduction transfers heat by direct contact between the emanating and receiving
bodies. Conductive heat transfer may be viewed as the transfer of energy from the
more energetic to the less energetic particles of a substance due to interactions
between the particles. By extension, a more energetic object will transfer heat
energy to the less energetic particles of an adjacent object.
36
Thus, blocking
conduction requires specialized insulating materials that inhibit heat transfer.
37
34
Incropera, FP, 2007, Introduction to Heat Transfer, Wiley, New Jersey
35
Brown et al., Microclimatic Landscape Design, 49
36
Incropera, Introduction to Heat Transfer, 3
37
Moffat et al., Landscape Design That Saves Energy, 27
18
The rate of conductive heat transfer can be expressed by the following equation
38
:
!
" " q
x
= k
#T
L
= k
T
1
$ T
2
L
(2)
where:
!
" " q
x
= the heat transfer rate in the x direction per unit area
perpendicular to the direction of transfer
k = the thermal conductivity of the material (W/m*K)
T1-T2 = the temperature gradient (difference) between the two surfaces
(T1 > T2)
L = the distance between the two surfaces (such as the thickness
of a wall)
The above equation, however, assumes the presence of only one, homogenous
material. In fenestration and wall construction, however, several materials are
combined to achieve a desired set of performance characteristics (ie. level of
insulation). As such, a different heat conduction equation is required to accurately
model the performance of these composite systems. This equation uses an overall
heat transfer coefficient, U, which considers the separate heat transfer contributions
of each material in the assembly, is related to total thermal resistance.
39
!
U =
1
R
total
A
(3)
where: R
total
= total thermal resistance for the composite system (h*
o
F/Btu)
A = area of the surface normal to direction of heat transfer (ft
2
)
Thermal resistance is related to the conduction of heat, and can be expressed as
follows
40
:
38
Incropera, Introduction to Heat Transfer, 4
39
Incropera et al., Introduction to Heat Transfer, 100
40
ibid., 98
19
!
R =
L
kA
(4)
where: L = thickness of the material
k = thermal conductivity of the material
(W/m*K or Btu*in/h*ft
2
*
o
F)
A = area of the surface normal to direction of heat transfer
The various thermal resistances and thicknesses of the materials in a composite wall
or window result in a temperature gradient across each layer, as shown in Figure 3.
Figure 3: Thermal Resistance Across Composite Wall Section
41
Equation (4) can then be used to determine an overall thermal resistance for a
composition based on the thermal properties of each layer of material. Therefore, the
overall heat transfer coefficient can be expressed as
42
:
41
Incropera et al., Introduction to Heat Transfer, 98
42
ibid., 98
20
!
U =
1
R
total
A
=
1
[(1/h
1
) +(L
A
/k
A
) +(L
B
/k
B
) +(L
C
/k
C
) +(1/h
4
)]
(5)
where: h
1
= convective heat transfer coefficient for fluid
(W/m
2
*K, or Btu/h*ft
2
*
o
F)
L
A
= thickness of material A (ft
2
)
k
A
= thermal conductivity of material A
(W/m*K or Btu*in/h*ft
2
*
o
F)
L
B
= thickness of material B (ft
2
)
k
B
= thermal conductivity of material B
(W/m*K or Btu*in/h*ft
2
*
o
F)
L
C
= thickness of material C (ft
2
)
k
C
= thermal conductivity of material C
(W/m*K or Btu*in/h*ft
2
*
o
F)
h
4
= convective heat transfer coefficient for fluid
(W/m
2
*K, or Btu/h*ft
2
*
o
F)
The principles of this equation are used in heating and cooling load, as well as
instantaneous heat gain or heat loss calculations, as it helps determine the amount of
heating and cooling energy is lost from a space, and thus how much is required to
maintain comfort conditions. The overall temperature gradient in this instance
would be the difference between indoor and outdoor air temperatures. Heat transfer
coefficients (U-values) for various fenestration and construction compositions are
available from manufacturers or in industry standard publications, such as ASHRAE.
This equation is useful for the purposes of this thesis since the instantaneous heat
gain or loss from a building surface must take into account the conductive heat
transfer.
21
2.3.1.3 Convection
Convection conveys heat in a movable, fluid media, including air and water.
43
The
heat transfer is comprised of two mechanisms: energy transfer due to random
molecular motion (diffusion), and energy transferred by the bulk, or macroscopic,
motion of the fluid.
44
This motion, combined with the presence of a temperature
gradient, contributes to heat transfer.
45
Convective heat transfer can be prevented by
the use of physical barriers to inhibit the movement of these fluids.
46
The rate of convective heat transfer can be expressed by the following equation
47
:
!
" " q = h(T
s
# T
$
) (6)
where:
!
" " q = the convective heat transfer (W/m
2
)
h = the convective heat transfer coefficient
(W/m
2
*K, or Btu/h*ft
2
*
o
F)
T
s
= the surface temperature
T
∞
= the fluid temperature
The convective heat transfer coefficient is dependent on the orientation of the surface
as well as the direction of airflow. The above convective heat transfer equation is
required in the analysis of the use of vegetation as windbreaks. Strong winds
blowing across the surface of a building increase the rate at which heat is removed
from the building. The above equation can be used to determine the rate of heat loss.
43
Moffat et al., Landscape Design That Saves Energy, 27
44
Incropera et al., Introduction to Heat Transfer, 6
45
ibid., 6
46
Moffat et al., Landscape Design That Saves Energy, 28
47
Incropera et al., Introduction to Heat Transfer, 8
22
As will be discussed in later sections, vegetation can be strategically placed adjacent
to a building to reduce the convective heat loss from the surface.
2.3.1.4 Change of State
The heat transferred (or stored) in a change of state is the heat required to melt a
substance from a solid to a liquid or conversely the heat required to evaporate a
liquid to a gas. This change of state is also known as latent heat transfer. Latent heat
transfer allows plants to evaporate large amounts of water by drawing heat from the
air, thus producing a cooling effect. This phenomenon, known as evapotranspiration,
enables vegetation to cool surrounding air temperature and is discussed in further
detail in Section 2.6. This is relevant since a reduction in surrounding air
temperature during the hot summer months can reduce conductive heat transfer from
building surfaces, thus reducing the amount of cooling required to maintain indoor
comfort conditions.
2.3.2 COOLING LOADS
Since the program for this thesis was developed for use in the hot, arid climate of
Los Angeles, energy transfer relating only to heat gain and increased cooling load
will be discussed. Several load calculation methods have been published in North
America. Two different methods of determining heat gain and thus cooling load are
discussed in further detail below.
23
2.3.2.1 Residential Design Cooling Loads
The American Society of Heating, Refrigerating, and Air-Conditioning Engineers
(ASHRAE) Fundamentals Handbook provides detailed methods for calculating
residential heating and cooling loads. The Handbook provides different approaches
for calculating residential and non-residential loads by acknowledging that unique
features for calculating loads and equipment sizes distinguish residential buildings
from other types.
48
Several of these features are identified as follows
49
:
• Smaller internal heat gains – loads are primarily imposed by heat gain or loss
through structural components and by air leakage or ventilation
• Varied use of spaces – use of spaces is more flexible than in commercial
buildings
• Fewer zones – generally conditioned as single zone or, at most, a few zones
• Greater distribution losses – ducts are frequently installed in attics or other
unconditioned buffer spaces, resulting in significant leakage since ducts are
often insufficiently insulated
• Partial loads – loads are determined by outside conditions and since only a
few days of each season are design days, the units operate at partial load
during most of the season
48
American Society of Heating, Refrigerating, and Air-Conditioning Engineers, 2005, 2005 Fundamentals
Handbook, ASHRAE, Atlanta
49
ibid., 29.1
24
The 2005 Fundamentals Handbook provides an extensively revised method for
calculating cooling loads. Methods presented in earlier editions of the handbook
involved the use of a Cooling Load Temperature Difference/Cooling Load Factor
(CLTD/CLF) form; significantly simplified to facilitate manual calculations.
50
The
method presented in the 2005 edition is the Residential Load Factor (RLF) method,
and is a simplified procedure derived from the more detailed Residential Heat
Balance (RHB) method.
51
The Residential Heat Balance method is an extension of the Heat Balance (HB)
method, which allows for detailed simulation of space temperatures and heat flows
by considering a cooling load profile over a 24-hour period.
52
The RLF method was
derived from several thousand RHB cooling load results for a range of climates and
building types.
53
Statistical regression techniques were used to define values for the
load factors presented in the Handbook.
54
These values were validated by comparing
RLF and RHB results for buildings that were not involved in the original regression
analysis.
55
The above method of determining cooling loads is useful primarily for calculating
peak loads sizing cooling mechanical systems. The purposes of this thesis requires
50
ASHRAE, 2005 Fundamentals Handbook, 29.2
51
ibid., 29.2
52
ibid., 29.2
53
ibid., 29.2
54
ibid., 29.2
55
ibid., 29.2
25
an instantaneous method of calculating heat transfer since the intent is to quantify
reductions in energy transfer due to the presence of trees. An appropriate method is
presented as follows.
2.3.2.2 Instantaneous Cooling Load Calculations
The 2005 Fundamentals Handbook also provides instantaneous heat gain calculation
through fenestration surfaces. This equation is provided as follows:
!
Q =U"A
pf
"(T
out
#T
in
) +SHGC"A
pf
"E
t
(7)
where: Q = instantaneous energy flow (Btu/h)
U = overall coefficient of heat transfer (Btu/h*ft
2
*
o
F)
T
in
= interior air temperature (
o
F)
T
out
= exterior air temperature (
o
F)
A
pf
= total projected area of fenestration (ft
2
)
SHGC = solar heat gain coefficient
E
t
= incident total irradiance (Btu/h*ft
2
)
The above equation results in a heat gain value of Btu/h, with the instantaneous heat
gain through the window being a direct result of the solar radiation incident on the
fenestration surface. The value for E
t
is the sum total comprised of direct normal,
diffuse sky, and reflected radiation. The equation is given below:
!
E
t
=E
DN
cos" +E
d
+E
r
(8)
where: E
t
= incident total irradiance (Btu/h*ft2)
Θ = angle of incidence
E
DN
= direct normal radiation (Btu/h*ft2)
E
d
= diffuse sky radiation (Btu/h*ft2)
E
r
= reflected radiation (Btu/h*ft2)
The value for direct normal radiation is corrected by the cosine of the angle of
incidence. The angle of incidence for any surface is defined as the angle between the
26
incoming solar rays and a line normal to that surface.
56
It is related to the solar
altitude angle (β), to the surface solar azimuth (γ), and to the tilt angle of the surface
from the horizontal (Σ).
57
Methods for calculated solar altitude and surface solar
azimuth will be discussed in Chapter 3, section 3.3.
The equation for determining the angle of incidence is:
!
cos" =cos#cos$sin% +sin#cos% (9)
where: Θ = angle of incidence
β = solar altitude angle
γ = surface solar azimuth angle
Σ = tilt angle of the surface from the horizontal
For a vertical surface, such as a wall, the tilt angle of the surface is 90
o
. Thus
equation (9) is simplified and becomes:
!
cos"
V
=cos#cos$ (10)
Equations (7), (8) and (9) are used to determine the difference in instantaneous heat
gain from the presence of trees. When calculating the instantaneous heat gain with
the presence of trees, the projected area of fenestration is corrected to reflect the
percentage of window that is in shade from the tree. The direct normal and diffuse
sky radiation values are corrected based on the transmissivity of the tree at that time
56
ASHRAE, 2005 Fundamentals Handbook, 31.16
57
ibid., 31.16
27
of the year, which is based on the foliation present on the tree during that particular
season.
2.4 SHADING
The most widely acknowledged and experienced benefit of the presence of trees in a
landscape is the production of shade, which is accompanied by subsequent filtering
of solar radiation. The following sections discuss in further detail the physics of
solar radiation and the effect of plants on transmission and absorption of such
radiation.
2.4.1 SOLAR RADIATION
An understanding of the components and behaviour of solar radiation is necessary to
properly implement effective landscape design to reduce energy consumption.
Similarly, it is necessary to understand the movement of the sun as it travels an arc in
the sky before planning an energy-efficient design.
58
Firstly, solar energy consists of a range of wavelengths, from very short ultraviolet
wavelengths to relatively longer infrared wavelengths.
59
Most of the solar energy
can be categorized as either visible energy (which humans see and which plants use
58
Moffat et al., Landscape Design That Saves Energy, 31
59
ibid., 47
28
for photosynthesis) or as solar infrared.
60
The distribution of energy across the
varying wavelengths is show below in Figure 4.
Figure 4: Wavelength Distribution of Solar Energy
61
As can be seen from the above graph, the amount of energy arriving at the earth’s
surface is less than that arriving outside the Earth’s atmosphere, since the energy
arriving at the surface is filtered through the various layers of the atmosphere. The
maximum amount of solar energy that can be received at the Earth’s surface has
been established as 1000 W/m
2
(~ 317 Btu/h*ft
2
) for a horizontal plane. Effects of
atmosphere and the angle of incidence (depending on the tilt of the plane) reduce the
amount of radiation incident on the surface. Compiled climate weather files contain
values for direct and diffuse beam radiation that are typically lower than this
60
Brown et al., Microclimatic Landscape Design, 47
61
Autodesk, 2008, ECOTECT Shading: Solar Incidence, Autodesk, viewed December 2008,
http://squ1.org/wiki/Solar_Incidence
29
hypothetical maximum value since the measurements reflect the filtering effects of
atmosphere. The amount of radiation incident on the surface is also affected by the
angle of the sun as its path varies daily and throughout the seasons.
The solar path can be described by a set of two angles: the altitude angle (which is
the absolute height in the sky), and the bearing or azimuth angle (which is the
distance the sun travels on its path between the eastern sunrise and western sunset).
62
The azimuth angle can be measured from either North or South. Conventions used
for this thesis are further discussed in Chapter 3. It is important to determine these
angles because the ability of the sun to add radiant heat to a building is dependent on
the sun’s position in the sky as well as on the intensity of sunlight.
63
As mentioned
above, the intensity of radiant energy varies throughout the seasons as the sun angle
changes. At lower winter angles, the sun’s radiant heat must pass through a greater
portion of atmosphere, thus reducing it’s intensity.
64
Incident radiation alone does not completely determine the amount of energy
absorbed by a surface. Material properties determine the amount of radiation
reflected, absorbed, and also transmitted by or through the surface.
62
Moffat et al., Landscape Design That Saves Energy, 31
63
ibid., 35
64
ibid., 35
30
2.4.2 TERRESTRIAL RADIATION
Terrestrial radiation occurs at wavelengths longer than those that comprise solar
energy. It can be described as the radiation that is emitted by all objects on the
earth’s surface, by clouds, and by the sky itself.
65
The radiation emitted by these
objects is a function of their temperature and the surface emissivity (which is defined
as the ratio of energy radiated by the material to that radiated by a black body at the
same temperature). The energy temperature relationship is shown below.
!
Energy =S"(T +273)
4
(11)
where: S = a constant, 5.67x10
-8
(W/m
2
)
T = temperature of the surface (
o
C)
Plants can affect both the solar and terrestrial radiation. This is discussed further in
the following section.
2.4.3 RADIATION AND PLANTS
The following section outlines how plants affect the various forms of radiation
outlined above.
2.4.3.1 Effect of Plants on Solar Radiation
Plants can have a significant impact on the solar radiation incident on a surface.
Plants absorb solar radiation and cast shade; and also use most of the captured
65
Brown et al., Microclimatic Landscape Design, 50
31
radiant energy to evaporate water.
66
The figure below shows the amount of radiation
reflected and transmitted by the leaf of a plant.
Figure 5: Solar Radiation Reflection, Absorption & Transmission by Plants
67
As can be deduced from the above image, the transmissivity of the leaves on a tree,
as well as the density of leaves in a tree canopy, can have a significant effect on the
amount of solar radiation incident on a surface shaded by a particular tree species.
The contributing effects of evapotranspiration (which occurs via the use of solar
radiation to evaporate water) will be discussed in later sections.
2.4.3.2 Effects of Plants on Terrestrial Radiation
Plants can have an affect on the amount of radiation admitted and received by
objects. Shading may actually cause an increase in the amount of terrestrial radiation
66
Moffat et al., Landscape Design That Saves Energy, 37
67
ibid., 37
32
received by an adjacent object since the sky emits a lower value of radiation than the
tree.
68
This slight increase, however, is generally insignificant compared to the
reduction in solar radiation incident on the surface, especially since the tree
maintains lower surface temperatures by evapotranspiration.
69
Plants also have the
ability to lower the surrounding ambient air temperature via evapotranspiration.
Lowering the ambient air temperature can also serve to lower surface temperatures
of nearby objects. Large numbers of trees, however, would be required for this
phenomenon to occur.
2.4.4 CALCULATING COOLING EFFECTS OF TREE SHADE
In order to determine the savings that be achieved from the shade provided by trees,
it is necessary to determine the shade pattern cast by the tree(s), and also to compute
the shaded and unshaded areas on a wall surface. Several methods for shading
computation have been developed.
A particular study developed a shading design software tool in MATLAB that can
perform shading calculations for any type of window system at a specific time and
place.
70
The concepts used to develop this tool were expanded on in a 2006 article
outlining a modified algorithm to perform shading calculations.
71
The authors define
68
Brown et al., Microclimatic Landscape Design, 54
69
ibid., 54
70
Chirarattananon, S & Rajapakse, A, A New Tool for Designing External Sun Shading Devices, Asiant Institute
of Technology, viewed December 2008, http://www.energy-based.nrct.go.th/Article/Ts-
3%20new%20tool%20for%20designing%20external%20sun%20shading%20devices.pdf
71
Pongpattana, C & Rakkwamsuk, P, 2006, ‘Efficient Algorithm and Computing Tool for Shading Calculation’,
Songklanakarin Journal of Science and Technology, vol. 28, no. 2, March – April, pp 375-386
33
a plane with a tilt angle, β, and azimuth, γ. The position of the sun is also defined by
solar altitude, α, and solar azimuth, γ; both of which are dependent on time, date and
latitude of the plane being considered.
Another study also incorporated the method of defining plane orientation and
analysis based on solar coordinates, but subsequently used a scanline algorithm to
perform a shading analysis.
72
The building wall plane in question is rotated via
matrix transformations using solar angles to determine if the plane is in line with the
sun. If so, the program proceeds to determine the percentage shading from a tree on
the building surface using a scanline algorithm. Total radiation incident on the
surface is calculated by modelling the building surface and tree shadow as a set of
overlapping polygons. The scanline algorithm analyzes shading polygon by
scanning across the window polygon in slices, and determining the area of shade for
each slice (if there is any). These shade slices are added to generate an overall
shaded area for the window. The scanline algorithm will be discussed in further
detail in the following chapters.
2.4.5 PREVIOUS STUDIES
Several studies have been published that used computer simulations to investigate
the effects of tree shade on building energy use. These studies concluded that shade
72
Schiler, M, 1979, ‘Foliage Effects on Computer Simulation of Building Energy Load Calculations’, Master’s
Thesis, Columbia, New York
34
from a single, well-placed, mature tree (about 25 ft crown diameter) could reduce
annual air-conditioning use by 2 – 8% (40 – 300 kWh) and peak cooling demand by
2 – 10% (0.15 – 0.5 kW) for various cities across the United States.
73
Conversely, it
is also acknowledged, however, that trees placed for summer sun shading can also
have the adverse effect of reducing solar access in winter, thus potentially increasing
energy used for space heating.
74
Several computer simulations found that shade
from trees positioned at various distances from a building’s south side often
increased annual building energy use for space heating.
75
A study conducted by James Simpson and Gregory McPherson explored the
potential of tree shade for reducing residential energy use in several climate zones
throughout California.
76
The study considered yard trees at a variety of orientations
around the building, as well as the effects of building energy efficiency. Shade
patterns projected onto the building from various tree configurations were calculated
using the Shadow Pattern Simulator (SPS) program. These results were then used in
an energy use simulation program known as MICROPAS to predict the effects of
tree shade on space conditioning.
77
The base case structure used in the study was a
single story frame house, built to California Title 24 standards (R-19 wall insulation,
R-38 ceiling insulation, double-pane windows, gas furnace efficiency of 78%, and an
73
McPherson, EG & Simpson, JR, 1996, ‘Potential of Tree Shade for Reducing Residential Energy Use in
California’, Journal of Aboriculture, vol. 22, no. 1, pp 10-18
74
ibid., 11
75
ibid., 11
76
ibid., 11
77
ibid., 11
35
air conditioner seasonal energy efficiency ratio of 10).
78
Finally, energy use was
simulated in California climate zones 2, 4, 11, 12, and 13.
The study revealed that trees shading a west exposure from afternoon sun had the
greatest impact on cooling savings for all climate zones.
79
The study also calculated
additional heating requirements during the winter months. This was factored into
overall estimates of total savings. Figure 6 below shows sample results for annual
difference in heating, cooling and total energy use for various tree positions around a
house in Sacramento. The results of this study will be used in the verification of the
thesis program outputs.
Figure 6: Annual Energy Use for Various Tree Positions for Sample House in Sacramento
80
78
McPherson et al., Potential of Tree Shade for Reducing Residential Energy Use in California, 12
79
ibid., 13
80
ibid., 14
36
It can be seen from this graph that the greatest savings for single trees were achieved
by placing the tree to the West and East of the house. Greater savings were achieved
by placing two trees to the west, and even more by placing two trees to the west and
one to the east.
In addition, the study also considered the effects of varying insulation levels on
energy savings for the five California Climate Zones listed above. The results of this
portion of the study are shown as Figure 7.
Figure 7: Effect of Insulation Level on Energy Savings
81
As can be seen, the greatest savings were achieved for Climate Zones 2, 4, and 12;
all of which are located roughly mid-state closer to the coast (such as in San
Francisco, Sacramento, and Monterey).
81
McPherson et al., Potential of Tree Shade for Reducing Residential Energy Use in California, 15
37
2.5 WIND BREAKS
Trees can also generate savings during the heating months by acting as wind breaks
that block cold winter winds. The following section discusses the effects of plants
on wind and their corresponding use as windbreaks.
2.5.1 WIND
In addition to supplying radiation to the earth’s surface, the sun also provides the
energy that drives atmospheric systems.
82
At the macro-scale, differences in
temperature between the earth’s poles and the equator result in large masses of cold
and warm air that continually mix along an interface, known as a weather front.
83
At
the regional level, weather maps can be drawn and tracked along such weather fronts
by creating isobars (lines of equal barometric readings) that delineate areas of high
and low pressure.
84
The interaction of these pressure zones creates air movement
from the areas of higher pressure to areas of lower pressure, which, in turn, produces
wind. In general, the above process of mixing air masses of different temperatures
and pressures is what produces the winds that are experienced in a particular
location.
82
Moffat, AS & Schiler, M, 1993, Energy-Efficient and Environmental Landscaping, Appropriate Solutions
Press, South Newfane, Vermont
83
Brown et al., Microclimatic Landscape Design, 31
84
ibid., 32
38
2.5.1.1 Wind Patterns
A certain location will be accompanied by characteristic prevailing wind patterns,
which describes the intensity and amount of time wind is experienced at different
directions. Although it is not possible to accurately predict the exact time, duration,
and speed of wind, measurements can be made and general patterns can be observed.
These patterns can be annual or daily and can be illustrated as prevailing winds on
special diagrams known as wind roses. These are graphical representations that
display the percentage of time the wind is blowing from each direction.
85
Figure 8
below shows an annual wind rose for Los Angeles. This wind rose was created
using Weather Tool, and Los Angeles weather data available in .WEA file format.
85
Brown et al., Microclimatic Landscape Design, 126
39
Figure 8: Los Angeles Annual Wind Rose
As can be seen from the above, Los Angeles experiences primarily strong Westerly
winds. This makes geographic sense since the Pacific Ocean is located to the West.
Los Angeles, however, is not located in a cold climate, and so these offshore breezes
have a welcome cooling potential, whereas most winds in other climates are
associated with the cold winter months. As an example, refer to Figure 9 below
which shows a wind rose for New York City, New York.
40
Figure 9: New York City Annual Wind Rose
Although this wind rose is similar to that of Los Angeles in that there is a strong
prevailing Westerly wind, there are also predominant North and Northwesterly winds
that would blow during the colder months of the year. Thus, in this climate, it would
be beneficial to establish windbreaks to the North and Northwest.
2.5.2 EFFECT OF PLANTS ON WIND
Similar to solar radiation, wind can be significantly affected by the landscape. Wind
can be modified by various elements in a landscape, as in the case of trees that act as
breaks/barriers to block wind or to reduce its velocity and turbulence. In order to
effectively plan landscapes for wind control it is necessary to understand how wind
41
moves through a microclimate, to analyze the prevailing wind patterns (as discussed
above), and to understand the effect various landscape elements will have on the
behaviour of the wind.
Air moving through a landscape will tend to move more slowly near the ground, and
will increase in speed with height.
86
Wind movement also does not tend to consist of
a steady movement of air: there is typically always turbulence in the air, which also
increases with height.
87
The relationship between wind speed, turbulence and height
tends to be logarithmic, as illustrated in Figure 10 below.
Figure 10: Graphical Representation of Wind Speed, Height, and Turbulence Relationship
88
Turbulence is a function of wind speed as well as surface roughness. Generally, the
faster the wind is moving and the rougher the surface, the higher the turbulence.
89
86
Brown et al., Microclimatic Landscape Design, 125
87
ibid., 125
88
ibid., 125
89
ibid., 126
42
The introduction of objects into the landscape will affect wind speed. Some objects
reduce and/or redirect wind speed, and others can actually increase it. An object
introduced into the landscape causes air to flow up, over and around its edges. When
air encounters such an object, a piling-up of molecules occurs on the upwind side.
90
This back pressure creates a bubble of air next to the object that has a lower wind
speed than that in a freely flowing stream of air.
91
Where the air is forced to go
around the edges of the object, the molecules speed up and this is experienced as an
increase in wind speed. Conversely, downwind of the windbreak there are fewer
molecules moving past at any given time. This is thus experienced as lower
windspeed relative to the free air stream as well as to the flow around the ends and
over the top of the object.
92
The area and pattern of reduced wind speeds is affected by the porosity of the object
or windbreak. Figure 11 below shows the affect of a solid object, such as a wall, on
the speed of wind moving through the landscape. The speeds shown in this diagram
are relative to a free stream of air moving at 2 meters (about 6.5 feet) above the
ground.
90
Brown et al., Microclimatic Landscape Design, 128
91
ibid., 128
92
ibid., 129
43
Figure 11: Wind Speeds Around Impermeable Windbreak
93
As can be seen from the above diagram, the wind speed is significantly reduced just
behind the wall, with increasing wind speed as distances further from the wall.
These results can be compared to the wind patterns as shaped by a permeable object,
such as a row of evergreen trees. Figure 12 below shows such wind patterns as
produced by a permeable windbreak. As can be seen in this figure, the area of
reduced wind speeds are larger and extend further behind the windbreak.
93
Brown et al., Microclimatic Landscape Design, 129
44
Figure 12: Wind Speeds Around Permeable Windbreak
94
The above information can be accumulated into one diagram demonstrating the
varying effects of permeable and impermeable windbreaks at distances as a function
of object height. This diagram is shown below as Figure 13.
Figure 13: Reduction in Wind Speed for Windbreaks of Varying Permeability
95
94
Brown et al., Microclimatic Landscape Design, 127
95
Moffat et al., Energy-Efficient and Environmental Landscaping, 24
45
2.5.3 CALCULATING ENERGY SAVING POTENTIAL OF WIND BREAKS
Heat can be lost from a building through convection as well as conduction. A cool
wind moving past a warmer building will carry heat away from the surface through
convection and will cool the exterior of the building until it reaches the same
temperature as the outdoor air.
96
As such, a substantial amount of heat is transported
from the interior of the building through the process of conduction through the walls
as well as through leaks in and around windows and doors.
97
The construction of the
building is an important consideration in determining the amount of heat loss from
the structure. If a building is extremely well insulated and airtight, then wind is not a
significant issue since air exchanges between indoor and outdoor environments are
tightly controlled.
98
The wind would thus have little effect on the building energy
use. If, however, a building in a cool climate were not well insulated then wind
would be a significant issue during the winter months.
The amount of convective heat loss is a function of wind speed as well as the
temperature difference between the building and the outside air.
99
Convective heat
loss occurs via two methods: by travelling through walls, windows and roof from
inside to outside; or by air exchange through cracks and openings around or through
96
Brown et al., Microclimatic Landscape Design, 87
97
ibid., 87
98
ibid., 86
99
ibid., 84
46
windows and doors.
100
The most important factor in the amount of heat loss is the
speed of the wind striking the building. Generally, the higher the wind speed, the
greater the resulting heat loss.
101
Conversely, it is possible to design landscape for
the purpose of channelling “cooling” winds into a building space during hot summer
months. The condition of a wind temperature being lower than the building
temperature during warm months, however, is limited in most regions, and so plants
are more typically used as wind breaks during the colder months.
Calculating the effects of reduced wind speed on the energy consumption of the
building involves estimating wind speeds at various heights and calculating the
corresponding convective heat loss from the surface. The generic equation that can
be used to calculate wind speeds up to 10 meters (about 33 feet) in height from the
ground is as follows:
!
W(z) =U
10
"{[ln(
z
z
os
)]/(
ln10
z
ow
)} (12)
where: W(z) = Wind speed at a height z above the ground
z = Height above the ground of the wind
U
10
= Wind speed at 10 m above the weather station
z
os
= Constant based on height of vegetation at test site
(z
os
= 0.13 x height of vegetation)
z
ow
= 0.13 x height of vegetation at weather station
The corresponding heat loss can be calculated using the equations for conduction and
convective heat loss as outlined above. Lowering the wind speed will reduce the
100
Brown et al., Microclimatic Landscape Design, 84
101
ibid., 84
47
convective heat loss at the surface of the building, thus narrowing the temperature
difference between indoor and outdoor wall temperatures, which, in turn, reduced
heat loss via conduction through walls.
2.5.3 PREVIOUS STUDIES
Several studies have also been published that estimate the effects of trees on wind
speed as well as the effect windbreaks on building energy consumption. One study
concluded that trees scattered throughout a neighbourhood can reduce wind speeds
by as much as 50%.
102
Another study simulated the effect on heating energy use
from reduced infiltration as a result of the use of trees as a windshield. This study
found that three trees placed adjacent to the building reduced annual heating energy
consumption by 16%.
103
In addition, other computer simulation studies confirmed
that windbreaks could reduce annual heating costs by 10 – 30%.
104
A study by Greg McPherson was conducted to analyze the affects of shading,
evapotranspirative cooling, and windbreaks on brick and wood-frame residential
buildings in Chicago of one-, two-, and three-story height.
105
The computer
simulation software of Micropas 4.01 was used in the wind analysis for this study.
The outputs from the simulations were referenced with respect to actual building
data from buildings in Chicago to ensure that the realistic results were being
102
McPherson, EG, 1994, Energy Saving Potential of Trees in Chicago, USDA Forest Service General Technical
Report NE-186, Davis, California
103
McPherson, Energy-Saving Potential of Trees in Chicago, 96
104
ibid., 96
105
ibid., 96
48
produced.
106
. The study found that reductions in wind speed of 5 – 15% were
achieved for various wind shielding scenarios.
107
Annual heating savings per tree
from wind shielding range from 1.3% for well-insulated wood-frame building to
1.5% for a loosely constructed 3-story brick building.
108
Figure 14 below shows
annual heating energy savings results from this study. Each simulation was
performed assuming the presence of one deciduous tree located adjacent to the west
wall of the building.
Figure 14: Effect of Windbreaks on Building Energy Consumption
109
106
McPherson, Energy-Saving Potential of Trees in Chicago, 96
107
ibid., 106
108
ibid., 106
109
ibid., 108
49
2.6 EVAPOTRANSPIRATION
In addition to filtering solar radiation and diverting strong winds, trees also have the
capability to cool the surrounding air temperature. Trees have the ability to affect
the temperature of their microclimate through evaporation and transpiration of
moisture through leaves, a phenomenon known as evapotranspiration.
110
Several studies have been conducted to determine, either through simulation or
measurement, the effects of evapotranspirative cooling on the surrounding
microclimate. Evapotranspiration (ET) can be defined as the loss of water to the
atmosphere by the combined process of evaporation (from soil and plant surfaces)
and transpiration (from plant tissues).
111
Transpiration results from the vaporisation
of water within plant tissues and its loss through the stomata.
112
Evaporation is the
conversion of water from liquid to vapour.
113
The cooling effect is accomplished
through the release of moisture into the air, with subsequent evaporation of this
moisture due to hot air temperatures. The process is known as evaporative cooling.
Trees facilitate evaporative cooling by releasing moisture into the atmosphere
through the stomata of leaves (see Figure 15 below). As hot air passes over the
110
Akbari, H, Huang, YJ, Rosenfeld, AH & Taha, H, 1987, ‘The Potential of Vegetation in Reducing Summer
Cooling Loads in Residential Buildings’, Journal of Climate and Applied Meteorology, vol. 26, September, pp
1103-1116
111
California Irrigation Management Information System, 2008, ET Overview, State of California, viewed
November 2008, http://www.cimis.water.ca.gov/cimis/infoEtoOverview.jsp
112
Queensland Government Department of Employment, Economic Development and Innovation, 2008, Using
Evapotranspiration to Estimate Water Use, Queensland Government, viewed November 2008,
http://www.dpi.qld.gov.au/cps/rde/dpi/hs.xsl/26_9829_ENA_HTML.htm
113
ibid., 1
50
surface of the leaves, the moisture absorbs heat and evaporates, thus resulting in
cooling of the surrounding air.
114
Figure 15: Leaf Structure and Evapotranspiration
From an energy conservation point of view, a tree can be regarded as an evaporative
cooler, using up to 100 gallons of water a day, which translates into a cooling
potential of 230,000 kcal/day.
115
In hot, dry locations, this produced a cooling effect
similar to that of 5 average air conditioners running for 20 hours.
116
In hot, humid
locations, however, evapotranspiration is not an effective cooling process since
additional humidity would only serve to further saturate the air.
2.6.1 CALCULATING EVAPOTRANSPIRATION
Calculations to determine evapotranspiration rate are mainly used to determine the
irrigation water requirements for a specific plant species to ensure healthy growth
114
Black, RJ & Meerow, AW, 2003, Enviroscaping to Conserve Energy: A Guide to Microclimate Modification,
University of Florida, Gainsville, Florida
115
Akbari, et al, The Potential of Vegetation in Reducing Summer Cooling Loads in Residential Buildings, 1106
116
United States Environmental Protection Agency Office of Policy Analysis, Climate Change Division, 1991,
Cooling Our Communities, United States Environmental Protection Agency
51
and productivity.
117
Several equations are available, with their use depending on the
degree of accuracy necessary.
Evapotranspiration for a particular crop or species of tree (ET
c
) is determined by
multiplying a crop coefficient (K
c
) by the reference evapotranspiration (ET
o
).
118
The
reference evapotranspiration was developed as an indication of the evaporative
demand of the atmosphere independent of crop type and management: the only
factors affecting ET
o
are climatic parameters.
119
The crop coefficient is a
dimensionless number, used in conjunction with ETo to estimate specific crop
evapotranspiration rates.
120
It is representative of the fraction of water lost from the
crop relative to the reference evapotranspiration.
121
The California Irrigation
Management Information System (CIMIS) has identified reference
evapotranspiration zones as well as reference evapotranspiration rates for selected
cities in California. The Food and Agriculture Organization (FAO) of the United
Nations and CIMIS both provide detailed tables of crop coefficients for various
agricultural crops.
117
California Irrigation Management Information System, ET Overview, 1
118
Saxena, M, 2002, Microclimate Modification: Calculating the Effects of Trees on Air Temperature, Heschong
Mahone Group, Fair Oaks, California
119
United Nations Food and Agriculture Organization, 1998, Crop Evapotranspiration: Guidelines for
Computing Crop Water Requirements, Food and Agriculture Organization, viewed November 2008,
http://www.fao.org/docrep/X0490E/X0490E00.htm
120
California Irrigation Management Information System, ET Overview, 1
121
California Department of Water Resources, A Guide to Estimating Irrigation Water Needs of Landscape
Planting in California, California Department of Water Resources, viewed November 2008,
http://www.owue.water.ca.gov/docs/wucols00.pdf
52
The equation for calculating evapotranspiration based on crop coefficient and
reference evapotranspiration rate is thus as follows:
!
ET
c
=K
c
"ET
o
(13)
There are several methods available for calculating the reference evapotranspiration,
several of which are discussed below.
2.6.1.1 Penman-Monteith Equation
The FAO recommends the Penman-Monteith method as the standard method for
calculating reference evapotranspiration (ET
o
).
122
It is recommended since it
presents a high likelihood of correctly predicting ET
o
in a wide range of locations
and climates.
123
This method combines energy balance with mass transfer to form an
equation that computes the evaporation from an open water surface from standard
climatological records of sunshine, temperature, humidity, and wind speed.
124
This
method was further revised to include aerodynamic and surface resistance factors.
125
The resultant Penman-Monteith equation is shown below.
!
ET
o
=
"(R
n
#G) +K
time
$
a
c
p
(e
s
#e
a
)
r
a
" +% 1+
r
s
r
a
&
'
(
)
*
+
&
'
(
(
(
(
)
*
+
+
+
+
/, (14)
122
United Nations Food and Agriculture Organization, Crop Evapotranspiration,
http://www.fao.org/docrep/X0490E/X0490E00.htm
123
ibid., http://www.fao.org/docrep/X0490E/X0490E00.htm
124
ibid., http://www.fao.org/docrep/X0490E/X0490E00.htm
125
ibid., http://www.fao.org/docrep/X0490E/X0490E00.htm
53
where: ET
o
= reference evapotranspiration (mm/d or mm/h)
R
n
= net radiation (MJ/m
2
d or MJ/m
2
h)
G = soil heat flux (MJ/m
2
d or MJ/m
2
h)
(e
s
-e
a
) = vapour pressure deficit of the air (kPa)
e
s
= saturation vapour pressure of the air (kPa)
e
a
= actual vapour pressure of the air (kPa)
ρ
a
= mean air density at constant air pressure (kg/m
3
)
c
p
= specific heat of the air (kPa/
o
C)
Δ = slope of saturation vapour press. temp relationship (kPa/
o
C)
γ = Psychrometric constant (kPa/
o
C)
r
s
= (bulk) surface resistance (s/m)
r
a
= aerodynamic resistance (s/m)
λ = latent heat of vaporization (MJ/kg)
K
time
= units conversion (86,400 s/d for ET in mm/d and equals
3600 s/h in mm/d)
A simplified alternative to the Penman-Monteith equation can be used to determine
the reference evapotranspiration when weather data are missing or are not available.
2.6.1.2 Hargreaves Equation
Unlike the full Penman-Monteith equation discussed above, the simplified
Hargreaves equation requires only daily maximum and minimum temperature
data.
126
This equation is given as:
!
ET
o
=0.0023(T
mean
+17.8)(T
max
"T
min
)
0.5
Ra (15)
where: ET
o
= reference evapotranspiration (mm/day or mm/h)
T
mean
= average of daily max and min temperatures (
o
C)
T
max
= daily maximum temperature (
o
C)
T
min
= daily minimum temperature (
o
C)
R
a
= extraterrestrial radiation (mm/day)
126
United Nations Food and Agriculture Organization, Crop Evapotranspiration,
http://www.fao.org/docrep/X0490E/X0490E00.htm
54
2.6.2 PREVIOUS STUDIES
As mentioned previously, several studies have been conducted to determine the
effects of evapotranspirative cooling on the surrounding microclimate. In general,
the impact of one or several trees on ambient air temperatures and cooling loads are
small, though still relevant, compared to the shading effect.
127
Several studies have
reported evapotranspirative cooling effects of up to 5
o
C (9
o
F), however this outcome
will mostly likely only result from large numbers of trees and expansive green
spaces.
128
Even if large temperature drops are not achieved by small numbers of
trees, the advection of cool air can still lower the demand for air conditioning. This
has been exemplified in studies conducted in suburban areas. Such studies reported
smaller variations in daytime peaks of 2
o
C – 3
o
C (3.5
o
F – 5.5
o
F) between
neighbourhoods under mature tree canopies and newer areas with no trees.
129
The
studies outlined below used computer simulations to determine the
evapotranspirative cooling potential of trees.
A study conducted by Huang et al. estimated the cooling effects of three trees around
a residential home using the DOE-2.1C building energy simulation program.
130
The
study considered the combined and individual effects of reduced solar gain, reduced
wind speed, and evapotranspiration. The study sought to determine the amount of
127
McPherson, EG, 1994, Cooling Urban Heat Islands with Sustainable Landscapes, United States Center for
Urban Forest Research, viewed October 2008,
http://www.fs.fed.us/psw/programs/cufr/products/cufr_82_EM94_59.PDF
128
ibid., http://www.fs.fed.us/psw/programs/cufr/products/cufr_82_EM94_59.PDF, 159
129
Saxena, Microclimate Modification: Calculating the Effect of Trees on Air Temperature, 1
130
Akbari et al, The Potential of Vegetation in Reducing Summer Cooling Loads in Residential Buildings, 1106
55
evapotranspiration as a function of time and ambient conditions and then to relate the
amount of added moisture to changes in the microclimate.
131
The study included
several U.S cities, and was based on a prototype house modelled as a single-story,
detached, wood frame structure built to standard U.S building practices (circa
1979).
132
The results demonstrated an evapotranspirative cooling effect that
accounted for 70% of the annual energy savings and 68% of the peak savings.
133
This study used a model for calculating evapotranspiration based on four types of
agricultural crops and on measurements of the ratio of evapotranspiration to solar
radiation.
134
The authors admit that use of this model should be taken with caution,
as it had yet to be determined whether it was applicable for all climates and plant
types.
135
A more recent study has expanded on this original work by Huang et al., and
incorporates the FAO recommended standard Penman-Monteith equation for
calculating evapotranspiration. This study identifies other limitations of the original
study, such as assuming little variation in temperature and humidity with air mixing
height, assuming uniform increase in cooling effect with increased number of trees,
and assuming that sufficient water will be available to trees (which is not always the
131
Akbari et al, The Potential of Vegetation in Reducing Summer Cooling Loads in Residential Buildings, 1106
132
ibid., 1110
133
McPherson, Cooling Urban Heat Islands with Sustainable Landscapes, 159
134
Akbari et al, The Potential of Vegetation in Reducing Summer Cooling Loads in Residential Buildings, 1107
135
ibid., 1108
56
case).
136
The study thus seeks to incorporate the use of a dispersion pattern model in
conjunction with wind direction to quantify cooling from the moisture released from
trees.
137
The study modelled several different scenarios, from a single home with
varying numbers of trees, to entire neighbourhood configurations. Three-
dimensional moisture contour plots were created around each home. These were
then used to determine the decrease in dry bulb temperature based on the increase in
humidity of the surrounding air. The study found that the dry bulb temperature could
decrease by as much as 1.37 degrees Fahrenheit around a single house with multiple
trees.
138
Although important, the effects of this change in temperature would not be
as significant compared to reductions in energy use from the filtering of radiant heat
gain from tree shade.
Finally, a study produced by the United States Environmental Protection Agency
considered the effects of additional tree cover on three cities in hot, arid locations:
Sacramento, Lake Charles (LA), and Phoenix. The publication reported that direct
effects of shading accounted for only 10 – 35% of total energy savings, with the
remaining savings resulting from temperatures lowered by evapotranspiration.
139
The following graph summarizes the findings of two different tree cover scenarios
for a typical, well-insulated, new house (shading effected are presented as direct,
while effects from evapotranspiration are shown as indirect).
136
Saxena, Microclimate Modification: Calculating the Effect of Trees on Air Temperature, 2
137
ibid., 2
138
ibid., 4
139
United States Environmental Protection Agency Office of Policy Analysis, Climate Change Division, Cooling
Our Communities, 34
57
Figure 16: Effects of Shading and Evapotranspiration on a Well-Insulated House
The EPA also considers the carbon dioxide (CO
2
) absorption potential of trees, as
well as the reduction in CO
2
emissions as a result of reduced cooling loads. The
study states that the annual amount of carbon saved per tree from cooling energy
savings (88 pounds saved per tree per year) is 5 – 10 times greater than the amount
of carbon sequestered on a per tree basis.
140
Consideration of the effect of trees on
both CO
2
emissions and air temperatures has important implications for mitigating
urban heat islands.
140
United States Environmental Protection Agency Office of Policy Analysis, Climate Change Division, Cooling
Our Communities, 36
58
2.7 EFFECT OF TREES ON THE URBAN HEAT ISLAND
As mentioned previously, the planting of trees and other plants in urban settings has
the potential to combat the negative effects of urban heat islands. A short discussion
of the effects of trees on the urban heat island is included in this thesis since
urbanization can include sprawl, which is often characterized by suburban expansion
of detached, single-family homes. Although many large city downtowns consist
primarily of high-rise buildings, there remain within large city boundaries areas of
low-rise residential. Thus this thesis study had application in large urban
environments as well.
An urban heat island is a metropolitan area that is significantly warmer than it’s
surroundings. The main cause is the modification of land surface by urban
development, with waste heat generated by energy usage as a secondary
contributor.
141
On warm days, the air in a city can be 6-8
o
F hotter than the
surrounding area.
142
Plants can reduce this temperature gradient by shading
buildings, intercepting solar radiation, and cooling the air via evapotranspiration.
These combined effects can significantly reduce the energy consumption in urban
buildings.
141
Lawrence Berkeley National Labs Heat Island Group, 2000, High Temperatures, Lawrence Berkeley National
Labs, viewed March 2008, http://heatisland.lbl.gov/HighTemps/
142
ibid., http://heatisland.lbl.gov/HighTemps/
59
Higher temperatures in an urban heat island result in increased energy use due to
greater demand for air-conditioning. For example, during a warm afternoon in Los
Angeles, demand for electric power rises nearly 2% for every degree Fahrenheit the
daily max temperature rises.
143
This trend is shown below in Figure 17. It is
estimated that about 1-1.5 gigawatts of power are used to compensate for the impact
of heat islands.
144
Figure 17: Urban Temperature and Electricity Use Trend
145
It is estimated that a full-size deciduous tree evaporates 100 gallons of water during a
sunny summer day, which uses up about 660,000 Btu of energy. This corresponds to
a cooling effect equivalent to 5 average (10,000 Btu) air-conditioners.
146
In addition
to providing cooling and reducing energy consumption, trees in greater numbers
143
Lawrence Berkeley National Labs Heat Island Group, 2000, Energy Use, Lawrence Berkeley National Labs,
viewed March 2008, http://heatisland.lbl.gov/EnergyUse/
144
ibid., http://heatisland.lbl.gov/EnergyUse/
145
ibid., http://heatisland.lbl.gov/EnergyUse/
146
Moffat et al., Landscape Design That Saves Energy, 18
60
(known as urban forests) located throughout an urban setting can have other positive
effects, such as storm water run-off reduction, increasing air/water quality, as well as
providing carbon storage.
The Lawrence Berkeley Labs Heat Island Group conducted a study in Los Angeles
to determine the effects of adding green space (trees) and lightening surfaces. The
Group divided Los Angeles into hundreds of portions, estimated how much
vegetation and reflective surfaces could be added to each location, and then added
trees and lightened surfaces to 15% of possible areas.
147
The results of the
simulation showed that summer temperatures at 3:00 pm dropped by 6
o
F, which
would cut the need for air-conditioning by 18%, or 1.04 billion kWh.
148
The
increased cover could also lower the need for peak electrical generating capacity by
about 1,500 MW, which is equivalent to 2 or 3 large power plants.
149
The results
were simplified to conclude that a single tree in Los Angeles could save an
additional 6.6 lbs of carbon per year by lowering the need for air-conditioning, plus
15 kg more if that same tree directly shades a building.
150
If the entire community
dropped one degree in temperature (from trees and lighter surfaces), then each
building’s air conditioning load would go down – even those not directly shaded.
151
147
Lawrence Berkeley National labs Heat Island Group, 1999, Estimating Energy Saving Potentials of Heat
Island Mitigation Measure, viewed March 2008, http://eetd.lbl.gov/HeatIsland/EnergyUse/Overview/
148
ibid., http://eetd.lbl.gov/HeatIsland/EnergyUse/Overview/
149
ibid., http://eetd.lbl.gov/HeatIsland/EnergyUse/Overview/
150
ibid., http://eetd.lbl.gov/HeatIsland/EnergyUse/Overview/
151
Lawrence Berkeley National labs Heat Island Group, 1999, Estimating Energy Saving Potentials of Heat
Island Mitigation Measure, viewed March 2008, http://eetd.lbl.gov/HeatIsland/EnergyUse/Overview/
61
Indirect annual savings would thus total an additional 12% (0.7 billion kWh, or $12
million).
152
The above analysis demonstrates the substantial positive effects increased tree cover
can have on the economics and environmental quality of large urban settings. As
outlined, planting even single trees can have a significant effect. Thus it is important
to target low-rise residential building owners to take initiative and implement
energy-efficient landscaping practices by planting trees and other elements in
strategic locations.
2.8 ENERGY-EFFICIENT RESIDENTIAL LANDSCAPE – DESIGN
APPROACHES
The purpose of any energy efficient landscape design is to control solar radiation or
wind, or both at the same time. In general, it is desirable to block or filter excess
solar radiation during the summer (cooling) months, while allowing it to penetrate
into the building during the winter (heating) months. These strategies are designed
to control solar heat gain. Conversely, landscape can also be used as wind breaks to
reduce infiltration and convective heat loss during winter (heating) months in cold
climates. The following sections outline, in further detail, specific landscape
152
Lawrence Berkeley National labs Heat Island Group, 1999, Estimating Energy Saving Potentials of Heat
Island Mitigation Measure, viewed March 2008, http://eetd.lbl.gov/HeatIsland/EnergyUse/Overview/
62
strategies for the various climates of the United States. Although the scope of this
thesis includes only the hot, arid climate of Los Angeles, similar landscape design
strategies for other climate regions are provided for reference.
2.8.1 HOT, ARID CLIMATES
Hot, arid regions of the United States, shown in Figure 18, are characterized by wide
daily fluctuations in temperature. This climate extends along the southern regions of
California, Arizona, New Mexico, and Texas.
Figure 18: Hot, Arid Regions of the United States
153
The winter season typically has daily maximum temperatures of about 60-70
o
F,
which then drop to 30-40
o
F during the night time hours.
154
The summer season, by
153
Moffat et al., Landscape Design That Saves Energy, 79
154
ibid., 79
63
comparison, is characterized by maximum temperatures above 100
o
F and minimum
temperatures between 70-80
o
F. These regions also experience hot seasonal winds,
which further contribute to the arid nature of the climate. Therefore, the goals of
energy efficient landscape are to temper and equalize extremes of temperature and
discourage hot winds while retaining any available moisture.
155
2.8.1.1 Sun
Since hot, arid regions experience high daily temperatures year round, it is desirable
to control the amount of radiant energy reaching the building. The landscape should
be designed to block the incident solar radiation during the summer months when the
sun is traversing a high arc that is almost directly overhead during midday.
156
This
can be accomplished by planting tall, high-crowned trees on the southern exposure
close to the home.
157
In addition, sun can be controlled on the eastern side of the
building with low trees that have either light foliage or loose structure.
158
These
types of trees are desirable because they will prevent excessive solar heat gain, but
will not completely block the morning sun. Finally, the sun must also be controlled
to the west, where afternoon heat gain can present a problem. Low trees with dense
foliage planted close to the home can prevent excessive heat build-up during this
time.
159
155
Moffat et al., Landscape Design That Saves Energy, 79
156
ibid., 81
157
ibid., 81
158
ibid., 82
159
ibid., 83
64
2.8.1.2 Wind
Controlling wind for hot, arid regions is different from cooler regions since the
winds add additional heat rather than remove it. Similarly, though, blocking of these
winds can be accomplished through the use of windbreaks planted perpendicular to
the direction of prevailing winds.
160
2.8.2 HOT, HUMID CLIMATES
The hot, humid regions of the United States are characterized by moisture-laden air
that prevents large fluctuations in daily temperature.
161
These areas consist of
Florida, the coastal regions of Georgia, South Carolina, and the Gulf States (as
shown in Figure 19).
Figure 19: Hot, Humid Regions of the United States
162
160
Moffat et al., Landscape Design that Saves Energy, 84
161
ibid., 95
162
ibid., 95
65
Hot, humid regions experience average temperatures between 65-85
o
F for over 75%
of the time, with sun shining on over 60% of all possible daylight hours.
163
High
precipitation rates also contribute to the high levels of humidity. The goals of
landscape in these climates are thus to avoid heat storage and promote ventilation.
164
Landscape can be used to reduce the retention of heat and humidity by shading
windows, walls, roofs, and air-conditioners, and by channelling cool breezes into
living areas.
165
2.8.2.1 Sun
Similar to hot, arid climates, shading the building during the high, mid-summer
afternoon sun is the most important goal for energy-efficient landscape. The
southern façade should be shaded with high-crowned palms planted close to the
home.
166
On the western side of the house, tall palm trees planted at some distance
from the house or shorter palms planted closer to the house will effectively shade
walls and windows from excessive afternoon solar heat gain.
167
2.8.2.2 Wind
In hot, humid regions, cool winds that can dispel moisture and promote evaporation
should be channelled into the house via the use of a tree funnel.
168
A funnel of trees
163
Moffat et al., Landscape Design that Saves Energy, 95
164
ibid., 96
165
ibid., 96
166
ibid., 99
167
ibid., 99
168
ibid., 102
66
can direct and accelerate air toward a home, increasing the impact of a light
breeze.
169
2.8.3 TEMPERATE CLIMATES
Temperate climates are characterized by significant seasonal variation, with
extremely cold winters followed by hot, humid summers. Temperate regions extend
from the northwest coast, through the middle of the United States, and up through
the North-eastern states (see Figure 20).
Figure 20: Temperate Regions of the United States
170
In temperate regions, the goals of energy efficient landscape are to reduce solar heat
gain in the summer months, while allowing for heat gain and retention to occur
during the cold winter months.
171
169
Moffat et al., Landscape Design that Saves Energy, 102
170
ibid., 79
67
2.8.3.1 Sun
For temperate climates, solar radiation control has two purposes: block or filter
summer sun that causes overheating, and permit winter sun to penetrate and warm
living areas.
172
Planting a low-density, light, and low-crowned deciduous tree close
to the home on the east and northeast will filter excessive summer sun while
allowing early morning winter sun to enter the home (since the deciduous tree will
lose its leaves during the winter months).
173
A high-crowned, dense, tall deciduous
tree should be planted on the southern exposure since it will block high summer sun
but allow desirable winter sunlight and warmth.
174
Finally, a combination of low-
crowned evergreens and deciduous plants placed close to the home on the west and
northwest can prevent excessive afternoon heat gain in summer while still allowing
late afternoon winter sun to penetrate the building.
175
2.8.3.2 Wind
Controlling for wind in temperate climates can take on two forms: either planting to
block harsh winter winds or to facilitate movement of cooling summer winds.
176
Designing for wind control should also come second to designing for solar access,
171
Moffat et al., Landscape Design that Saves Energy, 113
172
ibid., 115
173
ibid., 115
174
ibid., 117
175
ibid. 119
176
ibid., 123
68
since the latter generally has a greater effect on building energy use in these
climates.
177
If the landscape is being designed to block winter winds that blow from the east or
west, planting tall trees with loose foliage two to five tree lengths away from the
house will block cold winds without filtering out all morning and evening solar
radiation.
178
The same planting strategy can be used for prevailing southern winds;
however it is necessary to determine the maximum height of the trees based on
winter sun angles so as not to block the warming effect of the available winter sun.
179
Alternatively, if designing to encourage cooling summer breezes, a funnel of tall
hedges can be used to direct prevailing winds toward the home.
2.8.4 COOL CLIMATES
Finally, the classification of a cool climate can be applied to the northern region of
the United States, including the North-central states along the Canadian border as
well as the northern areas of New England (see Figure 21 below).
180
177
Moffat et al., Landscape Design That Saves Energy, 121
178
ibid., 122
179
ibid., 79
180
ibid., 63
69
Figure 21: Cool Climate Regions of the United States
181
These regions are characterized by severe winters of extreme cold followed by
relatively cool summers.
182
Average winter temperatures range from 0-20
o
F, while
summer temperatures reach an average maximum of 70-85
o
F.
183
There is also
considerable variation in seasonal sunlight, with fourteen (14) hours of sunlight in
the summer and only eight (8) hours of sunlight during the winter months.
184
The
region is also characterized by strong winter winds, which can greatly increase heat
loss. Given the above prevailing climatic conditions, it is apparent that landscape
design efforts should be directed at minimizing heating loads. This can be
accomplished by allowing winter sun (solar radiation) to penetrate the building while
simultaneously reducing the velocity of cold winds.
181
Moffat et al., Landscape Design that Saves Energy, 63
182
ibid., 63
183
ibid., 63
184
ibid., 63
70
2.8.4.1 Sun
As mentioned above, it is desirable to permit solar heat gain into the building during
the winter months. In midwinter, about 85% of the total solar energy is collected
between 9:00 am and 3:00 pm, when the sun travels a short, low arc from a bearing
angle of 150
o
(southeast) to 210
o
(southwest), reaching a noon altitude angle of only
20
o
.
185
During the winter days, the warming impact of the sun is highest on vertical
south-facing wall surfaces and through vertical south-facing windows.
186
As such,
the area around the building from southeast to southwest should be cleared of all
sun-blocking obstructions, including trees.
2.8.4.2 Wind
In addition to permitting winter sun access into the structure, solar heat gain should
also be complemented by implementing plant designs that deflect cold winds.
Strong cold winds cause increased heat loads through infiltration heat losses, as well
as convective heat loss from building surfaces. Rows of tall trees planted
perpendicular to the direction of the wind, and planted in stands that are wider than
the mature height of the trees, provide effective shields from cold winds.
187
185
Moffat et al., Landscape Design that Saves Energy, 65
186
ibid., 65
187
ibid., 67
71
2.9 LANDSCAPE ELEMENTS
Various landscape elements exist for the modification of microclimates including
trees, shrubs, groundcovers, and water features. This thesis will focus on the
placement and selection of trees. Since the scope of the tool will be in the Southern
California region, the tree library database in the program will consist of native trees
to the region.
2.9.1 CALIFORNIA CLIMATE ZONES
The trees that grow in any region depend on the climate zone. Different plants are
suited for varying climates, thriving in some locations while potentially having
difficulty surviving in others. Section 2.8 above outlined planting strategies for 4
general climate zones in the United States. Although these climates provide general
descriptions of different regions of the United States, there are also several varying
climates within these broader zones.
There are different climate zone breakdowns currently available for the state of
California. One climate zone map has been developed by the California Energy
Commission, and comprises a breakdown of climate zones based on energy use,
72
temperature and other weather factors.
188
This map consists of 16 distinct climate
zones and is shown below as Figure 22.
Figure 22: California Energy Commission Climate Zones
189
Another California Climate Zone map has been developed and published in the
Sunset Western Garden Book.
190
This breakdown of climate zones is widely
accepted as a planting guide for the west coast region because it reflects elements of
microclimates affecting plant growth besides just high and low temperatures. This
map proposes 24 climate zones, as opposed to 16, and is shown below as Figure 23.
188
The California Energy Commission, 2008, California Energy Maps, The California Energy Commission,
viewed November 2009, http://www.energy.ca.gov/maps/building_climate_zones.html
189
The California Energy Commission, 2008, California Energy Maps,
http://www.energy.ca.gov/maps/building_climate_zones.html
190
Hatch, CR, 2007, Trees of the California Landscape, University of California Press, Berkeley
73
Figure 23: California 24 Climate Zone Map
191
The climate zones shown above in Figure 23 closely overlap other maps depicting
California native vegetation types and habitats.
2.9.2 NATIVE VEGETATION
It is important to select vegetation native to the climate of the location in question
since non-native plants can have negative effects on the region. Non-native
vegetation can require excessive irrigation, can be poisonous to local wildlife, and
can be parasitic on other adjacent native vegetation.
191
Hatch, Trees of the California Landscape, 17
74
As mentioned above, the California Climate Zone map of Figure 23 closely overlaps
other published maps depicting native vegetation types and habitats. The map shown
below in Figure 24 shows the 6 major plant habitat regions, including the 19 sub-
categorizations that range from prairie grassland to sub alpine forest.
Figure 24: California Vegetation Types and Habitat
192
The process in the program software for the selection of plants based on the above
vegetation habitat map will be discussed further in Chapter 3.
192
Hatch, Trees of the California Landscape, 35
75
CHAPTER 3
The following chapter outlines the theory and methods used in the program
development and calculations.
3.1 INSTANTANEOUS COOLING LOAD CALCULATION
Different methods for determining cooling loads were presented in Chapter 2. For
the purposes of this thesis, calculations based on first principles will be employed,
rather than the peak cooling load methods. Methods based on first principles will
provide instantaneous cooling loads that are required for building simulation
analyses. The main calculation is provided as Equations (7) and (8) in Chapter 2.
It should be noted that the instantaneous cooling load calculation for shaded surfaces
is also modified by the tree transmissivity. Since a tree canopy is not an opaque
surface, this value reflects the filtering effects of solar radiation by tree foliage (ie.
the amount of solar radiation being transmitted through the tree canopy). A lower
transmissivity value indicates a greater amount of filtering by the tree, and thus less
radiation being transmitted through the canopy to strike the shaded surface.
Conversely, a higher transmissivity indicates lower filtering by the tree, and thus a
greater amount of radiation is being transmitted through the canopy. The tree
transmissivity for deciduous trees typically changes depending on the time of year.
The transmissivity value of a tree canopy is lower in the summer when foliage is
76
denser, and so less radiation will penetrate through the leaves to strike a surface. The
transmissivity is higher in the winter when the tree loses much of its leaves and so
more solar radiation will penetrate through the tree canopy. The transmissivity value
is applied to the direct beam component in Equation (8).
Weather data is required to perform the instantaneous heat gain calculations. As
mentioned in Chapter 2, the study and documentation of a particular climate region
over a period of time allows for the development of a set of climate data. This data
is compiled from weather stations and is available for reference and/or download
from many sources. Climate data for use in this thesis will be downloaded from the
National Solar Radiation Data Base.
193
This directory contains data files for the
typical meteorological year (TMY) data sets derived from 1961-1990 and 1991-2005
National Solar Radiation Data Base archives.
194
The most recent TMY3 data sets
provide hourly values for temperature, solar radiation and other elements.
195
The
TMY3 data files represent typical conditions and are intended for use in computer
simulations of building systems.
196
193
National Solar Radiation Data Base, Typical Meteorological Year 3, United States Department of Energy
Office of Energy Efficiency & Renewable Energy, viewed October 2008,
http://rredc.nrel.gov/solar/old_data/nsrdb/1991-2005/tmy3/
194
ibid., http://rredc.nrel.gov/solar/old_data/nsrdb/1991-2005/tmy3/
195
ibid., http://rredc.nrel.gov/solar/old_data/nsrdb/1991-2005/tmy3/
196
ibid., http://rredc.nrel.gov/solar/old_data/nsrdb/1991-2005/tmy3/
77
3.2 SHADING – ALGORITHM AND SAVINGS CALCULATIONS
As mentioned in Chapter 2, several methods are currently available for calculating
and modelling shade patterns on plane surfaces. For the purposes of this thesis,
equations for determining solar azimuth and altitude angles will be used in
conjunction with the vector algebra approach to determine which planar surfaces
(walls) are facing the sun at any given point for the selected latitude and
subsequently to calculate energy savings from shading.
3.2.1 EQUATIONS FOR SOLAR AZIMUTH AND ALTITUDE ANGLES
The following section outlines the equations used to calculate the solar angles used
in the program. The figure below shows the solar angles in relation to a ground
plane.
Figure 25: Azimuth and Altitude Angles
78
Solar azimuth and altitude are determined based on the latitude of the location in
question, time of day, and day of the year. Calculation of the altitude angle requires
that the declination, apparent solar time (AST), and hour angle for the particular hour
be calculated. These equations are shown below.
!
Declination =23.45"sin[(Julian +284)"(360/365)] (16)
!
AST =[hour"24#(Julian"1)] + EquationOfTime/60 +(LSM"Longitude)/15 (17)
!
HourAngle =15.0" AST#12 (18)
Equation (16) and (18) above are both expressed in degrees. To convert to radians,
each of these equations is multiplied by Π/180. For the declination and apparent
solar time equations, Julian represents the number of days that have passed since the
first day of the year (leap years will not be considered). For the apparent solar time
equation, hour represents the hour in the year and the LSM variable (Local Standard
Time Meridian) relates to the specific time zone of the location in question.
Standard meridians are found every 15
o
from 0
o
at Greenwich, U.K (the Greenwich
Meridian).
197
Thus the Local Standard Time Meridian for Los Angeles in Pacific
Standard Time is 120
o
. The Equation of Time is required to convert the local
standard time to solar time. The ASHRAE 2005 Fundamentals Handbook provides
equation of time values for each month of the year; these values are used in the
program. For the hour angle equation, the vertical bars represent absolute value, and
197
ASHRAE, 2005 Fundamentals Handbook, 31.13
79
apparent solar time is expressed as a 24-hour clock (ie. 2:00 pm represented as
14:00). Based on the results of equations (16), (17) and (18) above, the sine of the
altitude can be calculated as follows:
sin(Altitude) = cos(Latitude)*cos(Declination)*cos(HourAngle) (19)
+ sin(Latitude)*sin(Declination)
In the above equation, latitude, declination, and hour angle must be expressed in
radians when converted to Visual Basic code. The altitude, in radians, is thus:
!
Altitude =asin(sin(Altitude)) (20)
Equation (20) is also expressed in radians. To convert to degrees, equation (20) is
multiplied by 180/Π.
Finally, the equation for solar azimuth is as follows:
!
cos(Azimuth) =
sin(Altitude)*sin(Latitude)"sin(Declination)
cos(Altitude)*cos(Latitude)
(21)
Similar to equation (19), latitude, declination, hour angle, and altitude must all be
expressed in radians.
3.2.2 DETERMINING PLANE FOR SHADING CALCULATION
The azimuth and altitude angles can be used to simplify the shading algorithm. Each
wall plane can be rotated and tilted so it is inline with the sun’s rays. This yields a
model and calculating problem in only 2-dimsensions as opposed to 3-dimensions.
80
The plane rotation and tilting is accomplished via application of two distinct matrix
multiplication transformations.
Figure 26: Orientation of X, Y, Z Planes
Prior to performing the transformation calculations, it is necessary to establish the
orientation of the X, Y, and Z planes of the Cartesian coordinate system. Different
conventions exist, however Figure 26 above shows the system that will be applied in
this thesis. The positive y-axis is in the direction of due North, the positive x-axis
facing East, and the positive z-axis is pointing upward toward the sky. As mentioned
in section 3.2 above, user inputs on building dimensions will be used to establish the
corresponding X, Y, and Z coordinates of each surface to define the overall volume.
81
The building will be represented as a cubic/rectangular volume defined by a set of 8
distinct points, each having specific (x,y,z) coordinates. Each of these 8 points will
be transformed separately so as to transform the surface (plane) of each wall.
The wall to be examined is first rotated about the Z-axis (on the X-Y plane) via
application of a matrix transformation based on solar azimuth angle, and is then
tilted around the X-axis via application of a second matrix transformation involving
the solar altitude angle, so as to be perpendicular to the sun’s rays. Each rotation
assumes a point of reference around the origin (0,0,0). The matrix’s representing the
azimuth and altitude transformations are as follows:
Azimuth transformation:
!
M1 [ ]
x
y
"
#
$
%
&
'
=
( x
( y
"
#
$
%
&
'
where
!
M1 [ ] =
cos(") #sin(")
sin(") cos(")
$
%
&
'
(
)
(22)
Altitude transformation:
!
M1 [ ]
" y
z
#
$
%
&
'
(
=
" " y
" z
#
$
%
&
'
(
where
!
M2 [ ] =
cos(") #sin(")
sin(") cos(")
$
%
&
'
(
)
(23)
In the above equations, Φ represents the solar azimuth angle, and β represents the
solar altitude angle. The azimuth angle is assigned a positive or negative sign value
based on the time of day. After both the azimuth and altitude transformations have
been performed, each point will have a distinct set of coordinates describing their
82
final position for that hour. These coordinates will be [x’, y”, z’]. The same
transformations are performed for the points defining the window location, as well as
the points defining the tree polygon. These final points are used in the scanline
algorithm analysis.
Once the transformations have been completed, it is then necessary to determine
whether or not each respective plane is facing the sun. If the plane in question does
not face the sun, it can be discarded from the calculations for that given hour. It is
possible to ascertain this information through use of the surface solar azimuth, γ.
The ASHRAE Fundamentals Handbook outlines the surface solar azimuth as
follows:
198
!
" =#$% (24)
where: γ = surface solar azimuth angle
Φ = solar azimuth angle
Ψ = surface azimuth angle
The solar azimuth, Φ, is positive for afternoon hours, and negative for morning
hours. Similarly, surfaces that face west have a positive surface azimuth angle, Ψ;
and those facing east have a negative surface azimuth angle. For example, surfaces
facing directly east have a surface azimuth angle of -90
o
, surfaces facing south have
a surface azimuth angle of 0
o
, and surfaces facing west have a surface azimuth of
198
ASHRAE, 2005 Fundamentals Handbook, 31.15
83
90
o
.
199
If the surface solar azimuth, γ, is greater than 90
o
or less than -90
o
, then the
surface is in the shade, and the wall surface is not facing the sun.
Since the sun’s position is constantly changing as it rotates about the house, it is
necessary to evaluate the surface solar azimuth for each wall plane at every hour for
the particular day between sunrise and sunset. Calculations are performed hourly
because the TMY3 weather data files contain hourly values. Thus calculations are
performed on an hourly basis to determine the instantaneous heat gain values, which
depend both on weather data and sun position.
3.2.3 PROJECTION OF SHADE PATTERN ONTO WALL PLANE
Once it has been established whether a particular wall plane is facing the sun (and
thus whether it is to be included in subsequent calculations), it is necessary to map
the projection of the shadow created by the tree onto the wall in order to determine if
the windows are shaded or unshaded. The method used in this thesis involves the
use of a scanline algorithm, as described in Chapter 2. The use of this algorithm in
the program will be discussed in further detail in Chapter 4.
3.2.4 CALCULATING SAVINGS FROM SHADING
The savings that are achieved from the presence of shade on a building surface can
be calculated by comparing the instantaneous heat gain through an unshaded surface
199
ASHRAE, 2005 Fundamentals Handbook, 31.16
84
versus the instantaneous heat gain through a shaded surface. As outlined in Chapter
2, instantaneous heat gain calculations consider the area of the surface in question as
well as the U-value of the fenestration construction assembly. For the purposes of
this thesis, only solar radiation in the form of direct beam and diffuse sky will be
taken into consideration when performing the heat gain calculations; terrestrial
radiation (radiation emitted by surrounding bodies) will not be included in the
analysis.
As mentioned in section 3.3.3 above, a scanline algorithm will be used to determine
the percentage of shadow falling on the fenestration surface for each hour in the
analysis. The hourly instantaneous heat gain for both the unshaded and shaded
scenarios will be added over the course of the entire TMY3 weather data year to
determine annual energy reduction from the presence of tree shade.
In addition, the tree transmissivity will be taken into account when calculating the
shaded heat gain. As mentioned in section 3.1, the transmissivity value is applied to
the direct beam component of Equation (8) and is typically expressed as a decimal.
The amount of shaded area heat gain is calculated with the transmissivity applied.
The instantaneous heat gain of the remaining unshaded area of the window is
calculated without considering the effects of shade. The complete modified equation
is presented as follows.
85
!
Q
Shaded
=U"A
Total
"(T
out
#T
in
)
+SHGC"A
Shaded
"$"((E
DN
"cos%) +E
d
)
+SHGC"(A
Total
#A
Shaded
)"((E
DN
"cos%) +E
d
)
(25)
where: Q
Shaded
= instantaneous energy flow (Btu/h)
U = overall coefficient of heat transfer (Btu/h*ft
2
*
o
F)
T
in
= interior air temperature (
o
F)
T
out
= exterior air temperature (
o
F)
A
Total
= total projected area of fenestration (ft
2
)
A
Shaded
= total projected shaded area of fenestration (ft
2
)
SHGC = solar heat gain coefficient
τ = transmissivity
E
DN
= direct normal radiation (Btu/h*ft2)
E
d
= diffuse sky radiation (Btu/h*ft2)
3.3 WIND BREAKS
As discussed in Chapter 2, there are methods available for determining the potential
savings that can be achieved through the use of trees as wind breaks. Savings from
reduced wind load on a building, however, will not be included in the program
developed in this thesis since the geographical region of Los Angeles will benefit
primarily from the use of trees as sun shading devices rather than wind breaks.
3.4 EVAPOTRANSPIRATION
As was also discussed in Chapter 2, there are methods available for determining the
evapotranspiration rate for trees and other vegetation based on outdoor temperature
information. Savings from evapotranspirative cooling, however, will not be included
in the program developed in this thesis. Since the scope of the thesis program will
86
only include analysis capability for a single tree, the effects of evapotranspirative
cooling would be negligible. Chapter 7 discusses future work opportunities that
could include expansion of the program to include multiple trees, in which case
inclusion of evapotranspirative cooling analysis would be appropriate.
3.5 TREE LIBRARY AND DATABASE
The following section outlines the development of the tree library and database for
use in the program.
3.5.1 VEGETATION HABITATS
The California vegetation types and habitats were identified in Chapter 2. The Los
Angeles region of this map is enlarged below in Figure 27.
Figure 27: Vegetation Types and Habitats for Los Angeles
200
200
Hatch, Trees of the California Landscape, 35
87
As can be seen from this map, there are 7 vegetation habitats in the Los Angeles
region: coastal strand, coastal scrub, chaparral, oak woodland, closed cone forest,
juniper-pine woodland, and Mojave Desert scrub.
3.5.1.1 Coastal Strand
Sandy beaches and dunes, with high exposure to salt spray and sand blast as well as
wind and fog, characterize the coastal strand vegetation habitat.
201
The soil has low
water holding capacity as well as low organic matter content.
202
These areas are
scattered along the entire length of the state, and experience typical rainfall of 15-70”
per year.
3.5.1.2 Coastal Scrub
The coastal scrub vegetation habitat is also found along the entire length of
California coast, and typically consists of coastal cliffs, bluffs, and dry gravely or
rocky slopes.
203
These regions experience only 10-20” of rainfall per year.
204
3.5.1.3 Chapparal
The chapparal vegetation habitat is found along the coast of California as well as
several locations inland. These areas experience rainfall of 14-25” per year.
205
Dry
201
Hatch, Trees of the California Landscape, 36
202
ibid., 36
203
ibid., 38
204
ibid., 38
205
ibid., 40
88
slopes and ridges with rocky or gravely to fairly heavy soils characterize these
areas.
206
3.5.1.4 Oak Woodland
The oak woodland vegetation habitat is generally found in regions similar to those of
the chapparal habitat. These regions are experience moderate temperatures and
receive about 14-25” of rainfall per year.
207
3.5.1.5 Closed Cone Forest
The closed cone forest vegetation habitat is found in various locations throughout
California but is typically concentrated in Northern California. These areas consist
of coastal cliffs, bluffs, and dry gravely or rocky slopes, and experience low rainfall
(between 10-20” per year).
208
3.5.1.6 Juniper-Pine Woodland
Regions of juniper-pine woodland are heavily concentrated in North-Eastern
California, but extend through Central California down to select locations in
206
Hatch, Trees of the California Landscape, 40
207
ibid., 41
208
ibid., 42
89
Southern California. These regions experience 0-30” of rainfall per year, and are
typically located in higher elevation plateau mountain regions.
209
3.5.1.7 Mojave Desert Scrub
Finally, the Mojave Desert scrub vegetation habitat is located in the inland regions of
the Southern California desert. These subtropical desert regions are considered the
driest in North America, and are characterized by sandy slopes, alluvial fans, and
valleys.
210
These areas experience extreme temperature fluctuations from hot to cold
and receive annual rainfall is about 2-8”.
211
3.5.2 TREE DATABASE DEVELOPMENT
These vegetation habitats were used in the development of the tree library for the
computer tool. Each of these habitats has associated trees that are commonly found
in these regions.
Several sources were referenced for data on tree life span, canopy diameter,
density/transmissivity, as well as foliation period. The original list of native trees
was further refined and narrowed based on this available data. In addition, several
trees were eliminated from the library list based on ability to survive in urban
209
Hatch, Trees of the California Landscape, 42
210
ibid., 39
211
ibid., 39
90
settings. These trees were removed from the library for the purposes of this thesis
since the Los Angeles area consists mainly of highly urbanized areas, which include
the low-rise residential areas. The final list of trees that appear in the program and
their associated data are included for reference as Appendix A.
91
CHAPTER 4
The following chapter outlines in detail the method of development and operation of
the program.
4.1 WHAT THE TOOL DOES
As outlined in Chapter 1, the purpose of the tool is to provide a user with expected
savings from the planting of trees as sunshades based on simple inputs regarding the
house and tree location. The tool is designed to progress through a series of input
screens requiring the user to provide information on building and yard dimensions,
fenestration construction and location on the wall, as well as desired tree species and
its location in the yard. Once all this information has been input, the program
calculates potential reduction in incident solar radiation gain on the fenestration, and
thus the anticipated reduction in heat gain. The program will output recommended
tree locations based on anticipated reduction in instantaneous heat gain, but will also
allow the user to select where they would like to place the tree and will perform
subsequent calculations based on this input.
4.2 VISUAL BASIC
Visual Basic was selected as the program development language for several reasons.
Visual Basic 2008 is based in the .NET Framework, which is a development
environment that provides the programmer with the compiler and tools required to
92
build, debug, and execute managed applications.
212
Visual Basic is an event-driven
programming language, which means that the flow or operation of the program is
determined by events (such as mouse clicks). This is suitable for the purposes of this
thesis since the execution of the program requires the user to provide inputs and
make selections that, in turn, cause the program to execute the algorithms. The
language is also recommended for novice programmers since the syntax used is
considered to be simpler than other programming languages. Despite its simplicity,
Visual Basic still allows for development of fairly complex applications. The
combination of these factors resulted in the selection Visual Basic as a suitable
platform.
4.3 DEVELOPMENT APPROACH
The development of the computer-based tool in this thesis consisted of several steps.
Since the author was required to learn the Visual Basic programming language while
conducting topic related research, two distinct but parallel paths of research and
development were required. Literature review and investigation into previously
existing simulation programs identified the need and viability of an energy efficient
landscape simulation tool. These reviews also helped to identify what information
would be required in this new tool, how it would operate, and also what outputs
212
Pelland, P, 2008, Build A Program Now: Visual Basic 2008, Microsoft, Redmond, Washington
93
would be provided to the user. Figure 28 below outlines the steps followed involved
in the development of the program.
Figure 28: Steps in Program Development
The scope and requirements were identified through the literature review process.
Subsequent to the completion of the literature review, several stand-alone programs
relating to the thesis content were developed in Visual Basic. It was intended to
learn Visual Basic while constructing the various sequences of code required in the
final program. This also aided in the design and code steps of the design. The
following sections outline the development approach in further detail.
4.3.1 SCOPE
During completion of the literature review, it was necessary to identify the scope and
purpose of the tool. It had been identified previously that, although many building
energy simulation programs were currently available, there was an apparent lack of
capability in estimating energy savings due to surrounding landscape (ie. trees). This
94
lack of availability thus helped define the purpose, scope, and boundaries for the
thesis tool.
The single-family detached home was identified as the target building type for the
tool since it was concluded that the suburban housing residential sector represented a
substantial area for reducing energy consumption.
It was originally intended to construct the tool so that it could be applied in any
location in the United States, however time constraints necessitated a narrowing of
the scope to a specific region. It was decided to focus the analytical scope of the tool
on the hot, arid region of Southern California.
4.3.2 REQUIREMENTS
Once the scope of the tool had been identified, it was necessary to determine the
requirements of the program in terms of user inputs, calculations/algorithms to be
carried out by the program, and outputs to be provided. As mentioned in Chapter 2,
the three main methods of microclimate modification by landscape involve
producing shade, acting as windbreaks, and providing evaporative cooling. These
were thus identified as the main areas of calculation analysis, which will be
transferred into algorithms. As such, the inputs, outputs, and corresponding
calculations for each of these areas were also identified. These variables are shown
in the flow chart of Figure 29 below.
95
Figure 29: Variable Flow Chart for Energy Savings Calculations
Since the scope of analysis was limited to Southern California, the sun shading
analysis was identified as the most important in producing energy savings.
Evapotranspiration was also identified as being pertinent to the analysis although the
cooling effect would not result in savings as substantial as those produced from sun
shading. Windbreaks were not deemed to be of significant importance in hot, arid
environments and so they are not included as part of the tool developed for this
thesis. Potential expansion to include windbreak analysis is discussed further in
Chapter 7 – Future Work.
96
4.3.3 DESIGN
4.3.3.1 User Interface
Since the aim of the thesis is an interactive tool that returns outputs based on user
provided inputs, the user interface is thus a series of input screens with final screens
displaying analysis results. The development of stand-alone programs aided in the
development of the user interface as it helped to identify the variables required to be
input by the user.
Each screen consists of visual graphics, input boxes, list boxes, check boxes, and
buttons. The user is prompted to input values into the text boxes to define building
and window dimensions as well as tree placement. The list boxes provide pre-
selected window constructions, and the check boxes allow the user to select from a
list of native trees appropriate to the Los Angeles climate. Several buttons are
provided on each screen to allow the user to navigate through the program. The user
can move to the next screen, or move back to the previous screen. In the case of the
final savings output screen, additional buttons are provided to allow the user to
return to different screens to change inputs that will affect the savings results.
Finally, each screen is also provided with a help button. Clicking this button will
cause a message box to appear containing further instructions for that particular
screen, and also more detailed explanations to clarify the purpose of the inputs for
the user.
97
4.3.3.2 Program Structure
The program developed in this thesis operates in a linear manner, with each
successive screen using inputs from previous screens and obtaining information from
the user to be used later. The diagram in the figure on the following page shows a
graphical representation of the interaction between the forms, modules, and
databases.
98
Figure 30: Program Flow Chart
99
4.3.4 CODE
The complete program code is included for reference as Appendix B. The following
sections outline the various elements and methods of approach used in the program
structure.
As mentioned previously, several stand-alone programs were developed in Visual
Basic to aid in the learning of the programming language itself and to gain a more
thorough understanding of the theory, calculations, and data necessary to construct
the final tool. Through development of these stand-alone programs, it was
determined that the program will consist mainly of databases, arrays, and simple
mathematical calculations. These elements are discussed in further detail in the
following sections.
4.3.4.1 Data Bases
Information required for calculations, but that is not input by the user, is stored and
called from an organized collection of information stored within the program known
as a database.
213
The database is available whenever the user runs the program.
Information is called from the database depending on the user inputs and is
transferred to the main algorithms as a dataset to be temporarily stored as variables
or in an array. This temporary storage allows the program to use the information in
213
Halvorson, M, Visual Basic 2008 Step by Step, Microsoft, Redmond, Washington
100
calculations without any possibility of altering or damaging the original database
information.
Since the purpose of this program is building energy simulation calculation, weather
data information is required for the analysis. TMY3 weather files are used in the
program. These files provide incident solar radiation, temperature, humidity, and
other data for every hour of the year (for a total of 8760 hours). TMY3 weather files
can be opened as a spreadsheet, and the information can be copied and pasted into a
constructed database table with columns (known as “fields” in Visual Basic)
matching those found in the spreadsheet. Figure 31 below shows a screen shot of the
Los Angeles weather information database.
Figure 31: Los Angeles TMY3 Weather Data Program Database
101
The TMY3 data files provide information in metric units (ie. Watts, degrees Celsius,
meters). The program constructed in this thesis performs all calculations in Imperial
units (ie. British thermal units, degrees Fahrenheit, feet). As such, all information
was converted from metric to imperial in the TMY3 Excel spreadsheets before
transferring the information to the databases.
In the opening screen of the program, the user is prompted to select their city
location. This information is used to call the appropriate city weather data and
transfer it to temporary storage as various single dimension array lists. An array list
is essentially a single column (field) array. Since there are 8760 hours, each array
list will consist of 1 column with 8760 rows (known as “records” in Visual Basic)
containing the corresponding value of temperature, incident solar radiation, and other
climate information for that hour. These array lists are then used in the energy
calculation algorithms.
In addition, specific tree data is also stored as a database. Information corresponding
to the specific tree types (such as tree height, canopy diameter, and transmissivity)
will be called and temporarily stored as variables for use in calculations as well.
Figure 32 below shows a screen shot of the tree database. Development of this
database will be discussed further in the following sections.
102
Figure 32: Tree Library Database
4.3.4.2 Forms and Sub Procedures
The program consists of a series of screens that open in sequence as the user moves
through various prompts for inputs. As such, each of these screens was constructed
as an individual form in Visual Basic. A form is considered an object that has its
own set of object, properties, methods and event procedures.
214
For this program,
each of the input screens consists of a series of input prompts (in the form of text
boxes, check boxes, list boxes, etc.) that passes information to the sub-procedures.
Sub-procedures are called from event procedures or other procedures, and are
typically used to receive or process input, display output, or set properties.
215
They
differ from function procedures in that they do not return values associated with their
particular sub-procedure names.
216
In the thesis program, sub-procedures typically
perform some function; such as call information from a database, execute a
214
Halvorson, Visual Basic 2008 Step by Step, 347
215
ibid., 262
216
ibid., 262
103
calculation, or return a variable. Variables are a type of container used to temporarily
hold data in the program.
217
Variables are declared or created and are subsequently
used to store names, inputs, and to help perform and store results of calculations.
4.3.4.3 Modules
Since the program requires the use of multiple forms, it is necessary to define global
variables that can be used throughout the program. When variables or sub functions
are defined in a form, they can only be used in that form. This is problematic for the
format of this program since the various forms require access to the same
information (ie. variables). As such, specific variables or arrays that are required
throughout the program were identified and declared as public variables in a module.
A module is a special file that contains variable declarations and procedures that can
be used anywhere in the program.
218
This is useful for the type of analysis
performed in this program since the various algorithms use information obtained in
the different user input screens and conduct hourly energy simulation analysis. As
such, the variables used are required for different equations in different forms, and
also the value of the variables change with the hourly analysis.
217
Halvorson, Visual Basic 2008 Step by Step, 80
218
ibid., 254
104
4.4 METHOD OF OPERATION
The following section outlines the function of the program. Each form will be
discussed in detail, outlining how the various inputs call database information or are
used in the algorithms. The outputs of these algorithms will also be discussed.
4.4.1 SCREEN 1 – WELCOME SCREEN
When the program is opened, the user is greeted with the welcome screen, as shown
below in Figure 33. On this same screen, the user is prompted to input information
on their local electrical utility rate.
Figure 33: Program Welcome Screen
Since the scope of the program is limited to Los Angeles, clicking the “Next” button
provides the necessary event sequence to cause the program to call the required
weather data from the database (Figure 34 below).
105
Figure 34: User Input Relation to Los Angeles Weather Database
The right side of the image above shows the Los Angeles Dataset. The Los Angles
Table Adapter allows the data to be accessed and transferred as a dataset from the
database. When the desired data is accessed from the database, it is transferred to the
program for use in what is known as a dataset. The dataset is simply a copy of the
data that is stored in the database and contains the values that will be used by the
program. This allows the data to be used or manipulated in calculations without the
potential of the original data in the database being altered or erased. A small sub-
function in this form transfers the direct normal irradiance and dry bulb temperature
data into two separate single-field array lists (to be used in calculations).
The “Next” button click event also executes a sub function in this form that assigns
appropriate latitude and longitude values for the location. Finally, this form executes
another sub-function that calculates the solar angles (azimuth and altitude) for each
hour of the year based on the latitude and longitude. As mentioned in Chapter 2, the
azimuth angle is assigned a positive or negative sign depending on the time of day.
This sign convention is established based on the matrix transformation equations but
106
also on the direction of rotation that occurs in Visual Basic. Hours occurring before
noon are assigned a negative azimuth value and rotation is defined as negative in a
clockwise direction around the z-axis. Conversely, hours occurring after noon are
assigned a positive azimuth value and thus positive rotation occurs in a counter
clockwise direction around the z-axis. These solar angles are stored in separate
single-field array list and are used in the hourly energy simulation analysis. The
latitude and longitude variables as well as solar angle, irradiance, and temperature
array lists were all declared as global or public objects. As such, they are useable
throughout the program in the various forms and sub-functions.
It should also be mentioned that, as discussed previously, each screen is equipped
with a “Help” button to provide the user with further information and instructions on
the current screen. A sample screen shot is provided below in Figure 35. The image
shows the Welcome Screen of Figure 33 with it’s corresponding help file.
Figure 35: Welcome Screen with Help File Dialog Box
107
In addition, each screen is also programmed to error check for data consistency.
Each input text box, list box, or check box has corresponding code to ensure that the
user has provided the necessary input, and also that the type of input is of the
required type. For instance, many of the text boxes require numeric values. These
text boxes are programmed with error checks to make sure the program enters a
numeric value instead of string data or no data at all. Figure 36 and 37 show
examples of the warning messages received when the user has made an input error.
Figure 36: Welcome Screen with Sample Missing Value Error Message
Figure 37: Welcome Screen with Wrong Data Type Error Message
108
Each of the user interface screens is equipped with similar “Help” buttons and error
checking.
4.4.2 SCREEN 2 – BUILDING INFORMATION
The next interface the user encounters is the Building Information input screen (see
Figure 38 below). This screen prompts the user for building dimensions.
Figure 38: Building Information Input Screen
The program assumes the simple geometry of a square-shaped house in plan, such
that the North-South walls are the same dimension and similarly for the East-West
walls. The program developed in this thesis considers only one window on each
wall. It is possible to expand the capabilities of the program to consider multiple
windows for each wall. This is discussed further in the Chapter 7: Future Work.
109
4.4.3 SCREENS 3, 4 & 5 – FENESTRATION
Following the building dimension and construction input screen, the user is
prompted for information regarding the fenestration on the house. Fenestration
information is input on four separate screens, one for each of North, East, South, and
West wall fenestration. The screens each have a similar layout, which is shown
below in Figure 39.
Figure 39: Typical Fenestration Input Screen
The figure above shows a screen shot of the East Wall Fenestration input screen.
The user is prompted for information regarding the size of the window as well as the
placement of the window on the wall relative to the ground and an adjacent wall.
These later inputs are required in order to assign 3D Cartesian coordinates for each
110
of the 4 corners of the window. The user is also required to select the frame and
glazing type of the window. These are selected from the list boxes shown on the
bottom left of the image. Depending on the frame and glazing combination selected,
the program assigns a U-value and Solar Heat Gain Coefficient to the window.
These values are required to calculate the instantaneous heat gain.
4.4.4 SCREEN 6 – TREE SELECTION
Once all required the user has provided all required building information, the
remaining input screens offer the opportunity to select from a list of trees. Figure 40
below shows an image of screen 6, which allows the user to select from a list of tall
deciduous trees.
Figure 40: Tree Selection Input Screen
The user selects from a pre-determined short list of climate appropriate deciduous
trees. Once the user clicks one of the radio buttons and clicks the “Select Tree”
111
button, two pictures boxes, a text box, and two additional buttons are displayed. An
image of an example screen is shown below in Figure 41.
Figure 41: Tree Selection Input Confirmation Screen
As can be seen from this screen, the program loads two different pictures of the
selected tree type: one depicting the tree in full summer foliage, the other showing
the tree as it would look during the winter months without foliage. The text box also
provides additional information on the tree, such as expected life-span, maintenance
requirements, or other such useful information which a homeowner might find
relevant in attempting to make a decision. If the user doesn’t like the tree selection,
or simply wishes to view another tree, they can click the “No, I don’t like this tree”
button. This hides the picture boxes, text box and buttons and the user is again
presented with the initial screen shown in Figure 40. Users may view all the trees,
one at a time, if they desire.
112
Once an acceptable tree has been identified, the user will select the “Yes, I like this
tree” button. The program then assigns several variables stored in a database
depending on the tree selection: tree height, tree canopy diameter, summer
transmissivity, winter transmissivity, foliation date, and defoliation date. See Figure
42 below.
Figure 42: User Input Relation to Tree Library Database
The tree height and tree canopy diameter dimensions are required to determine the
size and location of the shadow cast on the house. Different values for transmissivity
are also necessary since the trees are deciduous and thus are without leaves for
roughly half of the year. Despite losing leaves, the tree is still capable of blocking
some incident solar radiation since branches are still present. Transmissivity values
are typically given only for on-leaf and off-leaf periods with corresponding foliation
and defoliation (foliation meaning when the tree sprouts leaves in the spring, and
defoliation meaning when the tree loses its leaves in the fall). However, during
transition periods (spring and fall) the transmissivity values can vary between the
113
winter and summer values. Program code was altered to assign a varying
transmissivity value over the course of a month surrounding the foliation and
defoliation dates to reflect the slow appearance or disappearance of tree foliage.
Transmissivity values are different for each tree species, as are foliation and
defoliation dates since the varying species of trees sprout and lose leaves at different
times. Finally, this button click also provides the event that opens up the final user
input screen.
4.4.5 SCREEN 7 - TREE PLACEMENT
Once a tree has been selected from the library, the user may select where they wish
to place the tree in the yard. Inputs are required in relation to the x, y, z coordinate
system, as shown below in Figure 43.
114
Figure 43: Tree Placement Input Screen
The user is also required to input information regarding the branch height of the tree.
This value is in relation to tree maintenance practice. The branch height is typically
the height at which a homeowner would remove branches from the trunk, thus
dictating the starting height of the canopy. The user is offered the opportunity to
assign this value since they will be maintaining the tree. This value is used in the
program to define the coordinates of the tree polygon, which is then used to calculate
the tree shadow. Since the tree library for this program consists of deciduous trees,
incorporating the concept of branch height will produce a canopy (and shade)
polygon of hemispherical (or semi-circular) shape.
115
4.4.5.1 Construction of Tree Polygon
The tree polygon is constructed using the values for tree canopy diameter (called
from the data base) as well as the user-defined input of branch height. These values
are used in conjunction with a pre-determined polygon point array to establish the
proper polygon shape for the tree selected. The pre-determined polygon point array
consists of 40 points, each with (x,y,z) coordinates, defining various locations of the
tree trunk as well as canopy. The polygon point array is scaled to a value of 1, thus
the selected tree branch height and tree canopy diameter are used as multipliers to
determine the points for the particular tree. Sine and cosine calculations are used to
determine the coordinates of each point.
4.4.5.2 Recommended Tree Placement
Since the program is designed for evaluation in the Los Angeles region, it is
recommended to place a single tree to the west or southwest exterior windows in
order to achieve maximum benefits from available shade.
219
The user is provided
with this recommendation on the tree placement screen.
Clicking on the “Next” button also executes the code that performs the hourly
shading analyses for each wall. This code includes the scanline algorithms and
instantaneous heat gain calculations and is discussed in further detail in the following
section.
219
McPherson et al., Potential of Tree Shade for Reducing Residential Energy Use in California, 16
116
4.4.6 SCANLINE ALGORITHM & INSTANTANEOUS COOLING LOAD CALCULATIONS
Two separate sets of cooling load calculations are performed for each window:
instantaneous loads without shade and instantaneous loads with (if any) shade. Both
sets of calculations are performed hourly based on TMY3 data using values for direct
normal irradiation. The instantaneous load calculations without shade are performed
using the same value for direct normal irradiation, given for the particular hour, over
the entire area of the window (which is derived using the window height and
diameter provided by the user). The instantaneous load calculations that consider
shading from the tree incorporate a scanline algorithm to determine which portions
of the window are in shade and thus which portions are receiving less direct normal
irradiation due to this shade.
As mentioned previously, the building is rotated for each hour so it is inline with the
sun. The surface solar azimuth calculation for each wall plane is then performed to
determine if the plane is facing the sun. If it is, it is included in the shading analysis
for that hour. If not, it is discarded from the analysis for that particular hour. If the
wall plane is included in the analysis for that hour, the scanline algorithm performs
the analysis for the window on that plane (the window coordinates are also rotated).
The tree shadow on the window is also simplified via the matrix rotations. The
interaction between the two becomes a simple overlapping of polygons: the square
117
window polygon and the hemispherical shadow polygon. This is demonstrated in the
diagram shown below in Figure 44.
Figure 44: Diagram Depicting Simplified Interaction of Window and Tree Shadow Polygons
The window in question is divided into a series of slices. The scanline approximates
the area of the shadow polygon by scanning across each of the slices. The start
coordinate for each iteration of the slice analysis is based on the coordinates of the
points stored in the tree polygon array. The program runs a check to determine if the
particular point lies within the upper and lower edges of the window polygon; if not,
the scanline exits and the analysis moves to the next point in the tree polygon array.
If the shadow lies within the window, the scanline runs from left to right to
determine where the shadow starts. The beginning of the shadow will either be
assigned as the edge of the tree shadow, or the edge of the window. The shade start
coordinate is recorded, and the algorithm scans across the window until it hits either
another edge of shadow or the window edge. This intersection will mark the end of
the shadow slice segment. The area of this shadow segment is then determined
118
based on this length and the thickness of the slices. The thickness of the slice is
determined based on the height difference in the value of the z-coordinates between
the tree array point in question and the one directly above it (ie. slice thickness = z
n+1
- z
n
). If the point above is outside the upper bounds of the window, then the z-
coordinate of the upper edge of the window is used to determine the slice height.
The process is repeated for each slice. The process is essentially like approximating
the area of a polygon via the use of an integral. The concept is shown below in
Figure 45.
Figure 45: Scanline Algorithm Shadow Area Approximation Concept
This shaded area is then used in the instantaneous heat gain equation to determine
the reduced heat gain from the presence of the shadow. The process is repeated for
each hour of the year to generate a total reduction in instantaneous heat gain. As
mentioned previously, the shaded area instantaneous heat gain is adjusted via the use
of the transmissivity multiplier. The use of this multiplier reflects the amount of
foliage on the tree during that particular hour, which is a function of the time (hour)
119
of the year. Incorporating transmissivity into the analysis allows for more accurate
representation of the shading effects of trees. It is also possible to use the scanline
algorithm for analyzing the shade patterns from the presence of more than one tree.
The scanline would run across each slice and would allow for the adjustment of
transmissivity should multiple shade polygons overlap each other. Since the
program developed in this thesis considers only one tree, the expansion to consider
multiple trees is possible, and is included in the Future Work discussion in Chapter
7.
As can be seen from Figure 45, the slices decrease in height near the top of the tree
canopy. This results in a slight variation in degree of accuracy along the height of
the window since the points are spaced more closely together at one end. This
method is dependent on the number of points assigned to create the tree array. The
degree of accuracy could be improved by assigning a small constant slice height or
increases the number of points that define the array, since smaller slices in greater
numbers would more closely approximate the curve of the tree shadow polygon. The
method of using the tree points produces acceptable results, and so it was decided to
keep this approach since the tree canopy array was already constructed and so could
be used for multiple purposes.
120
4.4.6 SCREEN 9 – SAVINGS OUTPUT SCREEN
The final screen displayed to the user is the savings calculation output screen.
Previous inputs are displayed on the screen again for the user, including selected tree
type and tree placement. The user is prompted to verify the inputs and, if the
information is satisfactory, to continue with the analysis by pressing the “Calculate”
button. This button calls the analysis calculation results that are being temporarily
stored as arrays in the module. It also initiates the code sequence that produces a
comparison graph showing instantaneous heat gain for both the unshaded and shaded
scenarios, overall values of heat gain with and without tree shade. The screen shows
the estimated cooling energy and dollar savings, which are calculated through
conversion of the instantaneous cooling load units of Btu/h into kWh. The local
electrical utility rate input by the user in the Welcome screen is used here to
calculated dollar savings estimates. Figure 46 below shows the estimated savings for
a tree placed at a distance of 10 feet from the south wall.
121
Figure 46: Savings Output Screen
From here, the user has the option of performing another analysis by selecting a
different tree or changing the tree location. The user can perform as many iterations
of the analysis as they like since the program will execute a new shading analysis
each time.
The program developed in this thesis proceeds through simple input screens in a
linear manner, requiring basic inputs from the user. The following two chapters
(Chapters 5 and 6) contain a detailed discussion of validation analyses of program
code, calculations and results that were performed to verify the accuracy of
information provided to the user on the savings output screen.
122
CHAPTER 5
The following chapter outlines several approaches used in the verification of the
results output by the computer program. Verification processes were used to
evaluate the results output by the program, and also to ensure that, prior to output
evaluation, each section of code was functioning properly. Results were compared
to those results output by other software packages, as well as to expected percentage
savings outlined in other research publications.
5.1 VERIFICATION OF PROGRAM CODE
Once each section of the program was written, it was necessary to verify that the
code was working as intended. The process of debugging involved detailed error
checking of each step to ensure that all calculated values and analyses were
functioning. The Visual Basic Message Box function was often used to display
values called from databases or to display results of various calculations. Microsoft
Excel was also used in several instances to evaluate results of calculations.
5.1.1 VERIFICATION OF TREE POLYGON CONSTRUCTION CODE
Microsoft Excel was used in the verification of the tree polygon construction code to
check that values were being calculated correctly and also to ensure that the shape of
the tree polygon was semicircular. A sample tree canopy diameter of 15 feet, and a
sample branch height of 7 feet were used. The points of the tree canopy are found
using the tree radius along with cosine and sine functions to find x- and z-
123
coordinates, respectively. Angle increments of 5 degrees are used so that the tree
leaf canopy is ultimately defined by a series of 38 points, along with additional
points to define where the tree trunk meets the ground, and where the trunk
intercepts the canopy. The image shown below in Figure 47 depicts the plot of the
sample tree, along with a table of the x- and z-coordinates (plotted as x- and y-
coordinates in Excel).
Figure 47: Tree Points as Calculated and Plotted in Excel
As can be seen from this chart, the calculated points form a semi-circular polygon,
with additional points marking the locations where the canopy intersects the trunk as
well as where the trunk intersects the ground. In comparison, the image shown
below in Figure 48 shows the tree polygon and points as calculated and plotted in
Visual Basic. The points were calculated using the “draw.polygon” function in
Visual Basic, which links the points together with a solid line to form the polygon.
124
Figure 48: Tree Polygon As Plotted in Visual Basic
The image in Figure 48 shows just the semi-circle of the tree canopy. The thesis
program does define additional points for the trunk (base) of the tree, however they
were not included in the draw.polygon code.
5.1.2 VERIFICATION OF SCANLINE ALGORITHM CODE
The performance of the scanline algorithm was also verified with the use of
Microsoft Excel. A square box of 6 x 6 dimensions was plotted along with the tree
polygon. The square window polygon was moved around to various locations to test
the performance of the algorithm by comparing calculated values in Excel versus
those in Visual Basic. Shade values were calculated for each scanline slice, and the
total shaded area was calculated as the sum of these shade area slices. Figures 49
and 50 below show a sample scanline verification test. The window polygon was
placed at the very left of the tree polygon, so that the bottom left point was at the
same x-coordinate as the tree radius and same z-coordinate as the branch height. The
125
plotted tree shadow and window polygons are shown for both Excel and Visual
Basic, along with the calculated scanline shade values and total shaded area. The
other scanline verification test results are included for reference as Appendix C.
Figure 49: Excel Scanline Verification
Figure 50: Visual Basic Scanline Verification
126
5.1.3 VERIFICATION OF MATRIX TRANSFORMATIONS
The results of the matrix transformations (azimuth rotation and altitude rotation)
were verified by running several tests. A single unit vector was rotated through each
quadrant using azimuth values of +45
o
, +135
o
, -45
o
, and -135
o
. The [x’, y’] values
were compared against manual calculations for each of the transformations to verify
that code algorithms were working properly. The unit vector was also rotated only
through an altitude rotation of +45
o
(ie. no azimuth rotation prior to the altitude
rotation) to ensure proper functioning of those equations as well.
A second test involved the use of MATLAB to check the rotation of each of eight
points defining the building.
220
Several scenarios were used to test that the azimuth
and altitude rotations, when performed consecutively, yielded acceptable values for
the final [x’, y”, z’] coordinates. A box was created in MATLAB and then rotated
through the following test cases:
TEST 1: +30
o
azimuth rotation, +15
o
altitude rotation
TEST 2: +120
o
azimuth rotation, +15
o
altitude rotation
TEST 3: -30
o
azimuth rotation, +15
o
altitude rotation
TEST 4: -120
o
azimuth rotation, -15
o
altitude rotation
220
Penigree, J., 2009, ‘MATLAB Azimuth and Altitude Rotation Tests’, results sent via email, May 20, 2009,
Los Angeles
127
These points were then check against outputs of the matrix transformation code in
the program. The purpose of performing four separate tests is to ensure that the
azimuth and altitude transformations operate as expected through a range of possible
rotations. Employing MATLAB is also valuable since MATLAB rotates the object
only, as opposed to the possibility of rotating the axes. By comparing the program
outputs to those of MATLAB, it is possible to confirm the rotations that are
occurring in Visual Basic.
A final test was used to verify that both the matrix transformations and scanline
algorithm was working. This test involved a simple calculation that relates tree
height, tree distance from the house, and the tangent of the altitude angle. The
equation is as follows
221
:
!
h =y"tan(Alt) (26)
where: h = height of the top of the tree from the ground (ft)
y = distance from tree to the wall plane (ft)
Alt = solar altitude angle
Assuming the height of the tree is known, the equation can also be written as
!
y =
h
tan(Alt)
(27)
For this verification test equation (27) was used since it was assumed that the tree
height was known. To simplify the analysis, the windowsill and base of the tree
221
Moffat et al., Landscape Design That Saves Energy, 119
128
canopy were dropped to the ground. Using a tree canopy diameter of 30 feet, the
height of the treetop from the ground was assumed as the tree radius, or half the tree
canopy diameter (ie. 15 feet). The solar altitude angle was assumed to be 30
o
. Thus
the calculated distance from the wall plane to the tree was about 26 feet. This is the
distance the tree would need to be in order for the sun to have a “clear view” of the
window at an altitude angle of 30
o
. In other words, at this tree distance there would
be no shade on the window if the sun were at an altitude of 30
o
. This scenario was
tested for the east, south, and west walls. In each test case, the tree was placed
directly adjacent to the wall plane in question at a distance of 26 feet. For each wall,
the appropriate azimuth rotation was performed to bring the sun in line with the wall.
For example, an azimuth rotation of -90
o
was performed for the east wall, 0
o
for the
south wall, and +90
o
for the west wall. Following the azimuth rotation, three
separate altitude transformations were performed. One rotation was performed at
28
o
, the second at 30
o
, and the last at 32
o
. A properly functioning matrix
transformation would yield a small percentage of window in shade at 28
o
and no
window in shade at both 30
o
and 32
o
. The test was performed successfully for all
three walls.
5.1.4 VERIFICATION OF TRANSMISSIVITY MULTIPLIER
As mentioned previously, a transmissivity multiplier is applied to the instantaneous
heat gain calculations for the scenarios in which the window is shaded by the tree.
129
To test the function of the transmissivity multiplier a simple analysis was performed.
The program performed test runs first without the presence of a tree, then with a tree
placed at a distance of 10 feet directly adjacent to the south-facing window. Two
different tests were performed assuming the presence of a tree, one considering
transmissivity and the other considering the tree as an opaque surface (in which no
direct beam radiation would be transmitted). The instantaneous heat gain through
the window should reduce with increasing opacity of the tree shadow. Table 1 below
summarizes the results of this analysis.
Table 1: Transmissivity Multiplier Test Results
The results outlined in Table 1 demonstrate the expected trend of lower
instantaneous heat gain for increasingly opaque shadows. Applying the
transmissivity multiplier to the shaded instantaneous heat gain calculations resulted
in a difference of 1,786,906 Btu/h. Analysis that considered the tree to be
completely opaque reduced the instantaneous heat gain by 3,562,927 Btu/h (almost
half the unshaded heat gain). These results clearly show the importance for inclusion
of the transmissivity multiplier, as the difference between instantaneous heat gain
with the opaque tree versus the tree with transmissivity multiplier applied is
1,776,021 Btu/h. Treating a tree canopy as an opaque surface over-estimates the
UnShaded Shaded Opaque
Btu/h Btu/h Btu/h
Instantaneous
Heat Gain
7,495,281 5,708,375 3,932,354
130
amount of savings that can be achieved since it does not accurate model the
insolation filtering effects of tree canopies.
5.2 COMPARISON TO HEED
5.2.1 OVERVIEW OF HEED
HEED (Home Energy Efficient Design) is a software program developed through the
University of California Los Angeles to aid designers in making specific changes to
a residential building design to reduce the energy consumption within the
building.
222
The user can draw the floor plan of their house, design and place
windows and doors, as well as select various construction assemblies and mechanical
systems. Advanced options involve definition of interior building loads (including
appliances and lighting) as well as offering the option of defining building
occupancy. The user may create several iterations of their building design to
determine what effect changing certain options (such as window construction or wall
insulation) has on the building performance. Outputs are given as values of energy
consumption (Btu/h or Btu/h*ft
2
) or as dollar amounts ($/ft
2
). Several graphics are
also provided for the user in the form of bar graphs showing the difference between
design iterations, as well as 3D plots of variables such as indoor temperature or peak
load over an annual period.
222
University of California Los Angeles, HEED: Home Energy Efficiency Design, University of California Los
Angeles, viewed January 2008, http://mackintosh.aud.ucla.edu/heed/
131
5.2.2 COMPARISON OF THESIS PROGRAM TO HEED
The program developed in this thesis is similar to HEED in that both are designed for
analysis of residential buildings. HEED offers the user the capability of defining a 1
or 2 story house, and provides an intuitive user interface through the user of
interactive graphics. The program developed in this thesis is also currently limited to
instantaneous heat gain analysis through fenestration surfaces only, with
corresponding estimates of energy savings, whereas HEED performs an entire
building consumption and load profile analysis. HEED does offer some analysis for
exterior shading devices, but does not, however, currently include any analysis for
consideration of landscape elements.
5.2.2.1 HEED Heat Gain Calculations
Heat gain (or loss) is calculated in HEED as follows. HEED considers conduction
gain or loss through fenestration surfaces, and adds to this the direct radiation
multiplied by the solar heat gain coefficient (corrected to angle of incidence) plus the
diffuse radiation times solar heat gain coefficient. The equation is shown below:
!
Q =U"A"(T
out
#T
in
) +SHGC"Area"(DirectBeam"cos$ +Diffuse) (28)
where: Q = Energy gain/loss (Btu/h)
U = overall coefficient of heat transfer (Btu/h*ft
2
*
o
F)
A = total area of fenestration, ft
2
T
out
= exterior air temperature (
o
F)
T
in
= interior air temperature (
o
F)
Direct = incident direct beam radiation (Btu/h*ft
2
)
132
Diffuse = diffuse sky radiation (Btu/h*ft
2
)
Θ = angle of incidence (degrees)
SHGC = solar heat gain coefficient
The above equation is similar to that used in the thesis program since both consider
conduction and radiation heat gain. Both programs use TMY3 weather data,
although HEED uploads the data in EPW. file format. The HEED calculation,
however, considers the added radiation heat gain from diffuse radiation. The
calculation in the thesis program uses TMY3 data for direct normal irradiance only,
which is the amount of radiation received in a collimated beam on a surface normal
to the sun’s rays.
223
5.2.3 THESIS PROGRAM AND HEED INPUTS
In order to verify and compare the outputs of the thesis program versus those of
HEED, similar buildings and fenestration surfaces must first be constructed in each
of the programs.
5.2.3.1 Building Dimension and Fenestration
The buildings modelled in the thesis program as well as HEED are roughly square-
shaped single-story homes with an area of approximately 2,000 square feet. The
north-south walls are the same dimension, and the east-west walls are also the same
223
National Renewable Energy Laboratory, 2008, Users Manual for TMY3 Data Sets, United States Department
of Energy Office of Energy Efficiency & Renewable Energy, viewed October 2008,
http://www.nrel.gov/docs/fy08osti/43156.pdf
133
dimension. The house is also oriented to face directly south (inline with the 4
cardinal directions), and had a floor height of 9 feet. Each wall contains only one
square shaped window of 6 ft x 6 ft dimensions, located roughly in the middle of the
wall and 3 feet from the ground. Windows were selected to be operable wood or
vinyl frame with clear, double-pane glass. The HEED building model is shown
below as Figure 51.
Figure 51: HEED House Model
5.2.3.2 Comparative Analysis
The program developed in this thesis automatically calculates the unshaded and
shaded scenarios. HEED, however, does not presently offer the capability of
modelling trees and corresponding effects of tree shade. The program currently only
offers the user the option of defining internal and external shading devices that are
directly attached to the building architecture. As such, HEED will be used in this
thesis to verify the unshaded window energy gain results as output by the thesis
program. A different software package will be used to verify the shade polygon
134
projections and subsequent reductions in energy gain through the shaded
fenestration.
5.2.4 COMPARISON OF OUTPUTS FOR EAST WINDOW
Several tests were done to compare the results of the HEED simulations to the
program outputs. These results were used mainly for verification of energy gain
calculations through fenestration surfaces. The following section outlines the
procedure and presents the comparisons for the east window.
The HEED software offers several different methods of examining the heat gain
through fenestration surfaces. Firstly, the program provides three-dimensional plots
of the average value of the energy gain (in Btu/hr) through fenestration surfaces for
every hour of every day of the year. The user can select to view the window loads
for east facing, south facing, or west facing walls. Figure 52 below shows such a
plot for an east-facing window.
135
Figure 52: HEED Output of East Window Average Annual Energy Gain
From the figure above, it can be seen that the maximum energy gain through an east-
facing window occurs during the morning hours, with fairly consistent values
throughout the year. The plot has a slight “heat-mountain” in the middle during the
summer months. This shape is caused because east-facing windows gain most of
their heat during the summer months and less during the winter months.
224
This
heat-mountain represents unwanted heat gain and ideally any landscape measures
would minimize the summer gain and produce a more consistently flat shape.
224
University of California Los Angeles, HEED: Home Energy Efficiency Design,
http://mackintosh.aud.ucla.edu/heed/
136
A radiant gain analysis for the east window was also done on the thesis program and
the hourly results were plotted on a two-dimensional graph for the entire year. This
graph is shown below in Figure 53.
Figure 53: Program Output of East Window Annual Energy Gain
As can be seen from the above graph, the thesis program also outputs a relatively flat
shape, with higher values during the summer months. This graph also shows only
the unshaded heat gain through the window, as the purpose of this test was to ensure
the various calculations and evaluations were functioning correctly. This includes
the angle of incidence calculations, instantaneous heat gain calculations, and
evaluation of whether or not the wall was facing the sun. Heat gain values as output
by the thesis program show about a max 4,000 Btu/hr (4.0 kBtu/hr) during warmer
months and between 1,500 – 3,000 Btu/hr (1.5 – 3.0 kBtu/hr) during cooler months.
These values are comparable to those output by HEED, which shows maximum
summer gain of about 3.3 kBtu/hr, and between 1.8 – 2.55 kBtu/hr for most of the
rest of the year.
137
HEED also offers the user the option of performing a twelve-day analysis, which
provides exact values for every hour of the day over the selected twelve day period.
Four separate twelve-day analyses were performed, one for each of the periods
around March 21, June 21, September 21, and December 21. Corresponding single
day analyses were performed in the thesis program by running the program for each
day using year hour values corresponding to that day. For example, the June 21
st
single day test would perform the analysis between the hours of 4105 to 4128 (an
entire year consists of 8760 hours). Figure 54 and 55 below show a comparison of
the energy gain around March 21
st
. The HEED graph shows a twelve-day analysis
(ranging from March 16 – 27), while the thesis program graph shows only March 22.
It was originally planned to use the TMY3 data for March 21, however mid-day
values for March 21 were less than 5% of the mid-day values for the majority of
other days in March. Even though TMY3 data is statistical and not real (and so the
values for March 21 might be acceptable and consistent for that particular day), it
was decided to use an alternate day for data that had values that more resembled data
for the remaining days of March. Thus weather data for March 22 was used instead.
It is not possible to plot a single day graph in HEED, which is why the twelve-day
analysis is used here.
138
Figure 54: HEED Twelve-Day East Window Energy Gain Analysis for March 22
Figure 55: Program Single-Day East Window Energy Gain Analysis for March 22
Comparison of the two above figures shows comparable results. Maximum values
for March 22 as shown in the HEED graph are around 3.72 kBtu/hr, while the thesis
program outputs show a maximum value of about 4,000 Btu/hr (4.0 kBtu/hr).
Values for both graphs rise steeply in the morning and have a more gradual decline
after reaching the peak value. It can also be seen from the HEED output graph that
139
some of the days within the twelve-day analysis differ from the expected profile of
the remaining days. As such it was decided to run the analysis again on the thesis
program using the TMY3 data for March 21 and compare the corresponding profile.
Figure 56 below shows the result.
Figure 56: Program Single-Day East Window Energy Gain Analysis for March 21
Figure 56 shows a different daily profile for March 21 than that shown in Figure 52
for March 21 and reflects the difference in daily data. The graph in Figure 56 shows
instantaneous heat gain values in a similar range to those days displayed in the
HEED graph that also have differing profiles.
Analysis for June, September, and December are shown in the graphs of the figures
below. For similar reasons to those of the March analysis, weather data for June 22
was used instead of June 21, and September 22 data was used instead of September
21. Data for December 21 was used for the December the analysis.
140
Figure 57: HEED Twelve-Day East Window Energy Gain Analysis for June 22
Figure 58: Program Single-Day East Window Energy Gain Analysis for June 22
141
Figure 59: HEED Twelve-Day East Window Energy Gain Analysis for September 22
Figure 60: Program Single-Day East Window Energy Gain Analysis for September 22
142
Figure 61: HEED Twelve-Day East Window Energy Gain Analysis for December 22
Figure 62: Program Single-Day East Window Energy Gain Analysis for December 22
As can be seen from the above series of graphs, peak day values and overall plot
shape are similar for HEED and the thesis program for all of the targeted analysis
times. The greatest heat gain occurred during the June analysis, which follows the
east window summer heat-mountain trend. The HEED twelve-day plots also show
143
other inconsistencies in daily data for each month that produce slightly different
profiles than the expected daily profile.
5.2.5 COMPARISON OF OUTPUTS FOR SOUTH WINDOW
Several tests were also done for the south window to compare the results of the
HEED simulations to the program outputs. These are discussed below.
A three-dimensional plot of the average annual gain for a south-facing window was
produced in HEED and is provided below as Figure 63.
Figure 63: HEED Output of South Window Average Annual Energy Gain
144
From the figure above, it can be seen that the maximum energy gain through the
window occurs around noon in the winter months and is roughly 4.38 kBtu/hr. The
shape of the plot should be noted as having a “saddle shape” and is formed because
the south window gains most of its heat in mid-day during the winter and little heat
during mid-day during the summer.
225
This occurs due to the angle of incidence
between the direct normal radiation from the sun and the vertical window is closest
to perpendicular at mid-day in winter.
226
As a result, the sun’s beams shine more
directly into the window during the winter, as opposed to at a sharper angle during
the summer. A radiant gain analysis was done on the thesis program and the hourly
results were plotted on a graph for the entire year. This graph is shown below in
Figure 64.
Figure 64: Program Output of South Window Annual Energy Gain
225
University of California Los Angeles, HEED: Home Energy Efficiency Design,
http://mackintosh.aud.ucla.edu/heed/
226
ibid., http://mackintosh.aud.ucla.edu/heed/
145
The values of the y-axis of this plot are energy gain in Btu/hr, while the x-axis shows
a linear progression of the time of year expressed in hours (with January starting at
hour 0, and December ending at hour 8760). The graph also displayed a saddle
shape plot in two-dimensions, displaying the effects of the angle of incidence as
discussed above. It can be seen from the graph output by the program that a
maximum energy gain for the south wall is roughly 4,500 Btu/hr (4.5 kBtu/hr),
which is comparable to the HEED max output of 4.38 kBtu/hr. The summer hours
show an energy gain between 2,000 – 3,000 Btu/hr (2 – 3 kBtu/hr). Maximum
energy gain for summer hours in HEED is shown to be around 2.46 kBtu/hr.
Similar to the east-facing window, a twelve-day analysis was also performed for a
south-facing window using the same range of year hours for the comparison. The
results of this analysis are included for reference in Appendix D. Results were in-
line with expected trends as demonstrated in the annual graphs.
5.2.6 COMPARISON OF OUTPUTS FOR WEST WINDOW
Finally, a west-facing window analysis was also performed to compare the results of
HEED to those of the thesis program.
146
An annual three-dimensional heat gain plot for a west-facing window was also
produced in HEED and is included below as Figure 65.
Figure 65: HEED Output of West Window Average Annual Heat Gain
Similar to the east-facing window, the west window heat gain plot also displays a
heat-mountain during the summer months, although these gains occur during the
afternoon hours. It can be seen from the above that maximum summer energy gain
is around 4.33 kBtu/hr, with lower winter energy gain values as between 1.48 – 2.43
kBtu/hr. It can also be seen from the above figure that the heat gain from the west
window is greater and also more consistent throughout the year as compared to the
east-facing window (which showed heat gain of 2.55 – 3.29 kBtu/hr.). This result
reinforces the design guidelines for the hot arid climates that put emphasis on placing
147
trees to the west and southwest of the home to achieve maximum benefit from shade.
The thesis program radiant energy gain analysis results are shown below in Figure
66.
Figure 66: Program Output of West Window Annual Energy Gain
The thesis program outputs also display a heat-mountain during the summer months.
The maximum summer energy gain ranges between 3,000 – 4,000 Btu/hr (3.0 – 4.0
kBtu/hr), with winter energy gain calculated as between 1,500 – 2,500 Btu/hr (1.5 –
2.5 kBtu/hr). These results are comparable to those output by HEED.
Finally, a twelve-day analysis was also performed using HEED, with comparative
single-day analyses performed by the thesis program. The results of these analyses
are included for reference in Appendix D. The results yielded expected values as the
outputs followed the trend of the annual energy gain profiles.
148
Following this analysis, it was necessary to verify the outputs corresponding to the
tree polygon shade projections and calculated reductions in instantaneous heat gain
resulting from the presence of shade.
5.3 COMPARISON TO ECOTECT
The verification of tree shading analysis was done using ECOTECT. A description
of ECOTECT and a discussion of the analysis are provided in this section.
5.3.1 OVERVIEW OF ECOTECT
ECOTECT is a three-dimensional modelling software that allows users to define a
building in 3D in addition to providing the capability of performing a range of
building performance analyses, including day lighting, shadow casting, and
insolation analysis. The software offers the ability of calculating and visualizing the
incident solar radiation on any surface of a building at any time. This allows the user
to compare incident gains during different times of the year. Combining this with
the programs shadow casting ability, the reduction in incident gain on a building
surface can be calculated for both unshaded and shaded scenarios considering
shading from adjacent objects.
149
5.3.1.1 Shading Analysis in ECOTECT
ECOTECT offers the user the capability of viewing the three-dimensional model
from the perspective of the sun at its position in the sky. The software enables this
view by constructing accurate sun-path diagrams from uploaded weather data. A
specific date can be selected to construct a daily sun path diagram. An example of
such a sun path diagram is shown below in Figure 67.
Figure 67: Example ECOTECT Model with Sun-Path Diagram
The time of day can also be selected, and the corresponding view of the model from
that specific sun position can be observed. Figure 68 below shows the sun position
at 11:00 am on November 21.
150
Figure 68: Example ECOTECT Model View From the Sun
These sun-path diagrams and views from the sun can be used to perform a shading
analysis. A user may define a simple wall plane containing a window in the
ECOTECT modelling grid and place objects around the wall plane that will cast
shadows. The user may select to view shadows, and the corresponding shadows will
be cast on the modelled objects. An example of the shadow casting capabilities of
ECOTECT is shown below in Figure 69.
151
Figure 69: ECOTECT Shading Casting Example
When seen from the sun position in the sky, the wall plane and tree semi-circle
model become a two-dimensional view of overlapping polygons. The same model as
depicted in Figure 69 is shown again in Figure 70 but as seen from the view of the
sun.
Figure 70: ECOTECT Sun View Shading Casting Example
152
5.3.1.2 Insolation Analysis in ECOTECT
The ECOTECT software also uses weather files in the EPW. format (similar to
HEED). The program incorporates the use of direct beam insolation values, defined
as the incident radiation on a surface directly facing the sun.
227
Diffuse beam
radiation values are also included in insolation analysis and are defined as the energy
available from the entire sky dome, minus the direct radiation value, as measured on
a horizontal surface.
228
The software defines insolation as the amount of energy
actually falling on a surface.
229
Insolation, as defined and calculated in ECOTECT, is
therefore affected by the angle of incidence of the radiation; the fraction of the
surface currently in shadow from other surrounding geometry; the fraction of the
diffuse sky actually visible from the surface; whether a surface is partially adjacent
to another zone; and the area of surface actually exposed to solar radiation.
230
The
formula used in the program for calculating insolation (defined as E
incident
) is shown
below:
!
E
incident
=[(E
beam
"cos(#)"F
shade
) +(E
diffuse
"F
sky
)]"ExposedArea (29)
where: E
incicent
= insolation (Btu/h*ft
2
)
E
beam
= direct beam radiation (Btu/h*ft
2
)
α = angle of incidence
F
shade
= fraction of surface currently in shadow
E
diffuse
= diffuse beam radiation (Btu/h*ft
2
)
227
Autodesk, 2008, Shading: Solar Incidence, Autodesk, viewed December 2008,
http://squ1.org/wiki/Solar_Incidence
228
ibid., http://squ1.org/wiki/Solar_Incidence
229
ibid., http://squ1.org/wiki/Solar_Incidence
230
Autodesk, 2008, Shading: Solar Incidence, Autodesk, viewed December 2008,
http://squ1.org/wiki/Solar_Incidence
153
F
sky
= fraction of diffuse sky visible from the surface
Exposed Area = area of building surface to be analyzed (ft
2
)
ECOTECT also uses separate calculations to determine the amount of absorbed and
transmitted radiation, depending on the type of surface being analyzed. The software
then offers the user the ability to perform hourly, monthly, or annual insolation
analysis for specified surfaces. Ground reflection can be eliminated from the
analysis in order to isolate the direct beam incident solar radiation gains into the
building.
5.3.2 THESIS PROGRAM AND ECOTECT INPUTS
Similar to the HEED analysis, buildings and fenestration surfaces were constructed
in order to verify and compare the outputs of the thesis program versus those of
ECOTECT.
5.3.2.1 Building Definition in ECOTECT – Dimensions and Fenestration
Since several different tests were performed using ECOTECT, different building
definitions were constructed based on the analysis. Simple wall planes were
constructed for the matrix transformation and shading analysis while a single zone,
one-story building was constructed for the insolation analysis. The single wall
planes were defined with a 20-foot length and 9-foot height. A window of 6 ft x 6 ft
dimension was placed in the middle of the wall, at a sill height of 2 feet. For the
154
insolation analysis, a building of roughly square shape with approximate area of
2,000 square feet was constructed. The north-south walls were the same dimension
as were the east-west walls. Floor height was also set to 9 feet. The building as
constructed in ECOTECT is shown in Figure 71 below. It should be noted that a
sloped roof was constructed in the ECOTECT model whereas the thesis program
considers only flat roofs. Since the analysis is for instantaneous heat gain through
fenestration surfaces, the roof construction and design will not affect the analysis.
Figure 71: ECOTECT House Model
5.3.2.2 Comparative Analysis
As mentioned previously, the program developed in this thesis automatically
calculates the unshaded and shaded scenarios, displaying the outputs on the final
savings screen. To compare the results to ECOTECT outputs, an insolation analysis
(as describe above) was performed in ECOTECT. Unshaded heat gains were
155
recorded, and a second analysis was performed with an exterior shading object
placed adjacent to the building.
5.3.3 COMPARISON OF OUTPUTS
Several comparison tests were done using ECOTECT to check the matrix
transformations, shade projections, and insolation analysis performed in the thesis
program.
5.3.3.1 Matrix Transformation Verification with ECOTECT
As mentioned above, ECOTECT was used to verify the two-dimensional projection
of the wall planes after they have been transformed through the azimuth and altitude
rotations. The two-dimensional view from the sun can be compared to graphs
produced in Microsoft Excel that plot the transformed wall plane corner coordinates.
Each wall plane was tested for the same day and three different sun views were used
for the comparison. March 21
st
was selected as the test day, and the sun views
corresponded to times of 9:00 am and 4:00 pm depending on which wall was being
tested. The figures below show the comparison results for each of the east-facing,
south-facing, and west-facing walls on March 21 at different times when the wall
would be in line with the sun. Figures 72 and 73 show the two-dimensional views of
an east-facing wall at 9:00 am on March 21.
156
Figure 72: Excel Sun View of East-Facing
Wall at 9:00 am
Figure 73: ECOTECT Sun View of East-Facing Wall
at 9:00 am
Figures 74 to 77 show a south-facing wall on March 21 at 9:00 am and 4:00 pm.
Figure 74: Excel Sun View of South-Facing Wall at
9:00 am
Figure 75: ECOTECT Sun View of South-
Facing Wall at 9:00 am
Figure 76: Excel Sun View of South-Facing Wall at
4:00 pm
Figure 77: ECOTECT Sun View of South-
Facing Wall at 4:00 pm
157
Finally, Figures 78 and 79 show the two-dimensional projections of a west-facing
wall at 4:00 pm on March 21.
Figure 78: Excel Sun View of West-Facing
Wall at 4:00 pm
Figure 79: ECOTECT Sun View of West-Facing
Wall at 4:00 pm
As can be seen from the above figures, the matrix transformation equations used in
the thesis program yield two-dimensional wall projections of a similar, though
slightly different, shape to those produced in ECOTECT. Although the projections
have generally the same transformations, the overall shapes and angles are slightly
skewed from each other. It was decided to check the azimuth and altitude angles
calculated by both ECOTECT and the thesis program for the November 21
st
date
used in the above analysis. The ECOTECT Solar Tool provides these angles for the
hours of 7:00 am to 4:00 pm. The solar angles for these same hours were calculated
in the thesis program. A summary table comparing these angles is shown below.
The values in this table are given in degrees and follow the convention of applying a
negative sign to angles west of south.
158
Table 2: Comparison of ECOTECT and Program Solar Angles for March 21
It can be seen from the table above that the angles calculated by ECOTECT and the
thesis program are slightly different. The thesis program calculated smaller azimuths
in the morning and larger azimuths in the afternoon with corresponding altitude
angles being larger in the morning and lower in the afternoon than those calculated
by ECOTECT. This difference is due to the equations used in each software package
to calculate the solar angles. The thesis program uses equations outlined in
ASHRAE, whereas ECOTECT uses formulas provided by different research
papers.
231
The difference in angles results in slightly different polygon projections
once the matrix transformations have been performed.
231
Autodesk, 2008, Solar Position: Calculator, Autodesk, viewed December 2008,
http://squ1.org/wiki/Solar_Position_Calculator#Manual
Azimuth Altitude Azimuth Altitude
7:00 AM 82.6 4.9 81.3 11.9
8:00 AM 73.4 23.2 71.9 24.0
9:00 AM 62.4 34.8 60.7 35.4
10:00 AM 48.1 45.0 45.9 45.4
11:00 AM 28.4 52.8 25.8 52.8
12:00 PM 3.1 56.2 0.5 55.7
1:00 PM -23.0 54.0 -24.9 52.9
2:00 PM -44.1 47.1 -45.3 45.8
3:00 PM -59.5 37.3 -60.2 35.8
4:00 PM -71.1 26.0 -71.6 24.5
ECOTECT PROGRAM
159
5.3.3.2 Shadow Projection and Scanline Algorithm Verification with ECOTECT
The shadow casting abilities of ECOTECT can be used to calculate the percentage of
window in shade and can therefore be used to verify the scanline algorithm used in
the thesis program. The visualization capability of ECOTECT was also used to
verify the overlapping of the tree and window polygons in the program. A similar
analysis scenario to the one used to test the matrix transformations was used to verify
the percentage shading on the window. A single south-facing wall plane was
constructed in ECOTECT with a 6 ft x 6 ft window placed in the middle of the wall.
A circle was constructed using the geometry wizard with a radius of 15 ft, and was
placed at a distance of 10 feet from the wall plane with the middle of the circle at
ground level. This circle was used to model a tree, since a tree in the thesis program
is modelled as a semi-circle. A wall plane, window plane, and tree polygon were
also constructed in Excel with similar coordinates in three-dimensional space. Matrix
transformations were performed for each hour from 8:00 am to 5:00 pm on
November 21 and June 21, and the corresponding over-lapping polygons were
constructed in Excel. Two different days were selected to test the projections during
a winter month as well as during a summer month. These plots were compared to
sun-view positions constructed in ECOTECT for that same hour to verify that the
matrix transformations and corresponding two-dimensional overlapping polygon
projects were similar. Several south-racing wall plane examples from this analysis
are given in the following figures.
160
Figure 80: Excel 2D Polygon Projection on
November 21 at 9:00 am
Figure 81: ECOTECT 2D Polygon Projection
on November 21 at 9:00 am
Figure 82: Excel 2D Polygon Projection on
November 21 at 12:00 pm
Figure 83: ECOTECT 2D Polygon Projection on
November 21 at 12:00 pm
Figure 84: Excel 2D Polygon Projection on
November 21 at 2:00 pm
Figure 85: ECOTECT 2D Polygon Projection
on November 21 at 2:00 pm
161
Figure 86: Excel 2D Polygon Projection on
June 21 at 12:00 pm
Figure 87: ECOTECT 2D Polygon Projection
on June 21 at 12:00 pm
As can be seen from the above figures, both the projections formed by the matrix
transformations used in the thesis program and those produced in ECOTECT have
similar shape and overlapping patterns. Despite the similar patterns, however, there
is some discrepancy between the percentage areas of window that is in shade. This
occurred mostly for the morning hours. There are several reasons that could be
causing the difference in patterns. The difference could be due in part to the method
of analysis used in this thesis. The tree polygon in this thesis is constructed in three-
dimensional space as a series of points. Each of these points is then rotated through
the azimuth and altitude transformations. The resulting two-dimensional projection
created from the transformations could be slightly skewed. In addition, as mentioned
previously, ECOTECT and the thesis program use different equations to calculate
solar angles. A comparison of solar angles for November 21 from both ECOTECT
and the thesis program are provided in the table below.
162
Table 3: Comparison of ECOTECT and Program Solar Angles for November 21
Table 3 above again shows variation in the solar angles calculated by ECOTECT and
the thesis program. These small differences result in polygon projections that appear
similar but which have slight variations.
The shade projections in ECOTECT were also used to verify that the scanline
algorithm used in the thesis program was effectively calculating the percentage of
window in shade. ECOTECT provides several analysis options, including
calculating the percentage shading. Several days throughout the year were analyzed
in ECOTECT and the results compared to shaded areas calculated in the thesis
program. Shaded were calculated for east-facing, south-facing, and west-facing
windows. Summary tables from selected days in this analysis are provided below.
The percentage areas calculated in ECOTECT were converted to square feet for the
Azimuth Altitude Azimuth Altitude
7:00 AM 63.3 3.4 61.9 4.1
8:00 AM 53.9 14.1 52.4 14.6
9:00 AM 42.7 23.4 41.1 23.6
10:00 AM 29.2 30.7 27.4 30.7
11:00 AM 13.2 35.2 11.4 34.8
12:00 AM -4.2 36.2 -5.8 35.4
1:00 PM -21.0 33.5 -22.4 32.4
2:00 PM -35.6 27.5 -36.9 26.2
3:00 PM -48.3 19.2 -48.9 17.7
4:00 PM -58.6 9.2 -59.0 7.6
ECOTECT PROGRAM
163
purpose of this analysis since the thesis program provides outputs in units of square
feet. The example days are February 21, June 21, and November 21.
Table 4: ECOTECT vs Program Shaded Areas for East Wall
Table 5: ECOTECT vs Program Shaded Areas South Wall
ECOTECT PROGRAM ECOTECT PROGRAM ECOTECT PROGRAM
Area (ft2) Area (ft2) Area (ft2) Area (ft2) Area (ft2) Area (ft2)
8:00 AM 36.0 28.8 36.0 29.0 36.0 22.4
9:00 AM 36.0 18.2 36.0 23.2 34.9 17.7
10:00 AM 20.9 1.3 24.1 3.3 9.7 4.1
11:00 AM 0.0 0.0 0.0 3.3 0.0 0.0
12:00 PM 0.0 0.0 0.0 0.0 0.0 0.0
1:00 PM 0.0 0.0 0.0 0.0 0.0 0.0
2:00 PM 0.0 0.0 0.0 0.0 0.0 0.0
3:00 PM 0.0 0.0 0.0 0.0 0.0 0.0
4:00 PM 0.0 0.0 0.0 0.0 0.0 0.0
February 21 June 21 November 21
ECOTECT PROGRAM ECOTECT PROGRAM ECOTECT PROGRAM
Area (ft2) Area (ft2) Area (ft2) Area (ft2) Area (ft2) Area (ft2)
8:00 AM 0.0 0.0 0.0 0.0 0.0 15.1
9:00 AM 0.0 10.9 0.0 0.0 5.8 22.0
10:00 AM 0.7 20.8 0.0 0.0 16.2 23.4
11:00 AM 4.0 16.7 0.0 0.0 20.9 28.6
12:00 PM 11.5 10.3 0.0 0.0 24.1 24.7
1:00 PM 10.4 13.3 0.0 0.0 25.9 26.5
2:00 PM 16.2 14.0 0.0 0.0 27.4 25.6
3:00 PM 9.7 8.0 0.0 0.0 22.7 21.7
4:00 PM 3.2 4.4 0.0 0.0 19.4 14.0
February 21 June 21 November 21
164
Table 6: ECOTECT vs. Program Shaded Areas West Wall
The above summary tables show some similarities as well as differences between the
shaded areas calculated by ECOTECT and the thesis program. The calculated
shaded areas for the south-facing wall are similar during the afternoon hours, but
differ during the morning hours. The east and west walls also show some
discrepancies. ECOTECT appears to be calculating greater shaded areas for the east-
facing wall during the morning hours and lower shaded areas during the afternoon
hours for the west-facing wall. These differences are most likely due to the
difference in solar angles and corresponding polygon projections (as discussed
previously) that are calculated by each program.
5.3.3.3 Insolation Analysis with ECOTECT
As mentioned previously, ECOTECT has the ability to perform detailed insolation
analysis. The building constructed in ECOTECT (as defined in section 5.3.2) was
used to analyze the solar gains through fenestration surfaces.
ECOTECT PROGRAM ECOTECT PROGRAM ECOTECT PROGRAM
Area (ft2) Area (ft2) Area (ft2) Area (ft2) Area (ft2) Area (ft2)
8:00 AM 0.0 0.0 0.0 0.0 0.0 0.0
9:00 AM 0.0 0.0 0.0 0.0 0.0 0.0
10:00 AM 0.0 0.0 0.0 0.0 0.0 0.0
11:00 AM 0.0 0.0 0.0 0.0 0.0 0.0
12:00 PM 0.0 0.0 0.0 0.0 0.0 1.52
1:00 PM 0.0 0.44 0.0 0.0 0.0 6.9
2:00 PM 0.0 8.8 0.0 0.0 3.6 11.1
3:00 PM 5.0 21.9 0.0 3.22 9.7 23
4:00 PM 31.3 26.23 21.6 24.2 34.6 29.2
February 21 June 21 November 21
165
A single-story building was constructed in ECOTECT. For each test, the wall
exposure in question was constructed with one double-glazed window. A single tree,
modelled as a circle of 30 foot diameter, was created to cast shadows on the building
walls. These shadows were used in the calculation of reduced incident solar radiation
gains. The tree was located directly adjacent to the wall being tested at a distance of
10 feet from the building. For example, for the east-facing exposure a tree was
placed directly adjacent to this wall at a distance of 10 feet, while for south-facing
wall tests the tree was moved adjacent to the south exposure at a distance of 10 feet.
Several daily tests were performed for each wall as well as an overall annual
insolation test run. The ECOTECT values were then compared to the outputs of the
program. The table below summarizes the results for February 21, June 21, and
November 21.
Table 7: ECOTECT vs. Thesis Program Insolation Test Results
The solar heat gains output by both ECOTECT and the thesis program generally
related to the projected amount of shaded area of the window being analyzed. For
example, when the ECOTECT calculated a greater projected area in shade than
ECOTECT THESIS ECOTECT THESIS ECOTECT THESIS ECOTECT THESIS
Btu/h Btu/h Btu/h Btu/h Btu/h Btu/h Btu/h Btu/h
EAST 9,954 15,128 5,102 8,978 11,409 8,875 2,924,223 3,158,914
SOUTH 25,704 26,541 6,764 16,967 16,687 18,867 5,785,317 5,708,375
WEST 7,252 9,843 9,084 8,539 7,382 6,955 2,689,002 2,915,573
February 21 June 21 November 21 Annual
166
predicted by the thesis program, the heat gain was typically less than that output by
the program. Conversely, when ECOTECT calculated a smaller projected shaded
area than the thesis program, the corresponding solar gains were typically greater
than those output by the thesis program. The values output by ECOTECT and the
thesis program were also generally in the same range, within a difference of a few
kBtu//h. There were, however, several exceptions to the expected trends, which
could have occurred due to inconsistencies in weather data used in the calculations.
Despite these inconsistencies, the overall annual solar heat gains as calculated by
ECOTECT and the thesis program were within close range.
As can be seen from Table 7 above, the ECOTECT insolation analyses are
comparable to the test runs output by the thesis program. It can thus be concluded
that the thesis program is producing acceptable results based on comparisons to
industry standard software.
167
CHAPTER 6
The following chapter includes several comparisons to previous research
publications and presents final conclusions regarding the performance and
capabilities of the program developed in this thesis.
6.1 COMPARISON TO PREVIOUS RESEARCH PUBLICATIONS
As outlined in Chapter 2, several publications have been produced demonstrating the
range of savings that can be achieved through the use of microclimatic landscape
design. Selected results are discussed below. The program variables were input to
reproduce as closely as possible the scenarios outlined in the research. The results of
the research publications were then contrasted with those of the program.
6.1.1 PREVIOUS RESEARCH COMPARISON 1
A study published by McPherson evaluated the cost-effectiveness of shade trees for
demand side management.
232
A single tree was placed opposite of the west wall of a
1,761 square foot residence. The tree was assumed to reach 24 ft in height at
maturity, and was assumed to obstruct 85% of incident solar radiation during its in-
leaf period and 25% during its leaf-off period. The scenario was tested for several
232
McPherson, EG, Evaluating the Cost Effectiveness of Shade Trees for Demand Side Management, The
Electricity Journal, vol. 6, no. 9, November, pp 57-65
168
U.S cities, and the results of the simulated air-conditioning savings are shown below
in Figure 88. These results depict savings from consideration of shading only.
Figure 88: Simulated Air-Conditioning Savings from Landscape for Selected U.S Cities
233
As can be seen from the above graph, the overall savings for Los Angeles after 15
years are between 300-350 kWh.
A similar test case was input into the thesis program. A single-story house was
modelled with one 6 ft x 6 ft double-glazed clear window on each wall. A single tree
was placed directly adjacent to the west wall and, since the study did not provide
information on tree location, several tree distances of 10, 15, 20, and 25 feet were
tested. The results of these tests are summarized in Table 8 below.
233
McPherson, Evaluating the Cost Effectiveness of Shade Trees on Demand Side Management, 58
169
Table 8: Estimated Energy Savings from Tree Located Along West Exposure
As can be seen from the table above, the thesis program output savings within the
study range at a distance of 25 feet, and is close to the study range at a distance of 20
feet. Placing the tree closer to the house resulted in savings much higher than
anticipated by this study. Several reasons could be the cause for this difference in
results. Firstly, the study takes into account building construction. The estimated
savings outlined were for a well insulated home. Since the thesis program does not
consider building construction, effects of insulation and leakage are not taken into
account. Also, the research study doesn’t specify if the tree is placed directly
adjacent to the west-exposure or if it is located in a more southwesterly location.
Several different tree locations were tested in the thesis program and the projected
savings are outlined in comparison discussion to another research paper (see section
6.1.3).
Distance UnShaded Shaded Savings Savings
Feet Btu/h Btu/h Btu/h kWh
5 16,559,875 13,520,962 3,038,913 890
10 16,559,875 14,838,773 1,721,102 504
15 16,559,875 14,978,929 1,580,946 463
20 16,559,875 15,244,766 1,315,109 385
25 16,559,875 15,478,855 1,081,020 317
170
6.1.2 PREVIOUS RESEARCH COMPARISON 2
A study published by Simpson and McPherson investigated the potential of tree
shade for reducing residential energy use in California.
234
The study used a
computer simulation package known as the Shadow Pattern Simulator (SPS) to
calculate the shade on buildings for various tree configurations. The SPS calculates
hourly tree shade for each wall surface based on building and tree sizes and their
relative orientations and distances from buildings.
235
The shade patterns were
transferred to another software package, MICROPAS, to perform the building
simulations.
236
Trees in the study were modelled to be 25 ft tall at maturity, with
equal canopy diameter, and were simulated as blocking 85% of incoming solar
radiation when in leaf and 30% during off-leaf periods. The standard base case
building was a single story frame house of 1,500 square feet, oriented along the
cardinal directions with windows evenly distributed along each wall.
237
The impact
of single trees planted adjacent to east, south, and west walls as well as at building
corners were simulated.
The results of this study found that the annual savings due to a 24-foot tall tree
placed to the west of the building were about 12%.
238
A similar scenario was tested
in the thesis program. Since the study does not provide information on the distance
234
McPherson et al., Potential of Tree Shade for Reducing Residential Energy Use in California, 11
235
ibid., 11
236
ibid., 11
237
ibid., 12
238
ibid., 13
171
of the tree from the house, several different tree locations along the south and west
walls were tested in the program. The first location was roughly 30
o
west of south,
and yielded about 18% savings. As the tree location was moved closer to 90
o
west of
south, or directly adjacent to the west-facing wall, savings decreased. A tree placed
directly adjacent to the west-facing wall at a distance of 15 feet from the house
yielded savings of 12.6%. Moving the tree further away from the house lowered the
expected savings. The study also states that a tree placed along an east-facing façade
would produce savings 50% lower than that of a tree on the west exposure (ie. about
6%). Several tree locations east of south were tested. The savings from a tree placed
directly adjacent to the east-facing wall at a distance of 15 feet yielded savings of
4%.
There was some discrepancy between the results of this research study and those
produced by the program in that the program tended to yield higher savings for trees
located more to the southwest. This particular research study states that overall
savings should decrease with trees placed along a south-facing exposure. Savings
output by the thesis program were in the order of about 18% for trees located along a
south-facing wall, whereas the research paper indicated that savings should decrease
in these locations.
172
The thesis program outputs of 12.6% annual energy savings for a tree placed along
the west wall along with the 4% savings from a tree placed along the east wall are
comparable to the results provided in this study.
6.1.3 PREVIOUS RESEARCH COMPARISON 3
A study produced by Huang et al. used the DOE-2.1C simulation software to model
the effects of one tree planted to the west of a residential building, as well as the
effects of two trees planted to the south.
239
The prototype building used for the
simulations was a single-story detached house of 1,540 ft
2
, with 154 ft
2
(10% of floor
area) of single pane windows on the walls. The planting of one tree to the west was
considered to represent a tree canopy increase of 10%.
240
Tree transmissivity values
were applied as a percentage based on the tree canopy increase. For instance, the
simulations that considered a 10% increase in tree canopy applied a tree
transmissivity of 0.1 (90% of incoming solar radiation is filtered by the tree leaves).
The study, however, considered only summer transmissivity values and so did not
take into account the variation in transmissivity throughout the seasons.
The study found that strategically placing one tree for summer shading yielded
savings of 11% to 18% for various cities in hot, arid climates. The study included
Los Angeles, however the calculations were performed assuming that substantial
239
Akbari et al., The Potential of Vegetation in Reducing Summer Cooling Loads in Residential Buildings, 1105
240
ibid., 1105
173
natural window venting is used whenever possible. The savings for Los Angeles
were therefore much lower than the other cities. Although this assumption may be
true for residential neighbourhoods located closer to the coast line, residential
neighbourhoods located in downtown or further east in Los Angeles would not
experience such beneficial natural ventilation through windows.
Several tree locations were tested in the thesis program similar to the positions
outlined above in the research comparison discussed in section 6.1.2 (at various
locations to the south, southwest, and west). These simulations yielded savings
ranging from 7% to 13% depending on the distance of the tree from the house. The
maximum distance of tree placement from the building walls was 25 feet. Although
the research study provides savings for other cities and not Los Angeles, these cities
are still in hot, arid climates, and so the savings can be used for comparison. Table 8
below provides a summary of tree placement and corresponding savings as produced
by the thesis program. It should be noted that, for these simulations, the south-
facing wall had a y-coordinate of -10, and the west-facing wall had an x-coordinate
of -10.
It can be seen from these results that savings estimates produced by the thesis
program were within the range suggested by the above research paper, but also
exceeded these estimates for several locations. The discrepancy is possible due to
174
the fact that this research paper uses DOE2.1-C. This simulation software does not
provide tree-modelling capabilities similar to those used in this thesis program, and
so Huang modelled trees as exterior building shades.
Several other conclusions regarding the performance of the program can also be
drawn from the simulation test results outlined in Table 9.
175
Table 9: Thesis Program Savings Estimates for Various Tree Locations
X-Coordinate Y-Coordinate
SOUTH
Test 1 0 -15 South 29.1%
Test 2 0 -20 South 22.5%
Test 3 0 -25 South 16.0%
Test 4 0 -30 South 12.3%
Test 5 0 -35 South 10.1%
SOUTHWEST
Test 6 -5 -15 Southwest 30.3%
Test 7 -5 -20 Southwest 22.2%
Test 8 -5 -25 Southwest 20.2%
Test 9 -5 -30 Southwest 14.9%
Test 10 -5 -35 Southwest 9.7%
Test 11 -10 -15 Southwest 24.0%
Test 12 -10 -20 Southwest 25.9%
Test 13 -10 -25 Southwest 19.0%
Test 14 -10 -30 Southwest 16.1%
Test 15 -10 -35 Southwest 10.5%
Test 16 -15 -15 Southwest 18.5%
Test 17 -15 -20 Southwest 14.6%
Test 18 -15 -25 Southwest 18.7%
Test 19 -15 -30 Southwest 16.5%
Test 20 -15 -35 Southwest 11.8%
Test 21 -20 -15 Southwest 19.2%
Test 22 -20 -20 Southwest 17.9%
Test 23 -20 -25 Southwest 15.2%
Test 24 -20 -30 Southwest 14.3%
Test 25 -20 -35 Southwest 12.5%
WEST
Test 26 -15 -5 West 16.5%
Test 27 -15 -10 West 13.6%
Test 28 -20 -5 West 11.0%
Test 29 -20 -10 West 13.3%
Test 30 -25 -5 West 13.9%
Test 31 -25 -10 West 7.3%
Test 32 -30 -5 West 8.9%
Test 33 -30 -10 West 7.6%
Test 34 -35 -5 West 7.4%
Test 35 -35 -10 West 7.3%
Location
Orientation Savings (%)
176
It can be seen from these results that considerable savings were achieved from
locating trees closer to the house in a southwest orientation. This is inline with
published design guidelines that suggest placing trees in hot, arid locations to the
south west of the building to block afternoon direct solar radiation.
6.2 CONCLUSIONS REGARDING PUBLISHED RESEARCH COMPARISONS
It can be concluded from the above research comparisons that the program
developed in this thesis outputs similar results to published industry research. From
this conclusion, it can also be stated that the program is performing acceptable
analysis. Despite the similarities, however, some discrepancies do exist between the
study results and the outputs of the program. These discrepancies could be occurring
due to the difference in software used in the research studies. The computer
simulations use different algorithms, assumptions, and methods for analysis.
6.3 OVERALL CONCLUSIONS
Consideration of the research study comparisons outlined in this chapter along with
the preceding verification chapter analyses result in several conclusions that may be
drawn regarding the program developed in this thesis.
177
Firstly, the uploading of TMY3 weather files into a Visual Basic database and then
converting it to array lists from a data set proved to be an efficient manner in which
to store and use this data for simulations. The instantaneous heat gain verification
involving the use of HEED simulation results showed that the program accurately
calculates the insolation incident on a building surface. This confirms that weather
data is being properly called from the database and also confirms that the ASHRAE
equations used in the calculation of solar angles, angle of incidence, and
instantaneous heat gain are also being properly executed by the program algorithms.
In addition, several conclusions can be drawn from the Microsoft Excel and
ECOTECT tests regarding the matrix transformation and scanline algorithms. The
initial scanline algorithm test using a simple Visual Basic program combined with
Microsoft Excel demonstrated that the code produced accurate results for simple
scenarios. The additional tests employing the use of calculations to determine the
required height and distance of the tree to obtain a clear view of the window at 30
o
established that the scanline algorithm was working effectively and also that the
transformations were rotating the building envelope as expected. The two-
dimensional projection tests using Microsoft Excel and ECOTECT demonstrated that
the building planes were being rotated as expected and that matrix transformations
were producing acceptable overlapping polygon projections for the various times of
the year. The ECOTECT shading analyses, however, showed that the thesis program
178
algorithms could be improved on. There are alternative methods to producing the
tree polygon projections, and a more detailed scanline algorithm could be developed.
For example, defining several points in a matrix to produce a semi-circular shape
produced the tree polygon in this thesis. These points were then rotated through the
azimuth and altitude rotations to produce the transformed tree/shade polygon. An
alternative approach would be to transform the tree canopy base only, and then
assign the reminder of the tree polygon from the transformed base. Although the end
result of this approach and the one used in the thesis are roughly the same, the
approach used in this thesis produced a slightly more skewed shape. The alternative
approach requires more complicated code, and thus it can potentially be used for
program improvement future work. A more detailed scanline algorithm could also
be developed.
The scanline algorithm developed in this program uses slice heights based on
assigned tree points. An alternative method is to assign a standard slice height so
each slice in the scanline analysis has the same height. The method used in this
thesis yields larger slice heights at the base of the tree polygon and smaller slice
heights at the top of the tree polygon. This results in a slight variation in degree of
analysis accuracy throughout the tree canopy. Using standard slice heights would
help to improve the accuracy of the scanline, especially if very small slice
179
increments were used. The smaller the slice height, the more slices involved in the
analysis, and thus the more precise the calculated shaded area.
Comparison to previously published research studies showed that the program yields
outputs that are within an acceptable range of expected results. The optimization
sequence of the program also recommends tree placement in locations that are also
recommended by these research studies. It is possible that the thesis program could
output results closer to those published in other studies if further effort is made at
expanding and improving up on the program algorithms.
Overall, the program functions as was intended with results reflecting the
satisfactory performance of the program theory and algorithms. The use of other
software packages, including Microsoft Excel, MATLAB, HEED, and ECOTECT,
helped to verify that each section of code in the program was functioning as
intended. The verification tests also helped validate that the results calculated by the
program were within an acceptable range. As such, with further development the
program code could be adapted for incorporation into other software, or it could be
refined and expanded into a more powerful stand-alone program. These possibilities
are discussed in greater detail in Chapter 7. In closing, it can be concluded that the
objectives of the intended thesis project were achieved.
.
180
CHAPTER 7
This thesis involved the development of a computer-based tool to aid in the design of
landscape to reduce energy consumption in low-rise residential buildings. The scope
of this thesis was limited to sun-shading analysis for Los Angeles county. However,
as outlined in Chapter 2, the three main areas for the use of microclimatic landscape
design are sun shading, windbreaks, and evapotranspirative cooling. As such, the
scope of the tool can be greatly expanded and improved upon. This chapter will
discuss possible improvements that can be made to the program produced in this
thesis.
7.1 INCREASING GEOGRAPHICAL BOUNDARIES
As mentioned previously, initial program development was limited to Los Angeles
County. The geographical scope of the program can be expanded to include
additional locations in California, as well as anywhere in the United States. This can
be achieved by uploading additional TMY3 weather data for the desired cities into
the program weather file database. The code of the program can be altered to assign
appropriate values to the city variables based on the users selection of location.
181
7.2 INCREASING TREE LIBRARY & INCLUDING OTHER LANDSCAPE
ELEMENTS
Increasing the geographical scope of the program would also require expansion of
the tree library. The expansion of the tree library could occur without geographical
expansion to include more native tree species to Los Angeles. The expansion should
involve inclusion of evergreen and palm trees in addition to more deciduous species.
The inclusion of various tree species would be limited to available data regarding
transmissivity values, unless these can be estimated based on values available for
similar tree species.
Other landscape elements can also affect the performance of buildings. Ground
covers, shrubs, and water features can have an impact on the heat gain or loss from
buildings. Each of these elements is used for different purposes in microclimate
landscape modification. It is possible, however, to expand the program to consider
these effects; as is discussed further below.
7.3 EXPANDING SUN SHADING ANALYSIS
The current version of the program performs shading analysis for only one tree. It
would be a significant improvement to allow the program to evaluate multiple trees
on the same property or to allow the program to take into consideration existing trees
and other landscape features. Existing elements in the landscape can have a
182
significant effect on the estimated savings derived from the addition of trees since
multiple trees can have overlapping shadow polygons, which would alter
transmissivity values (as was discussed earlier). As such it would be desirable for
future versions of the program to have this capability. In addition, the current
version of the program analyzes instantaneous heat gain through fenestration
surfaces only. Reduction in heat transfer through opaque surfaces can also be
included in the program.
7.4 INCLUDING WIND BREAK ANALYSIS
Increasing the geographical scope of the program will also facilitate the addition of
windbreak analysis. Varying climates can incorporate different microclimatic
landscape modification, with colder climates benefiting from windbreaks to help
reduce heat loss to the atmosphere. Wind analysis could also be included to estimate
cooling benefits via the funnelling of desired summer breezes into living areas. The
underlying theory and basic calculations for this analysis were covered in Chapter 2.
The TMY3 weather data files include hourly wind speed and direction data that are
required for this analysis.
7.5 INCLUDING EVAPOTRANSPIRATIVE COOLING ANALYSIS
As mentioned in chapter 2, the benefits of evapotranspirative cooling from trees are
significant only for larger numbers of trees. As such, expanding the capability of the
program to analyze multiple trees for a property can also facilitate the expansion to
183
include evapotranspirative cooling analysis. Similar to windbreak analysis, the
theory and basic equations for these calculations have been included in Chapter 2.
The TMY3 data files also contain hourly humidity values and other data necessary
for this analysis.
7.6 USER INTERFACE
The user interface could benefit to include interactive graphics. Similar to HEED,
allowing the user to define the building and place the trees on the property through
interactive drawing and mouse clicks would increase the usability of the program
from it’s current state. In addition, being able to import or input data from 3D
modelling programs would also greatly enhance the user interface and data input
capabilities.
7.7 INTEGRATION INTO EXISTING SOFTWARE
Although several programs currently include some form of shading analysis, not
many include specific shading analysis for trees. Future work could involve the
integration of the program or information included in this thesis into a pre-existing
software package such as HEED or ECOTECT.
HEED would be a logical choice since it was developed for the purpose of home
energy efficiency design. Additional input screens for tree selection and placement
could be integrated into the existing program interface. ECOTECT already performs
184
insolation analysis, and so existing code can be altered to consider the unique
performance and effect of trees. Component libraries could be expanded to include
trees. The resulting instantaneous heat gain calculations can also be included in
software expansion.
7.8 INCREASED BOUNDARY OF ANALYSIS
The boundary of program analysis could be expanded to include homes of more than
one story, as well as to analyze multiple homes or even entire neighbourhood
developments. Software with this capability is currently being developed in
Germany, but is not yet available in an English version.
241
Increasing the boundary
of analysis would be required for evapotranspirative cooling analysis, and can be
used for other areas of study, such as in the use of landscape to help in the mitigation
of heat islands.
7.9 IMPROVEMENT OF PROGRAM CODE
As mentioned in the previous chapter, several potential improvements to the existing
program code have been identified to yield better results. These improvements
include alteration of the tree shadow polygon production as well as increasing the
degree of accuracy of the scanline algorithm. The program code could also be
241
Solarburo fur energieeffiziente Stadtplanung, GOSOL, viewed October 2008,
http://www.gosol.de/pageID_3092355.html
185
expanded to include an optimization analysis. This would involve running the
shading analysis or several pre-determined tree locations around the house, and then
outputting a list of the top 3 placements for the user to consider.
7.10 COST AND PAYBACK ANALYSIS
The tree libraries could also be expanded to include information regarding initial tree
cost and maintenance. Since the program outputs expected cost savings, a simple
payback analysis could be included to show how long the homeowner can expect a
return on investment.
7.11 ADDITIONAL VERIFICATION ANALYSIS
The outputs could also be verified against empirical analysis of the effects of
landscape on instantaneous heat gain through fenestration into a building volume.
Experimental observations and measurements could help verify the outputs from the
program developed in this thesis.
186
BIBLIOGRAPHY
Akbari, H, Huang, YJ, Rosenfeld, AH & Taha, H, 1987, ‘The Potential of Vegetation
in Reducing Summer Cooling Loads in Residential Buildings’, Journal of Climate
and Applied Meteorology, vol. 26, September, pp 1103-1116
American Society of Heating, Refrigerating and Air-Conditioning Engineers, 2005,
2005 Fundamentals Handbook, ASHRAE, Atlanta
Autodesk, 2008, ECOTECT Shading: Solar Incidence, Autodesk, viewed December
2008, http://squ1.org/wiki/Solar_Incidence
Autodesk, 2008, Solar Position: Calculator, Autodesk, viewed December 2008,
http://squ1.org/wiki/Solar_Position_Calculator#Manual
Black RJ & Meerow, AW, 2003, Enviroscaping to Conserve Energy: A Guide to
Microclimate Modification, University of Florida, Gainsville, Florida
Brown, RD & Gillespie, TJ, 1995, Microclimatic Landscape Design, Wiley, New
York
California Department of Water Resources, A Guide to Estimating Irrigation Water
Needs of Landscape Planting in California, California Department of Water
Resources, viewed November 2008,
http://www.owue.water.ca.gov/docs/wucols00.pdf
The California Energy Commission, 2008, California Energy Maps, The California
Energy Commission, viewed November 2009,
http://www.energy.ca.gov/maps/building_climate_zones.html
California Irrigation Management Information System, 2008, ET Overview, State of
California, viewed November 2008,
http://www.cimis.water.ca.gov/cimis/infoEtoOverview.jsp
The Canadian Energy Efficiency Alliance Select Committee on Alternative Fuel
Sources in Ontario, 2002, The Benefits of Energy Efficiency Management: Creating
Jobs and Supporting the Economy While Addressing Climate Change, The Canadian
Energy Efficiency Alliance, Toronto
187
Chirarattananon, S & Rajapakse, A, A New Tool for Designing External Sun Shading
Devices, Asian Institute of Technology, viewed December 2008, http://www.energy-
based.nrct.go.th/Article/Ts3%20new%20tool%20for%20designing%20external%20s
un%20shading%20devices.pdf
Halvorson, M, 2008, Visual Basic Step by Step, Microsoft, Redmond, Washington
Hatch, CR, 2007, Trees of the California Landscape, University of California Press,
Berkeley
Hutchison, BA & Taylor, FG, 1983, “Energy Conservation Mechanisms and
Potentials of Landscape Design to Ameliorate Building Microclimates”, Landscape
Journal, vol 2, no. 1, pp 19-39
Incropera, FP, 2007, Introduction to Heat Transfer, 5
th
Edition, Wiley, New Jersey
Knowles, RL, 1974, Energy and Form: An Ecological Approach to Growth, MIT
Press, Massachusetts
Kramer, PJ & Kozlowski, TT, 1960, Physiology of Trees, McGraw-Hill, New York
Lawrence Berkeley National Labs Heat Island Group, 2000, Energy Use, Lawrence
Berkeley National labs, viewed March 2008, http://heatisland.lbl.gov/EnergyUse/
Lawrence Berkeley National Labs Heat Island Group, 2000, Estimating Energy
Saving Potentials of Heat Island Mitigation Measures, Lawrence Berkeley National
labs, viewed March 2008, http://eetd.lbl.gov/HeatIsland/EnergyUse/Overview/
Lawrence Berkeley National Labs Heat Island Group, 2000, High Temperatures,
Lawrence Berkeley National labs, viewed March 2008,
http://heatisland.lbl.gov/HighTemps/
McPherson, EG, 1984, Energy-Conserving Site Design, American Society of
Landscape Architects, Washington, D.C
McPherson, EG, 1993, ‘Evaluating the Cost Effectiveness of Shade Trees for
Demand-Side Management’, The Electricity Journal, vol. 6, no. 9, November, pp 57-
65
McPherson, EG, 1994, Cooling Urban Heat Islands with Sustainable Landscapes,
United States Center for Urban Forest Research, viewed October 2008,
http://www.fs.fed.us/psw/programs/cufr/products/cufr_82_EM94_59.PDF
188
McPherson, EG, 1994, Energy Saving Potential of Trees in Chicago, USDA Forest
Service General Technical Report NE-186, Davis, California
McPherson, EG & Simpson, JR, 1996, ‘Potential of Tree Shade for Reducing
Residential Energy Use in California’, Journal of Aboriculture, vol. 22, no. 1, pp 10-
18
Moffat, AS & Schiler, M, 1981, Landscape Design that Saves Energy, Morrow, New
York
Moffat, AS & Schiler, M, 1994, Energy-efficient and Environmental Landscaping,
Appropriate Solutions Press, South Newfane, VT
National Renewable Energy Laboratory, 2008, User Manual for TMY3 Data Sets,
United States Department of Energy Office of Energy Efficiency & Renewable
Energy, viewed October 2008, http://www.nrel.gov/docs/fy08osti/43156.pdf
National Solar Radiation Database, Typical Meteorological Year 3, United States
Department of Energy Office of Energy Efficiency & Renewable Energy, viewed
October 2008, http://rredc.nrel.gov/solar/old_data/nsrdb/1991-2005/tmy3/
Pelland, P, 2008, Build A Program Now: Visual Basic 2008, Microsoft, Redmond,
Washington
Penigree, J, 2009, ‘MATLAB Azimuth and Altitude Rotation Tests’, results sent via
email, May 20, 2009, Los Angeles
Pongpattana, C & Rakkwamsuk, P, 2006, ‘Efficient Algorithm and Computing Tool
for Shading Calculation’, Songklanakarin Journal of Science and Technology, vol.
28, no. 2, March – April, pp 375-386
Queensland Government Department of Employment, Economic Development and
Innovation, 2008, Using Evapotranspiration to Estimate Water Use, Queensland
Government, viewed November 2008,
http://www.dpi.qld.gov.au/cps/rde/dpi/hs.xsl/26_9829_ENA_HTML.htm
Robinette, GO, 1977, Landscape Planning for Energy Conservation, Environmental
Design Press, Reston, VA
189
Robinette, GO, 1972 Plants, People, and Environmental Quality: A Study of Plants
and Their Environmental Functions, U.S. Department of the Interior, National Park
Service, Washington
Rutherford, HP, 2006, The Humane Metropolis, University of Massachusetts Press,
Massachusetts
Saxena, M, 2002, Microclimate Modification: Calculating the Effects of Trees on Air
Temperature, Heschong Mahone Group, Fair Oaks, California
Schiler, M, 1979, ‘Foliage Effects on Computer Simulation of Building Energy Load
Calculations’, Master’s Thesis, Columbia, New York
Solarburo fur energieeffiziente Stadtplanung, GOSOL, viewed October 2008,
http://www.gosol.de/pageID_3092355.html
United Nations Food and Agriculture Organization, 1998, Crop Evapotranspiration:
Guidelines for Computing Crop Water Requirements, Food and Agriculture
Organization, viewed November 2008,
http://www.fao.org/docrep/X0490E/X0490E00.htm
United States Census Bureau, 2000, “Home Computers and Internet Use in the
United States”, United States Cencus Bureau, viewed September 2008,
http://www.census.gov/population/www/socdemo/computer.html
United States Department of Energy, Energy Information Administration, 2008,
Monthly Energy Review: March 2008, United States Department of Energy,
Washington, DC
United States Environmental Protection Agency Green Building Workgroup, 2004,
Building and the Environment: A Statistical Survey, United States Environmental
Protection Agency, viewed September 2008,
http://www.epa.gov/greenbuilding/pubs/gbstats.pdf
United States Environmental Protection Agency Office of Policy Analysis, Climate
Change Division, 1991, Cooling Our Communities, United States Environmental
Protection Agency, Washington
United States Green Building Council, 2008, LEED Rating Systems, United States
Green Building Council, viewed September 2008,
http://www.usgbc.org/DisplayPage.aspx?CMSPageID=222
190
University of California Los Angeles, HEED: Home Energy Efficiency Design,
University of California Los Angeles, viewed January 2008,
http://mackintosh.aud.ucla.edu/heed/
The White House, 2008, Energy and Environment, viewed September 2008,
http://www.whitehouse.gov/issues/energy_and_environment/
191
APPENDIX A: TREE LIBRARY DATA
Table A-1: Tree Library Data
Min Max Min Max Summer Winter Foliation Defoliation
Acer macrophyllum Big-leafed maple, California maple 30 75 30 50 0.15 0.7 2161 7297 Short
Acer negundo Box elder 20 50 20 50 0.15 0.7 2161 7297 Short
Albizia julibrissin Silk tree - 40 - 80 0.17 0.68 2881 7297 Short
Fraxinus velutina var. glabra Modesto ash - 50 - 30 0.15 0.6 3217 8017 Short
Gleditsia triacanthos Thornless Honey Locust 35 70 25 35 0.33 0.68 2161 7297 Short
Juglans hindsii Northern california black walnut 30 60 30 60 0.1 0.63 3217 7297 Short
Pistacia chinensis Chinese pistachio 30 60 30 60 0.15 0.38 1417 7297 Short
Populus fremontii Fremont cottonwood 40 60 - 30 0.15 0.68 2497 7657 Short
Pyrus Calleryana Callery pear 35 40 - 20 0.2 0.6 2161 7297 Short
Ulmus parvifolia Chinese elm - 60 - 60 0.15 0.6 2161 7297
Species Common Name Life Span
Height (ft) Canopy Diameter (ft) Transmissivity Foliation Periods
** Some minimum height and minimum canopy diameter information is missing from the table since
it was not available. This does not adversely affect the analysis since the thesis program uses only
the maximum height and maximum canopy diameter values.
192
APPENDIX B: PROGRAM CODE
MODULE
Imports System.Math
Module Module1
'Declare variables to be used in Module'
Public EastTreeArray(39, 2) As Double
Public SouthTreeArray(39, 2) As Double
Public WestTreeArray(39, 2) As Double
Public EastTreeArrayPrime(39, 2) As Double
Public SouthTreeArrayPrime(39, 2) As Double
Public WestTreeArrayPrime(39, 2) As Double
Public EastTreeArrayPrimePrime(39, 2) As Double
Public SouthTreeArrayPrimePrime(39, 2) As Double
Public WestTreeArrayPrimePrime(39, 2) As Double
Public EastShadeArray(19) As Double
Public SouthShadeArray(19) As Double
Public WestShadeArray(19) As Double
Public EastQUnshadedArray(8759) As Double
Public EastQShadedArray(8759) As Double
Public SouthQUnshadedArray(8759) As Double
Public SouthQShadedArray(8759) As Double
Public WestQUnshadedArray(8759) As Double
Public WestQShadedArray(8759) As Double
'Declare variables to be defined by user in Form 1 - Introduction'
Public Latitude As Double = 33.93 'Latitude of selected city'
Public Longitude As Double = 118.4 'Longitude of selected city'
Public Insolation As New ArrayList
Public DryBulbTemp As New ArrayList
Public DiffuseRad As New ArrayList
Public City As DataTable
Public AST(8759) As Double 'Apparent Solar Time array'
Public Altitude As New ArrayList
Public Azimuth As New ArrayList
193
Public ElectricityRate As Double
Public EastSurfaceAzimuth As Double = -90
Public SouthSurfaceAzimuth As Double = 0
Public WestSurfaceAzimuth As Double = 90
Public strTitle As String = "Warning!"
Public Form1HelpString As String
'Declare variables to be defined and calculated in Form 2 - Building Information'
Public NSWall As Integer 'North/South wall dimension'
Public EWWall As Integer 'East/West wall dimension'
Public FlrHt As Integer 'Floor Height dimension'
Public NYard As Integer 'North yard dimension'
Public EYard As Integer 'East yard dimension'
Public SYard As Integer 'South yard dimension'
Public WYard As Integer 'West yard dimension'
Public Tin As Integer 'Indoor Temperature’
Public Form2HelpString As String
'Declare variables to be defined and calculated in Form 3 - East Wall Fenestration'
Public ESouthDist As Integer 'East window distance from South Wall'
Public EGroundDist As Integer 'East window height from ground'
Public EWinWidth As Integer 'East window width dimension'
Public EWinHeight As Integer 'East window height dimension'
Public EUFen As Double 'East window U-value based on user input'
Public ESHGC As Double 'East window Solar Heat Gain Coefficient’
Public EastWinArray(3, 2) As Double
Public EastWinArrayPrime(3, 2) As Double
Public EastWinArrayPrimePrime(3, 2) As Double
Public EastAngleOfIncidence As Double
Public Form3HelpString As String
'Declare variables to be defined and calculated in Form 4 - South Wall Fenestration'
Public SWestDist As Integer 'Window distance from West Wall'
Public SGroundDist As Integer 'South window height from ground'
Public SWinWidth As Integer 'South window width dimension'
Public SWinHeight As Integer 'South window height dimension'
Public SUFen As Double 'South window U-value based on user input'
Public SSHGC As Double 'South window Solar Heat Gain Coefficient’
Public SouthWinArray(3, 2) As Double
Public SouthWinArrayPrime(3, 2) As Double
Public SouthWinArrayPrimePrime(3, 2) As Double
Public SouthAngleOfIncidence As Double
Public Form4HelpString As String
194
'Declare variables to be defined and calculated in Form 5 - West Wall Fenestration'
Public WNorthDist As Integer 'West window distance from North Wall'
Public WGroundDist As Integer 'West window height from ground'
Public WWinWidth As Integer 'West window width dimension'
Public WWinHeight As Integer 'West window height dimension'
Public WUFen As Double 'West window U-value based on user input'
Public WSHGC As Double 'West window Solar Heat Gain Coefficient’
Public WestWinArray(3, 2) As Double
Public WestWinArrayPrime(3, 2) As Double
Public WestWinArrayPrimePrime(3, 2) As Double
Public WestAngleOfIncidence As Double
Public Form5HelpString As String
'Declare variables to be defined in Form 6 - Tree Selection'
Public TreeData As DataTable
Public TreeName As String
Public TreeHeight As Integer 'Height of selected tree'
Public TreeCanopyDiam As Integer 'Canopy diameter of selected tree'
Public TreeRadius As Integer
Public SummerTrans As Double 'Summer transmissivity of selected tree'
Public WinterTrans As Double 'Winter transmissivity of selected tree'
Public Transmissivity As Double 'Transmissivity will be assigned summer or winter
based on hour'
Public Foliation As Integer 'Foliation start date of selected tree'
Public Defoliation As Integer 'Defoliation start date of selected tree'
Public Description As String 'String that will hold information about tree to be
displayed to user'
Public Form6HelpString As String
'Declare variables to be used in Form 7 - Tree Placement'
Public TreeX As Double 'Tree location x-coordinate'
Public TreeY As Double 'Tree location y-coordinate'
Public BranchHeight As Integer
Public Form7HelpString As String
Public Form8HelpString As String
Public Sub EastScanline (ByVal WinWidth As Integer, ByVal WinHeight As Integer, ByVal
UFen As Double, ByVal SHGC As Double, ByVal TreeHeight As Integer,
ByVal BranchHeight As Integer, ByVal TreeCanopyDiam As Integer, ByVal
SummerTrans As Double, ByVal WinterTrans As Double, Foliation As Integer,
ByVal Defoliation As Integer, ByVal hour As Integer, ByVal AngleOfIncidence
As Double)
Dim Tin As Integer = 68
Dim i As Integer
195
Dim j As Integer
Dim Area As Double 'Area of window'
Dim TreeRadius As Integer
Dim Slice As Integer = 19
Dim SliceHeight As Double
Dim TotalShade As Double
Dim TransDiff As Double
TreeRadius = TreeCanopyDiam / 2
'Calculate total area of window'
Area = WinWidth * WinHeight
Dim QUnshaded As Double 'Instantaneous Energy Flow of unshaded window'
Dim QShaded As Double 'Instantaneous Energy Flow of shaded window'
Dim ShadeStart As Double 'Start coordinate of shade on window'
Dim ShadeEnd As Double 'End coordinate of shade on window'
TransDiff = (WinterTrans - SummerTrans) / 30
If hour < Foliation - 360 Then
Transmissivity = WinterTrans
ElseIf hour >= Foliation - 360 AndAlso hour <= Foliation + 360 Then
If hour >= Foliation - 360 AndAlso hour < Foliation - 336 Then
Transmissivity = WinterTrans - (TransDiff * 1)
ElseIf hour >= Foliation - 336 AndAlso hour < Foliation - 312 Then
Transmissivity = WinterTrans - (TransDiff * 2)
ElseIf hour >= Foliation - 312 AndAlso hour < Foliation - 288 Then
Transmissivity = WinterTrans - (TransDiff * 3)
ElseIf hour >= Foliation - 288 AndAlso hour < Foliation - 264 Then
Transmissivity = WinterTrans - (TransDiff * 4)
ElseIf hour >= Foliation - 264 AndAlso hour < Foliation - 240 Then
Transmissivity = WinterTrans - (TransDiff * 5)
ElseIf hour >= Foliation - 240 AndAlso hour < Foliation - 216 Then
Transmissivity = WinterTrans - (TransDiff * 6)
ElseIf hour >= Foliation - 216 AndAlso hour < Foliation - 192 Then
Transmissivity = WinterTrans - (TransDiff * 7)
ElseIf hour >= Foliation - 192 AndAlso hour < Foliation - 168 Then
Transmissivity = WinterTrans - (TransDiff * 8)
ElseIf hour >= Foliation - 168 AndAlso hour < Foliation - 144 Then
Transmissivity = WinterTrans - (TransDiff * 9)
ElseIf hour >= Foliation - 144 AndAlso hour < Foliation - 120 Then
Transmissivity = WinterTrans - (TransDiff * 10)
196
ElseIf hour >= Foliation - 120 AndAlso hour < Foliation - 96 Then
Transmissivity = WinterTrans - (TransDiff * 11)
ElseIf hour >= Foliation - 96 AndAlso hour < Foliation - 72 Then
Transmissivity = WinterTrans - (TransDiff * 12)
ElseIf hour >= Foliation - 72 AndAlso hour < Foliation - 48 Then
Transmissivity = WinterTrans - (TransDiff * 13)
ElseIf hour >= Foliation - 48 AndAlso hour < Foliation - 24 Then
Transmissivity = WinterTrans - (TransDiff * 14)
ElseIf hour >= Foliation - 24 AndAlso hour < Foliation Then
Transmissivity = WinterTrans - (TransDiff * 15)
ElseIf hour >= Foliation AndAlso hour < Foliation + 24 Then
Transmissivity = WinterTrans - (TransDiff * 16)
ElseIf hour >= Foliation + 24 AndAlso hour < Foliation + 48 Then
Transmissivity = WinterTrans - (TransDiff * 17)
ElseIf hour >= Foliation + 48 AndAlso hour < Foliation + 72 Then
Transmissivity = WinterTrans - (TransDiff * 18)
ElseIf hour >= Foliation + 72 AndAlso hour < Foliation + 96 Then
Transmissivity = WinterTrans - (TransDiff * 19)
ElseIf hour >= Foliation + 96 AndAlso hour < Foliation + 120 Then
Transmissivity = WinterTrans - (TransDiff * 20)
ElseIf hour >= Foliation + 120 AndAlso hour < Foliation + 144 Then
Transmissivity = WinterTrans - (TransDiff * 21)
ElseIf hour >= Foliation + 144 AndAlso hour < Foliation + 168 Then
Transmissivity = WinterTrans - (TransDiff * 22)
ElseIf hour >= Foliation + 160 AndAlso hour < Foliation + 192 Then
Transmissivity = WinterTrans - (TransDiff * 23)
ElseIf hour >= Foliation + 192 AndAlso hour < Foliation + 216 Then
Transmissivity = WinterTrans - (TransDiff * 24)
ElseIf hour >= Foliation + 216 AndAlso hour < Foliation + 240 Then
Transmissivity = WinterTrans - (TransDiff * 25)
ElseIf hour >= Foliation + 240 AndAlso hour < Foliation + 264 Then
Transmissivity = WinterTrans - (TransDiff * 26)
ElseIf hour >= Foliation + 264 AndAlso hour < Foliation + 288 Then
Transmissivity = WinterTrans - (TransDiff * 27)
ElseIf hour >= Foliation + 288 AndAlso hour < Foliation + 312 Then
Transmissivity = WinterTrans - (TransDiff * 28)
ElseIf hour >= Foliation + 312 AndAlso hour < Foliation + 336 Then
Transmissivity = WinterTrans - (TransDiff * 29)
ElseIf hour >= Foliation + 336 AndAlso hour <= Foliation + 360 Then
Transmissivity = WinterTrans - (TransDiff * 30)
End If
ElseIf hour > Foliation + 360 AndAlso hour < Defoliation - 360 Then
Transmissivity = SummerTrans
ElseIf hour >= Defoliation - 360 AndAlso hour <= Defoliation + 360 Then
197
If hour >= Defoliation - 360 AndAlso hour < Defoliation - 336 Then
Transmissivity = WinterTrans - (TransDiff * 30)
ElseIf hour >= Defoliation - 336 AndAlso hour < Defoliation - 312 Then
Transmissivity = WinterTrans - (TransDiff * 29)
ElseIf hour >= Defoliation - 312 AndAlso hour < Defoliation - 288 Then
Transmissivity = WinterTrans - (TransDiff * 28)
ElseIf hour >= Defoliation - 288 AndAlso hour < Defoliation - 264 Then
Transmissivity = WinterTrans - (TransDiff * 27)
ElseIf hour >= Defoliation - 264 AndAlso hour < Defoliation - 240 Then
Transmissivity = WinterTrans - (TransDiff * 26)
ElseIf hour >= Defoliation - 240 AndAlso hour < Defoliation - 216 Then
Transmissivity = WinterTrans - (TransDiff * 25)
ElseIf hour >= Defoliation - 216 AndAlso hour < Defoliation - 192 Then
Transmissivity = WinterTrans - (TransDiff * 24)
ElseIf hour >= Defoliation - 192 AndAlso hour < Defoliation - 168 Then
Transmissivity = WinterTrans - (TransDiff * 23)
ElseIf hour >= Defoliation - 168 AndAlso hour < Defoliation - 144 Then
Transmissivity = WinterTrans - (TransDiff * 22)
ElseIf hour >= Defoliation - 144 AndAlso hour < Defoliation - 120 Then
Transmissivity = WinterTrans - (TransDiff * 21)
ElseIf hour >= Defoliation - 120 AndAlso hour < Defoliation - 96 Then
Transmissivity = WinterTrans - (TransDiff * 20)
ElseIf hour >= Defoliation - 96 AndAlso hour < Defoliation - 72 Then
Transmissivity = WinterTrans - (TransDiff * 19)
ElseIf hour >= Defoliation - 72 AndAlso hour < Defoliation - 48 Then
Transmissivity = WinterTrans - (TransDiff * 18)
ElseIf hour >= Defoliation - 48 AndAlso hour < Defoliation - 24 Then
Transmissivity = WinterTrans - (TransDiff * 17)
ElseIf hour >= Defoliation - 24 AndAlso hour < Defoliation Then
Transmissivity = WinterTrans - (TransDiff * 16)
ElseIf hour >= Defoliation AndAlso hour < Defoliation + 24 Then
Transmissivity = WinterTrans - (TransDiff * 15)
ElseIf hour >= Defoliation + 24 AndAlso hour < Defoliation + 48 Then
Transmissivity = WinterTrans - (TransDiff * 14)
ElseIf hour >= Defoliation + 48 AndAlso hour < Defoliation + 72 Then
Transmissivity = WinterTrans - (TransDiff * 13)
ElseIf hour >= Defoliation + 72 AndAlso hour < Defoliation + 96 Then
Transmissivity = WinterTrans - (TransDiff * 12)
ElseIf hour >= Defoliation + 96 AndAlso hour < Defoliation + 120 Then
Transmissivity = WinterTrans - (TransDiff * 11)
ElseIf hour >= Defoliation + 120 AndAlso hour < Defoliation + 144 Then
Transmissivity = WinterTrans - (TransDiff * 10)
ElseIf hour >= Defoliation + 144 AndAlso hour < Defoliation + 168 Then
Transmissivity = WinterTrans - (TransDiff * 9)
ElseIf hour >= Defoliation + 160 AndAlso hour < Defoliation + 192 Then
Transmissivity = WinterTrans - (TransDiff * 8)
198
ElseIf hour >= Defoliation + 192 AndAlso hour < Defoliation + 216 Then
Transmissivity = WinterTrans - (TransDiff * 7)
ElseIf hour >= Defoliation + 216 AndAlso hour < Defoliation + 240 Then
Transmissivity = WinterTrans - (TransDiff * 6)
ElseIf hour >= Defoliation + 240 AndAlso hour < Defoliation + 264 Then
Transmissivity = WinterTrans - (TransDiff * 5)
ElseIf hour >= Defoliation + 264 AndAlso hour < Defoliation + 288 Then
Transmissivity = WinterTrans - (TransDiff * 4)
ElseIf hour >= Defoliation + 288 AndAlso hour < Defoliation + 312 Then
Transmissivity = WinterTrans - (TransDiff * 3)
ElseIf hour >= Defoliation + 312 AndAlso hour < Defoliation + 336 Then
Transmissivity = WinterTrans - (TransDiff * 2)
ElseIf hour >= Defoliation + 336 AndAlso hour < Defoliation + 360 Then
Transmissivity = WinterTrans - (TransDiff * 1)
End If
ElseIf hour > Defoliation + 360 Then
Transmissivity = WinterTrans
End If
'Calculate instantaneous energy flow through unshaded window'
QUnshaded = UFen * Area * (DryBulbTemp(hour) - Tin) + SHGC * Area *
(Insolation(hour) * Cos(EastAngleOfIncidence)) + SHGC * Area *
(DiffuseRad(hour))
'Add instantaneous energy flow to the unshaded annual array'
EastQUnshadedArray(hour) = QUnshaded
'Find shaded area of window from tree shadow'
If EastTreeArrayPrimePrime(0, 1) < EastWinArrayPrimePrime(0, 1) Then
For i = 2 To 21
If EastTreeArrayPrime(i, 2) > EastWinArrayPrime(1, 2) Then Exit For
'Check to see if z-coordinate of shadow is within window area'
If EastTreeArrayPrime(i, 2) >= EastWinArrayPrime(0, 2) Then
'Check to see if shadow starts before scanline starting edge of window'
'If shadow starts before starting edge, assign scanline slice shadow start as
window edge'
If EastTreeArrayPrime(i, 0) <= EastWinArrayPrime(0, 0) Then
ShadeStart = EastWinArrayPrime(0, 0)
'Determine end location of shade segement'
199
If EastTreeArrayPrime(40 - i, 0) <= EastWinArrayPrime(3, 0) Then
ShadeEnd = EastTreeArrayPrime(40 - i, 0)
ElseIf EastTreeArrayPrime(40 - i, 0) >= EastWinArrayPrime(3, 0) Then
ShadeEnd = EastWinArrayPrime(3, 0)
End If
ElseIf EastTreeArrayPrime(i, 0) <= EastWinArrayPrime(3, 0) Then
'Scan across window slice to see if/where the shadow starts on this slice'
ShadeStart = EastTreeArrayPrime(i, 0)
'Determine end location of shade segement'
If EastTreeArrayPrime(40 - i, 0) <= EastWinArrayPrime(3, 0) Then
ShadeEnd = EastTreeArrayPrime(40 - i, 0)
ElseIf EastTreeArrayPrime(40 - i, 0) >= EastWinArrayPrime(3, 0) Then
ShadeEnd = EastWinArrayPrime(3, 0)
End If
End If
End If
If EastTreeArrayPrime(i + 1, 2) < EastWinArrayPrime(1, 2) Then
SliceHeight = EastTreeArrayPrime(i + 1, 2) - EastTreeArrayPrime(i, 2)
Else
SliceHeight = EastWinArrayPrime(1, 2) - EastTreeArrayPrime(i, 2)
End If
EastShadeArray(i - 2) = (ShadeEnd - ShadeStart) * SliceHeight
Next i
Else
For i = 2 To 21
If SouthTreeArrayPrime(i, 2) > EastWinArrayPrime(1, 2) Then Exit For
'Check to see if z-coordinate of shadow is within window area'
If SouthTreeArrayPrime(i, 2) >= EastWinArrayPrime(0, 2) Then
'Check to see if shadow starts before scanline starting edge of window'
'If shadow starts before starting edge, assign scanline slice shadow start as
window edge'
If SouthTreeArrayPrime(i, 0) <= EastWinArrayPrime(0, 0) Then
ShadeStart = EastWinArrayPrime(0, 0)
200
'Determine end location of shade segement'
If SouthTreeArrayPrime(40 - i, 0) <= EastWinArrayPrime(3, 0) Then
ShadeEnd = SouthTreeArrayPrime(40 - i, 0)
ElseIf SouthTreeArrayPrime(40 - i, 0) >= EastWinArrayPrime(3, 0) Then
ShadeEnd = EastWinArrayPrime(3, 0)
End If
ElseIf SouthTreeArrayPrime(i, 0) <= EastWinArrayPrime(3, 0) Then
'Scan across window slice to see if/where the shadow starts on this slice'
ShadeStart = SouthTreeArrayPrime(i, 0)
'Determine end location of shade segement'
If SouthTreeArrayPrime(40 - i, 0) <= EastWinArrayPrime(3, 0) Then
ShadeEnd = SouthTreeArrayPrime(40 - i, 0)
ElseIf SouthTreeArrayPrime(40 - i, 0) >= EastWinArrayPrime(3, 0) Then
ShadeEnd = EastWinArrayPrime(3, 0)
End If
End If
End If
If SouthTreeArrayPrime(i + 1, 2) < EastWinArrayPrime(1, 2) Then
SliceHeight = SouthTreeArrayPrime(i + 1, 2) - SouthTreeArrayPrime(i, 2)
Else
SliceHeight = SouthWinArrayPrime(1, 2) - EastTreeArrayPrime(i, 2)
End If
EastShadeArray(i - 2) = (ShadeEnd - ShadeStart) * SliceHeight
Next i
End If
'Calculate total shaded area of window from tree polygon'
For j = 0 To Slice
TotalShade += EastShadeArray(j)
Next j
If TotalShade > 0 Then
'Calculate instantaneous energy flow through shaded window'
QShaded = UFen * Area * (DryBulbTemp(hour) - Tin) + SHGC * TotalShade *
Transmissivity * ((Insolation(hour) * Cos(AngleOfIncidence)) +
DiffuseRad(hour)) + SHGC * (Area - TotalShade) * Transmissivity *
((Insolation(hour) * Cos(AngleOfIncidence)) + DiffuseRad(hour))
Else
201
QShaded = QUnshaded
End If
'Add instantaneous energy flow to the shaded annual array'
EastQShadedArray(hour) = QShaded
End Sub
Public Sub SouthScanline (ByVal WinWidth As Integer, ByVal WinHeight As Integer,
ByVal UFen As Double, ByVal SHGC As Double, ByVal TreeHeight As
Integer, ByVal BranchHeight As Integer, ByVal TreeCanopyDiam As
Integer, ByVal SummerTrans As Double, ByVal WinterTrans As Double,
ByVal Foliation As Integer, ByVal Defoliation As Integer, ByVal hour As
Integer, ByVal AngleOfIncidence As Double)
Dim Tin As Integer = 68
Dim i As Integer
Dim j As Integer
Dim Area As Double 'Area of window'
Dim Slice As Integer = 19
Dim SliceHeight As Double
Dim TotalShade As Double
Dim TransDiff As Double
'Calculate total area of window'
Area = WinWidth * WinHeight
Dim QUnshaded As Double 'Instantaneous Energy Flow of unshaded window'
Dim QShaded As Double 'Instantaneous Energy Flow of shaded window'
Dim ShadeStart As Double 'Start coordinate of shade on window'
Dim ShadeEnd As Double 'End coordinate of shade on window'
TransDiff = (WinterTrans - SummerTrans) / 30
'Assign Transmissivity value based on time of year'
If hour < Foliation - 360 Then
Transmissivity = WinterTrans
ElseIf hour >= Foliation - 360 AndAlso hour <= Foliation + 360 Then
If hour >= Foliation - 360 AndAlso hour < Foliation - 336 Then
Transmissivity = WinterTrans - (TransDiff * 1)
202
ElseIf hour >= Foliation - 336 AndAlso hour < Foliation - 312 Then
Transmissivity = WinterTrans - (TransDiff * 2)
ElseIf hour >= Foliation - 312 AndAlso hour < Foliation - 288 Then
Transmissivity = WinterTrans - (TransDiff * 3)
ElseIf hour >= Foliation - 288 AndAlso hour < Foliation - 264 Then
Transmissivity = WinterTrans - (TransDiff * 4)
ElseIf hour >= Foliation - 264 AndAlso hour < Foliation - 240 Then
Transmissivity = WinterTrans - (TransDiff * 5)
ElseIf hour >= Foliation - 240 AndAlso hour < Foliation - 216 Then
Transmissivity = WinterTrans - (TransDiff * 6)
ElseIf hour >= Foliation - 216 AndAlso hour < Foliation - 192 Then
Transmissivity = WinterTrans - (TransDiff * 7)
ElseIf hour >= Foliation - 192 AndAlso hour < Foliation - 168 Then
Transmissivity = WinterTrans - (TransDiff * 8)
ElseIf hour >= Foliation - 168 AndAlso hour < Foliation - 144 Then
Transmissivity = WinterTrans - (TransDiff * 9)
ElseIf hour >= Foliation - 144 AndAlso hour < Foliation - 120 Then
Transmissivity = WinterTrans - (TransDiff * 10)
ElseIf hour >= Foliation - 120 AndAlso hour < Foliation - 96 Then
Transmissivity = WinterTrans - (TransDiff * 11)
ElseIf hour >= Foliation - 96 AndAlso hour < Foliation - 72 Then
Transmissivity = WinterTrans - (TransDiff * 12)
ElseIf hour >= Foliation - 72 AndAlso hour < Foliation - 48 Then
Transmissivity = WinterTrans - (TransDiff * 13)
ElseIf hour >= Foliation - 48 AndAlso hour < Foliation - 24 Then
Transmissivity = WinterTrans - (TransDiff * 14)
ElseIf hour >= Foliation - 24 AndAlso hour < Foliation Then
Transmissivity = WinterTrans - (TransDiff * 15)
ElseIf hour >= Foliation AndAlso hour < Foliation + 24 Then
Transmissivity = WinterTrans - (TransDiff * 16)
ElseIf hour >= Foliation + 24 AndAlso hour < Foliation + 48 Then
Transmissivity = WinterTrans - (TransDiff * 17)
ElseIf hour >= Foliation + 48 AndAlso hour < Foliation + 72 Then
Transmissivity = WinterTrans - (TransDiff * 18)
ElseIf hour >= Foliation + 72 AndAlso hour < Foliation + 96 Then
Transmissivity = WinterTrans - (TransDiff * 19)
ElseIf hour >= Foliation + 96 AndAlso hour < Foliation + 120 Then
Transmissivity = WinterTrans - (TransDiff * 20)
ElseIf hour >= Foliation + 120 AndAlso hour < Foliation + 144 Then
Transmissivity = WinterTrans - (TransDiff * 21)
ElseIf hour >= Foliation + 144 AndAlso hour < Foliation + 168 Then
Transmissivity = WinterTrans - (TransDiff * 22)
ElseIf hour >= Foliation + 160 AndAlso hour < Foliation + 192 Then
Transmissivity = WinterTrans - (TransDiff * 23)
ElseIf hour >= Foliation + 192 AndAlso hour < Foliation + 216 Then
Transmissivity = WinterTrans - (TransDiff * 24)
203
ElseIf hour >= Foliation + 216 AndAlso hour < Foliation + 240 Then
Transmissivity = WinterTrans - (TransDiff * 25)
ElseIf hour >= Foliation + 240 AndAlso hour < Foliation + 264 Then
Transmissivity = WinterTrans - (TransDiff * 26)
ElseIf hour >= Foliation + 264 AndAlso hour < Foliation + 288 Then
Transmissivity = WinterTrans - (TransDiff * 27)
ElseIf hour >= Foliation + 288 AndAlso hour < Foliation + 312 Then
Transmissivity = WinterTrans - (TransDiff * 28)
ElseIf hour >= Foliation + 312 AndAlso hour < Foliation + 336 Then
Transmissivity = WinterTrans - (TransDiff * 29)
ElseIf hour >= Foliation + 336 AndAlso hour <= Foliation + 360 Then
Transmissivity = WinterTrans - (TransDiff * 30)
End If
ElseIf hour > Foliation + 360 AndAlso hour < Defoliation - 360 Then
Transmissivity = SummerTrans
ElseIf hour >= Defoliation - 360 AndAlso hour <= Defoliation + 360 Then
If hour >= Defoliation - 360 AndAlso hour < Defoliation - 336 Then
Transmissivity = WinterTrans - (TransDiff * 30)
ElseIf hour >= Defoliation - 336 AndAlso hour < Defoliation - 312 Then
Transmissivity = WinterTrans - (TransDiff * 29)
ElseIf hour >= Defoliation - 312 AndAlso hour < Defoliation - 288 Then
Transmissivity = WinterTrans - (TransDiff * 28)
ElseIf hour >= Defoliation - 288 AndAlso hour < Defoliation - 264 Then
Transmissivity = WinterTrans - (TransDiff * 27)
ElseIf hour >= Defoliation - 264 AndAlso hour < Defoliation - 240 Then
Transmissivity = WinterTrans - (TransDiff * 26)
ElseIf hour >= Defoliation - 240 AndAlso hour < Defoliation - 216 Then
Transmissivity = WinterTrans - (TransDiff * 25)
ElseIf hour >= Defoliation - 216 AndAlso hour < Defoliation - 192 Then
Transmissivity = WinterTrans - (TransDiff * 24)
ElseIf hour >= Defoliation - 192 AndAlso hour < Defoliation - 168 Then
Transmissivity = WinterTrans - (TransDiff * 23)
ElseIf hour >= Defoliation - 168 AndAlso hour < Defoliation - 144 Then
Transmissivity = WinterTrans - (TransDiff * 22)
ElseIf hour >= Defoliation - 144 AndAlso hour < Defoliation - 120 Then
Transmissivity = WinterTrans - (TransDiff * 21)
ElseIf hour >= Defoliation - 120 AndAlso hour < Defoliation - 96 Then
Transmissivity = WinterTrans - (TransDiff * 20)
ElseIf hour >= Defoliation - 96 AndAlso hour < Defoliation - 72 Then
Transmissivity = WinterTrans - (TransDiff * 19)
ElseIf hour >= Defoliation - 72 AndAlso hour < Defoliation - 48 Then
Transmissivity = WinterTrans - (TransDiff * 18)
ElseIf hour >= Defoliation - 48 AndAlso hour < Defoliation - 24 Then
Transmissivity = WinterTrans - (TransDiff * 17)
204
ElseIf hour >= Defoliation - 24 AndAlso hour < Defoliation Then
Transmissivity = WinterTrans - (TransDiff * 16)
ElseIf hour >= Defoliation AndAlso hour < Defoliation + 24 Then
Transmissivity = WinterTrans - (TransDiff * 15)
ElseIf hour >= Defoliation + 24 AndAlso hour < Defoliation + 48 Then
Transmissivity = WinterTrans - (TransDiff * 14)
ElseIf hour >= Defoliation + 48 AndAlso hour < Defoliation + 72 Then
Transmissivity = WinterTrans - (TransDiff * 13)
ElseIf hour >= Defoliation + 72 AndAlso hour < Defoliation + 96 Then
Transmissivity = WinterTrans - (TransDiff * 12)
ElseIf hour >= Defoliation + 96 AndAlso hour < Defoliation + 120 Then
Transmissivity = WinterTrans - (TransDiff * 11)
ElseIf hour >= Defoliation + 120 AndAlso hour < Defoliation + 144 Then
Transmissivity = WinterTrans - (TransDiff * 10)
ElseIf hour >= Defoliation + 144 AndAlso hour < Defoliation + 168 Then
Transmissivity = WinterTrans - (TransDiff * 9)
ElseIf hour >= Defoliation + 160 AndAlso hour < Defoliation + 192 Then
Transmissivity = WinterTrans - (TransDiff * 8)
ElseIf hour >= Defoliation + 192 AndAlso hour < Defoliation + 216 Then
Transmissivity = WinterTrans - (TransDiff * 7)
ElseIf hour >= Defoliation + 216 AndAlso hour < Defoliation + 240 Then
Transmissivity = WinterTrans - (TransDiff * 6)
ElseIf hour >= Defoliation + 240 AndAlso hour < Defoliation + 264 Then
Transmissivity = WinterTrans - (TransDiff * 5)
ElseIf hour >= Defoliation + 264 AndAlso hour < Defoliation + 288 Then
Transmissivity = WinterTrans - (TransDiff * 4)
ElseIf hour >= Defoliation + 288 AndAlso hour < Defoliation + 312 Then
Transmissivity = WinterTrans - (TransDiff * 3)
ElseIf hour >= Defoliation + 312 AndAlso hour < Defoliation + 336 Then
Transmissivity = WinterTrans - (TransDiff * 2)
ElseIf hour >= Defoliation + 336 AndAlso hour < Defoliation + 360 Then
Transmissivity = WinterTrans - (TransDiff * 1)
End If
ElseIf hour > Defoliation + 360 Then
Transmissivity = WinterTrans
End If
'Calculate instantaneous energy flow through unshaded window'
QUnshaded = UFen * Area * (DryBulbTemp(hour) - Tin) + SHGC * Area *
(Insolation(hour) * Cos(AngleOfIncidence)) + SHGC * Area *
DiffuseRad(hour)
'Add instantaneous energy flow to the unshaded annual array'
SouthQUnshadedArray(hour) = QUnshaded
205
'Find shaded area of window from tree shadow'
If SouthTreeArrayPrimePrime(0, 1) < SouthWinArrayPrimePrime(0, 1) Then
For i = 2 To 21
If SouthTreeArrayPrime(i, 2) > SouthWinArrayPrime(1, 2) Then Exit For
'Check to see if z-coordinate of shadow is within window area'
If SouthTreeArrayPrime(i, 2) >= SouthWinArrayPrime(0, 2) Then
'Check to see if shadow starts before scanline starting edge of window'
'If shadow starts before starting edge, assign scanline slice shadow start as
window edge'
If SouthTreeArrayPrime(i, 0) <= SouthWinArrayPrime(0, 0) Then
ShadeStart = SouthWinArrayPrime(0, 0)
'Determine end location of shade segement'
If SouthTreeArrayPrime(40 - i, 0) <= SouthWinArrayPrime(3, 0) Then
ShadeEnd = SouthTreeArrayPrime(40 - i, 0)
ElseIf SouthTreeArrayPrime(40 - i, 0) > SouthWinArrayPrime(3, 0) Then
ShadeEnd = SouthWinArrayPrime(3, 0)
End If
ElseIf SouthTreeArrayPrime(i, 0) <= SouthWinArrayPrime(3, 0) Then
'Scan across window slice to see if/where the shadow starts on this slice'
ShadeStart = SouthTreeArrayPrime(i, 0)
'Determine end location of shade segement'
If SouthTreeArrayPrime(40 - i, 0) <= SouthWinArrayPrime(3, 0) Then
ShadeEnd = SouthTreeArrayPrime(40 - i, 0)
ElseIf SouthTreeArrayPrime(40 - i, 0) > SouthWinArrayPrime(3, 0) Then
ShadeEnd = SouthWinArrayPrime(3, 0)
End If
End If
End If
If SouthTreeArrayPrime(i + 1, 2) < SouthWinArrayPrime(1, 2) Then
SliceHeight = SouthTreeArrayPrime(i + 1, 2) - SouthTreeArrayPrime(i, 2)
Else
SliceHeight = SouthWinArrayPrime(1, 2) - SouthTreeArrayPrime(i, 2)
End If
SouthShadeArray(i - 2) = (ShadeEnd - ShadeStart) * SliceHeight
206
Next i
Else
End If
'Calculate total shaded area of window from tree polygon'
For j = 0 To Slice
TotalShade += SouthShadeArray(j)
Next j
If TotalShade > 0 Then
'Calculate instantaneous energy flow through shaded window'
QShaded = UFen * Area * (DryBulbTemp(hour) - Tin) + SHGC * TotalShade *
Transmissivity * ((Insolation(hour) * Cos(AngleOfIncidence)) + DiffuseRad(hour))
+ SHGC * (Area - TotalShade) * Transmissivity * ((Insolation(hour) *
Cos(AngleOfIncidence)) + DiffuseRad(hour))
Else
QShaded = QUnshaded
End If
'Add instantaneous energy flow to the shaded annual array'
SouthQShadedArray(hour) = QShaded
End Sub
Public Sub WestScanline(ByVal WinWidth As Integer, ByVal WinHeight As Integer,
ByVal UFen As Double, ByVal SHGC As Double, ByVal TreeHeight As
Integer, ByVal BranchHeight As Integer, ByVal TreeCanopyDiam As
Integer, ByVal SummerTrans As Double, ByVal WinterTrans As Double,
ByVal Foliation As Integer, ByVal Defoliation As Integer, ByVal hour As
Integer, ByVal AngleOfIncidence As Double)
Dim Tin As Integer = 68
Dim i As Integer
Dim j As Integer
Dim Area As Double 'Area of window'
Dim TreeRadius As Integer
Dim Slice As Integer = 19
Dim SliceHeight As Double
Dim TotalShade As Double
207
Dim TransDiff As Double
TreeRadius = TreeCanopyDiam / 2
'Calculate total area of window'
Area = WinWidth * WinHeight
Dim QUnshaded As Double 'Instantaneous Energy Flow of unshaded window'
Dim QShaded As Double 'Instantaneous Energy Flow of shaded window'
Dim ShadeStart As Double 'Start coordinate of shade on window'
Dim ShadeEnd As Double 'End coordinate of shade on window'
TransDiff = (WinterTrans - SummerTrans) / 30
If hour < Foliation - 360 Then
Transmissivity = WinterTrans
ElseIf hour >= Foliation - 360 AndAlso hour <= Foliation + 360 Then
If hour >= Foliation - 360 AndAlso hour < Foliation - 336 Then
Transmissivity = WinterTrans - (TransDiff * 1)
ElseIf hour >= Foliation - 336 AndAlso hour < Foliation - 312 Then
Transmissivity = WinterTrans - (TransDiff * 2)
ElseIf hour >= Foliation - 312 AndAlso hour < Foliation - 288 Then
Transmissivity = WinterTrans - (TransDiff * 3)
ElseIf hour >= Foliation - 288 AndAlso hour < Foliation - 264 Then
Transmissivity = WinterTrans - (TransDiff * 4)
ElseIf hour >= Foliation - 264 AndAlso hour < Foliation - 240 Then
Transmissivity = WinterTrans - (TransDiff * 5)
ElseIf hour >= Foliation - 240 AndAlso hour < Foliation - 216 Then
Transmissivity = WinterTrans - (TransDiff * 6)
ElseIf hour >= Foliation - 216 AndAlso hour < Foliation - 192 Then
Transmissivity = WinterTrans - (TransDiff * 7)
ElseIf hour >= Foliation - 192 AndAlso hour < Foliation - 168 Then
Transmissivity = WinterTrans - (TransDiff * 8)
ElseIf hour >= Foliation - 168 AndAlso hour < Foliation - 144 Then
Transmissivity = WinterTrans - (TransDiff * 9)
ElseIf hour >= Foliation - 144 AndAlso hour < Foliation - 120 Then
Transmissivity = WinterTrans - (TransDiff * 10)
ElseIf hour >= Foliation - 120 AndAlso hour < Foliation - 96 Then
Transmissivity = WinterTrans - (TransDiff * 11)
ElseIf hour >= Foliation - 96 AndAlso hour < Foliation - 72 Then
Transmissivity = WinterTrans - (TransDiff * 12)
ElseIf hour >= Foliation - 72 AndAlso hour < Foliation - 48 Then
Transmissivity = WinterTrans - (TransDiff * 13)
ElseIf hour >= Foliation - 48 AndAlso hour < Foliation - 24 Then
208
Transmissivity = WinterTrans - (TransDiff * 14)
ElseIf hour >= Foliation - 24 AndAlso hour < Foliation Then
Transmissivity = WinterTrans - (TransDiff * 15)
ElseIf hour >= Foliation AndAlso hour < Foliation + 24 Then
Transmissivity = WinterTrans - (TransDiff * 16)
ElseIf hour >= Foliation + 24 AndAlso hour < Foliation + 48 Then
Transmissivity = WinterTrans - (TransDiff * 17)
ElseIf hour >= Foliation + 48 AndAlso hour < Foliation + 72 Then
Transmissivity = WinterTrans - (TransDiff * 18)
ElseIf hour >= Foliation + 72 AndAlso hour < Foliation + 96 Then
Transmissivity = WinterTrans - (TransDiff * 19)
ElseIf hour >= Foliation + 96 AndAlso hour < Foliation + 120 Then
Transmissivity = WinterTrans - (TransDiff * 20)
ElseIf hour >= Foliation + 120 AndAlso hour < Foliation + 144 Then
Transmissivity = WinterTrans - (TransDiff * 21)
ElseIf hour >= Foliation + 144 AndAlso hour < Foliation + 168 Then
Transmissivity = WinterTrans - (TransDiff * 22)
ElseIf hour >= Foliation + 160 AndAlso hour < Foliation + 192 Then
Transmissivity = WinterTrans - (TransDiff * 23)
ElseIf hour >= Foliation + 192 AndAlso hour < Foliation + 216 Then
Transmissivity = WinterTrans - (TransDiff * 24)
ElseIf hour >= Foliation + 216 AndAlso hour < Foliation + 240 Then
Transmissivity = WinterTrans - (TransDiff * 25)
ElseIf hour >= Foliation + 240 AndAlso hour < Foliation + 264 Then
Transmissivity = WinterTrans - (TransDiff * 26)
ElseIf hour >= Foliation + 264 AndAlso hour < Foliation + 288 Then
Transmissivity = WinterTrans - (TransDiff * 27)
ElseIf hour >= Foliation + 288 AndAlso hour < Foliation + 312 Then
Transmissivity = WinterTrans - (TransDiff * 28)
ElseIf hour >= Foliation + 312 AndAlso hour < Foliation + 336 Then
Transmissivity = WinterTrans - (TransDiff * 29)
ElseIf hour >= Foliation + 336 AndAlso hour <= Foliation + 360 Then
Transmissivity = WinterTrans - (TransDiff * 30)
End If
ElseIf hour > Foliation + 360 AndAlso hour < Defoliation - 360 Then
Transmissivity = SummerTrans
ElseIf hour >= Defoliation - 360 AndAlso hour <= Defoliation + 360 Then
If hour >= Defoliation - 360 AndAlso hour < Defoliation - 336 Then
Transmissivity = WinterTrans - (TransDiff * 30)
ElseIf hour >= Defoliation - 336 AndAlso hour < Defoliation - 312 Then
Transmissivity = WinterTrans - (TransDiff * 29)
ElseIf hour >= Defoliation - 312 AndAlso hour < Defoliation - 288 Then
Transmissivity = WinterTrans - (TransDiff * 28)
ElseIf hour >= Defoliation - 288 AndAlso hour < Defoliation - 264 Then
209
Transmissivity = WinterTrans - (TransDiff * 27)
ElseIf hour >= Defoliation - 264 AndAlso hour < Defoliation - 240 Then
Transmissivity = WinterTrans - (TransDiff * 26)
ElseIf hour >= Defoliation - 240 AndAlso hour < Defoliation - 216 Then
Transmissivity = WinterTrans - (TransDiff * 25)
ElseIf hour >= Defoliation - 216 AndAlso hour < Defoliation - 192 Then
Transmissivity = WinterTrans - (TransDiff * 24)
ElseIf hour >= Defoliation - 192 AndAlso hour < Defoliation - 168 Then
Transmissivity = WinterTrans - (TransDiff * 23)
ElseIf hour >= Defoliation - 168 AndAlso hour < Defoliation - 144 Then
Transmissivity = WinterTrans - (TransDiff * 22)
ElseIf hour >= Defoliation - 144 AndAlso hour < Defoliation - 120 Then
Transmissivity = WinterTrans - (TransDiff * 21)
ElseIf hour >= Defoliation - 120 AndAlso hour < Defoliation - 96 Then
Transmissivity = WinterTrans - (TransDiff * 20)
ElseIf hour >= Defoliation - 96 AndAlso hour < Defoliation - 72 Then
Transmissivity = WinterTrans - (TransDiff * 19)
ElseIf hour >= Defoliation - 72 AndAlso hour < Defoliation - 48 Then
Transmissivity = WinterTrans - (TransDiff * 18)
ElseIf hour >= Defoliation - 48 AndAlso hour < Defoliation - 24 Then
Transmissivity = WinterTrans - (TransDiff * 17)
ElseIf hour >= Defoliation - 24 AndAlso hour < Defoliation Then
Transmissivity = WinterTrans - (TransDiff * 16)
ElseIf hour >= Defoliation AndAlso hour < Defoliation + 24 Then
Transmissivity = WinterTrans - (TransDiff * 15)
ElseIf hour >= Defoliation + 24 AndAlso hour < Defoliation + 48 Then
Transmissivity = WinterTrans - (TransDiff * 14)
ElseIf hour >= Defoliation + 48 AndAlso hour < Defoliation + 72 Then
Transmissivity = WinterTrans - (TransDiff * 13)
ElseIf hour >= Defoliation + 72 AndAlso hour < Defoliation + 96 Then
Transmissivity = WinterTrans - (TransDiff * 12)
ElseIf hour >= Defoliation + 96 AndAlso hour < Defoliation + 120 Then
Transmissivity = WinterTrans - (TransDiff * 11)
ElseIf hour >= Defoliation + 120 AndAlso hour < Defoliation + 144 Then
Transmissivity = WinterTrans - (TransDiff * 10)
ElseIf hour >= Defoliation + 144 AndAlso hour < Defoliation + 168 Then
Transmissivity = WinterTrans - (TransDiff * 9)
ElseIf hour >= Defoliation + 160 AndAlso hour < Defoliation + 192 Then
Transmissivity = WinterTrans - (TransDiff * 8)
ElseIf hour >= Defoliation + 192 AndAlso hour < Defoliation + 216 Then
Transmissivity = WinterTrans - (TransDiff * 7)
ElseIf hour >= Defoliation + 216 AndAlso hour < Defoliation + 240 Then
Transmissivity = WinterTrans - (TransDiff * 6)
ElseIf hour >= Defoliation + 240 AndAlso hour < Defoliation + 264 Then
Transmissivity = WinterTrans - (TransDiff * 5)
ElseIf hour >= Defoliation + 264 AndAlso hour < Defoliation + 288 Then
210
Transmissivity = WinterTrans - (TransDiff * 4)
ElseIf hour >= Defoliation + 288 AndAlso hour < Defoliation + 312 Then
Transmissivity = WinterTrans - (TransDiff * 3)
ElseIf hour >= Defoliation + 312 AndAlso hour < Defoliation + 336 Then
Transmissivity = WinterTrans - (TransDiff * 2)
ElseIf hour >= Defoliation + 336 AndAlso hour < Defoliation + 360 Then
Transmissivity = WinterTrans - (TransDiff * 1)
End If
ElseIf hour > Defoliation + 360 Then
Transmissivity = WinterTrans
End If
'Calculate instantaneous energy flow through unshaded window'
QUnshaded = UFen * Area * (DryBulbTemp(hour) - Tin) _
+ SHGC * Area * (Insolation(hour) * Cos(AngleOfIncidence)) _
+ SHGC * Area * DiffuseRad(hour)
'Add instantaneous energy flow to the unshaded annual array'
WestQUnshadedArray(hour) = QUnshaded
'Find shaded area of window from tree shadow'
If WestTreeArrayPrimePrime(0, 1) < WestWinArrayPrimePrime(0, 1) Then
For i = 2 To 21
If WestTreeArrayPrime(i, 2) > WestWinArrayPrime(1, 2) Then Exit For
'Check to see if z-coordinate of shadow is within window area'
If WestTreeArrayPrime(i, 2) >= WestWinArrayPrime(0, 2) Then
'Check to see if shadow starts before scanline starting edge of window'
'If shadow starts before starting edge, assign scanline slice shadow start as
window edge'
If WestTreeArrayPrime(i, 0) <= WestWinArrayPrime(0, 0) Then
ShadeStart = WestWinArrayPrime(0, 0)
'Determine end location of shade segment'
If WestTreeArrayPrime(40 - i, 0) < WestWinArrayPrime(3, 0) Then
ShadeEnd = WestTreeArrayPrime(40 - i, 0)
ElseIf WestTreeArrayPrime(40 - i, 0) >= WestWinArrayPrime(3, 0) Then
ShadeEnd = WestWinArrayPrime(3, 0)
End If
ElseIf WestTreeArrayPrime(i, 0) >= WestWinArrayPrime(3, 0) Then
211
'Scan across window slice to see if/where the shadow starts on this slice'
ShadeStart = WestTreeArrayPrime(i, 0)
'Determine end location of shade segement'
If WestTreeArrayPrime(40 - i, 0) <= WestWinArrayPrime(3, 0) Then
ShadeEnd = WestTreeArrayPrime(40 - i, 0)
ElseIf WestTreeArrayPrime(40 - i, 0) > WestWinArrayPrime(3, 0) Then
ShadeEnd = WestWinArrayPrime(3, 0)
End If
End If
End If
If WestTreeArrayPrime(i + 1, 2) < WestWinArrayPrime(1, 2) Then
SliceHeight = WestTreeArrayPrime(i + 1, 2) - WestTreeArrayPrime(i, 2)
Else
SliceHeight = WestWinArrayPrime(1, 2) - WestTreeArrayPrime(i, 2)
End If
WestShadeArray(i - 2) = Abs((ShadeEnd - ShadeStart)) * SliceHeight
Next i
Else
For i = 2 To 21
If SouthTreeArrayPrime(i, 2) > WestWinArrayPrime(1, 2) Then Exit For
'Check to see if z-coordinate of shadow is within window area'
If SouthTreeArrayPrime(i, 2) >= WestWinArrayPrime(0, 2) Then
'Check to see if shadow starts before scanline starting edge of window'
'If shadow starts before starting edge, assign scanline slice shadow start as
window edge'
If SouthTreeArrayPrime(i, 0) <= WestWinArrayPrime(0, 0) Then
ShadeStart = WestWinArrayPrime(0, 0)
'Determine end location of shade segment'
If SouthTreeArrayPrime(40 - i, 0) < WestWinArrayPrime(3, 0) Then
ShadeEnd = SouthTreeArrayPrime(40 - i, 0)
ElseIf SouthTreeArrayPrime(40 - i, 0) >= WestWinArrayPrime(3, 0) Then
ShadeEnd = WestWinArrayPrime(3, 0)
End If
212
ElseIf SouthTreeArrayPrime(i, 0) >= WestWinArrayPrime(3, 0) Then
'Scan across window slice to see if/where the shadow starts on this slice'
ShadeStart = SouthTreeArrayPrime(i, 0)
'Determine end location of shade segement'
If SouthTreeArrayPrime(40 - i, 0) <= WestWinArrayPrime(3, 0) Then
ShadeEnd = SouthTreeArrayPrime(40 - i, 0)
ElseIf SouthTreeArrayPrime(40 - i, 0) > WestWinArrayPrime(3, 0) Then
ShadeEnd = WestWinArrayPrime(3, 0)
End If
End If
End If
If SouthTreeArrayPrime(i + 1, 2) < WestWinArrayPrime(1, 2) Then
SliceHeight = SouthTreeArrayPrime(i + 1, 2) - SouthTreeArrayPrime(i, 2)
Else
SliceHeight = WestWinArrayPrime(1, 2) - SouthTreeArrayPrime(i, 2)
End If
WestShadeArray(i - 2) = Abs((ShadeEnd - ShadeStart)) * SliceHeight
Next i
End If
'Calculate total shaded area of window from tree polygon'
For j = 0 To Slice
TotalShade += WestShadeArray(j)
Next j
If TotalShade > 0 Then
'Calculate instantaneous energy flow through shaded window'
QShaded = UFen * Area * (DryBulbTemp(hour) - Tin) + SHGC * TotalShade *
Transmissivity * ((Insolation(hour) * Cos(AngleOfIncidence)) + DiffuseRad(hour))
+ SHGC * (Area - TotalShade) * Transmissivity * ((Insolation(hour) *
Cos(AngleOfIncidence)) + DiffuseRad(hour))
Else
QShaded = QUnshaded
End If
'Add instantaneous energy flow to the shaded annual array'
WestQShadedArray(hour) = QShaded
End Sub
End Module
213
FORM 1 – WELCOME SCREEN
Imports System.Math
Public Class Form1
Private Sub TxtBxElecRate_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxElecRate.TextChanged
'Assign electricity rate based on user input'
ElectricityRate = Val(TxtBxElecRate.Text)
End Sub
Private Sub TxtBxElectRate_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxElecRate.Validated
Me.ErrorProvider1.SetError(TxtBxElecRate, "")
End Sub
Private Sub TxtBxElecRate_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxElecRate.Validating
Try
If Me.TxtBxElecRate.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxElecRate, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxElecRate.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxElecRate, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Los_AngelesBindingNavigatorSaveItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Me.Validate()
214
Me.Los_AngelesBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.TMYDataSet1)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'This line of code loads data into the 'TMYDataSet1.Los_Angeles' table’
Me.Los_AngelesTableAdapter.Fill(Me.TMYDataSet1.Los_Angeles)
End Sub
Private Sub AssignCityData()
City = TMYDataSet1.Los_Angeles
'Fill City Data Table and Array Lists for selected city'
Dim Insolation_O As Object 'Direct Normal Radiation'
Dim DryBulbTemp_O As Object
Dim DiffuseRad_O As Object
Dim i As Integer
For i = 0 To 8759
Insolation_O = City.Rows(i).Item(0)
DiffuseRad_O = City.Rows(i).Item(1)
DryBulbTemp_O = City.Rows(i).Item(2)
Insolation.Add(Insolation_O)
DiffuseRad.Add(DiffuseRad_O)
DryBulbTemp.Add(DryBulbTemp_O)
Next i
End Sub
Private Sub SolarAngles()
Dim EqOfTime(8759) As Double 'Equation of Time array'
Dim Declination(8759) As Double 'Declination array'
215
Dim Julian(8759) As Double 'Julian Day (day of year) array'
Dim LSM As Double = 120 'Local Standard Meridian Pacific Standard Time'
Dim HourAngle(8759) As Double 'Hour Angle array'
Dim Beta(8759) As Double 'Altitude Angle array'
Dim Phi(8759) As Double 'Azimuth Angle array'
Dim Altitude_O As Object
Dim Azimuth_O As Object
Dim i As Double
Dim j As Integer
Dim k As Double
'Define Equation of Time for each month'
For i = 0 To 743
EqOfTime(i) = -11.2 'January'
Next
For i = 744 To 1415
EqOfTime(i) = -13.9 'February'
Next
For i = 1416 To 2159
EqOfTime(i) = -7.5 'March'
Next
For i = 2160 To 2979
EqOfTime(i) = 1.1 'April'
Next
For i = 2980 To 3623
EqOfTime(i) = 3.3 'May'
Next
For i = 3624 To 4343
EqOfTime(i) = -1.4 'June'
Next
For i = 4344 To 5087
EqOfTime(i) = -6.2 'July'
Next
For i = 5088 To 5833
EqOfTime(i) = -2.4 'August'
Next
For i = 5834 To 6553
216
EqOfTime(i) = 7.5 'September'
Next
For i = 6554 To 7295
EqOfTime(i) = 15.4 'October'
Next
For i = 7296 To 8015
EqOfTime(i) = 13.8 'November'
Next
For i = 8016 To 8759
EqOfTime(i) = 1.6 'December'
Next
'Determine angles for each hour of the year'
For j = 0 To 8759
Julian(j) = Int(j / 24) + 1
Declination(j) = 23.45 * Sin(((360 * (284 + Julian(j))) / 365) * PI / 180)
AST(j) = (j - 24 * (Julian(j) - 1)) + EqOfTime(j) / 60 + (LSM - Longitude) / 15
HourAngle(j) = 15 * Abs(AST(j) - 12)
Beta(j) = Asin(Cos(Latitude * PI / 180) * Cos(Declination(j) * PI / 180) *
Cos(HourAngle(j) * PI / 180) + Sin(Latitude * PI / 180) * Sin(Declination(j) * PI /
180))
Phi(j) = Acos((Sin(Beta(j)) * Sin(Latitude * PI / 180) - Sin(Declination(j) * PI / 180))
/ (Cos(Beta(j)) * Cos(Latitude * PI / 180)))
Next j
For k = 0 To 8759
Altitude_O = Beta(k)
Azimuth_O = Phi(k)
Altitude.Add(Altitude_O)
Azimuth.Add(Azimuth_O)
Next k
217
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
AssignCityData()
SolarAngles()
Form2.Show()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
Form1HelpString = "Welcome to the Arbor Software. This screen welcomes you
to the program and tells you what you can expect as you
progress through the series of design screens. Please provide
your utility rate. This can be found on your monthly
electricity bill. It will be used in calculating the energy
savings you can expect from planting a tree in your yard."
Form1Help.Show()
Form1Help.TextBox1.Text = Form1HelpString
End Sub
End Class
218
FORM 2 – BUILDING INFORMATION SCREEN
Imports System.Math
Public Class Form2
Private Sub TxtBxNSWall_TextChanged (ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxNSWall.TextChanged
'Set North/South Wall variable from user input'
NSWall = Val(TxtBxNSWall.Text)
End Sub
Private Sub TxtBxEWWall_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxEWWall.TextChanged
'Set East/West Wall variable from user input'
EWWall = Val(TxtBxEWWall.Text)
End Sub
Private Sub TxtBxFlrHt_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxFlrHt.TextChanged
'Set Floor Height variable from user input'
FlrHt = Val(TxtBxFlrHt.Text)
End Sub
Private Sub TxtBxNSWall_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxNSWall.Validated
Me.ErrorProvider1.SetError(TxtBxNSWall, "")
End Sub
Private Sub TxtNSWall_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxNSWall.Validating
Try
219
If Me.TxtBxNSWall.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxNSWall, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxNSWall.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxNSWall, "Please Enter a Numeric Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxEWWall_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxEWWall.Validated
Me.ErrorProvider1.SetError(TxtBxEWWall, "")
End Sub
Private Sub TxtBxEWWall_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxEWWall.Validating
Try
If Me.TxtBxEWWall.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxEWWall, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxEWWall.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxEWWall, "Please Enter a Numeric Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxFlrHt_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxFlrHt.Validated
Me.ErrorProvider1.SetError(TxtBxFlrHt, "")
220
End Sub
Private Sub TxtBxFlrHt_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxFlrHt.Validating
Try
If Me.TxtBxFlrHt.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxFlrHt, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxFlrHt.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxFlrHt, "Please Enter a Numeric Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Form3.Show()
Me.Hide()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Form1.Show()
Me.Hide()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Form2HelpString = "This screen requires you to input information regarding the
dimensions of your house as well as your yard. The program
assumes your house is a rectangle, with North and South walls
221
having the same dimension and East and West walls having the
same dimension. These dimensions are used by the program to
correctly place windows on your walls. If your house has slightly
different wall dimensions, please provide an average length. The
program also assumes that your house is oriented directly South.
Please approximate the directions of your walls. The Floor
Height is the height of one of your floors; it is typically around 9
feet. The yard dimensions are also required by the program for
error checking. These are simply the distance between the very
edge of your yard, to the corresponding wall face."
Form2Help.Show()
Form2Help.TextBox1.Text = Form2HelpString
End Sub
End Class
222
FORM 3 – EAST WALL FENESTRATION SCREEN
Imports System.Math
Public Class Form3
Private Sub TxtBxSthDist_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxSthDist.TextChanged
ESouthDist = Val(TxtBxSthDist.Text)
End Sub
Private Sub TxtBxGrndDist_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxGrndDist.TextChanged
EGroundDist = Val(TxtBxGrndDist.Text)
End Sub
Private Sub TxtBxWinWidth_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxWinWidth.TextChanged
EWinWidth = Val(TxtBxWinWidth.Text)
End Sub
Private Sub TxtBxWinHeight_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxWinHeight.TextChanged
EWinHeight = Val(TxtBxWinHeight.Text)
End Sub
Private Sub TxtBxSthDist_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxSthDist.Validated
Me.ErrorProvider1.SetError(TxtBxSthDist, "")
End Sub
223
Private Sub TxtBxSthDist_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxSthDist.Validating
Try
If Me.TxtBxSthDist.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxSthDist, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxSthDist.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxSthDist, "Please Enter a Numeric Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxGrndDist_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxGrndDist.Validated
Me.ErrorProvider1.SetError(TxtBxGrndDist, "")
End Sub
Private Sub TxtBxGrndDist_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxGrndDist.Validating
Try
If Me.TxtBxGrndDist.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxGrndDist, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxGrndDist.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxGrndDist, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
224
Private Sub TxtBxWinWidth_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxWinWidth.Validated
Me.ErrorProvider1.SetError(TxtBxWinWidth, "")
End Sub
Private Sub TxtBxWinWidth_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxWinWidth.Validating
Try
If Me.TxtBxWinWidth.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxWinWidth, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxWinWidth.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxWinWidth, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxWinHeight_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxWinHeight.Validated
Me.ErrorProvider1.SetError(TxtBxWinHeight, "")
End Sub
Private Sub TxtBxWinHeight_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxWinHeight.Validating
Try
If Me.TxtBxWinHeight.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxWinHeight, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxWinHeight.Text) Then
225
Me.ErrorProvider1.SetError(Me.TxtBxWinHeight, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub AssignEastWinCoordinates()
'Assign values to East Window Point 1'
EastWinArray(0, 0) = (NSWall / 2)
EastWinArray(0, 1) = -(EWWall / 2) + ESouthDist
EastWinArray(0, 2) = EGroundDist
'Assign values to East Window Point 2'
EastWinArray(1, 0) = (NSWall / 2)
EastWinArray(1, 1) = -(EWWall / 2) + ESouthDist
EastWinArray(1, 2) = EGroundDist + EWinHeight
'Assign values to East Window Point 3'
EastWinArray(2, 0) = (NSWall / 2)
EastWinArray(2, 1) = -(EWWall / 2) + ESouthDist + EWinWidth
EastWinArray(2, 2) = EGroundDist + EWinHeight
'Assign values to East Window Point 4'
EastWinArray(3, 0) = (NSWall / 2)
EastWinArray(3, 1) = -(EWWall / 2) + ESouthDist + EWinWidth
EastWinArray(3, 2) = EGroundDist
End Sub
Private Sub SetEFenestration()
'Set Fenestration U-Value and SHGC'
If LstBxFrame.SelectedIndex = 0 Then
If LstBxGlaze.SelectedIndex = 0 Then
EUFen = 0.89
ESHGC = 0.64
ElseIf LstBxGlaze.SelectedIndex = 1 Then
EUFen = 0.51
226
ESHGC = 0.52
ElseIf LstBxGlaze.SelectedIndex = 2 Then
EUFen = 0.4
ESHGC = 0.42
ElseIf LstBxGlaze.SelectedIndex = 3 Then
EUFen = 0.39
ESHGC = 0.28
ElseIf LstBxGlaze.SelectedIndex = 4 Then
EUFen = 0.36
ESHGC = 0.28
ElseIf LstBxGlaze.SelectedIndex = 5 Then
EUFen = 0.51
ESHGC = 0.38
ElseIf LstBxGlaze.SelectedIndex = 6 Then
EUFen = 0.4
ESHGC = 0.3
ElseIf LstBxGlaze.SelectedIndex = 7 Then
EUFen = 0.39
ESHGC = 0.21
ElseIf LstBxGlaze.SelectedIndex = 8 Then
EUFen = 0.51
ESHGC = 0.13
ElseIf LstBxGlaze.SelectedIndex = 9 Then
EUFen = 0.39
ESHGC = 0.46
End If
ElseIf LstBxFrame.SelectedIndex = 1 Then
If LstBxGlaze.SelectedIndex = 0 Then
EUFen = 1.27
ESHGC = 0.75
ElseIf LstBxGlaze.SelectedIndex = 1 Then
EUFen = 0.81
ESHGC = 0.61
ElseIf LstBxGlaze.SelectedIndex = 2 Then
EUFen = 0.69
ESHGC = 0.5
ElseIf LstBxGlaze.SelectedIndex = 3 Then
EUFen = 0.67
ESHGC = 0.34
ElseIf LstBxGlaze.SelectedIndex = 4 Then
EUFen = 0.63
ESHGC = 0.34
ElseIf LstBxGlaze.SelectedIndex = 5 Then
EUFen = 0.81
ESHGC = 0.45
227
ElseIf LstBxGlaze.SelectedIndex = 6 Then
EUFen = 0.69
ESHGC = 0.39
ElseIf LstBxGlaze.SelectedIndex = 7 Then
EUFen = 0.67
ESHGC = 0.25
ElseIf LstBxGlaze.SelectedIndex = 8 Then
EUFen = 0.81
ESHGC = 0.16
ElseIf LstBxGlaze.SelectedIndex = 9 Then
EUFen = 0.67
ESHGC = 0.54
End If
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
AssignEastWinCoordinates()
SetEFenestration()
Form4.Show()
Me.Hide()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Form2.Show()
Me.Hide()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Form3HelpString = "This screen prompts you to input information regarding
fenestration (or windows) on your East-facing wall. Please
provide all dimensions in feet. The distance from the South wall
is the distance, in feet, from the edge of the East wall that
228
intersects the South wall to the closest edge of your window.
This dimension is used in placing your window. The distance
from the ground is the distance from the intersection of your wall
and the ground to the bottom, or sill, of your window. You are
also required to input information on the window consruction.
You can select either a wood/vinyl or aluminum frame, and pair
it with a range of glazing types. If you are unsure of your glass
type, you can probably guess based on the age of your windows.
Older windows are usually single glazing, newer windows are
double glazed and often have a gas filling. Many windows
manufactured today also have coatings on the glass. If you are
unsure, select clear double pane."
Form3Help.Show()
Form3Help.TextBox1.Text = Form3HelpString
End Sub
End Class
229
FORM 4 – SOUTH WALL FENESTRATION SCREEN
Imports System.Math
Public Class Form4
Private Sub TxtBxWstDist_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxWstDist.TextChanged
SWestDist = Val(TxtBxWstDist.Text)
End Sub
Private Sub TxtBxGrndDistS_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxGrndDistS.TextChanged
SGroundDist = Val(TxtBxGrndDistS.Text)
End Sub
Private Sub TxtBxEWinWidth_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles TxtBxWinWidth.TextChanged
SWinWidth = Val(TxtBxWinWidth.Text)
End Sub
Private Sub TxtBxEWinHeight_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles TxtBxWinHeight.TextChanged
SWinHeight = Val(TxtBxWinHeight.Text)
End Sub
Private Sub TxtBxWstDist_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxWstDist.Validated
Me.ErrorProvider1.SetError(TxtBxWstDist, "")
End Sub
230
Private Sub TxtBxWstDist_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxWstDist.Validating
Try
If Me.TxtBxWstDist.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxWstDist, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxWstDist.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxWstDist, "Please Enter a Numeric Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxGrndDistS_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxGrndDistS.Validated
Me.ErrorProvider1.SetError(TxtBxGrndDistS, "")
End Sub
Private Sub TxtBxGrndDistS_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxGrndDistS.Validating
Try
If Me.TxtBxGrndDistS.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxGrndDistS, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxGrndDistS.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxGrndDistS, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
231
End Sub
Private Sub TxtBxWinWidth_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxWinWidth.Validated
Me.ErrorProvider1.SetError(TxtBxWinWidth, "")
End Sub
Private Sub TxtBxWinWidth_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxWinWidth.Validating
Try
If Me.TxtBxWinWidth.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxWinWidth, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxWinWidth.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxWinWidth, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxWinHeight_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxWinHeight.Validated
Me.ErrorProvider1.SetError(TxtBxWinHeight, "")
End Sub
Private Sub TxtBxWinHeight_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxWinHeight.Validating
Try
If Me.TxtBxWinHeight.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxWinHeight, "Please Enter a value")
Throw New Exception("Please enter a value")
232
ElseIf Not IsNumeric(TxtBxWinHeight.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxWinHeight, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub AssignSouthWinCoordinates()
'Assign values to South Window Point 1'
SouthWinArray(0, 0) = -(NSWall / 2) + SWestDist
SouthWinArray(0, 1) = -(EWWall / 2)
SouthWinArray(0, 2) = SGroundDist
'Assign values to South Window Point 2'
SouthWinArray(1, 0) = -(NSWall / 2) + SWestDist
SouthWinArray(1, 1) = -(EWWall / 2)
SouthWinArray(1, 2) = SGroundDist + SWinHeight
'Assign values to South Window Point 3'
SouthWinArray(2, 0) = -(NSWall / 2) + SWestDist + SWinWidth
SouthWinArray(2, 1) = -(EWWall / 2)
SouthWinArray(2, 2) = SGroundDist + SWinHeight
'Assign values to South Window Point 4'
SouthWinArray(3, 0) = -(NSWall / 2) + SWestDist + SWinWidth
SouthWinArray(3, 1) = -(EWWall / 2)
SouthWinArray(3, 2) = SGroundDist
End Sub
Private Sub SetSFenestration()
'Set Fenestration U-Value and SHGC'
If LstBxFrame.SelectedIndex = 0 Then
If LstBxGlaze.SelectedIndex = 0 Then
SUFen = 0.89
SSHGC = 0.64
ElseIf LstBxGlaze.SelectedIndex = 1 Then
233
SUFen = 0.51
SSHGC = 0.52
ElseIf LstBxGlaze.SelectedIndex = 2 Then
SUFen = 0.4
SSHGC = 0.42
ElseIf LstBxGlaze.SelectedIndex = 3 Then
SUFen = 0.39
SSHGC = 0.28
ElseIf LstBxGlaze.SelectedIndex = 4 Then
SUFen = 0.36
SSHGC = 0.28
ElseIf LstBxGlaze.SelectedIndex = 5 Then
SUFen = 0.51
SSHGC = 0.38
ElseIf LstBxGlaze.SelectedIndex = 6 Then
SUFen = 0.4
SSHGC = 0.3
ElseIf LstBxGlaze.SelectedIndex = 7 Then
SUFen = 0.39
SSHGC = 0.21
ElseIf LstBxGlaze.SelectedIndex = 8 Then
SUFen = 0.51
SSHGC = 0.13
ElseIf LstBxGlaze.SelectedIndex = 9 Then
SUFen = 0.39
SSHGC = 0.46
End If
ElseIf LstBxFrame.SelectedIndex = 1 Then
If LstBxGlaze.SelectedIndex = 0 Then
SUFen = 1.27
SSHGC = 0.75
ElseIf LstBxGlaze.SelectedIndex = 1 Then
SUFen = 0.81
SSHGC = 0.61
ElseIf LstBxGlaze.SelectedIndex = 2 Then
SUFen = 0.69
SSHGC = 0.5
ElseIf LstBxGlaze.SelectedIndex = 3 Then
SUFen = 0.67
SSHGC = 0.34
ElseIf LstBxGlaze.SelectedIndex = 4 Then
SUFen = 0.63
SSHGC = 0.34
ElseIf LstBxGlaze.SelectedIndex = 5 Then
SUFen = 0.81
234
SSHGC = 0.45
ElseIf LstBxGlaze.SelectedIndex = 6 Then
SUFen = 0.69
SSHGC = 0.39
ElseIf LstBxGlaze.SelectedIndex = 7 Then
SUFen = 0.67
SSHGC = 0.25
ElseIf LstBxGlaze.SelectedIndex = 8 Then
SUFen = 0.81
SSHGC = 0.16
ElseIf LstBxGlaze.SelectedIndex = 9 Then
SUFen = 0.67
SSHGC = 0.54
End If
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
AssignSouthWinCoordinates()
SetSFenestration()
Form5.Show()
Me.Hide()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Form3.Show()
Me.Hide()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Form4HelpString = "This screen prompts you to input information regarding
fenestration (or windows) on your South-facing wall. Please
provide all dimensions in feet. The distance from the West wall
235
is the distance, in feet, from the edge of the South wall that
intersects the West wall to the closest edge of your window.
This dimension is used in placing your window. The distance
from the ground is the distance from the intersection of your
wall and the ground to the bottom, or sill, of your window. You
are also required to input information on the window
consruction. You can select either a wood/vinyl or aluminum
frame, and pair it with a range of glazing types. If you are
unsure of your glass type, you can probably guess based on the
age of your windows. Older windows are usually single
glazing, newer windows are double glazed and often have a gas
filling. Many windows manufactured today also have coatings
on the glass. If you are unsure, select clear double pane."
Form4Help.Show()
Form4Help.TextBox1.Text = Form4HelpString
End Sub
End Class
236
FORM 5 – WEST WALL FENESTRATION SCREEN
Imports System.Math
Public Class Form5
Private Sub TxtBxNrthDist_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxNrthDist.TextChanged
WNorthDist = Val(TxtBxNrthDist.Text)
End Sub
Private Sub TxtBxGrndDistW_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles TxtBxGrndDistW.TextChanged
WGroundDist = Val(TxtBxGrndDistW.Text)
End Sub
Private Sub TxtBxWinWidth_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxWinWidth.TextChanged
WWinWidth = Val(TxtBxWinWidth.Text)
End Sub
Private Sub TxtBxWinHeight_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxWinHeight.TextChanged
WWinHeight = Val(TxtBxWinHeight.Text)
End Sub
Private Sub TxtBxNrthDist_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxNrthDist.Validated
Me.ErrorProvider1.SetError(TxtBxNrthDist, "")
End Sub
237
Private Sub TxtBxNrthDist_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxNrthDist.Validating
Try
If Me.TxtBxNrthDist.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxNrthDist, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxNrthDist.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxNrthDist, "Please Enter a Numeric Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxGrndDistW_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxGrndDistW.Validated
Me.ErrorProvider1.SetError(TxtBxGrndDistW, "")
End Sub
Private Sub TxtBxGrndDistW_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxGrndDistW.Validating
Try
If Me.TxtBxGrndDistW.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxGrndDistW, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxGrndDistW.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxGrndDistW, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
238
Private Sub TxtBxWinWidth_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxWinWidth.Validated
Me.ErrorProvider1.SetError(TxtBxWinWidth, "")
End Sub
Private Sub TxtBxWinWidth_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxWinWidth.Validating
Try
If Me.TxtBxWinWidth.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxWinWidth, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxWinWidth.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxWinWidth, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxWinHeight_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxWinHeight.Validated
Me.ErrorProvider1.SetError(TxtBxWinHeight, "")
End Sub
Private Sub TxtBxWinHeight_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxWinHeight.Validating
Try
If Me.TxtBxWinHeight.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxWinHeight, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxWinHeight.Text) Then
239
Me.ErrorProvider1.SetError(Me.TxtBxWinHeight, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub AssignWestWinCoordinates()
'Assign values to West Window Point 1'
WestWinArray(0, 0) = -(NSWall / 2)
WestWinArray(0, 1) = (EWWall / 2) - WNorthDist
WestWinArray(0, 2) = WGroundDist
'Assign values to West Window Point 2'
WestWinArray(1, 0) = -(NSWall / 2)
WestWinArray(1, 1) = (EWWall / 2) - WNorthDist
WestWinArray(1, 2) = WGroundDist + WWinHeight
'Assign values to West Window Point 3'
WestWinArray(2, 0) = -(NSWall / 2)
WestWinArray(2, 1) = (EWWall / 2) - WNorthDist - WWinWidth
WestWinArray(2, 2) = WGroundDist + WWinHeight
'ASsign values to West Window Point 4'
WestWinArray(3, 0) = -(NSWall / 2)
WestWinArray(3, 1) = (EWWall / 2) - WNorthDist - WWinWidth
WestWinArray(3, 2) = WGroundDist
End Sub
Private Sub SetWFenestration()
'Set Fenestration U-Value and SHGC'
If LstBxFrame.SelectedIndex = 0 Then
If LstBxGlaze.SelectedIndex = 0 Then
WUFen = 0.89
WSHGC = 0.64
ElseIf LstBxGlaze.SelectedIndex = 1 Then
WUFen = 0.51
240
WSHGC = 0.52
ElseIf LstBxGlaze.SelectedIndex = 2 Then
WUFen = 0.4
WSHGC = 0.42
ElseIf LstBxGlaze.SelectedIndex = 3 Then
WUFen = 0.39
WSHGC = 0.28
ElseIf LstBxGlaze.SelectedIndex = 4 Then
WUFen = 0.36
WSHGC = 0.28
ElseIf LstBxGlaze.SelectedIndex = 5 Then
WUFen = 0.51
WSHGC = 0.38
ElseIf LstBxGlaze.SelectedIndex = 6 Then
WUFen = 0.4
WSHGC = 0.3
ElseIf LstBxGlaze.SelectedIndex = 7 Then
WUFen = 0.39
WSHGC = 0.21
ElseIf LstBxGlaze.SelectedIndex = 8 Then
WUFen = 0.51
WSHGC = 0.13
ElseIf LstBxGlaze.SelectedIndex = 9 Then
WUFen = 0.39
WSHGC = 0.46
End If
ElseIf LstBxFrame.SelectedIndex = 1 Then
If LstBxGlaze.SelectedIndex = 0 Then
WUFen = 1.27
WSHGC = 0.75
ElseIf LstBxGlaze.SelectedIndex = 1 Then
WUFen = 0.81
WSHGC = 0.61
ElseIf LstBxGlaze.SelectedIndex = 2 Then
WUFen = 0.69
WSHGC = 0.5
ElseIf LstBxGlaze.SelectedIndex = 3 Then
WUFen = 0.67
WSHGC = 0.34
ElseIf LstBxGlaze.SelectedIndex = 4 Then
WUFen = 0.63
WSHGC = 0.34
ElseIf LstBxGlaze.SelectedIndex = 5 Then
WUFen = 0.81
WSHGC = 0.45
241
ElseIf LstBxGlaze.SelectedIndex = 6 Then
WUFen = 0.69
WSHGC = 0.39
ElseIf LstBxGlaze.SelectedIndex = 7 Then
WUFen = 0.67
WSHGC = 0.25
ElseIf LstBxGlaze.SelectedIndex = 8 Then
WUFen = 0.81
WSHGC = 0.16
ElseIf LstBxGlaze.SelectedIndex = 9 Then
WUFen = 0.67
WSHGC = 0.54
End If
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
AssignWestWinCoordinates()
SetWFenestration()
Form6.Show()
Me.Hide()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Form4.Show()
Me.Hide()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Form5HelpString = "This screen prompts you to input information regarding
fenestration (or windows) on your West-facing wall. Please
provide all dimensions in feet. The distance from the North wall is
the distance, in feet, from the edge of the West wall that intersects
242
the North wall to the closest edge of your window. This dimension
is used in placing your window. The distance from the ground is
the distance from the intersection of your wall and the ground to
the bottom, or sill, of your window. You are also required to input
information on the window consruction. You can select either a
wood/vinyl or aluminum frame, and pair it with a range of glazing
types. If you are unsure of your glass type, you can probably guess
based on the age of your windows. Older windows are usually
single glazing, newer windows are double glazed and often have a
gas filling. Many windows manufactured today also have coatings
on the glass. If you are unsure, select clear double pane."
Form5Help.Show()
Form5Help.TextBox1.Text = Form5HelpString
End Sub
End Class
243
FORM 6 – TREE SELECTION SCREEN
Imports System.Math
Public Class Form6
Private Sub Tall_DeciduousBindingNavigatorSaveItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.Tall_DeciduousBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.TreeDataDataSet)
End Sub
Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'TreeDataDataSet.Tall_Deciduous' table.’
Me.Tall_DeciduousTableAdapter.Fill(Me.TreeDataDataSet.Tall_Deciduous)
End Sub
Private Sub TreeSelection()
Dim i As Integer
TreeData = TreeDataDataSet.Tall_Deciduous
If RadBtnBigLeafMaple.Checked = True Then
i = 0
End If
If RadBtnBoxElder.Checked = True Then
i = 1
End If
If RadBtnSilkTree.Checked = True Then
i = 2
End If
If RadBtnModestoAsh.Checked = True Then
i = 3
244
End If
If RadBtnHoneyLocust.Checked = True Then
i = 4
End If
If RadBtnNorCalBW.Checked = True Then
i = 5
End If
If RadBtnChinesePist.Checked = True Then
i = 6
End If
If RadBtnFremontCotton.Checked = True Then
i = 7
End If
If RadBtnCalPear.Checked = True Then
i = 8
End If
If RadBtnChineseElm.Checked = True Then
i = 9
End If
TreeName = TreeData.Rows(i).Item(1)
TreeHeight = TreeData.Rows(i).Item(3)
TreeCanopyDiam = TreeData.Rows(i).Item(5)
SummerTrans = TreeData.Rows(i).Item(6)
WinterTrans = TreeData.Rows(i).Item(7)
Foliation = TreeData.Rows(i).Item(8)
Defoliation = TreeData.Rows(i).Item(9)
End Sub
Private Sub TreePicture()
TreeData = TreeDataDataSet.Tall_Deciduous
If RadBtnBigLeafMaple.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Acer
macrophyllum\Acer mac summer\acer_mac_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Acer
macrophyllum\Acer mac winter\acer_mac_winter.jpg")
245
TextBox1.Text = "The BigLeaf Maple has a fast growth rate, reaching 30-75 feet tall
with a 30-50 foot canopy diameter. Leaves are smooth light green,
with bright yellow flowers blooming in the spring. The bark is a
smooth gray-brown that becomes reddish brown. Small, sharp,
bristle like hairs on seed sheath covering may irriate skin. Limbs
can be weak and break easily. The longevity of this tree is
esimated at 50-80 years."
End If
If RadBtnBoxElder.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Acer
negundo\Acer neg summer\acer_neg_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Acer
negundo\Acer neg winter\acer_neg_winter.jpg")
TextBox1.Text = "The Box Elder has an initially fast growth rate that slows. At
maturity this tree will reach 20-50 feet tall, with a canopy
diameter equal in size to it's height. Leaves are a dull yellowish
green, and small, yellowish green flowers bloom in the spring.
The bark is a thin, pale grayish brown that becomes darker with
age. This tree can suffer from breakage since wood can be weak.
The longevity of this tree is esimated at 30-50 years."
End If
If RadBtnCalPear.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Pyrus
calleryana\Pyrus summer\pyrus_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Pyrus
calleryana\Pyrus winter\pyrus_winter.jpg")
TextBox1.Text = "The Bradford Pear has a fast growth rate, reaching 50 feet tall with
a 30 foot canopy diameter. Leaves are dark green, turning deep
scarlet-range or wide red in the fall. Clusters of heavily fragrant,
white, wide-petaled flowers emerge early in spring. The bark is
smooth, grayish brown becoming shallowly fissured with age. The
tree is often used as a shade tree and is most effective planted in
groves or in rows. The longevity of this tree is esimated at 70-80
years."
End If
If RadBtnChineseElm.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Ulmus
parvifolia\Ulmus summer\ulmus_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Ulmus
parvifolia\Ulmus winter\ulmus_winter.jpg")
TextBox1.Text = "The Chinese Elm has a very fast growth rate, reaching 40-60 feet
tall with a 50-70 foot canopy diameter. Leaves are a dark green,
turning yellow to reddish orange in the fall. Tiny yellow-green
246
flowers occur in the fall. The bark is a smooth, light brown with
thin, flaky scales. The tree is used widely as a shade tree and
maintains most of its foliage through mild winters. The longevity
of this tree is esimated at 100 years or more."
End If
If RadBtnChinesePist.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Pistacia
chinensis\Pistacia summer\pistacia_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Pistacia
chinensis\Pistacia winter\pistacia_winter.jpg")
TextBox1.Text = "The Chinese Pistache has a slow to moderate growth rate,
reaching 30-60 feet tall with a canopy diameter equal in size.
Leaves are a dark to medium green, turning bright orange to deep
red or bright yellow in the fall. Female trees produce clusers of
small, reddish drupe fruits favored by birds. The bark is reddish
brown and becomes gray-brown and finely fissured. This tree is
a popular street or shade tree, favored for it's round canopy and
bright fall color. The longevity of this tree is esimated at 80-100
years."
End If
If RadBtnFremontCotton.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Populus
fremontii\Populus summer\populus_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Populus
fremontii\Populus winter\populus_winter.jpg")
TextBox1.Text = "The Fremont Cottonwood has a very fast growth rate, reaching 40-
60 feet tall with a 30 foot canopy diameter. Leaves are a dark
green, turning a bright to dull yellow or light orange in the fall.
The bark is a pale, ashy brown that becomes dark grayish brown
and deeply furrowed. Flowers are yellowish green catskins,
appearing before leaves in the spring. The wood of this tree is
relatively weak, with infasive surface roots that may suffer if
nicked. The longevity of this tree is estimated at 75-100 years."
End If
If RadBtnHoneyLocust.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Gleditsia
triacanthos\Gleditsia summer\gleditsia_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Gleditsia
triacanthos\Gleditsia winter\gleditsia_winter.jpg")
TextBox1.Text = "The Thornless Honey Locust has a fast growth rate, reaching 35-
70 feet tall with a 25-35 foot canopy diameter. Leaves are light
green with a light yellow fall color. Bark is a grayish brown with
long, shallow fissures and scaly or plated ridges. This tree is
247
commonly used as a shade tree but is slow to leaf in the spring and
dropes leaves earily in the fall. The longevity of this tree is
esimated at 50-100 years."
End If
If RadBtnModestoAsh.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Fraxinus
velutina\Fraxinus summer\fraxinus_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Fraxinus
velutina\Fraxinus winter\fraxinus_winter.jpg")
TextBox1.Text = "The Modesto Ash has a fast growth rate, raching 50 feet tall with a
30 foot canopy diameter. Leaves can be medium green as well as
bright yellow. The bark is a thin and gray and develops shallow,
reddish brown fissures with scaly gray ridges. This tree is often
used as a shade tree, but can be succesptible to disease. The
longevity of this tree is estimated at 60-80 years."
End If
If RadBtnNorCalBW.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Juglans
hindsii\Juglans summer\juglans_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Juglans
hindsii\Juglans winter\juglans_winter.jpg")
TextBox1.Text = "The Northern California Black Walnut has a slow growth rate,
reaching 30-50 feet tall with a canopy diameter equal in size.
Leaves are a light yellow green and produces thinly husked gren
fruit that mature in late summer. The bark is a thin and ashy color
that becomes blackish brown and deeply furrowed with age. This
tree requires well-drained soils and is quite drought tolerant. The
longevity of this tree is esimated at 50-75 years."
End If
If RadBtnSilkTree.Checked = True Then
PictureBoxSummer.Image = Image.FromFile("C:\Trees\Tall Deciduous\Albizia
julibrissin\Albizia summer\albizia_summer.jpg")
PictureBoxWinter.Image = Image.FromFile("C:\Trees\Tall Deciduous\Albizia
julibrissin\Albizia winter\albizia_winter.jpg")
TextBox1.Text = "The Silk Tree has a moderate growth rate, reaching a height of 40
feet with a canopy diameter twice its height. Leaves have a
yellow to reddish fall color, and pink to reddish, many-stamened
flowers occur during midsummer. The bark is a smooth, grayish
yellow that can become fissured with age. This tree does well in
summer heat and tolerates drought when established. The
longevity of this tree is estaimated at 75-125 years."
End If
248
End Sub
Private Sub BtnSelectTree_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnSelectTree.Click
TreePicture()
PictureBoxSummer.Visible = True
PictureBoxWinter.Visible = True
TextBox1.Visible = True
BtnNoTree.Visible = True
BtnYesTree.Visible = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Form5.Show()
Me.Hide()
End Sub
Private Sub BtnNoTree_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnNoTree.Click
BtnNoTree.Visible = False
BtnYesTree.Visible = False
PictureBoxSummer.Visible = False
PictureBoxWinter.Visible = False
TextBox1.Visible = False
End Sub
Private Sub BtnYesTree_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnYesTree.Click
TreeSelection()
Form7.Show()
Me.Hide()
249
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Form6HelpString = "This screen is the tree selection screen. You are provided with a
list of trees that are either native to Southern California or well
adapted to it's climate. Please click on a tree you think you might
like, and then click the 'Select Tree' button. You will then be
shown two pictures of the tree and provided with further
information on the tree, including leaf, flower, and bark color, as
well as life span and any special features. If you like the tree, click
the 'Yes, I like this tree' button. Clicking this button will take you
to the next screen. If you wish to view another tree, click the 'No, I
don't like this tree' button."
Form6Help.Show()
Form6Help.TextBox1.Text = Form6HelpString
End Sub
End Class
250
FORM 7 – TREE PLACEMENT SCREEN
Imports System.Math
Public Class Form7
Private Sub TxtBxTreeX_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxTreeX.TextChanged
TreeX = Val(TxtBxTreeX.Text)
End Sub
Private Sub TxtBxTreeY_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TxtBxTreeY.TextChanged
TreeY = Val(TxtBxTreeY.Text)
End Sub
Private Sub TxtBxBranchHeight_TextChanged(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles TxtBxBranchHeight.TextChanged
BranchHeight = Val(TxtBxBranchHeight.Text)
End Sub
Private Sub TxtBxTreeX_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxTreeX.Validated
Me.ErrorProvider1.SetError(TxtBxTreeX, "")
End Sub
Private Sub TxtBxTreeX_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxTreeX.Validating
Try
If Me.TxtBxTreeX.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxTreeX, "Please Enter a value")
Throw New Exception("Please enter a value")
251
ElseIf Not IsNumeric(TxtBxTreeX.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxTreeX, "Please Enter a Numeric Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxTreeY_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxTreeY.Validated
Me.ErrorProvider1.SetError(TxtBxTreeY, "")
End Sub
Private Sub TxtBxTreeY_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxTreeY.Validating
Try
If Me.TxtBxTreeY.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxTreeY, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxTreeY.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxTreeY, "Please Enter a Numeric Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub TxtBxBranchHeight_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TxtBxBranchHeight.Validated
Me.ErrorProvider1.SetError(TxtBxBranchHeight, "")
End Sub
252
Private Sub TxtBxBranchHeight_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles
TxtBxBranchHeight.Validating
Try
If Me.TxtBxBranchHeight.Text.Length = 0 Then
Me.ErrorProvider1.SetError(Me.TxtBxBranchHeight, "Please Enter a value")
Throw New Exception("Please enter a value")
ElseIf Not IsNumeric(TxtBxBranchHeight.Text) Then
Me.ErrorProvider1.SetError(Me.TxtBxBranchHeight, "Please Enter a Numeric
Value!")
Throw New Exception("Please enter a numeric value")
End If
Catch ex As Exception
MsgBox(ex.Message, , strTitle)
End Try
End Sub
Private Sub AssignSouthTreeArray()
TreeRadius = TreeCanopyDiam / 2
'Assign P1 points'
SouthTreeArray(0, 0) = TreeX
SouthTreeArray(0, 1) = TreeY
SouthTreeArray(0, 2) = 0
'Assign P2 points'
SouthTreeArray(1, 0) = TreeX
SouthTreeArray(1, 1) = TreeY
SouthTreeArray(1, 2) = BranchHeight
'Assign P3 points'
SouthTreeArray(2, 0) = TreeX - TreeRadius
SouthTreeArray(2, 1) = TreeY
SouthTreeArray(2, 2) = BranchHeight
'Assign P4 points at 175 degrees'
SouthTreeArray(3, 0) = TreeX + TreeRadius * Cos(3.054)
SouthTreeArray(3, 1) = TreeY
SouthTreeArray(3, 2) = BranchHeight + TreeRadius * Sin(3.054)
'Assign P5 points at 170 degrees'
SouthTreeArray(4, 0) = TreeX + TreeRadius * Cos(2.967)
253
SouthTreeArray(4, 1) = TreeY
SouthTreeArray(4, 2) = BranchHeight + TreeRadius * Sin(2.967)
'Assign P6 points at 165 degrees'
SouthTreeArray(5, 0) = TreeX + TreeRadius * Cos(2.88)
SouthTreeArray(5, 1) = TreeY
SouthTreeArray(5, 2) = BranchHeight + TreeRadius * Sin(2.88)
'Assign P7 points at 160 degrees'
SouthTreeArray(6, 0) = TreeX + TreeRadius * Cos(2.792)
SouthTreeArray(6, 1) = TreeY
SouthTreeArray(6, 2) = BranchHeight + TreeRadius * Sin(2.792)
'Assign P8 points at 155 degrees'
SouthTreeArray(7, 0) = TreeX + TreeRadius * Cos(2.705)
SouthTreeArray(7, 1) = TreeY
SouthTreeArray(7, 2) = BranchHeight + TreeRadius * Sin(2.705)
'Assign P9 points at 150 degrees'
SouthTreeArray(8, 0) = TreeX + TreeRadius * Cos(2.618)
SouthTreeArray(8, 1) = TreeY
SouthTreeArray(8, 2) = BranchHeight + TreeRadius * Sin(2.618)
'Assign P10 points at 145 degrees'
SouthTreeArray(9, 0) = TreeX + TreeRadius * Cos(2.531)
SouthTreeArray(9, 1) = TreeY
SouthTreeArray(9, 2) = BranchHeight + TreeRadius * Sin(2.531)
'Assign P11 points at 140 degrees'
SouthTreeArray(10, 0) = TreeX + TreeRadius * Cos(2.443)
SouthTreeArray(10, 1) = TreeY
SouthTreeArray(10, 2) = BranchHeight + TreeRadius * Sin(2.443)
'Assign P12 points at 135 degrees'
SouthTreeArray(11, 0) = TreeX + TreeRadius * Cos(2.356)
SouthTreeArray(11, 1) = TreeY
SouthTreeArray(11, 2) = BranchHeight + TreeRadius * Sin(2.356)
'Assign P13 points at 130 degrees'
SouthTreeArray(12, 0) = TreeX + TreeRadius * Cos(2.269)
SouthTreeArray(12, 1) = TreeY
SouthTreeArray(12, 2) = BranchHeight + TreeRadius * Sin(2.269)
'Assign P14 at 125 degrees'
SouthTreeArray(13, 0) = TreeX + TreeRadius * Cos(2.182)
SouthTreeArray(13, 1) = TreeY
254
SouthTreeArray(13, 2) = BranchHeight + TreeRadius * Sin(2.182)
'Assign P15 points at 120 degrees'
SouthTreeArray(14, 0) = TreeX + TreeRadius * Cos(2.094)
SouthTreeArray(14, 1) = TreeY
SouthTreeArray(14, 2) = BranchHeight + TreeRadius * Sin(2.094)
'Assign P16 points at 115 degrees'
SouthTreeArray(15, 0) = TreeX + TreeRadius * Cos(2.007)
SouthTreeArray(15, 1) = TreeY
SouthTreeArray(15, 2) = BranchHeight + TreeRadius * Sin(2.007)
'Assign P17 points at 110 degrees'
SouthTreeArray(16, 0) = TreeX + TreeRadius * Cos(1.919)
SouthTreeArray(16, 1) = TreeY
SouthTreeArray(16, 2) = BranchHeight + TreeRadius * Sin(1.919)
'Assign P18 points at 105 degrees'
SouthTreeArray(17, 0) = TreeX + TreeRadius * Cos(1.833)
SouthTreeArray(17, 1) = TreeY
SouthTreeArray(17, 2) = BranchHeight + TreeRadius * Sin(1.833)
'Assign P19 points at 100 degrees'
SouthTreeArray(18, 0) = TreeX + TreeRadius * Cos(1.745)
SouthTreeArray(18, 1) = TreeY
SouthTreeArray(18, 2) = BranchHeight + TreeRadius * Sin(1.745)
'Assign P20 points at 95 degrees'
SouthTreeArray(19, 0) = TreeX + TreeRadius * Cos(1.658)
SouthTreeArray(19, 1) = TreeY
SouthTreeArray(19, 2) = BranchHeight + TreeRadius * Sin(1.658)
'Assign P21 points at 90 degrees'
SouthTreeArray(20, 0) = TreeX + TreeRadius * Cos(1.57)
SouthTreeArray(20, 1) = TreeY
SouthTreeArray(20, 2) = BranchHeight + TreeRadius * Sin(1.57)
'Assign P22 points at 85 degrees'
SouthTreeArray(21, 0) = TreeX + TreeRadius * Cos(1.484)
SouthTreeArray(21, 1) = TreeY
SouthTreeArray(21, 2) = BranchHeight + TreeRadius * Sin(1.484)
'Assign P23 points at 80 degrees'
SouthTreeArray(22, 0) = TreeX + TreeRadius * Cos(1.396)
SouthTreeArray(22, 1) = TreeY
SouthTreeArray(22, 2) = BranchHeight + TreeRadius * Sin(1.396)
255
'Assign P24 points at 75 degrees'
SouthTreeArray(23, 0) = TreeX + TreeRadius * Cos(1.309)
SouthTreeArray(23, 1) = TreeY
SouthTreeArray(23, 2) = BranchHeight + TreeRadius * Sin(1.309)
'Assign P25 points at 70 degrees'
SouthTreeArray(24, 0) = TreeX + TreeRadius * Cos(1.222)
SouthTreeArray(24, 1) = TreeY
SouthTreeArray(24, 2) = BranchHeight + TreeRadius * Sin(1.222)
'Assign P26 points at 65 degrees'
SouthTreeArray(25, 0) = TreeX + TreeRadius * Cos(1.134)
SouthTreeArray(25, 1) = TreeY
SouthTreeArray(25, 2) = BranchHeight + TreeRadius * Sin(1.134)
'Assign P27 points at 60 degrees'
SouthTreeArray(26, 0) = TreeX + TreeRadius * Cos(1.047)
SouthTreeArray(26, 1) = TreeY
SouthTreeArray(26, 2) = BranchHeight + TreeRadius * Sin(1.047)
'Assign P28 points at 55 degrees'
SouthTreeArray(27, 0) = TreeX + TreeRadius * Cos(0.96)
SouthTreeArray(27, 1) = TreeY
SouthTreeArray(27, 2) = BranchHeight + TreeRadius * Sin(0.96)
'Assign P29 points at 50 degrees'
SouthTreeArray(28, 0) = TreeX + TreeRadius * Cos(0.873)
SouthTreeArray(28, 1) = TreeY
SouthTreeArray(28, 2) = BranchHeight + TreeRadius * Sin(0.873)
'Assign P30 points at 45 degrees'
SouthTreeArray(29, 0) = TreeX + TreeRadius * Cos(0.785)
SouthTreeArray(29, 1) = TreeY
SouthTreeArray(29, 2) = BranchHeight + TreeRadius * Sin(0.785)
'Assign P31 points at 40 degrees'
SouthTreeArray(30, 0) = TreeX + TreeRadius * Cos(0.698)
SouthTreeArray(30, 1) = TreeY
SouthTreeArray(30, 2) = BranchHeight + TreeRadius * Sin(0.698)
'Assign P32 points at 35 degrees'
SouthTreeArray(31, 0) = TreeX + TreeRadius * Cos(0.611)
SouthTreeArray(31, 1) = TreeY
SouthTreeArray(31, 2) = BranchHeight + TreeRadius * Sin(0.611)
256
'Assign P33 points at 30 degrees'
SouthTreeArray(32, 0) = TreeX + TreeRadius * Cos(0.524)
SouthTreeArray(32, 1) = TreeY
SouthTreeArray(32, 2) = BranchHeight + TreeRadius * Sin(0.524)
'Assign P34 points at 25 degrees'
SouthTreeArray(33, 0) = TreeX + TreeRadius * Cos(0.436)
SouthTreeArray(33, 1) = TreeY
SouthTreeArray(33, 2) = BranchHeight + TreeRadius * Sin(0.436)
'Assign P35 points at 20 degrees'
SouthTreeArray(34, 0) = TreeX + TreeRadius * Cos(0.349)
SouthTreeArray(34, 1) = TreeY
SouthTreeArray(34, 2) = BranchHeight + TreeRadius * Sin(0.349)
'Assign P36 points at 15 degrees'
SouthTreeArray(35, 0) = TreeX + TreeRadius * Cos(0.262)
SouthTreeArray(35, 1) = TreeY
SouthTreeArray(35, 2) = BranchHeight + TreeRadius * Sin(0.262)
'Assign P37 points at 10 degrees'
SouthTreeArray(36, 0) = TreeX + TreeRadius * Cos(0.175)
SouthTreeArray(36, 1) = TreeY
SouthTreeArray(36, 2) = BranchHeight + TreeRadius * Sin(0.175)
'Assign P38 points at 5 degrees'
SouthTreeArray(37, 0) = TreeX + TreeRadius * Cos(0.087)
SouthTreeArray(37, 1) = TreeY
SouthTreeArray(37, 2) = BranchHeight + TreeRadius * Sin(0.087)
'Assign P39 points'
SouthTreeArray(38, 0) = TreeX + TreeRadius
SouthTreeArray(38, 1) = TreeY
SouthTreeArray(38, 2) = BranchHeight
'Assign P40 points'
SouthTreeArray(39, 0) = TreeX
SouthTreeArray(39, 1) = TreeY
SouthTreeArray(39, 2) = BranchHeight
End Sub
Private Sub AssignEastTreeArray()
TreeRadius = TreeCanopyDiam / 2
257
'Assign P1 points'
EastTreeArray(0, 0) = TreeX
EastTreeArray(0, 1) = TreeY
EastTreeArray(0, 2) = 0
'Assign P2 points'
EastTreeArray(1, 0) = TreeX
EastTreeArray(1, 1) = TreeY
EastTreeArray(1, 2) = BranchHeight
'Assign P3 points'
EastTreeArray(2, 0) = TreeX
EastTreeArray(2, 1) = TreeY - TreeRadius
EastTreeArray(2, 2) = BranchHeight
'Assign P4 points at 175 degrees'
EastTreeArray(3, 0) = TreeX
EastTreeArray(3, 1) = TreeY + TreeRadius * Cos(3.054)
EastTreeArray(3, 2) = BranchHeight + TreeRadius * Sin(3.054)
'Assign P5 points at 170 degrees'
EastTreeArray(4, 0) = TreeX
EastTreeArray(4, 1) = TreeY + TreeRadius * Cos(2.967)
EastTreeArray(4, 2) = BranchHeight + TreeRadius * Sin(2.967)
'Assign P6 points at 165 degrees'
EastTreeArray(5, 0) = TreeX
EastTreeArray(5, 1) = TreeY + TreeRadius * Cos(2.88)
EastTreeArray(5, 2) = BranchHeight + TreeRadius * Sin(2.88)
'Assign P7 points at 160 degrees'
EastTreeArray(6, 0) = TreeX
EastTreeArray(6, 1) = TreeY + TreeRadius * Cos(2.792)
EastTreeArray(6, 2) = BranchHeight + TreeRadius * Sin(2.792)
'Assign P8 points at 155 degrees'
EastTreeArray(7, 0) = TreeX
EastTreeArray(7, 1) = TreeY + TreeRadius * Cos(2.705)
EastTreeArray(7, 2) = BranchHeight + TreeRadius * Sin(2.705)
'Assign P9 points at 150 degrees'
EastTreeArray(8, 0) = TreeX
EastTreeArray(8, 1) = TreeY + TreeRadius * Cos(2.618)
EastTreeArray(8, 2) = BranchHeight + TreeRadius * Sin(2.618)
258
'Assign P10 points at 145 degrees'
EastTreeArray(9, 0) = TreeX
EastTreeArray(9, 1) = TreeY + TreeRadius * Cos(2.531)
EastTreeArray(9, 2) = BranchHeight + TreeRadius * Sin(2.531)
'Assign P11 points at 140 degrees'
EastTreeArray(10, 0) = TreeX
EastTreeArray(10, 1) = TreeY + TreeRadius * Cos(2.443)
EastTreeArray(10, 2) = BranchHeight + TreeRadius * Sin(2.443)
'Assign P12 points at 135 degrees'
EastTreeArray(11, 0) = TreeX
EastTreeArray(11, 1) = TreeY + TreeRadius * Cos(2.356)
EastTreeArray(11, 2) = BranchHeight + TreeRadius * Sin(2.356)
'Assign P13 points at 130 degrees'
EastTreeArray(12, 0) = TreeX
EastTreeArray(12, 1) = TreeY + TreeRadius * Cos(2.269)
EastTreeArray(12, 2) = BranchHeight + TreeRadius * Sin(2.269)
'Assign P14 at 125 degrees'
EastTreeArray(13, 0) = TreeX
EastTreeArray(13, 1) = TreeY + TreeRadius * Cos(2.182)
EastTreeArray(13, 2) = BranchHeight + TreeRadius * Sin(2.182)
'Assign P15 points at 120 degrees'
EastTreeArray(14, 0) = TreeX
EastTreeArray(14, 1) = TreeY + TreeRadius * Cos(2.094)
EastTreeArray(14, 2) = BranchHeight + TreeRadius * Sin(2.094)
'Assign P16 points at 115 degrees'
EastTreeArray(15, 0) = TreeX
EastTreeArray(15, 1) = TreeY + TreeRadius * Cos(2.007)
EastTreeArray(15, 2) = BranchHeight + TreeRadius * Sin(2.007)
'Assign P17 points at 110 degrees'
EastTreeArray(16, 0) = TreeX
EastTreeArray(16, 1) = TreeY + TreeRadius * Cos(1.919)
EastTreeArray(16, 2) = BranchHeight + TreeRadius * Sin(1.919)
'Assign P18 points at 105 degrees'
EastTreeArray(17, 0) = TreeX
EastTreeArray(17, 1) = TreeY + TreeRadius * Cos(1.833)
EastTreeArray(17, 2) = BranchHeight + TreeRadius * Sin(1.833)
259
'Assign P19 points at 100 degrees'
EastTreeArray(18, 0) = TreeX
EastTreeArray(18, 1) = TreeY + TreeRadius * Cos(1.745)
EastTreeArray(18, 2) = BranchHeight + TreeRadius * Sin(1.745)
'Assign P20 points at 95 degrees'
EastTreeArray(19, 0) = TreeX
EastTreeArray(19, 1) = TreeY + TreeRadius * Cos(1.658)
EastTreeArray(19, 2) = BranchHeight + TreeRadius * Sin(1.658)
'Assign P21 points at 90 degrees'
EastTreeArray(20, 0) = TreeX
EastTreeArray(20, 1) = TreeY + TreeRadius * Cos(1.57)
EastTreeArray(20, 2) = BranchHeight + TreeRadius * Sin(1.57)
'Assign P22 points at 85 degrees'
EastTreeArray(21, 0) = TreeX
EastTreeArray(21, 1) = TreeY + TreeRadius * Cos(1.484)
EastTreeArray(21, 2) = BranchHeight + TreeRadius * Sin(1.484)
'Assign P23 points at 80 degrees'
EastTreeArray(22, 0) = TreeX
EastTreeArray(22, 1) = TreeY + TreeRadius * Cos(1.396)
EastTreeArray(22, 2) = BranchHeight + TreeRadius * Sin(1.396)
'Assign P24 points at 75 degrees'
EastTreeArray(23, 0) = TreeX
EastTreeArray(23, 1) = TreeY + TreeRadius * Cos(1.309)
EastTreeArray(23, 2) = BranchHeight + TreeRadius * Sin(1.309)
'Assign P25 points at 70 degrees'
EastTreeArray(24, 0) = TreeX
EastTreeArray(24, 1) = TreeY + TreeRadius * Cos(1.222)
EastTreeArray(24, 2) = BranchHeight + TreeRadius * Sin(1.222)
'Assign P26 points at 65 degrees'
EastTreeArray(25, 0) = TreeX
EastTreeArray(25, 1) = TreeY + TreeRadius * Cos(1.134)
EastTreeArray(25, 2) = BranchHeight + TreeRadius * Sin(1.134)
'Assign P27 points at 60 degrees'
EastTreeArray(26, 0) = TreeX
EastTreeArray(26, 1) = TreeY + TreeRadius * Cos(1.047)
EastTreeArray(26, 2) = BranchHeight + TreeRadius * Sin(1.047)
260
'Assign P28 points at 55 degrees'
EastTreeArray(27, 0) = TreeX
EastTreeArray(27, 1) = TreeY + TreeRadius * Cos(0.96)
EastTreeArray(27, 2) = BranchHeight + TreeRadius * Sin(0.96)
'Assign P29 points at 50 degrees'
EastTreeArray(28, 0) = TreeX
EastTreeArray(28, 1) = TreeY + TreeRadius * Cos(0.873)
EastTreeArray(28, 2) = BranchHeight + TreeRadius * Sin(0.873)
'Assign P30 points at 45 degrees'
EastTreeArray(29, 0) = TreeX
EastTreeArray(29, 1) = TreeY + TreeRadius * Cos(0.785)
EastTreeArray(29, 2) = BranchHeight + TreeRadius * Sin(0.785)
'Assign P31 points at 40 degrees'
EastTreeArray(30, 0) = TreeX
EastTreeArray(30, 1) = TreeY + TreeRadius * Cos(0.698)
EastTreeArray(30, 2) = BranchHeight + TreeRadius * Sin(0.698)
'Assign P32 points at 35 degrees'
EastTreeArray(31, 0) = TreeX
EastTreeArray(31, 1) = TreeY + TreeRadius * Cos(0.611)
EastTreeArray(31, 2) = BranchHeight + TreeRadius * Sin(0.611)
'Assign P33 points at 30 degrees'
EastTreeArray(32, 0) = TreeX
EastTreeArray(32, 1) = TreeY + TreeRadius * Cos(0.524)
EastTreeArray(32, 2) = BranchHeight + TreeRadius * Sin(0.524)
'Assign P34 points at 25 degrees'
EastTreeArray(33, 0) = TreeX
EastTreeArray(33, 1) = TreeY + TreeRadius * Cos(0.436)
EastTreeArray(33, 2) = BranchHeight + TreeRadius * Sin(0.436)
'Assign P35 points at 20 degrees'
EastTreeArray(34, 0) = TreeX
EastTreeArray(34, 1) = TreeY + TreeRadius * Cos(0.349)
EastTreeArray(34, 2) = BranchHeight + TreeRadius * Sin(0.349)
'Assign P36 points at 15 degrees'
EastTreeArray(35, 0) = TreeX
EastTreeArray(35, 1) = TreeY + TreeRadius * Cos(0.262)
EastTreeArray(35, 2) = BranchHeight + TreeRadius * Sin(0.262)
261
'Assign P37 points at 10 degrees'
EastTreeArray(36, 0) = TreeX
EastTreeArray(36, 1) = TreeY + TreeRadius * Cos(0.175)
EastTreeArray(36, 2) = BranchHeight + TreeRadius * Sin(0.175)
'Assign P38 points at 5 degrees'
EastTreeArray(37, 0) = TreeX
EastTreeArray(37, 1) = TreeY + TreeRadius * Cos(0.087)
EastTreeArray(37, 2) = BranchHeight + TreeRadius * Sin(0.087)
'Assign P39 points'
EastTreeArray(38, 0) = TreeX
EastTreeArray(38, 1) = TreeY + TreeRadius
EastTreeArray(38, 2) = BranchHeight
'Assign P40 points'
EastTreeArray(39, 0) = TreeX
EastTreeArray(39, 1) = TreeY
EastTreeArray(39, 2) = BranchHeight
End Sub
Private Sub AssignWestTreeArray()
TreeRadius = TreeCanopyDiam / 2
'Assign P1 points'
WestTreeArray(0, 0) = TreeX
WestTreeArray(0, 1) = TreeY
WestTreeArray(0, 2) = 0
'Assign P2 points'
WestTreeArray(1, 0) = TreeX
WestTreeArray(1, 1) = TreeY
WestTreeArray(1, 2) = BranchHeight
'Assign P3 points'
WestTreeArray(2, 0) = TreeX
WestTreeArray(2, 1) = TreeY + TreeRadius
WestTreeArray(2, 2) = BranchHeight
'Assign P4 points at 175 degrees'
WestTreeArray(3, 0) = TreeX
WestTreeArray(3, 1) = TreeY - TreeRadius * Cos(3.054)
WestTreeArray(3, 2) = BranchHeight + TreeRadius * Sin(3.054)
262
'Assign P5 points at 170 degrees'
WestTreeArray(4, 0) = TreeX
WestTreeArray(4, 1) = TreeY - TreeRadius * Cos(2.967)
WestTreeArray(4, 2) = BranchHeight + TreeRadius * Sin(2.967)
'Assign P6 points at 165 degrees'
WestTreeArray(5, 0) = TreeX
WestTreeArray(5, 1) = TreeY - TreeRadius * Cos(2.88)
WestTreeArray(5, 2) = BranchHeight + TreeRadius * Sin(2.88)
'Assign P7 points at 160 degrees'
WestTreeArray(6, 0) = TreeX
WestTreeArray(6, 1) = TreeY - TreeRadius * Cos(2.792)
WestTreeArray(6, 2) = BranchHeight + TreeRadius * Sin(2.792)
'Assign P8 points at 155 degrees'
WestTreeArray(7, 0) = TreeX
WestTreeArray(7, 1) = TreeY - TreeRadius * Cos(2.705)
WestTreeArray(7, 2) = BranchHeight + TreeRadius * Sin(2.705)
'Assign P9 points at 150 degrees'
WestTreeArray(8, 0) = TreeX
WestTreeArray(8, 1) = TreeY - TreeRadius * Cos(2.618)
WestTreeArray(8, 2) = BranchHeight + TreeRadius * Sin(2.618)
'Assign P10 points at 145 degrees'
WestTreeArray(9, 0) = TreeX
WestTreeArray(9, 1) = TreeY - TreeRadius * Cos(2.531)
WestTreeArray(9, 2) = BranchHeight + TreeRadius * Sin(2.531)
'Assign P11 points at 140 degrees'
WestTreeArray(10, 0) = TreeX
WestTreeArray(10, 1) = TreeY - TreeRadius * Cos(2.443)
WestTreeArray(10, 2) = BranchHeight + TreeRadius * Sin(2.443)
'Assign P12 points at 135 degrees'
WestTreeArray(11, 0) = TreeX
WestTreeArray(11, 1) = TreeY - TreeRadius * Cos(2.356)
WestTreeArray(11, 2) = BranchHeight + TreeRadius * Sin(2.356)
'Assign P13 points at 130 degrees'
WestTreeArray(12, 0) = TreeX
WestTreeArray(12, 1) = TreeY - TreeRadius * Cos(2.269)
WestTreeArray(12, 2) = BranchHeight + TreeRadius * Sin(2.269)
263
'Assign P14 at 125 degrees'
WestTreeArray(13, 0) = TreeX
WestTreeArray(13, 1) = TreeY - TreeRadius * Cos(2.182)
WestTreeArray(13, 2) = BranchHeight + TreeRadius * Sin(2.182)
'Assign P15 points at 120 degrees'
WestTreeArray(14, 0) = TreeX
WestTreeArray(14, 1) = TreeY - TreeRadius * Cos(2.094)
WestTreeArray(14, 2) = BranchHeight + TreeRadius * Sin(2.094)
'Assign P16 points at 115 degrees'
WestTreeArray(15, 0) = TreeX
WestTreeArray(15, 1) = TreeY - TreeRadius * Cos(2.007)
WestTreeArray(15, 2) = BranchHeight + TreeRadius * Sin(2.007)
'Assign P17 points at 110 degrees'
WestTreeArray(16, 0) = TreeX
WestTreeArray(16, 1) = TreeY - TreeRadius * Cos(1.919)
WestTreeArray(16, 2) = BranchHeight + TreeRadius * Sin(1.919)
'Assign P18 points at 105 degrees'
WestTreeArray(17, 0) = TreeX
WestTreeArray(17, 1) = TreeY - TreeRadius * Cos(1.833)
WestTreeArray(17, 2) = BranchHeight + TreeRadius * Sin(1.833)
'Assign P19 points at 100 degrees'
WestTreeArray(18, 0) = TreeX
WestTreeArray(18, 1) = TreeY - TreeRadius * Cos(1.745)
WestTreeArray(18, 2) = BranchHeight + TreeRadius * Sin(1.745)
'Assign P20 points at 95 degrees'
WestTreeArray(19, 0) = TreeX
WestTreeArray(19, 1) = TreeY - TreeRadius * Cos(1.658)
WestTreeArray(19, 2) = BranchHeight + TreeRadius * Sin(1.658)
'Assign P21 points at 90 degrees'
WestTreeArray(20, 0) = TreeX
WestTreeArray(20, 1) = TreeY + TreeRadius * Cos(1.57)
WestTreeArray(20, 2) = BranchHeight + TreeRadius * Sin(1.57)
'Assign P22 points at 85 degrees'
WestTreeArray(21, 0) = TreeX
WestTreeArray(21, 1) = TreeY - TreeRadius * Cos(1.484)
WestTreeArray(21, 2) = BranchHeight + TreeRadius * Sin(1.484)
264
'Assign P23 points at 80 degrees'
WestTreeArray(22, 0) = TreeX
WestTreeArray(22, 1) = TreeY - TreeRadius * Cos(1.396)
WestTreeArray(22, 2) = BranchHeight + TreeRadius * Sin(1.396)
'Assign P24 points at 75 degrees'
WestTreeArray(23, 0) = TreeX
WestTreeArray(23, 1) = TreeY - TreeRadius * Cos(1.309)
WestTreeArray(23, 2) = BranchHeight + TreeRadius * Sin(1.309)
'Assign P25 points at 70 degrees'
WestTreeArray(24, 0) = TreeX
WestTreeArray(24, 1) = TreeY - TreeRadius * Cos(1.222)
WestTreeArray(24, 2) = BranchHeight + TreeRadius * Sin(1.222)
'Assign P26 points at 65 degrees'
WestTreeArray(25, 0) = TreeX
WestTreeArray(25, 1) = TreeY - TreeRadius * Cos(1.134)
WestTreeArray(25, 2) = BranchHeight + TreeRadius * Sin(1.134)
'Assign P27 points at 60 degrees'
WestTreeArray(26, 0) = TreeX
WestTreeArray(26, 1) = TreeY - TreeRadius * Cos(1.047)
WestTreeArray(26, 2) = BranchHeight + TreeRadius * Sin(1.047)
'Assign P28 points at 55 degrees'
WestTreeArray(27, 0) = TreeX
WestTreeArray(27, 1) = TreeY - TreeRadius * Cos(0.96)
WestTreeArray(27, 2) = BranchHeight + TreeRadius * Sin(0.96)
'Assign P29 points at 50 degrees'
WestTreeArray(28, 0) = TreeX
WestTreeArray(28, 1) = TreeY - TreeRadius * Cos(0.873)
WestTreeArray(28, 2) = BranchHeight + TreeRadius * Sin(0.873)
'Assign P30 points at 45 degrees'
WestTreeArray(29, 0) = TreeX
WestTreeArray(29, 1) = TreeY - TreeRadius * Cos(0.785)
WestTreeArray(29, 2) = BranchHeight + TreeRadius * Sin(0.785)
'Assign P31 points at 40 degrees'
WestTreeArray(30, 0) = TreeX
WestTreeArray(30, 1) = TreeY - TreeRadius * Cos(0.698)
WestTreeArray(30, 2) = BranchHeight + TreeRadius * Sin(0.698)
265
'Assign P32 points at 35 degrees'
WestTreeArray(31, 0) = TreeX
WestTreeArray(31, 1) = TreeY - TreeRadius * Cos(0.611)
WestTreeArray(31, 2) = BranchHeight + TreeRadius * Sin(0.611)
'Assign P33 points at 30 degrees'
WestTreeArray(32, 0) = TreeX
WestTreeArray(32, 1) = TreeY - TreeRadius * Cos(0.524)
WestTreeArray(32, 2) = BranchHeight + TreeRadius * Sin(0.524)
'Assign P34 points at 25 degrees'
WestTreeArray(33, 0) = TreeX
WestTreeArray(33, 1) = TreeY - TreeRadius * Cos(0.436)
WestTreeArray(33, 2) = BranchHeight + TreeRadius * Sin(0.436)
'Assign P35 points at 20 degrees'
WestTreeArray(34, 0) = TreeX
WestTreeArray(34, 1) = TreeY - TreeRadius * Cos(0.349)
WestTreeArray(34, 2) = BranchHeight + TreeRadius * Sin(0.349)
'Assign P36 points at 15 degrees'
WestTreeArray(35, 0) = TreeX
WestTreeArray(35, 1) = TreeY - TreeRadius * Cos(0.262)
WestTreeArray(35, 2) = BranchHeight + TreeRadius * Sin(0.262)
'Assign P37 points at 10 degrees'
WestTreeArray(36, 0) = TreeX
WestTreeArray(36, 1) = TreeY - TreeRadius * Cos(0.175)
WestTreeArray(36, 2) = BranchHeight + TreeRadius * Sin(0.175)
'Assign P38 points at 5 degrees'
WestTreeArray(37, 0) = TreeX
WestTreeArray(37, 1) = TreeY - TreeRadius * Cos(0.087)
WestTreeArray(37, 2) = BranchHeight + TreeRadius * Sin(0.087)
'Assign P39 points'
WestTreeArray(38, 0) = TreeX
WestTreeArray(38, 1) = TreeY - TreeRadius
WestTreeArray(38, 2) = BranchHeight
'Assign P40 points'
WestTreeArray(39, 0) = TreeX
WestTreeArray(39, 1) = TreeY
WestTreeArray(39, 2) = BranchHeight
End Sub
266
Private Sub EastWallAnalysis()
Dim yearhour As Integer
Dim AzimuthAngle As Double
Dim AltitudeAngle As Double
Dim SurfaceSolarAzimuth As Double
Dim i As Integer
Dim j As Integer
Dim a As Integer
Dim b As Integer
For yearhour = 0 To 8759
If AST(yearhour) <= 12 Then
AzimuthAngle = -Azimuth(yearhour)
'Clockwise rotation about the Z-axis'
'Rotate x,y window coordinates about z-axis'
For a = 0 To 3
EastWinArrayPrime(a, 0) = EastWinArray(a, 0) * Cos(AzimuthAngle) -
EastWinArray(a, 1) * Sin(AzimuthAngle)
EastWinArrayPrime(a, 1) = EastWinArray(a, 0) * Sin(AzimuthAngle) +
EastWinArray(a, 1) * Cos(AzimuthAngle)
Next a
'Rotate tree points'
For i = 0 To 39
EastTreeArrayPrime(i, 0) = EastTreeArray(i, 0) * Cos(AzimuthAngle) -
EastTreeArray(i, 1) * Sin(AzimuthAngle)
EastTreeArrayPrime(i, 1) = EastTreeArray(i, 0) * Sin(AzimuthAngle) +
EastTreeArray(i, 1) * Cos(AzimuthAngle)
Next i
ElseIf AST(yearhour) > 12 Then
AzimuthAngle = Azimuth(yearhour)
'Counterclockwise rotation about the Z-axis'
267
'Rotate window x,y window coordinates about z-axis'
For a = 0 To 3
EastWinArrayPrime(a, 0) = EastWinArray(a, 0) * Cos(AzimuthAngle) -
EastWinArray(a, 1) * Sin(AzimuthAngle)
EastWinArrayPrime(a, 1) = EastWinArray(a, 0) * Sin(AzimuthAngle) +
EastWinArray(a, 1) * Cos(AzimuthAngle)
Next a
'Rotate tree x,y coordinates about z-axis'
For i = 0 To 39
EastTreeArrayPrime(i, 0) = EastTreeArray(i, 0) * Cos(AzimuthAngle) -
EastTreeArray(i, 1) * Sin(AzimuthAngle)
EastTreeArrayPrime(i, 1) = EastTreeArray(i, 0) * Sin(AzimuthAngle) +
EastTreeArray(i, 1) * Cos(AzimuthAngle)
Next i
End If
'Apply Altitude Transformation about the X-axis'
AltitudeAngle = Altitude(yearhour)
'Rotate window y',z coordinates about x-axis'
For b = 0 To 3
EastWinArrayPrimePrime(b, 1) = EastWinArrayPrime(b, 1) * Cos(AltitudeAngle)
- EastWinArray(b, 2) * Sin(AltitudeAngle)
EastWinArrayPrime(b, 2) = EastWinArrayPrime(b, 1) * Sin(AltitudeAngle) +
EastWinArray(b, 2) * Cos(AltitudeAngle)
Next b
'Rotate tree y', z coordinates about x-axis'
For j = 0 To 39
EastTreeArrayPrimePrime(j, 1) = EastTreeArrayPrime(j, 1) * Cos(AltitudeAngle)
- EastTreeArray(j, 2) * Sin(AltitudeAngle)
EastTreeArrayPrime(j, 2) = EastTreeArrayPrime(j, 1) * Sin(AltitudeAngle) +
EastTreeArray(j, 2) * Cos(AltitudeAngle)
Next j
268
‘Check if Altitude is greater than zero, if so, run the analysis’
'Check Solar Surface Azimuth to see if wall plane is facing the sun'
If Altitude(yearhour) > 0 Then
If AST(yearhour) <= 12 Then
SurfaceSolarAzimuth = -(Azimuth(yearhour) * 180 / PI) - EastSurfaceAzimuth
ElseIf AST(yearhour) > 12 Then
SurfaceSolarAzimuth = (Azimuth(yearhour) * 180 / PI) - EastSurfaceAzimuth
End If
‘Calculate Angle of Incidence on East Wall’
EastAngleOfIncidence = Acos(Cos(Altitude(yearhour)) *
Cos(SurfaceSolarAzimuth * PI / 180))
'If wall plane is facing the sun, then run Scanline algorithm’
If SurfaceSolarAzimuth < 90 AndAlso SurfaceSolarAzimuth > -90 Then
EastScanline(EWinWidth, EWinHeight, EUFen, ESHGC, TreeHeight,
BranchHeight, TreeCanopyDiam, SummerTrans, WinterTrans,
Foliation, Defoliation, yearhour, EastAngleOfIncidence)
Else
End If
ElseIf Altitude(yearhour) < 0 Then
End If
Next yearhour
End Sub
Private Sub SouthWallAnalysis()
Dim yearhour As Integer
Dim AzimuthAngle As Double
Dim AltitudeAngle As Double
Dim SurfaceSolarAzimuth As Double
Dim i As Integer
Dim j As Integer
Dim a As Integer
269
Dim b As Integer
Dim TotalQUnShaded As Double
Dim TotalQShaded As Double
For yearhour = 0 To 8759
If AST(yearhour) <= 12 Then
AzimuthAngle = -Azimuth(yearhour)
'Clockwise rotation about the Z-axis'
'Rotate x,y window coordinates about z-axis'
For a = 0 To 3
SouthWinArrayPrime(a, 0) = SouthWinArray(a, 0) * Cos(AzimuthAngle) -
SouthWinArray(a, 1) * Sin(AzimuthAngle)
SouthWinArrayPrime(a, 1) = SouthWinArray(a, 0) * Sin(AzimuthAngle) +
SouthWinArray(a, 1) * Cos(AzimuthAngle)
Next a
'Rotate tree points'
For i = 0 To 39
SouthTreeArrayPrime(i, 0) = SouthTreeArray(i, 0) * Cos(AzimuthAngle) -
SouthTreeArray(i, 1) * Sin(AzimuthAngle)
SouthTreeArrayPrime(i, 1) = SouthTreeArray(i, 0) * Sin(AzimuthAngle) +
SouthTreeArray(i, 1) * Cos(AzimuthAngle)
Next i
ElseIf AST(yearhour) > 12 Then
AzimuthAngle = Azimuth(yearhour)
'Counterclockwise rotation about the Z-axis'
'Rotate window x,y window coordinates about z-axis'
For a = 0 To 3
SouthWinArrayPrime(a, 0) = SouthWinArray(a, 0) * Cos(AzimuthAngle) -
SouthWinArray(a, 1) * Sin(AzimuthAngle)
SouthWinArrayPrime(a, 1) = SouthWinArray(a, 0) * Sin(AzimuthAngle) +
SouthWinArray(a, 1) * Cos(AzimuthAngle)
Next a
270
'Rotate tree x,y coordinates about z-axis'
For i = 0 To 39
SouthTreeArrayPrime(i, 0) = SouthTreeArray(i, 0) * Cos(AzimuthAngle) -
SouthTreeArray(i, 1) * Sin(AzimuthAngle)
SouthTreeArrayPrime(i, 1) = SouthTreeArray(i, 0) * Sin(AzimuthAngle) +
SouthTreeArray(i, 1) * Cos(AzimuthAngle)
Next i
End If
'Apply Altitude Transformation about the X-axis'
AltitudeAngle = Altitude(yearhour)
'Rotate window y',z coordinates about x-axis'
For b = 0 To 3
SouthWinArrayPrimePrime(b, 1) = SouthWinArrayPrime(b, 1) *
Cos(AltitudeAngle) - SouthWinArray(b, 2) *
Sin(AltitudeAngle)
SouthWinArrayPrime(b, 2) = SouthWinArrayPrime(b, 1) * Sin(AltitudeAngle) +
SouthWinArray(b, 2) * Cos(AltitudeAngle)
Next b
'Rotate tree y', z coordinates about x-axis'
For j = 0 To 39
SouthTreeArrayPrimePrime(j, 1) = SouthTreeArrayPrime(j, 1) *
Cos(AltitudeAngle) - SouthTreeArray(j, 2) *
Sin(AltitudeAngle)
SouthTreeArrayPrime(j, 2) = SouthTreeArrayPrime(j, 1) * Sin(AltitudeAngle) +
SouthTreeArray(j, 2) * Cos(AltitudeAngle)
Next j
‘Check if Altitude is greater than zero, if so, run the analysis’
'Check Solar Surface Azimuth to see if wall plane is facing the sun'
If Altitude(yearhour) > 0 Then
271
If AST(yearhour) <= 12 Then
SurfaceSolarAzimuth = -(Azimuth(yearhour) * 180 / PI) -
SouthSurfaceAzimuth
ElseIf AST(yearhour) > 12 Then
SurfaceSolarAzimuth = (Azimuth(yearhour) * 180 / PI) - SouthSurfaceAzimuth
End If
‘Calculate Angle of Incidence on South Wall’
SouthAngleOfIncidence = Acos(Cos(Altitude(yearhour)) *
Cos(SurfaceSolarAzimuth * PI / 180))
'If wall plane is facing the sun, then run Scanline algorithm’
If SurfaceSolarAzimuth < 90 AndAlso SurfaceSolarAzimuth > -90 Then
SouthScanline(SWinWidth, SWinHeight, SUFen, SSHGC, TreeHeight,
BranchHeight, TreeCanopyDiam, SummerTrans, WinterTrans,
Foliation, Defoliation, yearhour, SouthAngleOfIncidence)
Else
End If
ElseIf Altitude(yearhour) < 0 Then
End If
TotalQUnShaded += SouthQUnshadedArray(yearhour)
TotalQShaded += SouthQShadedArray(yearhour)
Next yearhour
End Sub
Private Sub WestWallAnalysis()
Dim yearhour As Integer
Dim AzimuthAngle As Double
Dim AltitudeAngle As Double
Dim SurfaceSolarAzimuth As Double
Dim i As Integer
Dim j As Integer
Dim a As Integer
Dim b As Integer
Dim TotalQUnShaded As Double
Dim TotalQShaded As Double
272
For yearhour = 0 To 8759
If AST(yearhour) <= 12 Then
AzimuthAngle = -Azimuth(yearhour)
'Clockwise rotation about the Z-axis'
'Rotate x,y window coordinates about z-axis'
For a = 0 To 3
WestWinArrayPrime(a, 0) = WestWinArray(a, 0) * Cos(AzimuthAngle) -
WestWinArray(a, 1) * Sin(AzimuthAngle)
WestWinArrayPrime(a, 1) = WestWinArray(a, 0) * Sin(AzimuthAngle) +
WestWinArray(a, 1) * Cos(AzimuthAngle)
Next a
'Rotate tree points'
For i = 0 To 39
WestTreeArrayPrime(i, 0) = WestTreeArray(i, 0) * Cos(AzimuthAngle) -
WestTreeArray(i, 1) * Sin(AzimuthAngle)
WestTreeArrayPrime(i, 1) = WestTreeArray(i, 0) * Sin(AzimuthAngle) +
WestTreeArray(i, 1) * Cos(AzimuthAngle)
Next i
ElseIf AST(yearhour) > 12 Then
AzimuthAngle = Azimuth(yearhour)
'Counterclockwise rotation about the Z-axis'
'Rotate window x,y window coordinates about z-axis'
For a = 0 To 3
WestWinArrayPrime(a, 0) = WestWinArray(a, 0) * Cos(AzimuthAngle) -
WestWinArray(a, 1) * Sin(AzimuthAngle)
WestWinArrayPrime(a, 1) = WestWinArray(a, 0) * Sin(AzimuthAngle) +
WestWinArray(a, 1) * Cos(AzimuthAngle)
Next a
273
'Rotate tree x,y coordinates about z-axis'
For i = 0 To 39
WestTreeArrayPrime(i, 0) = WestTreeArray(i, 0) * Cos(AzimuthAngle) -
WestTreeArray(i, 1) * Sin(AzimuthAngle)
WestTreeArrayPrime(i, 1) = WestTreeArray(i, 0) * Sin(AzimuthAngle) +
WestTreeArray(i, 1) * Cos(AzimuthAngle)
Next i
End If
'Apply Altitude Transformation about the X-axis'
AltitudeAngle = Altitude(yearhour)
'Rotate window y',z coordinates about x-axis'
For b = 0 To 3
WestWinArrayPrimePrime(b, 1) = WestWinArrayPrime(b, 1) *
Cos(AltitudeAngle) - WestWinArray(b, 2) *
Sin(AltitudeAngle)
WestWinArrayPrime(b, 2) = WestWinArrayPrime(b, 1) * Sin(AltitudeAngle) +
WestWinArray(b, 2) * Cos(AltitudeAngle)
Next b
'Rotate tree y', z coordinates about x-axis'
For j = 0 To 39
WestTreeArrayPrimePrime(j, 1) = WestTreeArrayPrime(j, 1) *
Cos(AltitudeAngle) - WestTreeArray(j, 2) *
Sin(AltitudeAngle)
WestTreeArrayPrime(j, 2) = WestTreeArrayPrime(j, 1) * Sin(AltitudeAngle) +
WestTreeArray(j, 2) * Cos(AltitudeAngle)
Next j
‘Check if Altitude is greater than zero, if so, run the analysis’
'Check Solar Surface Azimuth to see if wall plane is facing the sun'
If Altitude(yearhour) > 0 Then
If AST(yearhour) <= 12 Then
SurfaceSolarAzimuth = -(Azimuth(yearhour) * 180 / PI) - WestSurfaceAzimuth
ElseIf AST(yearhour) > 12 Then
274
SurfaceSolarAzimuth = (Azimuth(yearhour) * 180 / PI) - WestSurfaceAzimuth
End If
‘Calculate Angle of Incidence on West Wall’
WestAngleOfIncidence = Acos(Cos(Altitude(yearhour)) *
Cos(SurfaceSolarAzimuth * PI / 180))
'If wall plane is facing the sun, then run Scanline algorithm’
If SurfaceSolarAzimuth < 90 AndAlso SurfaceSolarAzimuth > -90 Then
WestScanline(WWinWidth, WWinHeight, WUFen, WSHGC, TreeHeight,
BranchHeight, TreeCanopyDiam, SummerTrans, WinterTrans,
Foliation, Defoliation, yearhour, WestAngleOfIncidence)
Else
End If
ElseIf Altitude(yearhour) < 0 Then
End If
TotalQUnShaded += WestQUnshadedArray(yearhour)
TotalQShaded += WestQShadedArray(yearhour)
Next yearhour
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
AssignEastTreeArray()
AssignSouthTreeArray()
AssignWestTreeArray()
'EastWallAnalysis()
SouthWallAnalysis()
'WestWallAnalysis()
Form8.Show()
Me.Hide()
275
Form8.TxtBxTreeType.Text = TreeName
Form8.TxtBxTreeX.Text = TreeX
Form8.TxtBxTreeY.Text = TreeY
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Form6.Show()
Me.Hide()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Form7HelpString = "This is the tree placement screen. You are required to place your
tree with the use of a set of axes. A diagram is provided for you to
show you the direction of the axes and shows on which side of the
house the respective axis is positive or negative. The origin, or
(0,0) point, is at the center of your house. You can place the tree
on the East side of your house using positive X values, on the West
side of your housing using negative X values, and on the South
side of your house using negative Y numbers. You can place trees
in Southwest or Southeast directions using varying X and Y values.
Based on the Southern California climate trends, it is
recommended to place a tree on the Southwest side of your house.
It is not recommended to place a tree on the Northern side of your
house since you typically won't receive any benefits from shade by
planting a tree there. It is also not recommended to place a tree
directly South of your house since the tree would block winter
sunshine which can help warm your house during the colder
months. Please input all dimensions in feet. You are also asked to
provide a Branch Height. This is the distance from the ground at
which homeowners typically set the first layer of branches in their
trees."
Form7Help.Show()
Form7Help.TextBox1.Text = Form7HelpString
End Sub
End Class
276
FORM 8 – SAVINGS OUTPUT SCREEN
Imports System.Math
Public Class Form8
Private Sub Totals()
Dim TotalQUnshaded As Double
Dim TotalQShaded As Double
Dim HeatGainDiff As Double
Dim HeatGainDiffkWh As Double
Dim Monies As Double
Dim i As Integer
For i = 0 To 8759
TotalQUnshaded += EastQUnshadedArray(i) + SouthQUnshadedArray(i) +
WestQUnshadedArray(i)
TotalQShaded += EastQShadedArray(i) + SouthQShadedArray(i) +
WestQShadedArray(i)
Next i
HeatGainDiff = TotalQUnshaded - TotalQShaded
HeatGainDiffkWh = HeatGainDiff / 3412
Monies = HeatGainDiffkWh * ElectricityRate
TxtBxHeatGainUnShade.Text = Round(TotalQUnshaded, 0)
TxtBxHeatGainShade.Text = Round(TotalQShaded, 0)
TextBxHeatGainDiff.Text = Round(HeatGainDiff, 0)
TxtBxkWh.Text = Round(HeatGainDiffkWh, 0)
TxtBxDollars.Text = Round(Monies, 0)
End Sub
Private Sub Graph()
Dim i As Integer
‘Create graph showing unshaded and shaded hourly instantaneous heat gains’
For i = 0 To 8759
Chart1.Series("Unshaded").Points.AddXY(i, (EastQUnshadedArray(i) +
SouthQUnshadedArray(i) + WestQUnshadedArray(i)))
277
Chart1.Series("Shaded").Points.AddXY(i, (EastQShadedArray(i) +
SouthQShadedArray(i) + WestQShadedArray(i)))
Next i
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Form6.Show()
Me.Hide()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Form7.Show()
Me.Hide()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
Totals()
Graph()
Chart1.Visible = True
Label1.Visible = True
Label2.Visible = True
Label3.Visible = True
Label4.Visible = True
Label5.Visible = True
Label13.Visible = True
Label14.Visible = True
TxtBxHeatGainUnShade.Visible = True
TxtBxHeatGainShade.Visible = True
TextBxHeatGainDiff.Visible = True
TxtBxkWh.Visible = True
TxtBxDollars.Visible = True
LblNoShade.Visible = True
278
LblShade.Visible = True
LblTotal.Visible = True
Panel1.Visible = True
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button5.Click
Form1.Show()
Me.Hide()
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button6.Click
Form8HelpString = "This screen is the savings outputs screen, where you can see the
savings you could expect based on the inputs you provided
thorughout the design screens. At the bottom left of the screen you
are provided with the inputs you gave regarding tree type and
position. If you wish to change either of these, you can click the
'Change Tree Type' button or the 'Change Tree Location'. If you
are satisfied with your inputs, click the 'Calculate' button. You will
then see a graph showing the heat gain through your windows in
red, and the reduced heat gain through your windows from the
presence of the tree in blue. You will also see numeric values for
the unshaded and shaded heat gains below the graph, including the
difference between them. Finally, in the green panel you will see
the estimated energy savings in kWh, as well as expected dollar
savings. The dollar amount is calculated based on the electricity
rate you provided in the Welcome screen. From here you can exit
the program or start over if you like."
Form8Help.Show()
Form8Help.TextBox1.Text = Form8HelpString
End Sub
279
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
End
End Sub
End Class
280
APPENDIX C: SCANLINE ALGORITHM VERIFICATION
SCANLINE VERIFICATION TEST 2
Figure C-1: Excel Scanline Verification Test 2
Figure C-2: Visual Basic Scanline Verification Test 2
281
SCANLINE VERIFICATION TEST 3
Figure C-3: Excel Scanline Verification Test 3
Figure C-4: Visual Basic Scanline Verification Test 3
282
SCANLINE VERIFICATION TEST 4
Figure C-5: Excel Scanline Verification Test 4
Figure C-6: Visual Basic Scanline Verification Test 4
283
SCANLINE VERIFICATION TEST 5
Figure C-7: Excel Scanline Verification Test 5
Figure C-8: Visual Basic Scanline Verification Test 5
284
APPENDIX D: HEED VS. PROGRAM – UNSHADED 12-DAY
AND SINGLE DAY ENERGY GAIN ANALYSIS
SOUTH WINDOW UNSHADED ENERGY ANALYSIS – MARCH
Figure D-1: HEED Twelve-Day South Window Energy Gain Analysis for March
Figure D-2: Program Single-Day South Window Energy Gain Analysis for March
285
SOUTH WINDOW UNSHADED ENERGY ANALYSIS – JUNE
Figure D-3: HEED Twelve-Day South Window Energy Gain Analysis for June
Figure D-4: Program Single-Day South Window Energy Gain Analysis for June
286
SOUTH WINDOW UNSHADED ENERGY ANALYSIS – SEPTEMBER
Figure D-5: HEED Twelve-Day South Window Energy Gain Analysis for September
Figure D-6: Program Single-Day South Window Energy Gain Analysis for September
287
SOUTH WINDOW UNSHADED ENERGY ANALYSIS – DECEMBER
Figure D-7: HEED Twelve-Day South Window Energy Gain Analysis for December
Figure D-8: Program Single-Day South Window Energy Gain Analysis for December
288
WEST WINDOW UNSHADED ENERGY ANALYSIS – MARCH
Figure D-9: HEED Twelve-Day West Window Energy Gain Analysis for March
Figure D-10: Program Single-Day West Window Energy Gain Analysis for March
289
WEST WINDOW UNSHADED ENERGY ANALYSIS – JUNE
Figure D-11: HEED Twelve-Day West Window Energy Gain Analysis for June
Figure D-12: Program Single-Day West Window Energy Gain Analysis for June
290
WEST WINDOW UNSHADED ENERGY ANALYSIS – SEPTEMBER
Figure D-13: HEED Twelve-Day West Window Energy Gain Analysis for September
Figure D-14: Program Single-Day West Window Energy Gain Analysis for September
291
WEST WINDOW UNSHADED ENERGY ANALYSIS – DECEMBER
Figure D-15: HEED Twelve-Day West Window Energy Gain Analysis for December
Figure D-16: Program Single-Day West Window Energy Gain Analysis for December
Abstract (if available)
Abstract
The aim of this project was to develop a computer-based simulation tool to provide information on landscape design that could be implemented to help reduce solar gain and energy consumption in low-rise residential buildings. The program recommends specific landscape design strategies based on user inputs and also outputs potential energy savings should the strategies be applied. Literature review was performed to obtain information regarding the potential benefits of landscape design on building loads and energy performance and also to determine what information would be required to recommend an effective landscape design. Published equations and data as well as previous programming approaches were referenced to help form the program algorithms. Software such as MATLAB, Microsoft Excel, HEED, and ECOTECT were used in the verification of program code, equations, and outputs. Comparisons to previous research publications were also used in the validation of the program calculations. The results of the verification and validation demonstrated that expected savings outputs were acceptable and that the program functioned as intended. The final result is a freestanding Visual Basic program that can be effectively and accurately used in the development of energy-efficient landscape designs.
Linked assets
University of Southern California Dissertations and Theses
Conceptually similar
PDF
Net zero energy building: the integration of design strategies and PVs for zero-energy consumption
PDF
Digital tree simulation for residential building energy savings: shading and evapotranspiration
PDF
Energy efficient buildings: a method of probabilistic risk assessment using building energy simulation
PDF
District energy systems: Studying building types at an urban scale to understand building energy consumption and waste energy generation
PDF
"Watts per person" paradigm to design net zero energy buildings: examining technology interventions and integrating occupant feedback to reduce plug loads in a commercial building
PDF
Energy simulation in existing buildings: calibrating the model for retrofit studies
PDF
Tilted glazing: angle-dependence of direct solar heat gain and form-refining of complex facades
PDF
Natural ventilation in tall buildings: development of design guidelines based on climate and building height
PDF
Being green and the common citizen: developing alternative methods of renewable energy investment through solar power and efficient building design
PDF
Post occupancy energy evaluation of Ronald Tutor Hall using eQUEST; computer based simulation of existing building and comparison of data
PDF
Facade retrofit: enhancing energy performance in existing buildings
PDF
A parametric study of the thermal performance of green roofs in different climates through energy modeling
PDF
Harvesting energy with solar panels and adaptive shading for building skins: A case study of an office building in Saudi Arabia
PDF
Using architecture in the fight against global warming: presenting viable energy-saving renovation design strategies to homeowners via an interactive web learning tool
PDF
Building retrofitting evaluation: Energy savings and cost effectiveness of building retrofits on Graduate Art Studios at the University of California, Los Angeles
PDF
Streamlining sustainable design in building information modeling: BIM-based PV design and analysis tools
PDF
ctrl+z: exploring the effects of undoing retrofits to pre-war buildings in Los Angeles
PDF
Occupant-aware energy management: energy saving and comfort outcomes achievable through application of cooling setpoint adjustments
PDF
Green facades: development of a taxonomy tool to assist design
PDF
Kinetic facades as environmental control systems: using kinetic facades to increase energy efficiency and building performance in office buildings
Asset Metadata
Creator
Osborne, Aran Morrow
(author)
Core Title
Landscape and building solar loads: development of a computer-based tool to aid in the design of landscape to reduce solar gain and energy consumption in low-rise residential buildings
School
School of Architecture
Degree
Master of Building Science
Degree Program
Building Science
Publication Date
08/06/2009
Defense Date
03/11/2009
Publisher
University of Southern California
(original),
University of Southern California. Libraries
(digital)
Tag
building solar loads,computer simulation,energy consumption,insolation,Landscape,OAI-PMH Harvest
Language
English
Contributor
Electronically uploaded by the author
(provenance)
Advisor
Spiegelhalter, Thomas (
committee chair
), Kensek, Karen (
committee member
), Schiler, Marc (
committee member
)
Creator Email
aran.osborne@gmail.com,eosborne@usc.edu
Permanent Link (DOI)
https://doi.org/10.25549/usctheses-m2513
Unique identifier
UC1307059
Identifier
etd-Osborne-3153 (filename),usctheses-m40 (legacy collection record id),usctheses-c127-186925 (legacy record id),usctheses-m2513 (legacy record id)
Legacy Identifier
etd-Osborne-3153.pdf
Dmrecord
186925
Document Type
Thesis
Rights
Osborne, Aran Morrow
Type
texts
Source
University of Southern California
(contributing entity),
University of Southern California Dissertations and Theses
(collection)
Repository Name
Libraries, University of Southern California
Repository Location
Los Angeles, California
Repository Email
cisadmin@lib.usc.edu
Tags
building solar loads
computer simulation
energy consumption
insolation