Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
name: Unit tests
strategy:
matrix:
python-version: ['3.10', '3.12']
python-version: ['3.10', '3.13']
os: [macos-latest, ubuntu-latest, windows-latest]

runs-on: ${{ matrix.os }}
Expand Down
7 changes: 6 additions & 1 deletion ladybug/ddy.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,12 @@ def from_ddy_file(cls, file_path):

# build design day and location objects
location = Location.from_idf(loc_matches[0][0])
ddays = [DesignDay.from_idf(match[0], location) for match in dday_matches]
ddays = []
for match in dday_matches:
try:
ddays.append(DesignDay.from_idf(match[0], location))
except Exception:
pass # probably a design day that has been commented out
finally:
ddywin.close()

Expand Down
4 changes: 2 additions & 2 deletions ladybug/sunpath.py
Original file line number Diff line number Diff line change
Expand Up @@ -296,8 +296,8 @@ def calculate_sun_from_date_time(self, datetime, is_solar_time=False):
azimuth = (math.degrees(math.acos(az_init)) + 180) % 360
else:
azimuth = (540 - math.degrees(math.acos(az_init))) % 360
except ValueError: # perfect solar noon yields math domain error
azimuth = 180
except ValueError: # perfect solar noon (az_init == +/-1) yields math domain error
azimuth = 180 if az_init > 0 else 0

# create the sun for this hour
return Sun(datetime, altitude, azimuth, is_solar_time, is_daylight_saving,
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
ladybug-geometry==1.35.4
click==7.1.2;python_version<'3.8'
click==8.1.7;python_version>='3.8'
click==8.3.3;python_version>='3.8'
88 changes: 44 additions & 44 deletions tests/assets/ddy/tokyo.ddy
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@

! Using Design Conditions from "Climate Design Data 2009 ASHRAE Handbook"
! TOKYO HYAKURI_JPN Extreme Annual Wind Speeds, 1%=9.7m/s, 2.5%=8.3m/s, 5%=7.3m/s
! TOKYO HYAKURI_JPN Extreme Annual Temperatures, Max Drybulb=-9.5掳C Min Drybulb=34.1掳C
! TOKYO HYAKURI_JPN Extreme Annual Temperatures, Max Drybulb=-9.5茂驴陆C Min Drybulb=34.1茂驴陆C

! TOKYO HYAKURI_JPN Annual Heating Design Conditions Wind Speed=1.1m/s Wind Dir=0
! Coldest Month=JAN
! TOKYO HYAKURI_JPN Annual Heating 99.6%, MaxDB=-6.9掳C
! TOKYO HYAKURI_JPN Annual Heating 99.6%, MaxDB=-6.9茂驴陆C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Htg 99.6% Condns DB, !- Name
1, !- Month
Expand Down Expand Up @@ -48,36 +48,36 @@
, !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)
0.00; !- Clearness {0.0 to 1.1}

! TOKYO HYAKURI_JPN Annual Heating 99%, MaxDB=-5.1掳C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Htg 99% Condns DB, !- Name
1, !- Month
21, !- Day of Month
WinterDesignDay,!- Day Type
-5.1, !- Maximum Dry-Bulb Temperature {C}
0.0, !- Daily Dry-Bulb Temperature Range {C}
DefaultMultipliers, !- Dry-Bulb Temperature Range Modifier Type
, !- Dry-Bulb Temperature Range Modifier Schedule Name
Wetbulb, !- Humidity Condition Type
-5.1, !- Wetbulb at Maximum Dry-Bulb {C}
, !- Humidity Indicating Day Schedule Name
, !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}
, !- Enthalpy at Maximum Dry-Bulb {J/kg}
, !- Daily Wet-Bulb Temperature Range {deltaC}
100905., !- Barometric Pressure {Pa}
1.1, !- Wind Speed {m/s} design conditions vs. traditional 6.71 m/s (15 mph)
0, !- Wind Direction {Degrees; N=0, S=180}
No, !- Rain {Yes/No}
No, !- Snow on ground {Yes/No}
No, !- Daylight Savings Time Indicator
ASHRAEClearSky, !- Solar Model Indicator
, !- Beam Solar Day Schedule Name
, !- Diffuse Solar Day Schedule Name
, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
, !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)
0.00; !- Clearness {0.0 to 1.1}
! TOKYO HYAKURI_JPN Annual Heating 99%, MaxDB=-5.1茂驴陆C
!SizingPeriod:DesignDay,
! TOKYO HYAKURI Ann Htg 99% Condns DB, !- Name
! 1, !- Month
! 21, !- Day of Month
! WinterDesignDay,!- Day Type
! -5.1, !- Maximum Dry-Bulb Temperature {C}
! 0.0, !- Daily Dry-Bulb Temperature Range {C}
!DefaultMultipliers, !- Dry-Bulb Temperature Range Modifier Type
! , !- Dry-Bulb Temperature Range Modifier Schedule Name
! Wetbulb, !- Humidity Condition Type
! -5.1, !- Wetbulb at Maximum Dry-Bulb {C}
! , !- Humidity Indicating Day Schedule Name
! , !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgDryAir}
! , !- Enthalpy at Maximum Dry-Bulb {J/kg}
! , !- Daily Wet-Bulb Temperature Range {deltaC}
! 100905., !- Barometric Pressure {Pa}
! 1.1, !- Wind Speed {m/s} design conditions vs. traditional 6.71 m/s (15 mph)
! 0, !- Wind Direction {Degrees; N=0, S=180}
! No, !- Rain {Yes/No}
! No, !- Snow on ground {Yes/No}
! No, !- Daylight Savings Time Indicator
! ASHRAEClearSky, !- Solar Model Indicator
! , !- Beam Solar Day Schedule Name
! , !- Diffuse Solar Day Schedule Name
! , !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
! , !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)
! 0.00; !- Clearness {0.0 to 1.1}

