diff options
author | Aaron LI <aaronly.me@outlook.com> | 2016-10-10 00:29:31 +0800 |
---|---|---|
committer | Aaron LI <aaronly.me@outlook.com> | 2016-10-10 00:29:31 +0800 |
commit | c1c5b3d5e899f8e385c90aae4ff881ecad3c7422 (patch) | |
tree | f8e1a627bb437ba04ef78558507f532f31181763 /fg21sim/utils/healpix.py | |
parent | cbbd8eec608ac6d1b037e33ecbe0b76c4bfa6ccc (diff) | |
download | fg21sim-c1c5b3d5e899f8e385c90aae4ff881ecad3c7422.tar.bz2 |
utils: Preseve the dtype when read/write FITS files
* utils/fits.py: hack the dtype to ignore the byteorder (FITS data use
big endianness, e.g., dtype(">f4"))
* utils/healpix.py: explicit convert the dtype and log the dtype
* bin/healpix2hpx, bin/hpx2healpix: remove the --float argument
* other minor fixes/updates
Diffstat (limited to 'fg21sim/utils/healpix.py')
-rw-r--r-- | fg21sim/utils/healpix.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fg21sim/utils/healpix.py b/fg21sim/utils/healpix.py index 0307f08..ef1bd22 100644 --- a/fg21sim/utils/healpix.py +++ b/fg21sim/utils/healpix.py @@ -64,6 +64,8 @@ def healpix2hpx(data, header=None, append_history=None, append_comment=None): else: hp_data, hp_header = np.asarray(data), fits.header.Header(header) logger.info("Read HEALPix data from array and header") + dtype = hp_data.dtype + logger.info("HEALPix dtype: {0}".format(dtype)) logger.info("HEALPix index ordering: %s" % hp_header["ORDERING"]) if hp_header["ORDERING"] != "RING": raise ValueError("only 'RING' ordering currently supported") @@ -72,7 +74,7 @@ def healpix2hpx(data, header=None, append_history=None, append_comment=None): logger.info("HEALPix data: Npix=%d, Nside=%d" % (npix, nside)) if nside != hp_header["NSIDE"]: raise ValueError("HEALPix data Nside does not match the header") - hp_data = np.concatenate([hp_data, [np.nan]]) + hp_data = np.append(hp_data, np.nan).astype(dtype) hpx_idx = _calc_hpx_indices(nside) # fix indices of "-1" to set empty pixels with above appended "nan" hpx_idx[hpx_idx == -1] = len(hp_data) - 1 @@ -80,7 +82,7 @@ def healpix2hpx(data, header=None, append_history=None, append_comment=None): hpx_header = _make_hpx_header(hp_header, append_history=append_history, append_comment=append_comment) - return (hpx_data, hpx_header) + return (hpx_data.astype(hp_data.dtype), hpx_header) def hpx2healpix(data, header=None, append_history=None, append_comment=None): @@ -114,6 +116,7 @@ def hpx2healpix(data, header=None, append_history=None, append_comment=None): else: hpx_data, hpx_header = np.asarray(data), fits.header.Header(header) logger.info("Read HPX image from array and header") + logger.info("HPX image dtype: {0}".format(hpx_data.dtype)) logger.info("HPX coordinate system: ({0}, {1})".format( hpx_header["CTYPE1"], hpx_header["CTYPE2"])) if ((hpx_header["CTYPE1"], hpx_header["CTYPE2"]) != @@ -136,7 +139,7 @@ def hpx2healpix(data, header=None, append_history=None, append_comment=None): hp_header = _make_healpix_header(hpx_header, nside=nside, append_history=append_history, append_comment=append_comment) - return (hp_data, hp_header) + return (hp_data.astype(hpx_data.dtype), hp_header) def _calc_hpx_indices(nside): |