raytraverse.skycalc¶
functions for loading sky data and computing sun position
-
raytraverse.skycalc.
read_epw
(epw)[source]¶ read daylight sky data from epw or wea file
- Returns
out – (month, day, hour, dirnorn, difhoriz)
- Return type
np.array
-
raytraverse.skycalc.
sunpos_utc
(timesteps, lat, lon, builtin=True)[source]¶ Calculate sun position with local time
Calculate sun position (altitude, azimuth) for a particular location (longitude, latitude) for a specific date and time (time is in UTC)
- Parameters
timesteps (np.array(datetime.datetime)) –
lon (float) – longitude in decimals. West is +ve
lat (float) – latitude in decimals. North is +ve
builtin (bool) – use skyfield builtin timescale
- Returns
(skyfield.units.Angle, skyfield.units.Angle)
altitude and azimuth in degrees
-
raytraverse.skycalc.
datetime64_2_datetime
(timesteps, mer=0.0)[source]¶ convert datetime representation and offset for timezone
- Parameters
timesteps (np.array(np.datetime64)) –
mer (float) – Meridian of the time zone. West is +ve
- Returns
- Return type
np.array(datetime.datetime)
-
raytraverse.skycalc.
sunpos_degrees
(timesteps, lat, lon, mer, builtin=True, ro=0.0)[source]¶ Calculate sun position with local time
Calculate sun position (altitude, azimuth) for a particular location (longitude, latitude) for a specific date and time (time is in local time)
- Parameters
timesteps (np.array(np.datetime64)) –
lon (float) – longitude in decimals. West is +ve
lat (float) – latitude in decimals. North is +ve
mer (float) – Meridian of the time zone. West is +ve
builtin (bool, optional) – use skyfield builtin timescale
ro (float, optional) – ccw rotation (project to true north) in degrees
- Returns
Sun position as (altitude, azimuth) in degrees
- Return type
np.array([float, float])
-
raytraverse.skycalc.
sunpos_radians
(timesteps, lat, lon, mer, builtin=True, ro=0.0)[source]¶ Calculate sun position with local time
Calculate sun position (altitude, azimuth) for a particular location (longitude, latitude) for a specific date and time (time is in local time)
- Parameters
timesteps (np.array(np.datetime64)) –
lon (float) – longitude in decimals. West is +ve
lat (float) – latitude in decimals. North is +ve
mer (float) – Meridian of the time zone. West is +ve
builtin (bool) – use skyfield builtin timescale
ro (float, optional) – ccw rotation (project to true north) in radians
- Returns
Sun position as (altitude, azimuth) in radians
- Return type
np.array([float, float])
-
raytraverse.skycalc.
sunpos_xyz
(timesteps, lat, lon, mer, builtin=True, ro=0.0)[source]¶ Calculate sun position with local time
Calculate sun position (altitude, azimuth) for a particular location (longitude, latitude) for a specific date and time (time is in local time)
- Parameters
timesteps (np.array(np.datetime64)) –
lon (float) – longitude in decimals. West is +ve
lat (float) – latitude in decimals. North is +ve
mer (float) – Meridian of the time zone. West is +ve
builtin (bool) – use skyfield builtin timescale
ro (float, optional) – ccw rotation (project to true north) in degrees
- Returns
Sun position as (x, y, z)
- Return type
np.array
-
raytraverse.skycalc.
coeff_lum_perez
(sunz, epsilon, delta, catn)[source]¶ matches coeff_lum_perez in gendaylit.c
-
raytraverse.skycalc.
perez_lum_raw
(tp, dz, sunz, coefs)[source]¶ matches calc_rel_lum_perez in gendaylit.c
-
raytraverse.skycalc.
perez
(sxyz, dirdif, md=None, ground_fac=0.2)[source]¶ compute perez coefficients
Notes
to match the results of gendaylit, for a given sun angle without associated date, the assumed eccentricity is 1.035020
- Parameters
sxyz (np.array) – (N, 3) dx, dy, dz sun position
dirdif (np.array) – (N, 2) direct normal, diffuse horizontal W/m^2
md (np.array, optional) – (N, 2) month day of sky calcs (for more precise eccentricity calc)
ground_fac (float) – scaling factor (reflecctance) for ground brightness
- Returns
perez – (N, 10) diffuse normalization, ground brightness, perez coefs, x, y, z
- Return type
np.array
-
raytraverse.skycalc.
sky_mtx
(sxyz, dirdif, side, jn=4, ground_fac=0.2)[source]¶ generate sky, ground and sun values from sun position and sky values
- Parameters
sxyz (np.array) – sun directions (N, 3)
dirdif (np.array) – direct normal and diffuse horizontal radiation (W/m^2) (N, 2)
side (int) – sky subdivision
jn (int) – sky patch subdivision n = jn^2
ground_fac (float) – scaling factor (reflecctance) for ground brightness
- Returns
skymtx (np.array) – (N, side*side)
grndval (np.array) – (N,)
sunval (np.array) – (N, 4) - sun direction and radiance