diff options
| -rwxr-xr-x | astro/fits/fitscube.py | 32 | 
1 files changed, 18 insertions, 14 deletions
| diff --git a/astro/fits/fitscube.py b/astro/fits/fitscube.py index a297662..13d9be0 100755 --- a/astro/fits/fitscube.py +++ b/astro/fits/fitscube.py @@ -177,10 +177,23 @@ class FITSCube:          """          return (self.data[i, :, :] for i in range(self.nslice)) +    def get_slice(self, i, csize=None): +        """ +        Get the i-th (0-based) slice image, and crop out the central box +        of size ``csize`` if specified. +        """ +        if csize is None: +            return self.data[i, :, :] +        else: +            rows, cols = self.height, self.width +            rc, cc = rows//2, cols//2 +            cs1, cs2 = csize//2, (csize+1)//2 +            return self.data[i, (rc-cs1):(rc+cs2), (cc-cs1):(cc+cs2)] +      @property      def unit(self):          """ -        Data cube unit. +        Cube data unit.          """          return self.header.get("BUNIT") @@ -219,19 +232,10 @@ def cmd_info(args):      if args.meanstd:          mean = np.zeros(cube.nslice)          std = np.zeros(cube.nslice) -        if args.center: -            print("Central spatial box size: %d" % args.center) -            rows, cols = cube.height, cube.width -            rc, cc = rows//2, cols//2 -            cs1, cs2 = args.center//2, (args.center+1)//2 -            for i, image in enumerate(cube.slices): -                data = image[(rc-cs1):(rc+cs2), (cc-cs1):(cc+cs2)] -                mean[i] = np.mean(data) -                std[i] = np.std(data) -        else: -            for i, image in enumerate(cube.slices): -                mean[i] = np.mean(image) -                std[i] = np.std(image) +        for i in range(cube.nslice): +            image = cube.get_slice(i, csize=args.center) +            mean[i] = np.mean(image) +            std[i] = np.std(image)          print("Slice <z>         <mean> +/- <std>:")          for i, z in enumerate(zvalues):              print("* %12.4e:  %-12.4e  %-12.4e" % (z, mean[i], std[i])) | 
