diff options
author | lim <lim@stsci.edu> | 2012-07-12 17:08:41 -0400 |
---|---|---|
committer | lim <lim@stsci.edu> | 2012-07-12 17:08:41 -0400 |
commit | 7c2f170c52c554326babd45badb4aa4852eef615 (patch) | |
tree | 34bbcc30facc19dcf736eb3b964a59c344fff0f2 | |
parent | e0886647eb9f8073c214878498c4d422b0aa31ab (diff) | |
download | stsci.sphere-7c2f170c52c554326babd45badb4aa4852eef615.tar.gz |
fixed skyline bug, change polygon.to_radec output format
git-svn-id: http://svn.stsci.edu/svn/ssb/stsci_python/stsci_python/branches/sphere@17822 fe389314-cf27-0410-b35b-8c050e845b92
Former-commit-id: 80e7a2f26582c697cb6faf47418b58e879f94de0
-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 ----- |