|
Packit |
0986c0 |
#
|
|
Packit |
0986c0 |
# Calculate solar path in horizontal coordinates (altitude, azimuth)
|
|
Packit |
0986c0 |
# Use gnuplot's polar mode with inverted R range so that the horizon
|
|
Packit |
0986c0 |
# (altitude 0°) is at the perimeter and altitude 90° is at the center.
|
|
Packit |
0986c0 |
#
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
save_encoding = GPVAL_ENCODING
|
|
Packit |
0986c0 |
set encoding utf8
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
set label 1 at screen 0.02, 0.95 font ":Bold,10"
|
|
Packit |
0986c0 |
set label 1 "Solar path at\nLatitude 47.67 N"
|
|
Packit |
0986c0 |
set timestamp "Seattle - %d %b %Y" offset 1,1
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
# Set up equations for Azimuth(t) and Altitude(t) as a function of
|
|
Packit |
0986c0 |
# t = seconds before or after solar noon on the day of interest
|
|
Packit |
0986c0 |
# at a particular latitude.
|
|
Packit |
0986c0 |
# Here we calculate for Seattle (47.67 N -122.28 W)
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
Latitude = 47.67
|
|
Packit |
0986c0 |
Longitude = -122.28
|
|
Packit |
0986c0 |
Date = "21-12-2016"
|
|
Packit |
0986c0 |
call 'solar_params.dem'
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
array dummy[150]
|
|
Packit |
0986c0 |
array winter_alt[150]; array winter_azi[150]
|
|
Packit |
0986c0 |
time = -12 * Hour
|
|
Packit |
0986c0 |
do for [t = 1 : 150] {
|
|
Packit |
0986c0 |
winter_alt[t] = Altitude(time)
|
|
Packit |
0986c0 |
winter_azi[t] = Azimuth(time)
|
|
Packit |
0986c0 |
time = time + 10 * Minute
|
|
Packit |
0986c0 |
}
|
|
Packit |
0986c0 |
print Date, " sunrise ", sunrise, " sunset ", sunset, " sunlight ", sunlight
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
Date = "22-06-2017"
|
|
Packit |
0986c0 |
call 'solar_params.dem'
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
array summer_alt[150]; array summer_azi[150]
|
|
Packit |
0986c0 |
time = -12 * Hour
|
|
Packit |
0986c0 |
do for [t = 1 : 150] {
|
|
Packit |
0986c0 |
summer_alt[t] = Altitude(time)
|
|
Packit |
0986c0 |
summer_azi[t] = Azimuth(time)
|
|
Packit |
0986c0 |
time = time + 10 * Minute
|
|
Packit |
0986c0 |
}
|
|
Packit |
0986c0 |
print Date, " sunrise ", sunrise, " sunset ", sunset, " sunlight ", sunlight
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
Date = strftime("%d-%m-%Y",time(0) + Day*Longitude/360.)
|
|
Packit |
0986c0 |
call 'solar_params.dem'
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
array today_alt[150]; array today_azi[150]
|
|
Packit |
0986c0 |
time = -12 * Hour
|
|
Packit |
0986c0 |
do for [t = 1 : 150] {
|
|
Packit |
0986c0 |
today_alt[t] = Altitude(time)
|
|
Packit |
0986c0 |
today_azi[t] = Azimuth(time)
|
|
Packit |
0986c0 |
dummy[t] = time
|
|
Packit |
0986c0 |
time = time + 10 * Minute
|
|
Packit |
0986c0 |
}
|
|
Packit |
0986c0 |
print Date, " sunrise ", sunrise, " sunset ", sunset, " sunlight ", sunlight
|
|
Packit |
0986c0 |
today = "Today ☉ \n".sunlight."\nof sunlight"
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
#
|
|
Packit |
0986c0 |
set angle degrees
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
set polar
|
|
Packit |
0986c0 |
set grid polar
|
|
Packit |
0986c0 |
unset xtics
|
|
Packit |
0986c0 |
unset ytics
|
|
Packit |
0986c0 |
unset border
|
|
Packit |
0986c0 |
unset key
|
|
Packit |
0986c0 |
set size square
|
|
Packit |
0986c0 |
set rrange [90:0]
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
set ttics add ("N" 0, "E" 90, "S" 180, "W" -90) font ":Bold"
|
|
Packit |
0986c0 |
set rtics format "%.0f°"
|
|
Packit |
0986c0 |
set rtics 30
|
|
Packit |
0986c0 |
set rlabel "Altitude" offset -2 font ":Bold"
|
|
Packit |
0986c0 |
set border polar
|
|
Packit |
0986c0 |
set style data lines
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
# By convention North (azimuth 0°) is at the top with angles increasing clockwise
|
|
Packit |
0986c0 |
set theta top clockwise
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
plot dummy using (winter_azi[$1]):(winter_alt[$1]) lw 2 title " Winter Solstice" at beg left, \
|
|
Packit |
0986c0 |
dummy using (summer_azi[$1]):(summer_alt[$1]) lw 2 title " Summer Solstice" at beg left, \
|
|
Packit |
0986c0 |
dummy using (today_azi[$1]):(today_alt[$1]) lw 2 title today at end right
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
pause -1 "<cr> to continue"
|
|
Packit |
0986c0 |
|
|
Packit |
0986c0 |
set encoding save_encoding
|
|
Packit |
0986c0 |
reset
|