Hi @MingboPeng and @Xiufang, There is so much going on here in one topic but I try to address the main questions here.
Wea file
For all the annual simulations as you both pointed out Honeybee uses wea file to generate the sky. Wea file is originally used by Daysim (https://daysim.ning.com/page/daysim-file-type-daysim-weather-file) and include direct and diffuse irradiance/radiation values for each hour. Honeybee exactly follows the structure of the file.
Direct and diffuse radiation values are cumulative values that are measured during the last hour. For example the value for 12 29 17 in the weather file is measured from hour 16 to hour 17. Now what would be the best sun position to represent this value? Wea uses the time between the start and end (16:30) in this case. That’s the position that we also use in Honeybee[+].
Point in time climate-based sky
We use the same logic in point-in-time sky component so the radiation values should match but the altitude and azimuth in gendaylit is calculated using Radiance and not Ladybug sunpath. Ladybug is actually more accurate. The inaccuracies in Radiance sunpath are known but they are not major. See here:
We can address this by using gendaylit -ang altitude azimuth option instead and calculate the sun position from Ladybug. Haven’t thought about it before but it is totally doable.