[Python-modules-commits] [python-pysolar] 06/42: updated and improved (with South latitudes) the comparison code between Pysolar and USNO
Wolfgang Borgert
debacle at moszumanska.debian.org
Fri Oct 3 23:36:58 UTC 2014
This is an automated email from the git hooks/post-receive script.
debacle pushed a commit to tag 0.6
in repository python-pysolar.
commit 85f7c48e70e219d6d85efafbf716f4c9c3f72b6b
Author: dpshelio <dps.helio at gmail.com>
Date: Fri Nov 8 00:08:10 2013 +0200
updated and improved (with South latitudes) the comparison code between Pysolar and USNO
---
Pysolar/query_usno.py | 43 +++++++++++++++++++++++++------------------
1 file changed, 25 insertions(+), 18 deletions(-)
diff --git a/Pysolar/query_usno.py b/Pysolar/query_usno.py
index 4163a18..fd161e2 100644
--- a/Pysolar/query_usno.py
+++ b/Pysolar/query_usno.py
@@ -20,7 +20,8 @@
"""Tool for requesting data from US Naval Observatory
"""
-import datetime, random, solar, time, urllib, urllib2
+import datetime, random, time, urllib, urllib2
+import Pysolar as solar
class Ephemeris:
def __init__(self, timestamp, latitude, longitude, elevation, azimuth=0, altitude=0):
@@ -55,7 +56,7 @@ def RequestEphemerisData(datum):
lines = response.readlines()
response.close()
#print lines
- print lines[21]
+ #print lines[21] # should not we do some try catch here?
result = lines[21]
tokens = filter(lambda x: x not in ' ', result.split(' '))
print 'Tokens: \n', tokens
@@ -103,18 +104,19 @@ def EncodeRequest(latitude, longitude, timestamp, elevation):
params['rep'] = '1'
params['place'] = 'Name omitted'
+ sign = lambda x: ('1', '-1')[x < 0]
(deg, rem) = divmod(longitude, 1)
(min, sec) = divmod(rem, 1.0/60.0)
- params['xx0'] = '1' # longitude (1 = east, -1 = west)
- params['xx1'] = str(deg) # degrees
- params['xx2'] = str(min) # minutes
+ params['xx0'] = sign(deg)# longitude (1 = east, -1 = west)
+ params['xx1'] = str(abs(int(deg))) # degrees
+ params['xx2'] = str(int(min)) # minutes
params['xx3'] = str(sec) # seconds
(deg, rem) = divmod(latitude, 1)
(min, sec) = divmod(rem, 1.0/60.0)
- params['yy0'] = '1' # latitude (1 = north, -1 = south)
- params['yy1'] = str(deg) # degrees
- params['yy2'] = str(min) # minutes
+ params['yy0'] = sign(deg) # latitude (1 = north, -1 = south)
+ params['yy1'] = str(abs(int(deg))) # degrees
+ params['yy2'] = str(int(min)) # minutes
params['yy3'] = str(sec) # seconds
params['hh1'] = str(elevation) # height above sea level in meters
@@ -123,10 +125,10 @@ def EncodeRequest(latitude, longitude, timestamp, elevation):
return data
def GatherRandomEphemeris():
- latitude = random.randrange(0, 90)
+ latitude = random.randrange(-90, 90)
longitude = random.randrange(0, 360)
elevation = 0.0
- t = datetime.datetime(2008, random.randrange(1, 13), random.randrange(1, 28), random.randrange(0, 24), random.randrange(0, 60), random.randrange(0,60))
+ t = datetime.datetime(random.randrange(2012,2014), random.randrange(1, 13), random.randrange(1, 28), random.randrange(0, 24), random.randrange(0, 60), random.randrange(0,60))
query = Ephemeris(t, latitude, longitude, elevation)
PrintEphemerisDatum(query)
d = RequestEphemerisData(query)
@@ -162,30 +164,35 @@ def WriteComparisonsToCSV(comps, filename):
if __name__ == '__main__':
from scipy import stats
+ import numpy as np
import sys
- ephemerides = ReadEphemeridesLog(sys.argv[1])
-
+ if len(sys.argv) >= 2:
+ ephemerides = ReadEphemeridesLog(sys.argv[1])
+ else:
+ for i in range(100):
+ GatherRandomEphemeris()
+ ephemerides = ReadEphemeridesLog('usno_data.txt')
comps = []
for e in ephemerides:
c = ComparePysolarToUSNO(e)
comps.append(c)
- az_errors = [c.az_error for c in comps]
- alt_errors = [c.alt_error for c in comps]
+ az_errors = np.array([c.az_error for c in comps])
+ alt_errors = np.array([c.alt_error for c in comps])
print '---------------------'
print 'Azimuth stats'
- print 'Mean error: ' + str(stats.mean(az_errors))
- print 'Std dev: ' + str(stats.std(az_errors))
+ print 'Mean error: ' + str(np.mean(az_errors))
+ print 'Std dev: ' + str(np.std(az_errors))
print 'Min error: ' + str(stats.tmin(az_errors, None))
print 'Max error: ' + str(stats.tmax(az_errors, None))
print '----------------------'
print 'Altitude stats'
- print 'Mean error: ' + str(stats.mean(alt_errors))
- print 'Std dev: '+ str(stats.std(alt_errors))
+ print 'Mean error: ' + str(np.mean(alt_errors))
+ print 'Std dev: '+ str(np.std(alt_errors))
print 'Min error: ' + str(stats.tmin(alt_errors, None))
print 'Max error: ' + str(stats.tmax(alt_errors, None))
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-pysolar.git
More information about the Python-modules-commits
mailing list