I posted a new version (see original post for files to download). Recent changes:
` %(#00BF00)[# Rev. | .Date..... | Notes
-----|------------|-----------------------------------
0.98 | 2013-08-11 | Add ability to read weather data from TMY3 file
.... | .......... | Bug: in fine/tmy3 mode, adjust for surface tilt
.... | .......... | based on beam strength on horiz. surface, not to
.... | .......... | normal-to-beam surface
0.97 | 2013-08-07 | Bug: remove Numeric class overloads, make help
.... | .......... | file search relative]`
The enhancement in v0.98 lets you calculate the daylight factor as a ratio of observed weather to clear sky (Bird-Hulstrum model). So for example, this is the clear sky expectation over the course of a year for some geometry geolocated in Seattle, Washington (note the max daylight factor appearing in the bottom left corner area):
http://farm8.staticflickr.com/7408/9489912899_8d30b0ac60.jpg
Using a weather file from Seattle, the daylight factor looked like this:
http://farm8.staticflickr.com/7370/9492664718_87f5fbc91c.jpg
In other words, over a typical year the cloud cover allows only 78% of the theoretical maximum sunlight reaching a horizontal surface.
Contrast that with the same geometry geolocated to Phoenix, Arizona. This is the daylight factor using the Phoenix TMY3 weather file. Very little cloud cover.
http://farm8.staticflickr.com/7385/9492657232_c8a9a7ae59.jpg
In TMY3 mode (a.k.a weather file), I could also have displayed the results in terms of watts per square meter, to get an idea of the amount of solar energy I could capture with a photovoltaic array. Note, however, that you would have to factor in PV efficiency (or inefficiency).
It should also be noted that the computations currently take a while. The above test uses really simple geometry. Here is what is being calculated:
triangulated network of 96 faces to analyze
27 faces make up the shading structure
analyzed from Jan 1 through Dec 31
run on a laptop with a core2 duo processor @2.26Ghz, 32 bit OS, 3GB ram
and it takes 126 secondsto crunch.
Hence the need for this plugin:
http://sketchucation.com/forums/viewtopic.php?f=323&t=53685.
Profiling the code when it's trying to simulate a run of 15 days showed the following:
% cumulative self self total
time seconds seconds calls ms/call ms/call name
41.80 285.60 285.60 660648 0.43 0.60 BM_SimpleSolarStudy.inShadow
20.81 427.80 142.20 81464 1.75 23.65 Range#each
5.69 466.65 38.84 2404861 0.02 0.02 Array#[]
3.80 492.60 25.96 59682 0.43 0.78 BM_SimpleSolarStudy.adjustForTilt
1.89 505.49 12.88 660648 0.02 0.02 Geom.intersect_line_plane
1.81 517.84 12.36 660648 0.02 0.02 Sketchup;;Face#plane
1.70 529.47 11.63 660857 0.02 0.02 String#to_i
1.68 540.93 11.46 660648 0.02 0.02 Sketchup;;Face#classify_point
1.66 552.26 11.33 660648 0.02 0.02 Geom;;Point3d#-
1.63 563.41 11.15 661263 0.02 0.02 Hash#[]
1.62 574.51 11.10 662207 0.02 0.02 Fixnum#==
1.58 585.31 10.80 662137 0.02 0.02 Kernel.nil?
1.53 595.79 10.48 660853 0.02 0.02 Fixnum#&
1.51 606.14 10.35 661345 0.02 0.02 Fixnum#>
1.49 616.29 10.15 660648 0.02 0.02 Sketchup;;Drawingelement#hidden?
1.40 625.85 9.56 144037 0.07 0.10 Numeric#to_rad
0.98 632.53 6.68 203 32.89 32.89 Sketchup;;Drawingelement#material=
0.91 638.75 6.22 660851 0.01 0.01 Kernel.==
0.80 644.20 5.45 388599 0.01 0.01 Float#*
0.71 649.05 4.85 63402 0.08 0.10 Numeric#to_deg
0.62 653.26 4.22 119364 0.04 0.05 Geom;;Vector3d#new
0.61 657.43 4.16 744 5.60 13.40 BM_SimpleSolarStudy;;SSS_sunData#calcSun