summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlim <lim@stsci.edu>2012-07-12 17:08:41 -0400
committerlim <lim@stsci.edu>2012-07-12 17:08:41 -0400
commit7c2f170c52c554326babd45badb4aa4852eef615 (patch)
tree34bbcc30facc19dcf736eb3b964a59c344fff0f2
parente0886647eb9f8073c214878498c4d422b0aa31ab (diff)
downloadstsci.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.py9
-rw-r--r--lib/skyline.py32
-rw-r--r--lib/test/test_skyline.py6
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 -----