diff options
author | Aaron LI <aaronly.me@outlook.com> | 2017-02-18 22:46:16 +0800 |
---|---|---|
committer | Aaron LI <aaronly.me@outlook.com> | 2017-02-18 22:46:16 +0800 |
commit | 4ae0e62b03444c1ad3e51e64e97664c500874c4d (patch) | |
tree | b6099333eb2bc2fda8151bb11f4dbc464183055d /region | |
parent | 4de1ee376974b6e245d543748885b560a8322277 (diff) | |
download | atoolbox-4ae0e62b03444c1ad3e51e64e97664c500874c4d.tar.bz2 |
Move region.py to astro dir
Diffstat (limited to 'region')
-rw-r--r-- | region/region.py | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/region/region.py b/region/region.py deleted file mode 100644 index 47a1636..0000000 --- a/region/region.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Aaron Li -# 2015/06/19 - -""" -Class Region for regions on the spherical surface. -Used in astronomy to select/define a certian region, e.g, DS9. -""" - -import sys - - -class Region(object): - """ - Basic region class for regions on the spherical surface, - similar definition as to DS9 regions. - - Coordinate style: (ra, dec) - Unit: degree - ra: [0, 2\pi) - dec: [-\pi/2, \pi/2] - """ - - # currently supported region types (similar to DS9) - REGION_TYPES = ["circle", "ellipse", "box", "annulus", "pie", "panda"] - - def __init__(self, regtype, xc, yc, - radius=None, radius2=None, - width=None, height=None, rotation=None, - start=None, end=None): - if regtype.lower() not in self.REGION_TYPES: - raise ValueError("only following region types supported: %s" %\ - " ".join(self.REGION_TYPES)) - self.regtype = regtype.lower() - self.xc = xc - self.yc = yc - self.radius = radius - self.radius2 = radius2 - self.width = width - self.height = height - self.rotation = rotation - - def __repr__(self): - return "Region: %s" % self.regtype - - def dump(self): - return {"regtype": self.regtype, - "xc": self.xc, - "yc": self.yc, - "radius": self.radius, - "radius2": self.radius2, - "width": self.width, - "height": self.height, - "rotation": self.rotation - } - - def is_inside(self, point): - """ - Determine whether the given point is inside the region. - """ - x = point[0] - y = point[1] - if self.regtype == "box": - #print("WARNING: rotation box currently not supported!", - # file=sys.stderr) - xmin = self.xc - self.width/2.0 - xmax = self.xc + self.width/2.0 - ymin = self.yc - self.height/2.0 - ymax = self.yc + self.height/2.0 - if all([x >= xmin, x <= xmax, y >= ymin, y <= ymax]): - return True - else: - return False - else: - raise ValueError("region type '%s' currently not implemented" %\ - self.regtype) - |