Unable to turn off HVAC cooling in UWG Python (Southern Hemisphere summer): No temperature changes in output EPW

Hello everyone,

I am working on an Urban Weather Generator (UWG) simulation using the pure Python library. I am analyzing the Urban Heat Island (UHI) effect for a city in Chile (Southern Hemisphere) during our summer months: December, January, February, and March.

The Goal: I want to simulate a scenario where residential air conditioning (cooling) is completely turned off for specific building archetypes (e.g., midriseapartment).

The Problem: No matter how I try to disable the HVAC cooling, the output EPW temperatures remain exactly the same as the baseline simulation. There is zero difference in the final data.

What I have tried so far: I have tried programmatically modifying the cooling schedules in my Python script. Right after calling uwg_model.generate() and before uwg_model.simulate(), I iterate through uwg_model.BEM and uwg_model.Sch to force the cooling setpoint to 99°C for the target archetypes. Something like this:

Python

# Forcing AC off by setting an unreachable cooling setpoint
sch.cool = [[99.0] * 24 for _ in range(3)]

The code runs perfectly without any errors, but the resulting EPW shows absolutely no changes in the urban canyon temperatures or any other variable.

My Hypothesis: Since I am simulating December through March, is it possible that UWG’s internal DOE reference schedules are hardcoded for the Northern Hemisphere? If the model assumes December-March is “Winter”, the AC might already be turned off by default in those months. If that is the case, setting the cooling setpoint to 99°C wouldn’t make any mathematical difference, explaining why my outputs don’t change.

My Questions:

  1. How can I successfully and definitively turn off the AC/cooling during summer using the UWG Python library?

  2. Is there a Northern Hemisphere seasonal bias in the default schedules, and if so, how can I properly invert or override the seasons for a Southern Hemisphere simulation?

Any guidance, code snippets, or workarounds would be incredibly appreciated. Thank you!