plotastrodata 1.7.3__tar.gz → 1.7.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/PKG-INFO +1 -1
  2. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/__init__.py +1 -1
  3. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/analysis_utils.py +39 -25
  4. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata.egg-info/PKG-INFO +1 -1
  5. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/LICENSE +0 -0
  6. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/README.md +0 -0
  7. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/const_utils.py +0 -0
  8. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/coord_utils.py +0 -0
  9. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/ext_utils.py +0 -0
  10. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/fft_utils.py +0 -0
  11. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/fits_utils.py +0 -0
  12. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/fitting_utils.py +0 -0
  13. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/los_utils.py +0 -0
  14. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/matrix_utils.py +0 -0
  15. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/other_utils.py +0 -0
  16. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata/plot_utils.py +0 -0
  17. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata.egg-info/SOURCES.txt +0 -0
  18. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata.egg-info/dependency_links.txt +0 -0
  19. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata.egg-info/not-zip-safe +0 -0
  20. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata.egg-info/requires.txt +0 -0
  21. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/plotastrodata.egg-info/top_level.txt +0 -0
  22. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/setup.cfg +0 -0
  23. {plotastrodata-1.7.3 → plotastrodata-1.7.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plotastrodata
3
- Version: 1.7.3
3
+ Version: 1.7.5
4
4
  Summary: plotastrodata is a tool for astronomers to create figures from FITS files and perform fundamental data analyses with ease.
5
5
  Home-page: https://github.com/yusukeaso-astron/plotastrodata
6
6
  Download-URL: https://github.com/yusukeaso-astron/plotastrodata
@@ -1,4 +1,4 @@
1
1
  import warnings
2
2
 
3
3
  warnings.simplefilter('ignore', FutureWarning)
4
- __version__ = '1.7.3'
4
+ __version__ = '1.7.5'
@@ -524,7 +524,8 @@ class AstroData():
524
524
  return d
525
525
 
526
526
  @_need_multipixels
527
- def writetofits(self, fitsimage: str = 'out.fits', header: dict = {}):
527
+ def writetofits(self, fitsimage: str = 'out.fits',
528
+ header: dict = {}) -> None:
528
529
  """Write out the AstroData to a FITS file.
529
530
 
530
531
  Args:
@@ -533,37 +534,50 @@ class AstroData():
533
534
  """
534
535
  fhd = self.fitsheader
535
536
  h = {}
536
- nocent = self.pv or self.center is None
537
- cx, cy = (0, 0) if nocent else coord2xy(self.center)
537
+ ci = np.argmin(np.abs(self.x))
538
+ cx = 0
539
+ if not self.pv:
540
+ cj = np.argmin(np.abs(self.y))
541
+ if self.center is None:
542
+ cx, cy = self.x[ci], self.x[cj]
543
+ else:
544
+ xy = [self.x[ci] / 3600, self.y[cj] / 3600]
545
+ cx, cy = coord2xy(xy2coord(xy, self.center))
546
+
547
+ def indeg(s):
548
+ u = f'CUNIT{s}'
549
+ return fhd is None or u not in fhd or isdeg(fhd[u])
550
+
538
551
  h['NAXIS1'] = len(self.x)
539
- h['CRPIX1'] = np.argmin(np.abs(self.x)) + 1
540
- h['CRVAL1'] = cx
541
- h['CDELT1'] = self.dx
542
- if fhd is None or 'CUNIT1' not in fhd or isdeg(fhd['CUNIT1']):
543
- h['CDELT1'] = h['CDELT1'] / 3600
552
+ h['CRPIX1'] = int(ci + 1)
553
+ h['CRVAL1'] = float(cx)
554
+ h['CDELT1'] = float(self.dx / (3600 if indeg('1') else 1))
544
555
  if self.dv is not None:
545
556
  vaxis = '2' if self.pv else '3'
557
+ ck = np.argmin(np.abs(self.v))
558
+ cv = self.v[ck]
559
+ dv = self.dv
560
+ if self.restfreq is None or self.restfreq == 0:
561
+ s = 'No valid restfreq.' \
562
+ + f' Axis {vaxis} is saved as is.'
563
+ warnings.warn(s, UserWarning)
564
+ else:
565
+ cv = (1 - cv / cu.c_kms) * self.restfreq
566
+ dv = -dv / cu.c_kms * self.restfreq
546
567
  h[f'NAXIS{vaxis}'] = len(self.v)
547
- k_vmin = np.argmin(np.abs(self.v))
548
- h[f'CRPIX{vaxis}'] = k_vmin + 1
549
- h[f'CRVAL{vaxis}'] = (1 - self.v[k_vmin]/cu.c_kms) * self.restfreq
550
- h[f'CDELT{vaxis}'] = -self.dv / cu.c_kms * self.restfreq
568
+ h[f'CRPIX{vaxis}'] = int(ck + 1)
569
+ h[f'CRVAL{vaxis}'] = float(cv)
570
+ h[f'CDELT{vaxis}'] = float(dv)
551
571
  if not self.pv:
552
572
  h['NAXIS2'] = len(self.y)
553
- h['CRPIX2'] = np.argmin(np.abs(self.y)) + 1
554
- h['CRVAL2'] = cy
555
- h['CDELT2'] = self.dy
556
- if fhd is None or 'CUNIT2' not in fhd or isdeg(fhd['CUNIT2']):
557
- h['CDELT2'] = h['CDELT2'] / 3600
573
+ h['CRPIX2'] = int(cj + 1)
574
+ h['CRVAL2'] = float(cy)
575
+ h['CDELT2'] = float(self.dy / (3600 if indeg('2') else 1))
558
576
  if None not in self.beam:
559
- if self.pv:
560
- h['BMAJ'] = self.beam_org[0] / 3600
561
- h['BMIN'] = self.beam_org[1] / 3600
562
- h['BPA'] = self.beam_org[2]
563
- else:
564
- h['BMAJ'] = self.beam[0] / 3600
565
- h['BMIN'] = self.beam[1] / 3600
566
- h['BPA'] = self.beam[2]
577
+ beam = self.beam_org if self.pv else self.beam
578
+ h['BMAJ'] = float(beam[0] / 3600)
579
+ h['BMIN'] = float(beam[1] / 3600)
580
+ h['BPA'] = float(beam[2])
567
581
  h.update(header)
568
582
  data2fits(d=self.data, h=h, templatefits=self.fitsimage_org,
569
583
  fitsimage=fitsimage)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plotastrodata
3
- Version: 1.7.3
3
+ Version: 1.7.5
4
4
  Summary: plotastrodata is a tool for astronomers to create figures from FITS files and perform fundamental data analyses with ease.
5
5
  Home-page: https://github.com/yusukeaso-astron/plotastrodata
6
6
  Download-URL: https://github.com/yusukeaso-astron/plotastrodata
File without changes
File without changes
File without changes
File without changes