This is an automated email from the git hooks/post-receive script. a_valentino-guest pushed a commit to branch upstream in repository pyorbital.
commit 2afd90f7f79881d04403550f1d9026222f8ec531 Author: Antonio Valentino <[email protected]> Date: Sun Oct 30 07:44:55 2016 +0000 New upstream version 1.1.0 --- .travis.yml | 3 +++ changelog.rst | 15 +++++++++++++++ pyorbital/geoloc.py | 7 +++++-- pyorbital/geoloc_example.py | 2 +- pyorbital/orbital.py | 2 +- pyorbital/tests/test_aiaa.py | 6 +++--- pyorbital/tests/test_geoloc.py | 6 +++--- pyorbital/tests/test_orbital.py | 10 +++++----- pyorbital/tests/test_tlefile.py | 6 +++--- pyorbital/tlefile.py | 35 ++++++++++++++++++++++++----------- pyorbital/version.py | 2 +- 11 files changed, 64 insertions(+), 30 deletions(-) diff --git a/.travis.yml b/.travis.yml index e312646..1badffc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,9 @@ language: python python: - '2.6' - '2.7' +- "3.3" +- "3.4" +- "3.5" install: - pip install . - pip install coveralls diff --git a/changelog.rst b/changelog.rst index c858212..17619cf 100644 --- a/changelog.rst +++ b/changelog.rst @@ -1,6 +1,21 @@ Changelog ========= +v1.1.0 (2016-10-27) +------------------- + +- Update changelog. [Martin Raspaud] + +- Bump version: 1.0.1 → 1.1.0. [Martin Raspaud] + +- Merge branch 'master' into develop. [Martin Raspaud] + +- Enable travis testing for py3. [Antonio Valentino] + +- Fix regression in TLE reading. [Antonio Valentino] + +- Python 3 compatibility. [Antonio Valentino] + v1.0.1 (2016-02-17) ------------------- diff --git a/pyorbital/geoloc.py b/pyorbital/geoloc.py index 7ec4932..2589705 100644 --- a/pyorbital/geoloc.py +++ b/pyorbital/geoloc.py @@ -29,6 +29,8 @@ # - optimize !!! # - test !!! +from __future__ import print_function + import numpy as np from numpy import cos, sin, sqrt from datetime import timedelta @@ -207,9 +209,10 @@ def get_lonlatalt(pos, utc_time): # END OF DIRTY STUFF -def compute_pixels((tle1, tle2), sgeom, times, rpy=(0.0, 0.0, 0.0)): +def compute_pixels(tle, sgeom, times, rpy=(0.0, 0.0, 0.0)): """Compute cartesian coordinates of the pixels in instrument scan. """ + (tle1, tle2) = tle orb = Orbital("mysatellite", line1=tle1, line2=tle2) # get position and velocity for each time of each pixel @@ -298,4 +301,4 @@ if __name__ == '__main__': # print the lonlats for the pixel positions s_times = sgeom.times(t) pixels_pos = compute_pixels((noaa18_tle1, noaa18_tle2), sgeom, s_times) - print get_lonlatalt(pixels_pos, s_times) + print(get_lonlatalt(pixels_pos, s_times)) diff --git a/pyorbital/geoloc_example.py b/pyorbital/geoloc_example.py index 1200374..5982603 100644 --- a/pyorbital/geoloc_example.py +++ b/pyorbital/geoloc_example.py @@ -59,7 +59,7 @@ s_times = sgeom.times(t) pixels_pos = compute_pixels((tle1, tle2), sgeom, s_times, rpy) pos_time = get_lonlatalt(pixels_pos, s_times) -print pos_time +print(pos_time) # Plot the result diff --git a/pyorbital/orbital.py b/pyorbital/orbital.py index 5860ec7..48a4875 100644 --- a/pyorbital/orbital.py +++ b/pyorbital/orbital.py @@ -812,4 +812,4 @@ if __name__ == "__main__": lon, lat = np.rad2deg((lon, lat)) az, el = o.get_observer_look(t, obs_lon, obs_lat, obs_alt) ob = o.get_orbit_number(t, tbus_style=True) - print az, el, ob + print(az, el, ob) diff --git a/pyorbital/tests/test_aiaa.py b/pyorbital/tests/test_aiaa.py index 40f47c2..5c1fd07 100644 --- a/pyorbital/tests/test_aiaa.py +++ b/pyorbital/tests/test_aiaa.py @@ -24,7 +24,7 @@ """ # TODO: right formal unit tests. -from __future__ import with_statement +from __future__ import with_statement, print_function import os @@ -102,10 +102,10 @@ class AIAAIntegrationTest(unittest.TestCase): try: o = LineOrbital("unknown", line1, line2) - except NotImplementedError, e: + except NotImplementedError as e: test_line = f__.readline() continue - except ChecksumError, e: + except ChecksumError as e: self.assertTrue(test_line.split()[1] in ["33333", "33334", "33335"]) for delay in times: try: diff --git a/pyorbital/tests/test_geoloc.py b/pyorbital/tests/test_geoloc.py index a2a69cc..79c1fbb 100644 --- a/pyorbital/tests/test_geoloc.py +++ b/pyorbital/tests/test_geoloc.py @@ -98,9 +98,9 @@ class TestGeoloc(unittest.TestCase): start_of_scan = datetime(2014, 1, 8, 11, 30) times = instrument.times(start_of_scan) - self.assertEquals(times[1], start_of_scan) - self.assertEquals(times[0], start_of_scan - timedelta(seconds=0.1)) - self.assertEquals(times[2], start_of_scan + timedelta(seconds=0.1)) + self.assertEqual(times[1], start_of_scan) + self.assertEqual(times[0], start_of_scan - timedelta(seconds=0.1)) + self.assertEqual(times[2], start_of_scan + timedelta(seconds=0.1)) def test_geodetic_lat(self): """Test the determination of the geodetic latitude. diff --git a/pyorbital/tests/test_orbital.py b/pyorbital/tests/test_orbital.py index 9704ca6..5238136 100644 --- a/pyorbital/tests/test_orbital.py +++ b/pyorbital/tests/test_orbital.py @@ -52,9 +52,9 @@ class Test(unittest.TestCase): expected_lon = -68.199894472013213 expected_lat = 23.159747677881075 expected_alt = 392.01953430856935 - self.failUnless(np.abs(lon - expected_lon) < eps_deg, 'Calculation of sublon failed') - self.failUnless(np.abs(lat - expected_lat) < eps_deg, 'Calculation of sublat failed') - self.failUnless(np.abs(alt - expected_alt) < eps_deg, 'Calculation of altitude failed') + self.assertTrue(np.abs(lon - expected_lon) < eps_deg, 'Calculation of sublon failed') + self.assertTrue(np.abs(lat - expected_lat) < eps_deg, 'Calculation of sublat failed') + self.assertTrue(np.abs(alt - expected_alt) < eps_deg, 'Calculation of altitude failed') def test_observer_look(self): @@ -65,8 +65,8 @@ class Test(unittest.TestCase): az, el = sat.get_observer_look(d, -84.39733, 33.775867, 0) expected_az = 122.45169655331965 expected_el = 1.9800219611255456 - self.failUnless(np.abs(az - expected_az) < eps_deg, 'Calculation of azimut failed') - self.failUnless(np.abs(el - expected_el) < eps_deg, 'Calculation of elevation failed') + self.assertTrue(np.abs(az - expected_az) < eps_deg, 'Calculation of azimut failed') + self.assertTrue(np.abs(el - expected_el) < eps_deg, 'Calculation of elevation failed') def test_orbit_num_an(self): sat = orbital.Orbital("METOP-A", diff --git a/pyorbital/tests/test_tlefile.py b/pyorbital/tests/test_tlefile.py index b7e41e1..4ddb373 100644 --- a/pyorbital/tests/test_tlefile.py +++ b/pyorbital/tests/test_tlefile.py @@ -42,7 +42,7 @@ class TLETest(unittest.TestCase): ISS (ZARYA) 1 25544U 98067A 08264.51782528 -.00002182 00000-0 -11606-4 0 2927 2 25544 51.6416 247.4627 0006703 130.5360 325.0288 15.72125391563537 - + """ def check_example(self, tle): @@ -83,7 +83,7 @@ class TLETest(unittest.TestCase): from os import write, close, remove filehandle, filename = mkstemp() try: - write(filehandle, "\n".join([line0, line1, line2])) + write(filehandle, "\n".join([line0, line1, line2]).encode('utf-8')) close(filehandle) tle = Tle("ISS (ZARYA)", filename) self.check_example(tle) @@ -97,6 +97,6 @@ def suite(): loader = unittest.TestLoader() mysuite = unittest.TestSuite() mysuite.addTest(loader.loadTestsFromTestCase(TLETest)) - + return mysuite diff --git a/pyorbital/tlefile.py b/pyorbital/tlefile.py index 1d57775..d2d016d 100644 --- a/pyorbital/tlefile.py +++ b/pyorbital/tlefile.py @@ -23,9 +23,13 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. +import io import logging import datetime -import urllib2 +try: + from urllib2 import urlopen +except ImportError: + from urllib.request import urlopen import os import glob @@ -140,7 +144,7 @@ def fetch(destination): """ with open(destination, "w") as dest: for url in TLE_URLS: - response = urllib2.urlopen(url) + response = urlopen(url) dest.write(response.read()) @@ -221,34 +225,39 @@ class Tle(object): if self._line1 is not None and self._line2 is not None: tle = self._line1.strip() + "\n" + self._line2.strip() else: + def _open(filename): + return io.open(filename, 'rb') + if self._tle_file: urls = (self._tle_file,) - open_func = open + open_func = _open elif "TLES" in os.environ: # TODO: get the TLE file closest in time to the actual satellite # overpass, NOT the latest! urls = (max(glob.glob(os.environ["TLES"]), key=os.path.getctime), ) LOGGER.debug("Reading TLE from %s", urls[0]) - open_func = open + open_func = _open else: LOGGER.debug("Fetch TLE from the internet.") urls = TLE_URLS - open_func = urllib2.urlopen + open_func = urlopen tle = "" designator = "1 " + SATELLITES.get(self._platform, '') for url in urls: fid = open_func(url) for l_0 in fid: + l_0 = l_0.decode('utf-8') if l_0.strip() == self._platform: - l_1, l_2 = fid.next(), fid.next() + l_1 = next(fid).decode('utf-8') + l_2 = next(fid).decode('utf-8') tle = l_1.strip() + "\n" + l_2.strip() break if(self._platform in SATELLITES and l_0.strip().startswith(designator)): l_1 = l_0 - l_2 = fid.next() + l_2 = next(fid).decode('utf-8') tle = l_1.strip() + "\n" + l_2.strip() LOGGER.debug("Found platform %s, ID: %s", self._platform, @@ -306,10 +315,14 @@ class Tle(object): def __str__(self): import pprint - import StringIO - s_var = StringIO.StringIO() + import sys + if sys.version_info < (3, 0): + from StringIO import StringIO + else: + from io import StringIO + s_var = StringIO() d_var = dict(([(k, v) for k, v in - self.__dict__.items() if k[0] != '_'])) + list(self.__dict__.items()) if k[0] != '_'])) pprint.pprint(d_var, s_var) return s_var.getvalue()[:-1] @@ -317,7 +330,7 @@ def main(): '''Main for testing TLE reading. ''' tle_data = read('Noaa-19') - print tle_data + print(tle_data) if __name__ == '__main__': main() diff --git a/pyorbital/version.py b/pyorbital/version.py index b632c1e..b233f3b 100644 --- a/pyorbital/version.py +++ b/pyorbital/version.py @@ -23,4 +23,4 @@ """Version file. """ -__version__ = "v1.0.1" +__version__ = "v1.1.0" -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pyorbital.git _______________________________________________ Pkg-grass-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

