@classmethod<EOL><INDENT>def from_zhang_huang_solar(cls, location, cloud_cover,<EOL>relative_humidity, dry_bulb_temperature,<EOL>wind_speed, atmospheric_pressure=None,<EOL>timestep=<NUM_LIT:1>, is_leap_year=False, use_disc=False):<DEDENT>
<EOL>assert len(cloud_cover) == len(relative_humidity) ==len(dry_bulb_temperature) == len(wind_speed),'<STR_LIT>'<EOL>assert len(cloud_cover) / timestep == cls.hour_count(is_leap_year),'<STR_LIT>'<EOL>assert isinstance(timestep, int), '<STR_LIT>''<STR_LIT>'.format(type(timestep))<EOL>if atmospheric_pressure is not None:<EOL><INDENT>assert len(atmospheric_pressure) == len(cloud_cover),'<STR_LIT>'<EOL><DEDENT>else:<EOL><INDENT>atmospheric_pressure = [<NUM_LIT>] * cls.hour_count(is_leap_year) * timestep<EOL><DEDENT>sp = Sunpath.from_location(location)<EOL>sp.is_leap_year = is_leap_year<EOL>date_times = []<EOL>altitudes = []<EOL>doys = []<EOL>dry_bulb_t3_hrs = []<EOL>for count, t_date in enumerate(cls._get_datetimes(timestep, is_leap_year)):<EOL><INDENT>date_times.append(t_date)<EOL>sun = sp.calculate_sun_from_date_time(t_date)<EOL>altitudes.append(sun.altitude)<EOL>doys.append(sun.datetime.doy)<EOL>dry_bulb_t3_hrs.append(dry_bulb_temperature[count - (<NUM_LIT:3> * timestep)])<EOL><DEDENT>dir_ir, diff_ir = zhang_huang_solar_split(altitudes, doys, cloud_cover,<EOL>relative_humidity,<EOL>dry_bulb_temperature,<EOL>dry_bulb_t3_hrs, wind_speed,<EOL>atmospheric_pressure, use_disc)<EOL>metadata = {'<STR_LIT:source>': location.source, '<STR_LIT>': location.country,<EOL>'<STR_LIT>': location.city}<EOL>direct_norm_rad, diffuse_horiz_rad =cls._get_data_collections(dir_ir, diff_ir, metadata, timestep, is_leap_year)<EOL>return cls(location, direct_norm_rad, diffuse_horiz_rad, timestep, is_leap_year)<EOL>
Create a wea object from climate data using the Zhang-Huang model.

        The Zhang-Huang solar model was developed to estimate solar
        irradiance for weather stations that lack such values, which are
        typically colleted with a pyranometer. Using total cloud cover,
        dry-bulb temperature, relative humidity, and wind speed as
        inputs the Zhang-Huang estimates global horizontal irradiance
        by means of a regression model across these variables.
        For more information on the Zhang-Huang model, see the
        EnergyPlus Engineering Reference:
        https://bigladdersoftware.com/epx/docs/8-7/engineering-reference/climate-calculations.html#zhang-huang-solar-model

        Args:
            location: Ladybug location object.
            cloud_cover: A list of annual float values between 0 and 1
                that represent the fraction of the sky dome covered
                in clouds (0 = clear; 1 = completely overcast)
            relative_humidity: A list of annual float values between
                0 and 100 that represent the relative humidity in percent.
            dry_bulb_temperature: A list of annual float values that
                represent the dry bulb temperature in degrees Celcius.
            wind_speed: A list of annual float values that
                represent the wind speed in meters per second.
            atmospheric_pressure: An optional list of float values that
                represent the atmospheric pressure in Pa.  If None or
                left blank, pressure at sea level will be used (101325 Pa).
            timestep: An optional integer to set the number of time steps per
                hour. Default is 1 for one value per hour.
            is_leap_year: A boolean to indicate if values are representing a leap year.
                Default is False.
            use_disc: Set to True to use the original DISC model as opposed to the
                newer and more accurate DIRINT model. Default is False.