diff options
-rw-r--r-- | lib/polygon.py | 9 | ||||
-rw-r--r-- | lib/skyline.py | 32 | ||||
-rw-r--r-- | lib/test/test_skyline.py | 6 |
3 files changed, 28 insertions, 19 deletions
diff --git a/lib/polygon.py b/lib/polygon.py index 0957279..b20e0b1 100644 --- a/lib/polygon.py +++ b/lib/polygon.py @@ -120,13 +120,12 @@ class SphericalPolygon(object): Returns ------- - zip(ra,dec) : list of tuples - List of (*ra*, *dec*) pairs in degrees corresponding + ra, dec : list of float + List of *ra* and *dec* in degrees corresponding to `points`. """ - ra, dec = vector.vector_to_radec(self.points[:,0], self.points[:,1], - self.points[:,2], degrees=True) - return zip(ra,dec) + return vector.vector_to_radec(self.points[:,0], self.points[:,1], + self.points[:,2], degrees=True) @classmethod def from_radec(cls, ra, dec, center=None, degrees=True): diff --git a/lib/skyline.py b/lib/skyline.py index 04c4afa..eb58a2f 100644 --- a/lib/skyline.py +++ b/lib/skyline.py @@ -89,7 +89,7 @@ SKYLINE_DEBUG = True __all__ = ['SkyLineMember', 'SkyLine'] __version__ = '0.4a' -__vdate__ = '11-Jul-2012' +__vdate__ = '12-Jul-2012' class SkyLineMember(object): """ @@ -248,6 +248,16 @@ class SkyLine(object): if v not in self._members: self._members.append(v) + def _indv_mem_wcslist(self): + """List of original HSTWCS from each EXT in each member.""" + wcs_list = [] + + for m in self.members: + for i in m.ext: + wcs_list.append(wcsutil.HSTWCS(m.fname, ext=i)) + + return wcs_list + def to_wcs(self): """ Combine `HSTWCS` objects from all `members` and return @@ -256,14 +266,13 @@ class SkyLine(object): .. warning:: This cannot return WCS of intersection. """ - wcs_list = [] - - for m in self.members: - for i in m.ext: - wcs_list.append(wcsutil.HSTWCS(m.fname, ext=i)) + wcs_list = self._indv_mem_wcslist() - if len(wcs_list) > 0: + n = len(wcs_list) + if n > 1: wcs = output_wcs(wcs_list) + elif n == 1: + wcs = wcs_list[0] else: wcs = None @@ -288,10 +297,11 @@ class SkyLine(object): **kwargs : Any plot arguments to pass to basemap """ - for m in self.members: - for i in m.ext: - poly = SphericalPolygon.from_wcs(wcsutil.HSTWCS(m.fname, ext=i)) - poly.draw(map, **kwargs) + wcs_list = self._indv_mem_wcslist() + + for wcs in wcs_list: + poly = SphericalPolygon.from_wcs(wcs) + poly.draw(map, **kwargs) def _find_members(self, given_members): """ diff --git a/lib/test/test_skyline.py b/lib/test/test_skyline.py index ac47549..929f0ba 100644 --- a/lib/test/test_skyline.py +++ b/lib/test/test_skyline.py @@ -100,12 +100,12 @@ def test_sphericalpolygon(): assert_almost_equal(im_2chipA.area(), im_2chipB.area()) - radecs = im_2chipA.to_radec() + ra_A, dec_A = im_2chipA.to_radec() for i in xrange(len(im_2chipA.points)): p = im_2chipA.points[i] ra, dec = vector_to_radec(p[0], p[1], p[2], degrees=True) - assert_almost_equal(radecs[i][0], ra) - assert_almost_equal(radecs[i][1], dec) + assert_almost_equal(ra_A[i], ra) + assert_almost_equal(dec_A[i], dec) #----- WCS ----- |