[Bf-extensions-cvs] [d8250250] master: lamp_geographical_sun T49359 fix mess with east and west
Stephen Leger
noreply at git.blender.org
Sun Jul 30 01:23:52 CEST 2017
Commit: d82502502bd3196d1d19dda55649659e8b347b1c
Author: Stephen Leger
Date: Sun Jul 30 01:19:38 2017 +0200
Branches: master
https://developer.blender.org/rBACd82502502bd3196d1d19dda55649659e8b347b1c
lamp_geographical_sun T49359 fix mess with east and west
===================================================================
M lamp_geographical_sun.py
===================================================================
diff --git a/lamp_geographical_sun.py b/lamp_geographical_sun.py
index 812dc64a..845364d8 100644
--- a/lamp_geographical_sun.py
+++ b/lamp_geographical_sun.py
@@ -31,13 +31,13 @@ import datetime, math, time
today = datetime.datetime.now()
# Blender imports
-#-----------------------------------------------------------------------------
+#-----------------------------------------------------------------------------
import bpy
from extensions_framework import Addon, declarative_property_group
from extensions_framework.ui import property_group_renderer
# Addon setup
-#-----------------------------------------------------------------------------
+#-----------------------------------------------------------------------------
bl_info = {
"name": "Geographical Sun",
"author": "Doug Hammond (dougal2)",
@@ -53,7 +53,7 @@ bl_info = {
GeoSunAddon = Addon(bl_info)
# Sun rotation calculator implementation
-#-----------------------------------------------------------------------------
+#-----------------------------------------------------------------------------
class sun_calculator(object):
"""
Based on SunLight v1.0 by Miguel Kabantsov (miguelkab at gmail.com)
@@ -61,7 +61,7 @@ class sun_calculator(object):
Co-Ordinates: http://www.bcca.org/misc/qiblih/latlong.html
Author: Nils-Peter Fischer (Nils-Peter.Fischer at web.de)
"""
-
+
location_list = [
("EUROPE",[
("Antwerp, Belgium", 67),
@@ -85,7 +85,7 @@ class sun_calculator(object):
("Wroclaw, Poland", 73),
("Zurich, Switzerland", 21),
]),
-
+
("WORLD CITIES", [
("Beijing, China", 0),
("Bombay, India", 2),
@@ -107,7 +107,7 @@ class sun_calculator(object):
("Sydney, Australia", 19),
("Tokyo, Japan", 20),
]),
-
+
("US CITIES", [
("Albuquerque, NM", 22),
("Anchorage, AK", 23),
@@ -147,111 +147,111 @@ class sun_calculator(object):
("Washington DC", 57),
])
]
-
+
location_data = {
# Europe
- 67: ( 51.2167, -4.4, 1),
- 1: ( 52.33, -13.30, 1),
- 70: ( 48.17, -17.17, 1),
- 72: ( 49.2, -16.63, 1),
- 68: ( 58.8467, -4.3525, 1),
- 65: ( 46.217, -6.150, 1),
- 7: ( 60.1667, -24.9667,2),
- 62: ( 47.2672, -11.3928, 1),
- 64: ( 50.75, -30.0833, 2),
+ 67: ( 51.2167, 4.4, 1),
+ 1: ( 52.33, 13.30, 1),
+ 70: ( 48.17, 17.17, 1),
+ 72: ( 49.2, 16.63, 1),
+ 68: ( 58.8467, 4.3525, 1),
+ 65: ( 46.217, 6.150, 1),
+ 7: ( 60.1667, 24.9667,2),
+ 62: ( 47.2672, 11.3928, 1),
+ 64: ( 50.75, 30.0833, 2),
10: ( 51.50, 0.0, 0),
- 66: ( 45.767, -4.833, 1),
- 69: ( 48.32, -18.07, 1),
- 58: ( 59.56, -10.41, 1),
- 15: ( 48.8667, -2.667, 1),
- 71: ( 50.08, -14.46, 1),
- 18: ( 41.90, -12.4833, 1),
- 63: ( 47.3, -11.0667, 1),
- 74: ( 52.232, -21.008, 1),
- 73: ( 51.108, -17.038, 1),
- 21: ( 47.3833, -8.5333, 1),
-
+ 66: ( 45.767, 4.833, 1),
+ 69: ( 48.32, 18.07, 1),
+ 58: ( 59.56, 10.41, 1),
+ 15: ( 48.8667, 2.667, 1),
+ 71: ( 50.08, 14.46, 1),
+ 18: ( 41.90, 12.4833, 1),
+ 63: ( 47.3, 11.0667, 1),
+ 74: ( 52.232, 21.008, 1),
+ 73: ( 51.108, 17.038, 1),
+ 21: ( 47.3833, 8.5333, 1),
+
# World Cities
- 0: ( 39.9167, -116.4167, 8),
- 2: ( 18.9333, -72.8333, 5.5),
- 3: (-34.60, 58.45, -3),
- 4: ( 30.10, -31.3667, 2),
- 5: (-33.9167, -18.3667, 2),
- 6: ( 10.50, 66.9333, -4),
- 60: (-25.4278, 49.2731, -3),
- 8: ( 22.25, -114.1667, 8),
- 9: ( 31.7833, -35.2333, 2),
- 61: (-29.3044, 48.8456, -3),
- 11: ( 19.4, 99.15, -6),
- 12: ( 55.75, -37.5833, 3),
- 13: ( 28.6, -77.2, 5.5),
- 14: ( 45.41667, 75.7, -5),
- 16: (-22.90, 43.2333, -3),
- 17: ( 24.633, -46.71667, 3),
- 59: ( -23.5475, 46.6361, -3),
- 19: (-33.8667, -151.2167,10),
- 20: ( 35.70, -139.7667, 9),
-
+ 0: ( 39.9167, 116.4167, 8),
+ 2: ( 18.9333, 72.8333, 5.5),
+ 3: (-34.60, -58.45, -3),
+ 4: ( 30.10, 31.3667, 2),
+ 5: (-33.9167, 18.3667, 2),
+ 6: ( 10.50, -66.9333, -4),
+ 60: (-25.4278, -49.2731, -3),
+ 8: ( 22.25, 114.1667, 8),
+ 9: ( 31.7833, 35.2333, 2),
+ 61: (-29.3044, -48.8456, -3),
+ 11: ( 19.4, -99.15, -6),
+ 12: ( 55.75, 37.5833, 3),
+ 13: ( 28.6, 77.2, 5.5),
+ 14: ( 45.41667, -75.7, -5),
+ 16: (-22.90, -43.2333, -3),
+ 17: ( 24.633, 46.71667, 3),
+ 59: ( -23.5475, -46.6361, -3),
+ 19: (-33.8667, 151.2167,10),
+ 20: ( 35.70, 139.7667, 9),
+
# US Cities
- 22: ( 35.0833, 106.65, -7),
- 23: ( 61.217, 149.90, -9),
- 24: ( 33.733, 84.383, -5),
- 25: ( 30.283, 97.733, -6),
- 26: ( 33.521, 86.8025, -6),
- 27: ( 46.817, 100.783, -6),
- 28: ( 42.35, 71.05, -5),
- 29: ( 40.125, 105.237, -7),
- 30: ( 41.85, 87.65, -6),
- 31: ( 32.46, 96.47, -6),
- 32: ( 39.733, 104.983, -7),
- 33: ( 42.333, 83.05, -5),
- 34: ( 21.30, 157.85, -10),
- 35: ( 29.75, 95.35, -6),
- 36: ( 39.767, 86.15, -5),
- 37: ( 32.283, 90.183, -6),
- 38: ( 39.083, 94.567, -6),
- 39: ( 34.05, 118.233, -8),
- 40: ( 43.11, 88.10, -6),
- 41: ( 25.767, 80.183, -5),
- 42: ( 44.967, 93.25, -6),
- 43: ( 29.95, 90.067, -6),
- 44: ( 40.7167, 74.0167, -5),
- 45: ( 35.483, 97.533, -6),
- 46: ( 39.95, 75.15, -5),
- 47: ( 33.433, 112.067,-7),
- 48: ( 40.433, 79.9833, -5),
- 49: ( 43.666, 70.283, -5),
- 50: ( 45.517, 122.65, -8),
- 51: ( 35.783, 78.65, -5),
- 52: ( 37.5667, 77.450, -5),
- 53: ( 38.6167, 90.1833, -6),
- 54: ( 32.7667, 117.2167, -8),
- 55: ( 37.7667, 122.4167, -8),
- 56: ( 47.60, 122.3167, -8),
- 57: ( 38.8833, 77.0333, -5),
+ 22: ( 35.0833, -106.65, -7),
+ 23: ( 61.217, -149.90, -9),
+ 24: ( 33.733, -84.383, -5),
+ 25: ( 30.283, -97.733, -6),
+ 26: ( 33.521, -86.8025, -6),
+ 27: ( 46.817, -100.783, -6),
+ 28: ( 42.35, -71.05, -5),
+ 29: ( 40.125, -105.237, -7),
+ 30: ( 41.85, -87.65, -6),
+ 31: ( 32.46, -96.47, -6),
+ 32: ( 39.733, -104.983, -7),
+ 33: ( 42.333, -83.05, -5),
+ 34: ( 21.30, -157.85, -10),
+ 35: ( 29.75, -95.35, -6),
+ 36: ( 39.767, -86.15, -5),
+ 37: ( 32.283, -90.183, -6),
+ 38: ( 39.083, -94.567, -6),
+ 39: ( 34.05, -118.233, -8),
+ 40: ( 43.11, -88.10, -6),
+ 41: ( 25.767, -80.183, -5),
+ 42: ( 44.967, -93.25, -6),
+ 43: ( 29.95, -90.067, -6),
+ 44: ( 40.7167, -74.0167, -5),
+ 45: ( 35.483, -97.533, -6),
+ 46: ( 39.95, -75.15, -5),
+ 47: ( 33.433, -112.067,-7),
+ 48: ( 40.433, -79.9833, -5),
+ 49: ( 43.666, -70.283, -5),
+ 50: ( 45.517, -122.65, -8),
+ 51: ( 35.783, -78.65, -5),
+ 52: ( 37.5667, -77.450, -5),
+ 53: ( 38.6167, -90.1833, -6),
+ 54: ( 32.7667, -117.2167, -8),
+ 55: ( 37.7667, -122.4167, -8),
+ 56: ( 47.60, -122.3167, -8),
+ 57: ( 38.8833, -77.0333, -5),
}
-
+
# mathematical helpers
@staticmethod
def sind(deg):
return math.sin(math.radians(deg))
-
+
@staticmethod
def cosd(deg):
return math.cos(math.radians(deg))
-
+
@staticmethod
def tand(deg):
return math.tan(math.radians(deg))
-
+
@staticmethod
def asind(deg):
return math.degrees(math.asin(deg))
-
+
@staticmethod
def atand(deg):
return math.degrees(math.atan(deg))
-
+
@staticmethod
def geo_sun_astronomicJulianDate(Year, Month, Day, LocalTime, Timezone):
if Month > 2.0:
@@ -260,13 +260,13 @@ class sun_calculator(object):
else:
Y = Year - 1.0
M = Month + 12.0
-
+
UT = LocalTime - Timezone
hour = UT / 24.0
A = int(Y/100.0)
-
+
JD = math.floor(365.25*(Y+4716.0)) + math.floor(30.6001*(M+1.0)) + Day + hour - 1524.4
-
+
# The following section is adopted from netCDF4 netcdftime implementation.
# Copyright: 2008 by Jeffrey Whitaker
# License: http://www.opensource.org/licenses/mit-license.php
@@ -279,71 +279,71 @@ class sun_calculator(object):
else:
raise Exception('ERROR: Date falls in the gap between Julian and Gregorian calendars.')
B = 0
-
+
return JD+B
-
+
@staticmethod
def geoSunData(Latitude, Longitude, Year, Month, Day, LocalTime, Timezone):
JD = sun_calculator.geo_sun_astronomicJulianDate(Year, Month, Day, LocalTime, Timezone)
-
+
phi = Latitude
llambda = Longitude
-
+
n = JD - 2451545.0
LDeg = (280.460 + 0.9856474*n) - (math.floor((280.460 + 0.9856474*n)/360.0) * 360.0)
gDeg = (357.528 + 0.9856003*n) - (math.floor((357.528 + 0.9856003*n)/360.0) * 360.0)
LambdaDeg = LDeg + 1.915 * sun_calculator.sind(gDeg) + 0.02 * sun_calculator.sind(2.0*gDeg)
-
+
epsilonDeg = 23.439 - 0.0000004*n
-
+
alphaDeg = sun_calculator.atand( (sun_calculator.cosd(epsilonDeg) * sun_calculator.sind(LambdaDeg)) / sun_calculator.cosd(LambdaDeg) )
if sun_calculator.cosd(LambdaDeg) < 0.0:
alphaDeg += 180.0
-
+
deltaDeg = sun_calculator.asind( sun_calculator.sind(epsilonDeg) * sun_calculator.sind(LambdaDeg) )
-
+
JDNull = sun_calculator.geo_sun_astronomicJulianDate(Year, Month, Day, 0.0, 0.0)
-
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list