! TOKYO HYAKURI_JPN Annual Humidification 99.6% Design Conditions DP=>MCDB, DP=-12.8掳C
! TOKYO HYAKURI_JPN Annual Humidification 99.6% Design Conditions DP=>MCDB, DP=-12.8茂驴陆C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Hum_n 99.6% Condns DP=>MCDB, !- Name
1, !- Month
Expand Down Expand Up @@ -106,7 +106,7 @@
, !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)
0.00; !- Clearness {0.0 to 1.1}

! TOKYO HYAKURI_JPN Annual Humidification 99% Design Conditions DP=>MCDB, DP=-11.1掳C
! TOKYO HYAKURI_JPN Annual Humidification 99% Design Conditions DP=>MCDB, DP=-11.1茂驴陆C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Hum_n 99% Condns DP=>MCDB, !- Name
1, !- Month
Expand Down Expand Up @@ -195,7 +195,7 @@

! TOKYO HYAKURI Annual Cooling Design Conditions Wind Speed=4.8m/s Wind Dir=210
! Hottest Month=AUG
! TOKYO HYAKURI_JPN Annual Cooling (DB=>MWB) .4%, MaxDB=32.1掳C MWB=26掳C
! TOKYO HYAKURI_JPN Annual Cooling (DB=>MWB) .4%, MaxDB=32.1茂驴陆C MWB=26茂驴陆C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg .4% Condns DB=>MWB, !- Name
8, !- Month
Expand Down Expand Up @@ -223,7 +223,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (DB=>MWB) 1%, MaxDB=30.9掳C MWB=25.8掳C
! TOKYO HYAKURI_JPN Annual Cooling (DB=>MWB) 1%, MaxDB=30.9茂驴陆C MWB=25.8茂驴陆C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg 1% Condns DB=>MWB, !- Name
8, !- Month
Expand Down Expand Up @@ -251,7 +251,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (DB=>MWB) 2%, MaxDB=29.2掳C MWB=24.8掳C
! TOKYO HYAKURI_JPN Annual Cooling (DB=>MWB) 2%, MaxDB=29.2茂驴陆C MWB=24.8茂驴陆C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg 2% Condns DB=>MWB, !- Name
8, !- Month
Expand Down Expand Up @@ -279,7 +279,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (WB=>MDB) .4%, MDB=30.6掳C WB=26.8掳C
! TOKYO HYAKURI_JPN Annual Cooling (WB=>MDB) .4%, MDB=30.6茂驴陆C WB=26.8茂驴陆C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg .4% Condns WB=>MDB, !- Name
8, !- Month
Expand Down Expand Up @@ -307,7 +307,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (WB=>MDB) 1%, MDB=29.6掳C WB=26.1掳C
! TOKYO HYAKURI_JPN Annual Cooling (WB=>MDB) 1%, MDB=29.6茂驴陆C WB=26.1茂驴陆C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg 1% Condns WB=>MDB, !- Name
8, !- Month
Expand Down Expand Up @@ -335,7 +335,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (WB=>MDB) 2%, MDB=28.7掳C WB=25.5掳C
! TOKYO HYAKURI_JPN Annual Cooling (WB=>MDB) 2%, MDB=28.7茂驴陆C WB=25.5茂驴陆C
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg 2% Condns WB=>MDB, !- Name
8, !- Month
Expand Down Expand Up @@ -363,7 +363,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (DP=>MDB) .4%, MDB=29.3掳C DP=26掳C HR=0.0214
! TOKYO HYAKURI_JPN Annual Cooling (DP=>MDB) .4%, MDB=29.3茂驴陆C DP=26茂驴陆C HR=0.0214
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg .4% Condns DP=>MDB, !- Name
8, !- Month
Expand Down Expand Up @@ -391,7 +391,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (DP=>MDB) 1%, MDB=28.3掳C DP=25.1掳C HR=0.0203
! TOKYO HYAKURI_JPN Annual Cooling (DP=>MDB) 1%, MDB=28.3茂驴陆C DP=25.1茂驴陆C HR=0.0203
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg 1% Condns DP=>MDB, !- Name
8, !- Month
Expand Down Expand Up @@ -419,7 +419,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (DP=>MDB) 2%, MDB=27.1掳C DP=24.2掳C HR=0.0192
! TOKYO HYAKURI_JPN Annual Cooling (DP=>MDB) 2%, MDB=27.1茂驴陆C DP=24.2茂驴陆C HR=0.0192
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg 2% Condns DP=>MDB, !- Name
8, !- Month
Expand Down Expand Up @@ -447,7 +447,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (Enthalpy=>MDB) .4%, MDB=30.6掳C Enthalpy=84800.0J/kg
! TOKYO HYAKURI_JPN Annual Cooling (Enthalpy=>MDB) .4%, MDB=30.6茂驴陆C Enthalpy=84800.0J/kg
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg .4% Condns Enth=>MDB, !- Name
8, !- Month
Expand Down Expand Up @@ -475,7 +475,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (Enthalpy=>MDB) 1%, MDB=29.6掳C Enthalpy=81400.0J/kg
! TOKYO HYAKURI_JPN Annual Cooling (Enthalpy=>MDB) 1%, MDB=29.6茂驴陆C Enthalpy=81400.0J/kg
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg 1% Condns Enth=>MDB, !- Name
8, !- Month
Expand Down Expand Up @@ -503,7 +503,7 @@
0.546, !- ASHRAE Clear Sky Optical Depth for Beam Irradiance (taub)
1.827; !- ASHRAE Clear Sky Optical Depth for Diffuse Irradiance (taud)

