示例#1
0
文件: moc.py 项目: ryszard-ps/hedwig
def read_moc(file_=None, buff=None, max_order=None):
    """
    Construct a MOC object by reading the given file or buffer.

    The MOC is then normalized to the given maximum order, if given.
    """

    moc_object = MOC()

    read_opts = {'include_meta': True}

    if file_ is not None:
        read_moc_fits(moc_object, file_, **read_opts)

    elif buff is not None:
        with closing(StringIO(buff)) as f:
            read_moc_fits(moc_object, f, **read_opts)

    else:
        raise Error('Neither MOC file nor buffer given')

    if max_order is not None:
        moc_object.normalize(max_order=max_order)

    return moc_object
示例#2
0
    def test_aggregate(self):
        m = MOC(10, set([0, 1, 2, 3, 4]))

        self.assertEqual(m.order, 10)
        self.assertEqual(m[10], frozenset([0, 1, 2, 3, 4]))
        self.assertEqual(m[9], frozenset())

        m.normalize()

        self.assertEqual(m.order, 10)
        self.assertEqual(m[10], frozenset([4]))
        self.assertEqual(m[9], frozenset([0]))
示例#3
0
    def test_included(self):
        m = MOC(10, set([0, 1, 2, 3, 4]))

        m.add(8, set([0]))

        self.assertEqual(m.order, 10)
        self.assertEqual(m[8], frozenset([0]))
        self.assertEqual(m[9], frozenset())
        self.assertEqual(m[10], frozenset([0, 1, 2, 3, 4]))

        m.normalize()

        self.assertEqual(m.order, 8)
        self.assertEqual(m[8], frozenset([0]))
        self.assertEqual(m[9], frozenset())
        self.assertEqual(m[10], frozenset())
示例#4
0
    def test_properties(self):
        m = MOC(4, (11, 12))

        self.assertEqual(m.normalized, False)
        self.assertEqual(m.order, 4)
        self.assertEqual(m.cells, 2)
        self.assertEqual(len(m), 1)

        m.add(5, (198, 199))

        self.assertEqual(m.normalized, False)
        self.assertEqual(m.order, 5)
        self.assertEqual(m.cells, 4)
        self.assertEqual(len(m), 2)

        m.normalize()

        self.assertEqual(m.normalized, True)

        m.add(6, (1, 2))

        self.assertEqual(m.normalized, False)
示例#5
0
def jsa_tile_moc(in_, out, max_order):
    """Create image MOC representation of a JSA tile."""

    if in_.lower().endswith('.fits') or in_.lower().endswith('.fit'):
        (data, tile_number, nside) = read_jsa_tile_fits(in_)
        good = np.logical_not(np.isnan(data))

    else:
        (data, tile_number, nside) = read_jsa_tile_sdf(in_)
        try:
            good = data != np.finfo(data.dtype).min
        except ValueError:
            good = data != np.iinfo(data.dtype).min

    (tile_order, map_suborder) = get_tile_params(data, nside)

    pixels = get_pixel_set(good, tile_number, map_suborder)

    moc = MOC(tile_order + map_suborder, pixels, moctype='image')

    moc.normalize(max_order=max_order)

    write_moc_fits(moc, out, clobber=True)
示例#6
0
def jsa_tile_moc(in_, out, max_order):
    """Create image MOC representation of a JSA tile."""

    if in_.lower().endswith('.fits') or in_.lower().endswith('.fit'):
        (data, tile_number, nside) = read_jsa_tile_fits(in_)
        good = np.logical_not(np.isnan(data))

    else:
        (data, tile_number, nside) = read_jsa_tile_sdf(in_)
        try:
            good = data != np.finfo(data.dtype).min
        except ValueError:
            good = data != np.iinfo(data.dtype).min

    (tile_order, map_suborder) = get_tile_params(data, nside)

    pixels = get_pixel_set(good, tile_number, map_suborder)

    moc = MOC(tile_order + map_suborder, pixels, moctype='image')

    moc.normalize(max_order=max_order)

    write_moc_fits(moc, out, clobber=True)