! TOKYO HYAKURI_JPN Annual Cooling (Enthalpy=>MDB) 2%, MDB=28.6掳C Enthalpy=78400.0J/kg
! TOKYO HYAKURI_JPN Annual Cooling (Enthalpy=>MDB) 2%, MDB=28.6茂驴陆C Enthalpy=78400.0J/kg
SizingPeriod:DesignDay,
TOKYO HYAKURI Ann Clg 2% Condns Enth=>MDB, !- Name
8, !- Month
Expand Down
2 changes: 1 addition & 1 deletion tests/ddy_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def test_standard_ddy_properties():
assert ddy.location.time_zone == 9
assert ddy.location.elevation == 35

assert len(ddy.design_days) == 18
assert len(ddy.design_days) == 17
for des_day in ddy.design_days:
assert isinstance(des_day, DesignDay)
assert len(ddy.filter_by_keyword('.4%')) == 4
Expand Down
19 changes: 19 additions & 0 deletions tests/sunpath_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,25 @@ def test_solar_time():
assert sun.azimuth == approx(270, rel=1e-2)


def test_calculate_sun_with_solar_time():
"""Test the calculate_sun methods with solar time."""
ocean_s = Location('Test', 'Southern Ocean', latitude=-50, longitude=0, time_zone=0)
sp = Sunpath.from_location(ocean_s)

sun = sp.calculate_sun(1, 21, 12, True)
assert sun.azimuth == 0
sun = sp.calculate_sun(2, 21, 12, True)
assert sun.azimuth == 0

ocean_s = Location('Test', 'Northern Ocean', latitude=50, longitude=0, time_zone=0)
sp = Sunpath.from_location(ocean_s)

sun = sp.calculate_sun(1, 21, 12, True)
assert sun.azimuth == 180
sun = sp.calculate_sun(2, 21, 12, True)
assert sun.azimuth == 180


def test_daylight_saving():
"""Test the applicaiton of daylight saving time."""
nyc = Location('New_York', country='USA', latitude=40.72, longitude=-74.02,
Expand Down
Loading